Девелопер андроид: Documentation  |  Android Developers

Хочу стать Android Developer. Что, где и как учить

Это статья для тех, кто хочет стать Android-разработчиком, и в целом для всех, кто желает работать программистом. Несмотря на то, что все примеры касаются Android, есть много общих советов, которые будут полезны специалистам разных направлений.

Я уже помог нескольким друзьям начать карьеру разработчика, и периодически мои бывшие коллеги и друзья спрашивают у меня совета. Почти всех волнует вопрос, какие должны быть первые шаги, и страх неудачи. Именно поэтому решил написать статью, чтобы у вас был четкий план действий.

Данная тема очень обширна, и о ней можно говорить много и долго. В материале расскажу кратко о самых главных моментах, которые необходимо знать на старте карьеры разработчика.

О себе

У меня почти 8 лет опыта Android-разработки, сейчас я Senior Android Developer в ThredUp. После университета 11 лет работал CG Generalist Artist. CG это Computer Graphics, а Artist — художник.

Достиг отличных результатов в этой сфере, последний проект — работа для мини-сериала «Мотыльки». Примеры вы можете увидеть в Inseparable (original title — Мотыльки) | Making Of | VFX. Дальше эти модели были проданы HBO для сериала Chernobyl. Тот самый вертолет, который падает на середину реактора, сделал я. Как и много моделей и текстур построек, реактора и бэкграунда.

Начальные знания

Минимальные знания, которые вам необходимы:

  • английский;
  • основной язык программирования. В нашем случае — Java и Kotlin;
  • Android SDK, Android-библиотеки;
  • Git, SQLite.

Английский

На первых порах вам будет нужен английский на уровне чтения технической документации. Это Elementary — Pre-Intermediate level. Навряд ли на Junior-позиции вы будете участвовать в митингах, хотя и такое бывает. Но читать документацию и делать уроки придется много. И вот тут другая ситуация: без курсов английского или преподавателя, особенно сначала, будет сложно.

Чаще всего английский проверяют простыми вопросами: расскажите о себе, своих достижениях, о последнем проекте. И так далее.

Вот несколько полезных ресурсов: LinguaLeo, Urban Dictionary, чтобы понимать, что такое AFA, IK, LGTM, TIL, TL;DR и прочие абракадабры.

Отличные переводчики, которые показывают и контекст с примерами. Старайтесь больше переводить в них, а не просто в Google Translate: Reverso Context, The dictionary by Merriam-Webster.

Java

Когда я учил Java, то выделил для себя два самых лучших ресурса:

  • «Java. Библиотека профессионала, том 1. Основы». Читать все, кроме глав о Swing и апплетах (в моем издании это 7–10). Android-программисту это знать не нужно. Кстати, эту книгу мне посоветовали после собеседования, за что я очень благодарен интервьюеру.
  • И, конечно же, Java official documentation.

Остальные книги на фотографии тоже обязательны к прочтению. Читать стоит слева направо — в порядке, как они выложены у меня.

Kotlin

У Koltin шикарнейшая официальная документация: Learn Kotlin. Стоит, конечно же, начать с Getting Started и идти дальше по списку. Multiplatform Programming, JavaScript, Native можно пропустить. Также советую Learn Kotlin for Android from Google.

Android

Говорить о ресурсах по Android можно бесконечно, но рекомендую начать с ниже перечисленных. Еще о полезных источниках вы можете узнать в Telegram-каналах, которые будут в пункте Subscriptions. В конечном итоге желательно уметь выполнить тестовое задание, о котором будет дальше.

  1. Start Android — один из самых первых сайтов по обучению Android, про который я узнал. Он появился еще в 2011 году. Поэтому какая-то информация может быть не совсем актуальна, но все же там подробно и хорошо изложены азы, тем более на русском.
  2. Сейчас появились разные замечательные Android Academy. У которых, кроме офлайн/онлайн-занятий, есть YouTube-каналы с видео для начинающих. Например: Android Academy Global, Android Academy Minsk.
  3. Официальная документация от Google. Большую часть времени стоит уделить именно ей:
    • Developer Guides — документация по Android framework.
    • Android Jetpack — унифицированное решение от Google для часто встречающихся задач. Сейчас это уже стандарт для многих решений.
  4. Architecture components samples — Architecture components — это часть Android Jetpack. В этом репозитории найдете примеры, как их использовать.
  5. Android Architecture Blueprints v2 — примеры реализации архитектур от Google.

Рекомендую вначале освоить основы Android. Дальше выбрать, какое тестовое задание вы хотите сделать, и изучать те вещи, которые нужны для этого. Таким образом вы не будете изучать то, что в ближайшее время вам не пригодится.

Дополнительные технические навыки

Git

Git необходим в повседневной работе для синхронизации кода группы разработчиков, которые занимаются одним проектом. Он позволяет просматривать изменения, которые были сделаны, вести параллельную разработку и многое другое.

Рекомендую хороший урок об основах гита Learn Git.

У компании Jetbrains есть отличная встроенная поддержка Git, и чаще всего я использую ее прямо с Android Studio. Jetbrains, на мой взгляд, выпускает самые лучшие среды разработки, и на базе их продукта IntelliJ IDEA основана Android Studio.

SQLite

SQLite — это реляционная база данных. База данных — это набор значений, состоящий из строк и колонок. Слова «реляционная» бояться не нужно 🙂 Оно происходит от relation

 — связь, означает, что в разных таблицах базы данных есть общее значение. И вы можете на основе нескольких таблиц построить какую-то другую.

Навряд ли вам придется писать сложные SQL-запросы, так что основ должно быть вполне достаточно. Начать изучение SQL можете с этого курса.

Курсы

Многие меня спрашивают про толковые курсы. И очень огорчаются, когда я советую учиться самому. На это есть ряд причин:

  • Программист — это специальность, где учиться и развиваться самому — чуть ли на самый важный навык, который будет необходим в течение всей карьеры.
  • Многие приводят аргумент: «Вот заплачу, и будет стимул ходить». Но если вы не будете успевать за программой курса, можете выпасть из графика и забросить полностью занятия. К сожалению, это не редкость.
  • Высокая стоимость. Как по мне, лучше эти деньги потратить «на жизнь» и несколько месяцев только учиться.

Если все-таки очень хочется на курсы, рекомендую попробовать платные онлайн. Программа будет на 90% такой же, но стоить это будет в разы меньше и вы всегда сможете продолжить в удобное вам время.

Subscriptions

Подпишитесь на почтовые рассылки Android Weekly, Kotlin Weekly, News from Kt. Academy и Telegram-каналы. Сейчас они почти полностью заменили форумы. Тут новости, общение и поиски ментора.

#protips: Чтобы не сойти с ума, используйте Chat Folders в Telegram.

Ментор

Ментор — это не просто человек, который пару раз ответит на ваши вопросы. Это наставник, который будет смотреть за прогрессом и корректировать усилия: что вам лучше сейчас учить и на что обратить внимание. К сожалению, у меня не было ментора, но мне очень помогли ответы на форуме. Есть разные ресурсы, где можно найти наставника, это — форумы, чаты, Android Academy. Возможно, даже среди ваших знакомых есть Android-разработчик, которому будет интересно побыть в роли ментора. В свою очередь, для него это тоже ценный опыт, который потом можно использовать на позиции тимлида. Или просто человек будет рад поделиться с вами знаниями.

Тестовое задание

Рекомендую вам сразу начинать делать типовое тестовое задание. В 98% процентов случаев это будет «отобразить какой-то список, по нажатию на элемент списка открыть его детали».

Начните с этого минимума (MVP) и дальше его улучшайте. Добавьте pagination, сохранение информации в базу данных для работы в фоне. Сохраните состояние при развороте экрана, чтобы заново не грузился список и сохранялась позиция списка. Загрузите картинку с экрана деталей, если, конечно, там есть картинка.

Разместите это тестовое задание на GitHub и включите ссылку в свое резюме.

Более конкретные примеры тестовых заданий, которые я встречал:

  • Отображение погоды с поиском по городу. Вы можете использовать этот бесплатный бэкенд.
  • Последние топ-новости Reddit с автоматической пагинацией и возможностью сохранить картинку.

Поищите уже готовые реализации, например sunflower от Google. Разместите ссылку репозитория с вашим тестовым заданием в Android-чаты и попросите людей сделать code review.

Резюме

Среди моих знакомых есть отличные специалисты. Но, глядя на их резюме, появляется ощущение, что это школьники, которые только вчера открыли текстовый редактор. Все в разнобой: шрифты, размеры, отступы. Но вы ведь не приходите на собеседование в рубашке, у которой один рукав закатан, а другой нет, на левой ноге кроссовок, а на правой — лыжный ботинок. Так почему же позволяете себе делать такие резюме?! Резюме — это самое первое впечатление о вас, как ваш внешний вид!

Тут вы найдете шаблоны резюме, можете выбрать любой понравившийся. Дальше рекомендую почитать креш-тесты. Также не забывайте читать комментарии — там часто дают дельные замечания. Плюс можно загуглить выпуски подкастов на эту тему.

Раньше уже писал, как быстро сделать красивое резюме и залить его на GitHub. Посмотрите мой пост в LinkedIn об этом.

Отклик на вакансии

Не стоит бояться, если вы чего-то не знаете из списка требований вакансии. Все равно советую откликаться на них. Конечно же, пробелы не должны быть по ключевым навыкам, но в остальных они допускаются. Вы сможете быстро подучить их в ходе работы.

Собеседование

Попросите кого-то вас прособеседовать. Например, вашего ментора, знакомых или кого-то из чата в Telegram-каналах. Также есть разные сервисы c fake/mock interview. Загуглите вопросы, которые задают на собеседованиях. Но не только технические, а и поведенческие от HR на первом интервью-звонке. И да, это действительно интервью-звонок 🙂

После собеседования важно попросить развернутый фидбэк. Зачастую HR просто говорят что-то вроде: «Мы вам перезвоним», «Извините, вы нам не подходите» или «Мы выбрали более сильного кандидата». Если попросите более развернутый фидбэк, будьте готовы, что он тоже может быть чисто формальным, чтобы вас не обидеть. Обратная связь может быть и вполне конструктивной и крайне ценной для вас, так как укажет на слабые места, которые нужно улучшить.

После собеседования сделайте работу над ошибками: вспомните вопросы, на которые вы не ответили или ответили плохо. Запишите их, пока помните. И конечно же, выучите. Эти знания пригодятся в дальнейшем. Скорее всего, вы услышите эти вопросы на следующих интервью и сможете уже классно на них ответить.

Что делать, когда не приглашают на собеседования или отказали

Это сложный моральный этап, но тут все довольно просто, нужно только лишь набраться терпения. Выберите себе какой-то промежуток времени, допустим месяц. И в течение него улучшайте технические навыки, свое резюме. А в конце опять ищите свежие вакансии и откликайтесь на них. Повторяйте так до тех пор, пока не найдете работу.

Soft skills

Мой коллега, который проводил собеседования, рассказал историю. На интервью есть ребята, которые отвечают хорошо, но все же что-то не знают. И вот был единственный кандидат, который ответил на 100% вопросов, и рекрутеру с радостью сказали «Нужно брать». А рекрутер подумал и ответил: «Нет, не берем, он какой-то неприветливый и вообще асоциальный».

Поэтому знания знаниями, но быть приятным в общении также очень важно. Ведь люди с вами на работе проводят бо́льшую часть своей жизни. Так что be nice 🙂

Наверное, вы уже поняли, что для того, чтобы стать Android-разработчиком, требуется немало усилий и терпения. Но тут самое главное — начать, и у вас все получится!

Headless: паролі, VPN-и й університет Зеленського. Про безпеку з Владом Стираном

Как стать разработчиком Андроид приложений?

Если вы хотите с нуля “войти в IT”, вы задумываетесь о том, в какую сферу направить свои усилия. Мобильная разработка привлекает своей популярностью и востребованностью. Ежедневно миллионы владельцев смартфонов используют приложения для работы, развлечений или учебы. Если вы хотите попасть в волну, самое время стать разработчиком на андроид. Следуйте нашим советам и все получится!

Что выбрать iOS или Android?

Обе платформы имеют свои плюсы и минусы в популярности и разработке. Разработчики обеих платформ — хорошие друзья, которые постоянно обмениваются опытом. Чем привлекает Android:

  • аудитория у платформы шире — 86,2% пользователей смартфонов в мире имеют OC Android.
  • широкая география использования по миру.
  • Java — легко осваиваемый и интуитивно понятный язык
  • Не смотря на то, что iOS лучше окупается (платные приложения и покупки в них, более платежеспособная аудитория), индивидуальный android разработчик имеет свою нишу на рынке. Серьезные компании делают акцент, в основном, на iOS, так что место для работы разработчиков есть.

С чего начать?

Если специализация разработчик андроид приложений привлекает вас, мы дадим несколько советов о том, с чего начать.

  1. Вы должны действительно гореть разработкой на Android и хотеть развиваться в этом направлении. Ситуация усложняется тем, что множество смартфонов разных компаний используют Android, а обновления появляются медленно, что сказывается на том, чтобы сделать такое приложение, которое подойдет под разные размеры экранов и версии систем. Будьте к этому готовы.
  1. Вам необходимо разобраться в целом в методологии разработки мобильных приложений, а также развить в себе необходимое мышление — нужно помнить о том, что ресурсы мобильных телефонов не безграничны. Разработчики андроид приложений должны заботиться о производительности процессора, объеме памяти и батарее. Если сделать приложение некачественно, его в скором времени удалят.
  1. Начать лучше всего с курсом программирования на Android, где у вас будет ментор, который сможет вам дать фидбек по коду и архитектуре.
  1. Параллельно читайте литературу, блоги и смотрите видео-обучалки. Важно: ищете контент на английском языке, так как самые прогрессивные материалы по разработке Android именно в англоязычном интернете.

Требования компаний к Андроид разработчикам начального уровня

Для того, чтобы устроиться в профессиональную компанию андроид-разработчиком, вам необходимы следующие навыки:

  • Good knowledge of Java for Android development & Android SDK/Gradle build system
  • Good knowledge XML/JSON/SQL/GIT
  • Good understanding OOP/OOD/SOLID principles
  • Good understanding UI/UX principles and experience with customizing UI
  • Experience with back end integration using REST API
  • Problem-solving skills
  • English level — Intermediate

Как видите, большинство компаний публикуют требования на английском языке, что говорит о его важности для разработчика.

Как получить работу Junior разработчика Андроид приложений

Если создание приложений для android — это, чем вы хотите заниматься профессионально, в хорошей команде, вам нужно попасть в IT-компанию.

Для того несколько месяцев обучайтесь самостоятельно — освойте базовые навыки, напишите несколько пробных приложений.

В помощь вам интернет-ресурс Upwork, где вы можете увидеть реальные задачи по Android и пробовать их сделать. На первых порах даже не берите заказ, а просто работайте над задачей без дедлайна и обязательств.

Затем пробуйте силы в небольших местных компаниях, где вы получите опыт командной работы, поймете, как в целом разрабатываются приложения.

И, конечно же, посещайте тематические мероприятия, слушайте доклады от профессионалов и знакомьтесь с другими разработчиками, обменивайтесь опытом.

Советы от Android разработчиков Artjoker

Несколько советов по обучению разработке на Android от команды Artjoker.

  1. Разберитесь, как устроен код и функционал фреймворков Android. Вы узнаете много нового и сложите в систему фрагменты знаний о разработке.
  1. Не пытайтесь объять необъятное — изучайте вещи, которые нужны конкретно сейчас для разработки конкретного приложения. В свободное время изучайте то, что вас заинтересовало. Android — как айсберг, если вы изучили что-то и считаете, что этого достаточно, одумайтесь, вы знаете только 30%.
  1. Перспективный разработчик приложений для android изучает передовой опыт коллег. Вы можете просматривать библиотеки и программы с открытым исходным кодом, делать выводы и реализовывать новые техники на своих проектах, тем самым улучшая их.
  1. Изучайте шаблоны проектирования Java — они значительно облегчат вам разработку и помогут быть в теме, когда другие разработчики будут обсуждать их.
  1. Общайтесь с mobile-дизайнерами — будет ли приложение интуитивно понятным зависит не только от UI/UX-дизайнера.
  1. Возьмите за правило пользоваться горячими клавишами при работе над приложением — оптимизируйте свое время.
  1. Следите за тенденциями — набирает обороты язык программирования Kotlin. Специалисты, которые умеют с ним работать, вскоре будут очень востребованы.

Вам будет полезно:

  • developer.android.com — сайт, на котором собрана полезная документация для разработчиков
  • Android Wear — версия операционной системы Google Android, с помощью которой вы можете программировать приложения для умных часов и других носимых устройств.
  • ARCore — это платформа для мобильных приложений с дополненной реальностью. Учитывая быстро развивающиеся темпы дополненной реальности, полезно изучить тему.
  • Android Auto, Android Things и Android TV — все эти сервисы и программы также показывают, что сфера не ограничивается только разработкой для смартфонов, так что у вас большой потенциал!

Удачи в реализации себя как Android-разработчика, работайте упорно каждый день, поставьте себе цель и идите к ней:)

Если вы хотите узнать больше о жизни и работе в Artjoker, читайте «50 фактов о работе в Artjoker» и смотрите видео:)

Декомпиляция и отладка Android-приложений

В статье будет рассказано о том, как подключить отладчик к Android-приложению и пошагово пройти через вызываемые методы, используя информацию, полученную после декомпиляции приложения.

Автор: Eric Gruber

В статье будет рассказано о том, как подключить отладчик к Android-приложению и пошагово пройти через вызываемые методы, используя информацию, полученную после декомпиляции приложения. Хорошая новость в том, что для отладки не требуются привилегии суперпользователя. Описанные техники могут быть очень кстати во время пентестов мобильных приложений, поскольку мы можем «проникнуть» в код во время работы программы, получить и записать информацию, к которой обычно у нас нет доступа. Например, можно перехватить трафик перед шифрованием и на лету получить ключи, пароли и любую другую ценную информацию. Статья будет полезна пентестерам и разработчикам мобильных приложений, желающих получить более глубокие знания о возможных атаках на платформе Android.

Требования к тестовой среде:

В статье будет использоваться следующая конфигурация: Windows 8, Android Studio и IntelliJ IDEA. Устройство: Nexus 4 с Android версии 4.4.4. Рекомендую все утилиты добавить в переменную окружения PATH, чтобы облегчить и ускорить доступ к этим инструментам.

Android application package (APK), используемый в статье, можно скачать отсюда: com.netspi.egruber.test.apk.

Настройка устройства

Инструкция ниже поможет вам подготовить устройство для экспериментов.

Активация раздела Developer Options

Для начала на Android-устройстве должна быть разрешена отладка через USB (опция USB debugging), что позволит «общаться» с девайсом при помощи инструментов из набора Android SDK. Однако перед этим необходимо активировать раздел Developer options. На устройстве зайдите в раздел Settings > About Phone и кликните несколько раз на пункт Build Number, после чего должно появиться сообщение о том, что раздел Developer options активирован.

Рисунок 1: Для того чтобы активировать раздел Developer options, необходимо несколько раз кликнуть на Build number

Разрешение отладки через USB

Чтобы разрешить отладку через USB-порт, зайдите в раздел Settings > Developer options и отметьте флажок напротив USB debugging.

Рисунок 2: Включение опции USB debugging

Подключение устройства и запуск ADB

После подключение устройства к компьютеру через USB-порт, должно появиться сообщение «USB debugging connected on the device». Также следует проверить, можно ли подключиться к устройству при помощи приложения Android Debug Bridge (ADB), входящего в состав Android SDK (пакет Android SDK Platform-tools). В командной строке введите следующую команду:

adb devices

Устройство должно отобразиться в списке.

Рисунок 3: Список подключенных устройств

Если устройство не отобразилось в списке, то наиболее вероятная причина в некорректно установленных драйверах (в Windows). В зависимости от устройства драйвер можно найти либо в Android SDK, либо на сайте производителя.

Проверка приложения на возможность отладки

Перед отладкой Android-приложений вначале необходимо проверить, есть ли такая возможность. Проверку можно выполнить несколькими способами.

Первый способ – запустить Android Device Monitor, входящий в состав Android SDK (в папке tools). В Windows файл называется monitor.bat. При открытии Android Device Monitor устройство отобразится в разделе Devices.

Рисунок 4: Приложение Android Device Monitor

Если какое-либо приложение на устройстве можно отлаживать, это приложение также отобразится в списке. Я создал тестовую программу, но список пуст, поскольку программу отлаживать нельзя.

Второй способ проверить приложение на возможность отладки – исследовать файл AndroidManifest.xml из пакета приложения (APK, Android application package). APK представляет собой zip-архив, содержащий всю информацию, необходимую для запуска приложения на Android-устройстве.

Всякий раз, когда приложения загружается из Google Play Store, также загружается и пакет приложения. Все загруженные APK-файлы обычно хранятся на устройстве в папке /data/app. Если у вас нет прав суперпользователя, вы не сможете получить список файлов из директории /data/app. Хотя, если вы знаете имя APK-файла, можете скопировать его при помощи утилиты adb. Чтобы узнать имя APK-файла, введите следующую команду:

adb shell

Появится командная строка устройства. Затем введите следующую команду:

pm list packages -f

Отобразится список всех пакетов на устройстве.

Рисунок 5: Перечень пакетов на устройстве

Глядя на список, находим тестовое приложение.

Рисунок 6: Пакет созданного тестового приложения (выделено белым)

Теперь необходимо скопировать файл пакета. Открываем шелл и вводим следующую команду:

adb pull /data/app/[.apk file] [location]

Рисунок 7: Копируем APK-файл с устройства в систему

Теперь нужно открыть файл пакета и исследовать содержимое AndroidManifest.xml. К сожалению, мы не можем просто так распаковать архив, поскольку APK-файл закодирован в бинарном формате. Для раскодировки чаще всего используется утилита apktool, хотя я использую APK Studio, поскольку у этого приложения дружелюбный графический интерфейс. Далее в статье будет рассказываться об APK Studio.

В APK Studio кликните на маленькую зеленую иконку, задайте имя проекту и укажите путь к APK файлу. Затем укажите пусть для сохранения проекта.

Рисунок 8: Создание нового проекта в APK Studio

После открытия APK выберите файл AndroidManifest.xml и посмотрите параметры тега application. Если флаг android:debuggable отсутствует (или присутствует, но установлено значение false), значит, приложение отлаживать нельзя.

Рисунок 9: Содержимое файла AndroidManifest.xml

Модификация файла AndroidManifest.xml

При помощи утилиты apktool или APK Studio мы можем модифицировать файлы и упаковывать содержимое обратно в пакет. Сейчас мы изменим файл AndroidManifest.xml так, чтобы приложение можно было отлаживать. Добавляем внутрь тега application строчку android:debuggable=»true».

Рисунок 10: Изменяем содержимое тега application

После добавления флага кликаем на иконку «молоток» и заново собираем пакет. Пересобранный пакет будет находиться в директории build/apk.

Рисунок 11: Повторная сборка пакета завершилась успешно

После пересборки пакет подписывается и его можно заново установить на устройстве (все Android-приложения должны быть подписаны). Большинство приложений не проверяет сертификат, при помощи которого происходит подпись. В противном случае необходимо изменить код, выполняющий эту проверку.

Теперь нужно установить пересобранный пакет. Вначале удаляем старое приложение при помощи следующей команды:

adb pm uninstall[package name]

Затем устанавливаем новый пакет:

adb install [.apk file]

Также можно удалить и установить пакет одной командой:

adb install -r [.apk file]

Рисунок 12: Установка пересобранного пакета

Проверьте, чтобы переустановленное приложение корректно запускалось на устройстве. Если все работает, переходим обратно в Android Device Monitor, где должно появиться тестовое приложение.

Рисунок 13: Теперь пересобранное приложение можно отлаживать

Настройка среды разработки (IDE)

Теперь к пересобранному приложению можно подцепить отладчик, но вначале нужно создать проект в среде разработки (в статье используется IntelliJ IDEA). Создаем новый проект. В поле Application name указываем произвольное имя. В поле Package name указываем имя, в точности совпадающее с иерархией папок пересобранного пакета.

Рисунок 14: Создание нового проекта в IntelliJ IDEA

Обычно имя APK-файла совпадает со структурой папок, хотя, если вы не уверены, в APK Studio проверьте иерархию директорий до папки, где находятся файлы приложений. В моем случае имя и структура папок полностью совпадают (com.netspi.egruber.test).

Рисунок 15: Иерархия директорий тестового приложения

Снимите флажок «Create Hello World Activity» и завершите создание проекта (все остальные параметры остаются по умолчанию). Новый проект должен выглядеть примерно так:

Рисунок 16: Иерархия папок и файлов нового проекта

После создания проекта нужно добавить исходный код из APK-файла для того, чтобы отладчик «знал» имена символов, методов, переменных и т. д. Хорошая новость в том, что Android-приложения можно декомпилировать практически без потери качества (исходный код будет совпадать с оригиналом). После декомпиляции исходный текст импортируется в среду разработки (IDE).

Получение исходных текстов из пакета приложения

Для начала необходимо преобразовать APK в jar-файл. Затем мы при помощи java-декомпилятора получим исходный текст приложения. Преобразование в jar будем делать при помощи утилиты dex2jar. У dex2jar есть файл d2j-dex2jar.bat, используемый для конвертирования APK в jar. Синтаксис команды довольно прост:

d2j-dex2jar.bat [.apk file]

Рисунок 17: Преобразование APK в jar

Затем открываем или перетаскиваем полученный файл в JD-GUI (это java-декомпилятор).

Рисунок 18: Структура jar-файла

Jar-файл должен отобразиться в виде иерархической структуры, внутри которой находятся java-файлы с читабельным исходным кодом. Заходим в File > Save All Sources, чтобы упаковать все исходные тексты в zip-архив.

Рисунок 19: Сохранение исходных текстов декомпилированного файла

После сохранения исходных текстов распаковываем архив в отдельную директорию.

Рисунок 20: Распакованный архив

Теперь нужно импортировать обе директории в созданный ранее проект в IDE. В IntelliJ заходим в папку src и копируем туда содержимое распакованного архива (две директории).

Рисунок 21: Обе папки скопированы в директорию src

Возвращаясь в Intellij, видим обновленный проект.

Рисунок 22: В проекте появились исходные тексты

Если мы кликнем на какой-нибудь элемент из списка, то увидим исходный текст. Как видно на скриншоте ниже (исходный текст класса LoginActivity), исходный код обфусцирован при помощи ProGuard.

Рисунок 23: Обфусцированный исходный текст класса LoginActivity

Подключение отладчика

Теперь, когда в проекте появились исходные тексты, мы можем начать устанавливать точки останова на методах и переменных. По достижению точек останова приложение будет останавливаться. В качестве примера я установил точку останова на методе (прямо в обфусцированном коде), отвечающим за обработку информации, введенной в текстовом поле.

Рисунок 24: Поставлена точка останова на обфусцированный метод

Как только появилась точка останова, подключаем отладчик к процессу на устройстве, кликнув на иконку с экраном в правом верхнем углу (на вашей IDE иконка может отличаться).

Рисунок 25: Подключаем отладчик к процессу

Далее вам будет предложено выбрать процесс, к которому нужно подключиться. Будут отображены только процессы с флагом android:debuggable=»true».

Рисунок 26: Перечень процессов для подключения отладчика

После выбора процесса отладчик подсоединится к устройству.

Рисунок 27: Отладчик подключен к процессу, запущенному на устройстве

В текстовое поле я буду вводить число 42 (если помните, на соответствующем методе стоит точка останова).

Рисунок 28: В текстовое поле вводим число 42

После нажатия на кнопку «Enter Code» выполнение приложения прервется на точке останова, поскольку отладчик «осведомлен», какой метод вызывается на устройстве. Скомпилированное Android-приложение содержит отладочную информацию (например, имена переменных), доступную любому отладчику, совместимому с Java Debug Wire Protocol (JDWP). Если в приложении разрешена отладка, отладчик, совместимый с JDWP (в эту категорию попадает большинство отладчиков идущих в составе сред разработки для Java), сможет подсоединиться к виртуальной машине Android-приложения, а затем считывать и выполнять отладочные команды.

Рисунок 29: Сработала точка останова

На скриншоте ниже видно число, которое ранее мы ввели в текстовом поле.

Рисунок 30: Перечень переменных текущего экземпляра класса

Заключение

Мы можем не только считывать данные в приложении, но и вставлять свои собственные. Это может быть полезно, если мы, например, захотим прервать поток выполнения кода и обойти некоторые участки алгоритма. При помощи отладчика мы можем лучше понять логику работы приложения и проанализировать то, что недоступно обычному пользователю. Например, может оказаться очень полезным просмотр используемых функций шифрования и динамические ключи. Кроме того, иногда при отладке полезно знать, как функции взаимодействуют с файловой системой или базой данных, чтобы понять какая информация сохраняется приложением. Подобные манипуляции доступны на любом Android-устройстве без привилегий суперпользователя. 

особенности профессии, перспективы, необходимые навыки и умения

Использование смартфонов уже давно и прочно вошло в нашу жизнь, при этом 9 из 10 мобильных устройств работают на платформе Android. Спрос на эту систему высокий благодаря простоте и универсальности для разных девайсов — от мобильных телефонов и планшетов до смарт-часов. Счет приложений для Android уже давно идет на миллионы, поэтому специалисты по их разработке очень нужны рынку. Они занимают занимают отдельную нишу в IT-сегменте, и у них есть масса возможностей реализовать себя и добиться высокого дохода.

Немного статистики в области мобильной разработки

В 2014 году 86% от всех проданных смартфонов работали на базе Android. Несмотря на конкуренцию с iOS, платформа Android была и остается самой доступной и широко используемой. В 2017 году Google объявил о 2 миллиардах активных пользователей Android в месяц. По данным сайта statista.com, число приложений в магазине Google стремительно выросло за десять лет . В 2013-м оно превысило отметку в 1 млн, а в конце 2018 года — 2,6 млн. У большинства крупных компаний есть приложения в качестве альтернативной версии веб-сайта. Такие продукты предоставляют возможности ПК-версии в полном или частичном объеме. Например, финансовые операции в онлайне, заказы и покупки, ознакомление с контентом ресурса, общение с менеджерами сайта или техподдержкой. Мобильные разработки популярны в e-commerce — сфере, нацеленной на быстрые конверсии с мобильного в онлайне. Актуально развитие приложений для банков, которые постоянно добавляют функции к своему продукту; стартапов, в основе которых — новая услуга, технология или игра.

Преимущества работы в сфере Android-разработки

Главный плюс Android-разработки — огромная сфера применения. Кроме того, популярность направления привела к большому количеству источников информации для начинающих и опытных разработчиков. К основным преимуществам развития в области Android относятся:
  • эффективные вспомогательные инструменты для создания и тестирования приложений;
  • большая база обучающих материалов и инструкций для разработчиков;
  • перспективный и растущий рынок;
  • востребованность специалистов и высокий уровень зарплат;
  • возможность работать в разных странах;
  • участие в интересных проектах, создание полезных продуктов для широкой аудитории.

Что входит в обязанности Android-разработчика

У разработчика мобильных приложений много задач и обязанностей на разных уровнях подготовки, от работы над внутренней структурой до реализации интерфейса. Вот несколько стандартных задач Android-разработчика (например, при работе над собственным проектом):
  • разработка мобильных приложений для ОС Android: реализация задачи, изложенной в ТЗ или брифе заказчика; написание кода;
  • взаимодействие с базами данных и АРI;
  • тестирование и доработка программного продукта на нескольких этапах;
  • загрузка готового продукта в магазин приложений Google Play;
  • поддержка и апгрейд приложений, создание обновлений;
  • подготовка документации и инструкций по работе с продуктом.

Инструменты разработчика приложений

Для продуктивной мобильной разработки нужны специально “заточенные” инструменты. Кроме того, в вакансиях по поиску Android-специалистов, среди требований к соискателям есть знание определенной среды разработки или инструментов. Вот некоторые из них:
  • Android Studio

    Официальная среда программирования для Android. Создание продукта для данной платформы начинают с установки Android Studio — интегрированной среды разработки (IDE). Этот комплекс программных средств поддерживает разные языки программирования — Java, С++, Kotlin — и предлагает возможности для взаимодействия с другими приложениями.

  • Android SDK

    Android SDK (software development kit) — универсальный набор инструментов для создания и тестирования мобильных приложений с набором функциональных возможностей. Знание этого продукта — большой плюс для специалиста.

  • Git

    Система контроля версий проекта, с которой взаимодействует Android Studio. Она позволяет фиксировать этапы разработки и помогает IT-специалистам внутри команды взаимодействовать.

  • Библиотеки

    Эффективные библиотеки упрощают жизнь Android-разработчика. В Android Studio их можно подключить через систему автоматической сборки Gradle.

10 библиотек, о которых должен знать каждый Android-разработчик

Рынок труда Android-разработчиков

Платформу Android используют везде, и запросы на программистов появляются в странах бывшего СНГ, Европе, США. Программирование на Java и знание технологий в области мобильной разработки открывают возможности перед специалистами и вселяют уверенность в перспективах на глобальном рынке труда. Результаты опроса, в котором участвовали украинские разработчики, показали, что около 18% из них используют для работы Java. Согласно данным сайта американской компании Stackify, основанном на ежегодной статистике GitHub, этот язык также лидирует в мировом рейтинге по популярности. Рейтинг зарплат украинских Java-специалистов (по данным DOU) указывает на близкие значения в уровне дохода с разработчиками под Android. По данным сайта Яндекс.Практикум и аналитической службы HeadHunter, за последние годы в России Android-разработчики были в числе самых высокооплачиваемых IT-специалистов. Советы сеньоров: как прокачать знания junior Android

5 шагов на пути к Android-разработке

Объем информации в сфере мобильной разработки очень большой. У неподготовленного ученика может появиться желание освоить все и сразу или же, наоборот, опасения, что количество необходимых знаний недосягаемо. Однако путь к любой вершине начинается с малого. И дойти быстрее к поставленной цели поможет правильный и последовательный план действий. Рассмотрим основные этапы развития Android-разработчика как специалиста.
  1. Освоение базовых принципов программирования.

    Тем, кто решил стать Android-разработчиком с нуля, лучше начать с изучения базовых концепций программирования. Один из примеров — гарвардский курс «CS50» на русском языке, посвященный основам компьютерных наук. Легкая подача материала поможет разобраться в вопросе новичкам в сфере ИТ — от школьников до тех, кто решил сменить профессию и реализовать себя в разработке и информационных технологиях.

  2. Погружение в мир Java.

    Этот язык лежит в основе разработки для мобильных устройств для Android. Чтобы стать разработчиком приложений, лучше всего начать со знакомства с Java.

    Обучение будет продуктивным и быстрым, если выбрать хороший курс для начинающих с правильным балансом теории и практики. На принципе 80/20% (практика/теория) построен курс JavaRush, который помогает изучить основы Java с нуля.

  3. Изучение основ Android-разработки.

    После того, как начинающий программист стал увереннее разбираться в Java, можно переходить к освоению особенностей мобильной разработки для системы Android. На этом этапе необходимо узнать базовые принципы кода, основные компоненты приложений, а также уверенно ориентироваться в функционале фреймворков Android.

    Большинство полезных материалов для Android-разработчиков опубликовано на английском. Одним из решений для тех, кто пока не знает язык, будет использование переведенного курса. Например, «Разработка под Android для начинающих» на русском языке: его исходный вариант разработали специалисты Google.

  4. Активное самообучение.

    Перспективный специалист всегда интересуется трендами сферы разработки и непрерывно обучается. Чтобы попасть в число востребованных специалистов в ИТ, важно всегда быть в курсе новшеств, черпать новую информацию из проверенных и авторитетных ресурсов: официальных сайтов для разработчиков, тематических сообществ, форумов:

    • Android Developers — официальный ресурс для разработчиков Android-приложений, созданный Google. Здесь можно найти руководства, справочники, информацию об основах создания приложений, совместимости устройств, особенностях пользовательского интерфейса и многое другое.
    • Хабр — сайт на русском языке в формате коллективного блога, связанный с IT-технологиями, интернетом, бизнесом.
    • DOU — сообщество программистов в Украине с контентом на русском и украинском, где можно найти массу полезной информации, включая статистику по зарплатам и вакансии.
    • Cyberforum — площадка для обмена знаниями между программистами и другими специалистами компьютерных специальностей.
    Для тех, кто владеет английским, есть дополнительные возможности для совершенствования навыков:
    • Android Tutorial — учебное пособие, в котором можно найти базовые примеры по каждой теме с описанием. У сайта нет русской версии, но переводы материалов опубликованы на других источниках.
    • Slidenerd — канал на YouTube, ориентированный как на опытных, так и начинающих программистов.
    • Android Weekly — бесплатная еженедельная новостная рассылка.
    • StackOverflow — полезный ресурс для новичка, где есть ответы на любые вопросы в сфере разработки.
  5. Практика и еще раз практика.

    Чтобы обучение было продуктивным, нужно постоянно нарабатывать практические навыки. Чем больше практики — тем лучше. Новички могут начинать с одноэкранных приложений с текстом и картинками, постепенно повышая уровень сложности.

Заключение

Разработка для Android — это отличный вариант для тех, кто хочет войти в мир информационных технологий и выбрать перспективное направление для развития. В этой сфере полно интересных проектов и возможностей для создания новых полезных продуктов. В основе разработки ПО для платформы Android лежит Java — язык программирования в числе самых востребованных и высокооплачиваемых. Чтобы стать Android-разработчиком, стоит начать с выбора правильной стратегии обучения, вооружиться лучшими источниками информации и энтузиазмом к получению новых знаний. Блог разработчиков

Android

Сегодня мы отправляем исходный код в проект с открытым исходным кодом Android (AOSP) и официально выпускаем последнюю версию Android. Следите за появлением Android 12 на устройстве рядом с вами, начиная с Pixel в ближайшие несколько недель и устройств Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo и Xiaomi в конце этого года.

Как всегда, благодарим вас за отзывы во время бета-тестирования Android 12! Более 225 000 из вас протестировали наши ранние выпуски на Pixel и устройствах наших партнеров, и вы отправили нам около 50 000 отчетов о проблемах, чтобы помочь улучшить качество выпуска. Мы также ценим множество статей, обсуждений, опросов и личных встреч, на которых вы высказали свои мысли, а также работу, которую вы проделали, чтобы ваши приложения были совместимы к сегодняшнему выпуску. Ваша поддержка и вклад делают Android отличной платформой для всех.

Мы также будем более подробно рассказывать об Android 12 на Android Dev Summit, который состоится 27–28 октября. Мы только что опубликовали дополнительную информацию о мероприятии, включая снимки технических сессий Android; читайте подробности позже в этом посте.

Что есть в Android 12 для разработчиков?

Вот некоторые из новых возможностей Android 12 для разработчиков. Обязательно посетите сайт разработчиков Android 12, чтобы узнать обо всех новых функциях.

Новый интерфейс для Android

Material You — Android 12 представляет новый язык дизайна под названием Material You, помогающий создавать более персонализированные и красивые приложения. Чтобы добавить в свои приложения все последние обновления Material Design 3, попробуйте альфа-версию компонентов Material Design и следите за появлением поддержки Jetpack Compose в ближайшее время.

Обновленные виджеты — Мы обновили виджеты приложений, чтобы сделать их более полезными, красивыми и легко обнаруживаемыми. Попробуйте их с новыми интерактивными элементами управления, адаптивными макетами для любого устройства и динамическими цветами, чтобы создать индивидуальный, но согласованный вид. Подробнее здесь.

Обновления пользовательского интерфейса уведомлений — Мы также обновили дизайн уведомлений, чтобы сделать их более современными и полезными. Android 12 также украшает пользовательские уведомления стандартными возможностями, чтобы сделать их совместимыми со всеми другими уведомлениями.Подробнее здесь.

Stretch overscroll — Чтобы сделать прокрутку содержимого вашего приложения более плавной, Android 12 добавляет новый эффект «растягивания» overscroll для всех прокручиваемых контейнеров. Это естественный индикатор остановки прокрутки, распространенный в системе и в приложениях. Подробнее здесь.

Заставки для запуска приложений — Android 12 также включает заставки для всех приложений. Приложения могут настраивать заставку различными способами в соответствии с их уникальными потребностями в брендинге. Подробнее здесь.

Производительность

Более быстрая и эффективная производительность системы — Мы сократили время ЦП, используемое основными системными службами, на 22% и использование больших ядер на 15%.Мы также улучшили время запуска приложений и оптимизировали ввод-вывод для более быстрой загрузки приложений, а для запросов к базе данных мы улучшили CursorWindow в 49 раз для больших окон.

Оптимизированные службы переднего плана — Чтобы обеспечить удобство работы пользователей, Android 12 запрещает приложениям запускать службы переднего плана в фоновом режиме. Вместо этого приложения могут использовать новое ускоренное задание в JobScheduler. Подробнее здесь.

Более отзывчивые уведомления — Ограничение Android 12 на трамплины уведомлений помогает уменьшить задержку для приложений, запускаемых из уведомления.Например, приложение Google Фото теперь запускается на 34% быстрее после ухода от трамплинов для уведомлений. Подробнее здесь.

Класс производительности Класс производительности — это набор возможностей устройства, которые вместе поддерживают требовательные сценарии использования и более качественный контент на устройствах Android 12. Приложения могут проверять класс производительности устройства во время выполнения и в полной мере использовать его производительность. Подробнее здесь.

Более быстрое машинное обучение — Android 12 помогает максимально эффективно использовать ускорители машинного обучения и всегда получать максимальную производительность с помощью API нейронных сетей.Драйверы ускорителя ML теперь также можно обновлять вне выпусков платформы через службы Google Play, поэтому вы можете использовать последние версии драйверов на любом совместимом устройстве.

Конфиденциальность

Privacy Dashboard — новая панель в Настройках дает пользователям лучшую видимость, когда ваше приложение получает доступ к данным с микрофона, камеры и местоположения. Подробнее здесь.

Приблизительное местоположение — Пользователи имеют еще больший контроль над данными о своем местоположении, и они могут предоставить вашему приложению доступ к приблизительному местоположению, даже если оно запрашивает точное местоположение.Подробнее здесь.

Индикаторы микрофона и камеры — индикаторы в строке состояния сообщают пользователям, когда ваше приложение использует камеру или микрофон устройства. Подробнее здесь.

Переключатели микрофона и камеры — На поддерживаемых устройствах новые переключатели в быстрых настройках позволяют пользователям мгновенно отключить доступ приложений к микрофону и камере. Подробнее здесь.

Разрешения для ближайших устройств — ваше приложение может использовать новые разрешения для поиска и сопряжения с ближайшими устройствами без необходимости разрешения на определение местоположения. Подробнее здесь.

Инструменты для улучшения взаимодействия с пользователем

Вставка богатого контента — Новый унифицированный API позволяет получать богатый контент в пользовательском интерфейсе из любого источника: из буфера обмена, клавиатуры или перетаскивания. Для обратной совместимости мы добавили в AndroidX единый API. Подробнее здесь.

Поддержка закругленных углов экрана — Многие современные устройства используют экраны с закругленными углами. Чтобы обеспечить отличный пользовательский интерфейс на этих устройствах, вы можете использовать новые API-интерфейсы, чтобы запрашивать детали углов и затем управлять своими элементами пользовательского интерфейса по мере необходимости.Подробнее здесь.

Поддержка изображений AVIF — в Android 12 добавлена ​​поддержка платформы для формата файлов изображений AV1 (AVIF). AVIF использует преимущества внутрикадрового кодирования содержимого из сжатия видео для значительного улучшения качества изображения при том же размере файла по сравнению с более старыми форматами изображений, такими как JPEG.

Совместимое перекодирование мультимедиа — Для видео формат HEVC предлагает значительные улучшения качества и сжатия, и мы рекомендуем, чтобы все приложения поддерживали его.Для приложений, которые этого не могут, совместимая функция перекодирования мультимедиа позволяет вашему приложению запрашивать файлы в формате AVC, а система выполняет перекодирование. Подробнее здесь.

Более простые размытия, цветовые фильтры и другие эффекты — новые API-интерфейсы упрощают применение общих графических эффектов к вашим представлениям и иерархиям рендеринга. Вы можете использовать RenderEffect для применения размытия, цветовых фильтров и прочего к RenderNodes или Views. Вы также можете создать эффект матового стекла для фона вашего окна, используя новое окно.setBackgroundBlurRadius () или используйте blurBehindRadius для размытия всего содержимого за окном.

Улучшенные тактильные ощущения — Android 12 расширяет инструменты, которые вы можете использовать для создания информативной тактильной обратной связи для событий пользовательского интерфейса, захватывающих и восхитительных эффектов для игр и тактильных ощущений внимания для повышения производительности. Подробнее здесь.

Новые эффекты камеры и возможности сенсора — Новые расширения поставщиков позволяют вашим приложениям использовать настраиваемые эффекты камеры, созданные производителями устройств, — боке, HDR, ночной режим и другие.Вы также можете использовать новые API-интерфейсы, чтобы в полной мере использовать сенсоры камеры сверхвысокого разрешения, которые используют шаблоны Quad / Nona Bayer. Подробнее здесь.

Улучшенная отладка для собственных сбоев — Android 12 предоставляет более действенную диагностическую информацию, чтобы упростить отладку сбоев, связанных с NDK. Теперь приложения могут получать доступ к подробным файлам аварийного дампа, называемым надгробиями, через API причин выхода из приложения.

Android 12 для игр — С помощью API игрового режима вы можете реагировать на выбор профиля производительности игроков для вашей игры — например, увеличение времени автономной работы при длительной поездке на работу или режим производительности для получения максимальной частоты кадров. Играть по мере загрузки позволит загружать игровые ресурсы в фоновом режиме во время установки, что позволяет игрокам быстрее вовлекаться в игровой процесс.

Подготовьте свои приложения для Android 12

В связи с сегодняшним общедоступным выпуском Android 12 мы просим всех разработчиков Android завершить тестирование совместимости. и как можно скорее опубликовать обновления. , чтобы ваши пользователи могли плавно перейти на Android 12.

Чтобы проверить свое приложение на совместимость, просто установите его на устройство под управлением Android 12 и поработайте с приложениями в поисках каких-либо функциональных проблем или проблем с пользовательским интерфейсом.Просмотрите изменения в поведении Android 12 для всех приложений, чтобы сосредоточиться на областях, в которых ваше приложение может быть затронуто. Вот некоторые из основных изменений, которые стоит проверить:

  • Панель мониторинга конфиденциальности — Используйте эту новую панель в настройках, чтобы проверить доступ вашего приложения к микрофону, местоположению и другим конфиденциальным данным, а также рассмотреть возможность предоставления пользователям сведений о причинах. Подробнее здесь.
  • Индикаторы микрофона и камеры — Android 12 показывает индикатор в строке состояния, когда приложение использует камеру или микрофон.Убедитесь, что это не повлияет на пользовательский интерфейс вашего приложения. Подробнее здесь.
  • Переключатели микрофона и камеры — Попробуйте использовать новые переключатели в быстрых настройках, чтобы отключить доступ к микрофону и камере для приложений, и убедитесь, что ваше приложение правильно обрабатывает изменения. Подробнее здесь.
  • Уведомление о чтении буфера обмена — Следите за всплывающими уведомлениями, когда ваше приложение неожиданно считывает данные из буфера обмена. Удалите непреднамеренный доступ. Подробнее здесь.
  • Растянуть над прокруткой — Попробуйте прокрутить контент с новым эффектом «растягивания» над прокруткой и убедитесь, что оно отображается должным образом.Подробнее здесь.
  • Заставки приложений — Запустите приложение из различных потоков, чтобы протестировать новую анимацию заставки. При необходимости его можно настроить. Подробнее здесь.
  • Изменения Keygen — Несколько устаревших криптографических алгоритмов BouncyCastle удалены в пользу версий Conscrypt. Если ваше приложение использует 512-битный ключ с AES, вам нужно будет использовать один из стандартных размеров, поддерживаемых Conscrypt. Подробнее здесь.

Не забудьте протестировать библиотеки и SDK в своем приложении на совместимость.Если вы обнаружите какие-либо проблемы с SDK, попробуйте обновить его до последней версии или обратитесь к разработчику за помощью.

После того, как вы опубликовали совместимую версию своего текущего приложения, вы можете начать процесс обновления targetSdkVersion вашего приложения. Просмотрите изменения в поведении приложений Android 12 и воспользуйтесь платформой совместимости, чтобы быстро обнаруживать проблемы.

Подключайтесь к Android Dev Summit, чтобы узнать об Android 12 и многом другом!

#AndroidDevSummit вернулся! Присоединяйтесь к нам 27-28 октября , чтобы узнавать о последних обновлениях в разработке Android, включая Android 12. Тема этого года — отличных приложений для устройств; Зарегистрируйтесь в конце этого месяца, чтобы узнать больше об инструментах разработки, API и технологиях, которые помогут вам работать более продуктивно и создавать более совершенные приложения, которые работают на миллиардах устройств, включая планшеты, складные, носимые устройства и многое другое.

Мы только что опубликовали дополнительную информацию о мероприятии, включая снимки более 30 технических сессий Android; вы можете взглянуть на некоторые из этих сессий здесь и начать планировать, какие выступления вы хотите прослушать.В ближайшие недели мы будем просить вас поделиться своими главными вопросами #AskAndroid, на которые команда ответит в прямом эфире во время мероприятия.

Шоу начнется в 10:00 по тихоокеанскому времени 27 октября с The Android Show, 50-минутной технической презентации, на которой вы услышите все последние новости и обновления для разработчиков Android. Вы можете узнать больше и подписаться на обновления здесь.

Автор: Дэйв Берк, вице-президент по инженерным вопросам

Сегодня мы отправляем исходный код в проект с открытым исходным кодом Android (AOSP) и официально выпускаем последнюю версию Android.Следите за появлением Android 12 на устройстве рядом с вами, начиная с Pixel в ближайшие несколько недель и устройств Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo и Xiaomi в конце этого года.

Как всегда, благодарим вас за отзывы во время бета-тестирования Android 12! Более 225 000 из вас протестировали наши ранние выпуски на Pixel и устройствах наших партнеров, и вы отправили нам около 50 000 отчетов о проблемах, чтобы помочь улучшить качество выпуска. Мы также ценим множество статей, обсуждений, опросов и личных встреч, на которых вы высказали свои мысли, а также работу, которую вы проделали, чтобы ваши приложения были совместимы к сегодняшнему выпуску.Ваша поддержка и вклад делают Android отличной платформой для всех.

Мы также будем более подробно рассказывать об Android 12 на Android Dev Summit, который состоится 27–28 октября. Мы только что опубликовали дополнительную информацию о мероприятии, включая снимки технических сессий Android; читайте подробности позже в этом посте.

Что есть в Android 12 для разработчиков?

Вот некоторые из новых возможностей Android 12 для разработчиков.Обязательно посетите сайт разработчиков Android 12, чтобы узнать обо всех новых функциях.

Новый интерфейс для Android

Material You — Android 12 представляет новый язык дизайна под названием Material You, помогающий создавать более персонализированные и красивые приложения. Чтобы добавить в свои приложения все последние обновления Material Design 3, попробуйте альфа-версию компонентов Material Design и следите за появлением поддержки Jetpack Compose в ближайшее время.

Обновленные виджеты — Мы обновили виджеты приложений, чтобы сделать их более полезными, красивыми и легко обнаруживаемыми.Попробуйте их с новыми интерактивными элементами управления, адаптивными макетами для любого устройства и динамическими цветами, чтобы создать индивидуальный, но согласованный вид. Подробнее здесь.

Обновления пользовательского интерфейса уведомлений — Мы также обновили дизайн уведомлений, чтобы сделать их более современными и полезными. Android 12 также украшает пользовательские уведомления стандартными возможностями, чтобы сделать их совместимыми со всеми другими уведомлениями. Подробнее здесь.

Stretch overscroll — Чтобы сделать прокрутку содержимого вашего приложения более плавной, Android 12 добавляет новый эффект «растягивания» overscroll для всех прокручиваемых контейнеров.Это естественный индикатор остановки прокрутки, распространенный в системе и в приложениях. Подробнее здесь.

Заставки для запуска приложений — Android 12 также включает заставки для всех приложений. Приложения могут настраивать заставку различными способами в соответствии с их уникальными потребностями в брендинге. Подробнее здесь.

Производительность

Более быстрая и эффективная производительность системы — Мы сократили время ЦП, используемое основными системными службами, на 22% и использование больших ядер на 15%.Мы также улучшили время запуска приложений и оптимизировали ввод-вывод для более быстрой загрузки приложений, а для запросов к базе данных мы улучшили CursorWindow в 49 раз для больших окон.

Оптимизированные службы переднего плана — Чтобы обеспечить удобство работы пользователей, Android 12 запрещает приложениям запускать службы переднего плана в фоновом режиме. Вместо этого приложения могут использовать новое ускоренное задание в JobScheduler. Подробнее здесь.

Более отзывчивые уведомления — Ограничение Android 12 на трамплины уведомлений помогает уменьшить задержку для приложений, запускаемых из уведомления. Например, приложение Google Фото теперь запускается на 34% быстрее после ухода от трамплинов для уведомлений. Подробнее здесь.

Класс производительности Класс производительности — это набор возможностей устройства, которые вместе поддерживают требовательные сценарии использования и более качественный контент на устройствах Android 12. Приложения могут проверять класс производительности устройства во время выполнения и в полной мере использовать его производительность. Подробнее здесь.

Более быстрое машинное обучение — Android 12 помогает максимально эффективно использовать ускорители машинного обучения и всегда получать максимальную производительность с помощью API нейронных сетей.Драйверы ускорителя ML теперь также можно обновлять вне выпусков платформы через службы Google Play, поэтому вы можете использовать последние версии драйверов на любом совместимом устройстве.

Конфиденциальность

Privacy Dashboard — новая панель в Настройках дает пользователям лучшую видимость, когда ваше приложение получает доступ к данным с микрофона, камеры и местоположения. Подробнее здесь.

Приблизительное местоположение — Пользователи имеют еще больший контроль над данными о своем местоположении, и они могут предоставить вашему приложению доступ к приблизительному местоположению, даже если оно запрашивает точное местоположение.Подробнее здесь.

Индикаторы микрофона и камеры — индикаторы в строке состояния сообщают пользователям, когда ваше приложение использует камеру или микрофон устройства. Подробнее здесь.

Переключатели микрофона и камеры — На поддерживаемых устройствах новые переключатели в быстрых настройках позволяют пользователям мгновенно отключить доступ приложений к микрофону и камере. Подробнее здесь.

Разрешения для ближайших устройств — ваше приложение может использовать новые разрешения для поиска и сопряжения с ближайшими устройствами без необходимости разрешения на определение местоположения.Подробнее здесь.

Инструменты для улучшения взаимодействия с пользователем

Вставка богатого контента — Новый унифицированный API позволяет получать богатый контент в пользовательском интерфейсе из любого источника: из буфера обмена, клавиатуры или перетаскивания. Для обратной совместимости мы добавили в AndroidX единый API. Подробнее здесь.

Поддержка закругленных углов экрана — Многие современные устройства используют экраны с закругленными углами. Чтобы обеспечить отличный пользовательский интерфейс на этих устройствах, вы можете использовать новые API-интерфейсы, чтобы запрашивать детали углов и затем управлять своими элементами пользовательского интерфейса по мере необходимости.Подробнее здесь.

Поддержка изображений AVIF — в Android 12 добавлена ​​поддержка платформы для формата файлов изображений AV1 (AVIF). AVIF использует преимущества внутрикадрового кодирования содержимого из сжатия видео для значительного улучшения качества изображения при том же размере файла по сравнению с более старыми форматами изображений, такими как JPEG.

Совместимое перекодирование мультимедиа — Для видео формат HEVC предлагает значительные улучшения качества и сжатия, и мы рекомендуем, чтобы все приложения поддерживали его. Для приложений, которые этого не могут, совместимая функция перекодирования мультимедиа позволяет вашему приложению запрашивать файлы в формате AVC, а система выполняет перекодирование. Подробнее здесь.

Более простые размытия, цветовые фильтры и другие эффекты — новые API-интерфейсы упрощают применение общих графических эффектов к вашим представлениям и иерархиям рендеринга. Вы можете использовать RenderEffect для применения размытия, цветовых фильтров и прочего к RenderNodes или Views. Вы также можете создать эффект матового стекла для фона вашего окна, используя новое окно.setBackgroundBlurRadius () или используйте blurBehindRadius для размытия всего содержимого за окном.

Улучшенные тактильные ощущения — Android 12 расширяет инструменты, которые вы можете использовать для создания информативной тактильной обратной связи для событий пользовательского интерфейса, захватывающих и восхитительных эффектов для игр и тактильных ощущений внимания для повышения производительности. Подробнее здесь.

Новые эффекты камеры и возможности сенсора — Новые расширения поставщиков позволяют вашим приложениям использовать настраиваемые эффекты камеры, созданные производителями устройств, — боке, HDR, ночной режим и другие.Вы также можете использовать новые API-интерфейсы, чтобы в полной мере использовать сенсоры камеры сверхвысокого разрешения, которые используют шаблоны Quad / Nona Bayer. Подробнее здесь.

Улучшенная отладка для собственных сбоев — Android 12 предоставляет более действенную диагностическую информацию, чтобы упростить отладку сбоев, связанных с NDK. Теперь приложения могут получать доступ к подробным файлам аварийного дампа, называемым надгробиями, через API причин выхода из приложения.

Android 12 для игр — С помощью API игрового режима вы можете реагировать на выбор профиля производительности игроков для вашей игры — например, увеличение времени автономной работы при длительной поездке на работу или режим производительности для получения максимальной частоты кадров.Играть по мере загрузки позволит загружать игровые ресурсы в фоновом режиме во время установки, что позволяет игрокам быстрее вовлекаться в игровой процесс.

Подготовьте свои приложения для Android 12

В связи с сегодняшним общедоступным выпуском Android 12 мы просим всех разработчиков Android завершить тестирование совместимости. и как можно скорее опубликовать обновления. , чтобы ваши пользователи могли плавно перейти на Android 12.

Чтобы проверить свое приложение на совместимость, просто установите его на устройство под управлением Android 12 и поработайте с приложениями в поисках каких-либо функциональных проблем или проблем с пользовательским интерфейсом.Просмотрите изменения в поведении Android 12 для всех приложений, чтобы сосредоточиться на областях, в которых ваше приложение может быть затронуто. Вот некоторые из основных изменений, которые стоит проверить:

  • Панель мониторинга конфиденциальности — Используйте эту новую панель в настройках, чтобы проверить доступ вашего приложения к микрофону, местоположению и другим конфиденциальным данным, а также рассмотреть возможность предоставления пользователям сведений о причинах. Подробнее здесь.
  • Индикаторы микрофона и камеры — Android 12 показывает индикатор в строке состояния, когда приложение использует камеру или микрофон.Убедитесь, что это не повлияет на пользовательский интерфейс вашего приложения. Подробнее здесь.
  • Переключатели микрофона и камеры — Попробуйте использовать новые переключатели в быстрых настройках, чтобы отключить доступ к микрофону и камере для приложений, и убедитесь, что ваше приложение правильно обрабатывает изменения. Подробнее здесь.
  • Уведомление о чтении буфера обмена — Следите за всплывающими уведомлениями, когда ваше приложение неожиданно считывает данные из буфера обмена. Удалите непреднамеренный доступ. Подробнее здесь.
  • Растянуть над прокруткой — Попробуйте прокрутить контент с новым эффектом «растягивания» над прокруткой и убедитесь, что оно отображается должным образом.Подробнее здесь.
  • Заставки приложений — Запустите приложение из различных потоков, чтобы протестировать новую анимацию заставки. При необходимости его можно настроить. Подробнее здесь.
  • Изменения Keygen — Несколько устаревших криптографических алгоритмов BouncyCastle удалены в пользу версий Conscrypt. Если ваше приложение использует 512-битный ключ с AES, вам нужно будет использовать один из стандартных размеров, поддерживаемых Conscrypt. Подробнее здесь.

Не забудьте протестировать библиотеки и SDK в своем приложении на совместимость.Если вы обнаружите какие-либо проблемы с SDK, попробуйте обновить его до последней версии или обратитесь к разработчику за помощью.

После того, как вы опубликовали совместимую версию своего текущего приложения, вы можете начать процесс обновления targetSdkVersion вашего приложения. Просмотрите изменения в поведении приложений Android 12 и воспользуйтесь платформой совместимости, чтобы быстро обнаруживать проблемы.

Подключайтесь к Android Dev Summit, чтобы узнать об Android 12 и многом другом!

#AndroidDevSummit вернулся! Присоединяйтесь к нам 27-28 октября , чтобы узнавать о последних обновлениях в разработке Android, включая Android 12.Тема этого года — отличных приложений для устройств; Зарегистрируйтесь в конце этого месяца, чтобы узнать больше об инструментах разработки, API и технологиях, которые помогут вам работать более продуктивно и создавать более совершенные приложения, которые работают на миллиардах устройств, включая планшеты, складные, носимые устройства и многое другое.

Мы только что опубликовали дополнительную информацию о мероприятии, включая снимки более 30 технических сессий Android; вы можете взглянуть на некоторые из этих сессий здесь и начать планировать, какие выступления вы хотите прослушать.В ближайшие недели мы будем просить вас поделиться своими главными вопросами #AskAndroid, на которые команда ответит в прямом эфире во время мероприятия.

Шоу начнется в 10:00 по тихоокеанскому времени 27 октября с The Android Show, 50-минутной технической презентации, на которой вы услышите все последние новости и обновления для разработчиков Android. Вы можете узнать больше и подписаться на обновления здесь.

Разработка под Android: полное руководство по началу работы

Хотите создать свое следующее приложение для мобильных устройств Android? В Trio на постоянной основе работают высококвалифицированные разработчики, специализирующиеся на разработке мобильных приложений для Android.

Мы можем помочь воплотить в жизнь ваши мечты о мобильных устройствах, приняв во внимание, какое приложение вы хотите создать и в какие временные рамки вы хотите его встроить.

Понимая, что вы пытаетесь создать на Android , мы можем соответствующим образом назначить, кто из наших разработчиков соответствует вашим критериям, чтобы оказать поддержку в создании вашего проекта.

Что такое Android?

Android — это операционная система, которая работает на смартфонах, отличных от iOS, таких как Google Pixel, Samsung Galaxy и других.Android была куплена Google в 2005 году и выпущена в 2007 году и является самой продаваемой ОС для мобильных устройств в мире.

Что такое разработчик Android?

Разработчик Android — это просто мобильный разработчик, имеющий опыт работы с Android Studio и их инструментами SDK, а также обширные знания их библиотек и фреймворков для создания приложений Android. Это также означает, что они имеют опыт использования Java и / или Kotlin в качестве основного языка программирования.

Компании, использующие Android

  • Twitter
  • Netflix
  • Pinterest
  • Facebook
  • Instagram
  • Kayak
  • Slack
  • Hopper
  • Duolingo
  • Google Spotify
  • Google Spotify
  • Quora

Как нанять Android-разработчика?

Для тех, кто хочет пойти по дороге и нанять разработчиков Android самостоятельно, мы по-прежнему готовы помочь.

Наем разработчика самостоятельно — это очень сфокусированный и практический процесс, требующий значительных знаний о разработке программного обеспечения в целом.

Последнее, что вы хотите сделать, — это доверить процесс приема на работу кому-то без технических возможностей. Если вы не технический менеджер и хотите кое-что узнать, у нас есть отличный ресурс, чтобы вы могли подробнее узнать о процессе найма.

В противном случае мы рекомендуем вам связаться с Trio для консультации и распределения разработчика.

На что обращать внимание на разработчика Android

На высоком уровне разработчики Android должны уметь:

  • Работать с Android Studio и его SDK
  • Уметь владеть Java и / или Kotlin
  • Работать с Gradle
  • Дизайн макетов для экранов разных размеров
  • Работа с XML
  • Понять архитектуру приложения

Сколько стоят разработчики Android в США?

По данным ZipRecruiter и других источников, средняя годовая зарплата старшего разработчика Android в США составляет от 57 000 до 172 500 долларов в год.

Вот диаграмма, на которой показаны диапазоны заработной платы старшего разработчика программного обеспечения в США.

Средняя годовая зарплата старшего разработчика Android в США составляет от 57 000 до 172 500 долларов в год.

Сколько стоит Android-разработчик в Южной Америке?

Из-за экономических различий между Соединенными Штатами и Южной Америкой в ​​целом стоимость офшоринговой разработки программного обеспечения значительно ниже, чем при найме на полную ставку в U.S талант. Для старших разработчиков Android в Южной Америке средняя зарплата в настоящее время составляет около 100 000 долларов, в то время как разработчика среднего уровня обходятся примерно в 76 000 долларов.

Сколько стоит Android-разработчик в Украине / Восточной Европе?

Показатели в Восточной Европе очень схожи с показателями в Южной Америке, опять же из-за экономических различий. Если посмотреть на зарплаты в Восточной Европе, данные показывают, что старший разработчик Android стоит в среднем около 100 000 долларов.

Почасовая оплата для разработчиков Android

Другой способ взглянуть на затраты разработчика — это почасовая оплата.Несмотря на то, что зарплаты хороши для найма разработчиков на полный или долгий срок, вам может понадобиться разработчик на срок от 3-6 месяцев или 6-12 месяцев. В таких ситуациях лучше всего рассчитывать свои расходы на основе почасовой оплаты застройщика.

Ниже приведена таблица, в которой перечислены различные почасовые ставки разработчиков в разных местах в зависимости от их должности.

Почасовая оплата для разработчиков iOS

Зачем нанимать разработчика Android?

Trio Android-разработчики проходят предварительную проверку, проходят собеседование, а затем проходят дальнейшее обучение, чтобы стать настоящими профессионалами в области программного обеспечения, способными адаптироваться к ситуациям, которые находятся как в пределах, так и за пределами их общей компетенции.

Trio ставит наших разработчиков на более высокий уровень. Подобно тому, как элитные подразделения спецназа набирают только лучших из основных родов войск, мы набираем разработчиков, которые либо демонстрируют удивительный потенциал, либо демонстрируют исключительные навыки. Затем мы берем их таланты и оттачиваем их еще дальше.

Еще одним преимуществом найма разработчика Trio является то, что вы не понесете затрат на наем, которые могут составлять в среднем около 30% от заработной платы разработчика, а также накладных расходов, связанных с полной занятостью.

Работая с Trio, вы можете получить удовольствие от высококвалифицированного штатного разработчика за небольшую часть стоимости, а также дополнительную помощь в управлении проектами.

Чтобы узнать больше, свяжитесь с нами по телефону и расскажите о своем проекте , чтобы мы могли помочь вам начать работу.

Лучшие инструменты разработчика Android для начала работы

Разработка Android зависит от ряда различных инструментов, независимо от того, выберете ли вы «официальный» путь или вместо этого воспользуетесь одним из бесчисленных других доступных методов.

На самом деле, при таком большом количестве вариантов для начала иногда бывает сложно определить, какой из них лучше всего подходит для вас. Какие инструменты необходимы? Какую программу вы используете для программирования?

В этом посте будут рассмотрены лучшие инструменты разработчика Android, включая основные и дополнительные.

Android SDK

Первое, что вам понадобится для начала, — это Android SDK. Это «Комплект для разработки программного обеспечения», который содержит все библиотеки, необходимые для создания приложений для Android.Он также включает дополнительные инструменты разработчика Android, которые можно использовать для отладки, компиляции и многого другого.

Среди них оболочка ADB — один из самых важных инструментов разработчика Android. Это Android Debug Bridge; небольшой инструмент командной строки, который можно использовать для мониторинга устройства или виртуального устройства во время работы ваших приложений. Вам также следует попробовать новый Jetpack Compose из набора инструментов Jetpack. Это мощный инструмент для создания интерфейса, который обещает сэкономить разработчикам много времени по мере его развития.

Также прочтите: Как установить Android SDK

Вам не нужно напрямую взаимодействовать с Android SDK, но убедитесь, что он находится на вашем компьютере, когда начнете программировать. Также обратите внимание на каталог, так как большинство альтернативных IDE и других инструментов, которые вы используете, должны будут ссылаться на него.

Чтобы получить SDK, вам нужно скачать его прямо с Google. SDK поставляется в комплекте с Android Studio, что является самым простым способом получить его.

Студия Android

Наиболее важной частью программного обеспечения для разработки под Android является «интегрированная среда разработки» или IDE.IDE — это, по сути, программа, в которую вы вводите свой код. Затем он упакует этот код в виде файла APK, который можно установить на другие устройства Android. Это делает IDE наиболее важными инструментами разработчика Android.

Официальной IDE для разработки под Android является Android Studio. Эта загрузка также включает Android SDK, эмулятор, файлы изображений Android и многое другое. Все устанавливается в простой процесс, поэтому вам не нужно загружать дополнительные файлы.

Как официальный инструмент разработки под Android, эта установка поддержит любые амбициозные идеи, которые могут возникнуть у вас в отношении приложений.Этому также стоит научиться, если вы заинтересованы в том, чтобы стать профессиональным разработчиком в будущем.

Альтернативные инструменты разработки под Android: IDE

Использование Android Studio с Java или Kotlin не особенно удобно для новичков. Этот вариант также не подходит для разработки 3D-игр. По этим причинам вы можете предпочесть альтернативную среду IDE из списка ниже.

Unity и другие игровые движки

Unity — чрезвычайно мощный кроссплатформенный игровой движок и IDE.Его можно использовать как для разработки 3D-, так и для 2D-игр или даже для создания неигровых приложений. Unity — самая популярная платформа, используемая профессиональными разработчиками игр в магазине Google Play.

Unreal заслуживает похвалы за лучшие инструменты разработки под Android. Unreal — еще один движок для 3D-игр, который очень популярен для разработки игр на ПК. Однако он не так хорош в 2D-разработке, как Unity, и более сложен в освоении.

Вы также можете выбрать разработчика игр, например GameMaker: Studio или Game Salad.Эти параметры менее гибкие, но все же могут дать впечатляющие результаты с минимальным написанием кода. GameMaker: Studio, в частности, использовалась для создания некоторых популярных игр для Android. С другой стороны, салат из дичи — это скорее инструмент обучения.

Xamarin + Visual Studio

Xamarin — это инструмент, который позволяет создавать приложения для Android с помощью Microsoft Visual Studio. Это не только нравится тем, кто любит звуки кодирования на C #, а не на Java, но также чрезвычайно удобен в качестве кроссплатформенного инструмента, поскольку он также может создавать программное обеспечение для iOS и даже Windows.

Xamarin делает почти все, что делает Android Studio, и создает приложения с аутентификацией. Тем не менее, доступ к библиотекам Java и их использование немного менее удобны, а обновления на платформу поступают немного позже. Вы можете узнать больше здесь.

Также читайте: Как создать приложение для Android с Xamarin

B4X

B4X от Anywhere Software — один из малоизвестных инструментов разработки под Android, но также один из моих любимых. B4X — это набор инструментов, которые можно использовать для создания кроссплатформенных приложений с использованием языка программирования BASIC.А еще лучше, B4A — инструмент разработчика Android — теперь доступен как бесплатно, так и с открытым исходным кодом!

BASIC — язык, особенно удобный для новичков, что делает его отличным выбором не только для тех, у кого нет опыта использования Java или Kotlin, но и для тех, кто хочет быстро реализовать идею.

Разработчики приложений

Если вы хотите знать, как создавать приложения для Android без программирования, лучшие инструменты разработчика Android — это «конструкторы приложений». Они предлагают базовые функции разработки приложений, позволяя создавать интерфейсы и даже получать доступ к некоторым встроенным функциям.Они тоже часто бывают кроссплатформенными.

Мы написали целое руководство для разработчиков приложений Android, которое вы можете проверить, но для начала есть несколько хороших вариантов:

Расширенные внешние инструменты разработки под Android

Когда вы познакомитесь с основными инструментами разработчика Android, вы можете изучить некоторые из более продвинутых опций, которые предоставляют вам доступ к функциям машинного обучения, удаленному сотрудничеству и многому другому.

GitHub

GitHub — это хостинг для репозиториев Git.Это онлайн-инструмент, используемый для обмена проектами и отслеживания нескольких версий (называемых «вилками») этих проектов при работе в команде. Это удобно для резервного копирования вашей работы, для совместной работы, а также для поиска примеров кода и руководств, с которыми вы можете работать.

Для новичков ваше знакомство с GitHub, вероятно, будет ограничено загрузкой примеров проектов, которые вы можете реконструировать. Если вы когда-либо работали над большим приложением в команде, это инструмент разработчика, с которым вам нужно хорошо ознакомиться.Если только компания, с которой вы работаете, не использует Mercurial!

Firebase

Firebase — это не один инструмент, а, скорее, целый набор инструментов разработчика Android! Это набор облачных сервисов Google для мобильных и веб-разработчиков, который включает в себя широкий спектр услуг от монетизации через AdMob до более безопасной аутентификации, ML Kit (следующий в этом списке) и аналитики. Хотя начинающим разработчикам не нужно беспокоиться о Firebase для начала, он почти наверняка пригодится в какой-то момент, когда ваши проекты станут более амбициозными.Если вы столкнулись с препятствием и вам нужна новая функция, основанная на облаке, сначала проверьте Freibase! Здесь вы можете найти введение.

Комплект ML

ML Kit — это инструмент разработчика для Android, который позволяет добавлять в приложение функции машинного обучения из Google. Это означает добавление таких вещей, как компьютерное зрение и распознавание текста, без необходимости огромного бюджета и кучи больших данных. Начните с этого простого урока.


Чтобы получить больше новостей, функций и руководств для разработчиков от Android Authority, не пропустите подписку на ежемесячную рассылку новостей ниже!

40 ведущих разработчиков Android, за которыми следует следить в Twitter

Android продолжает лидировать на рынке мобильных устройств.Сообщество разработчиков операционной системы с открытым исходным кодом столь же обширно и разнообразно, как и сама экосистема, поэтому было несложно найти преданных, заинтересованных разработчиков Android, которые делятся полезными новостями, учебными пособиями и идеями в Twitter.

В этом списке много экспертов по разработчикам Google и экспертов по мобильной Java, которые обязательно будут держать вас в курсе навыков и инструментов, как только вы начнете им следовать. Вот 40 экспертов по Android, которым вы должны следовать.

Чиу-Ки Чан

@chiuki

После шести с лишним лет работы инженером-программистом в Google и более года разработки в двух стартапах, Чиу-Ки Чан теперь управляет собственной компанией по разработке мобильных приложений Square Island.Чан — оратор, автор курса Pluralsight и преподает в видеороликах Caster.io. Она также является соавтором Android Dialogs и руководит конференцией 360 | AnDev.

Джейк Уортон

@JakeWharton

Джейк Уортон стоял у истоков разработки Android, кодируя платформу еще до того, как он узнал, что она доминирует в мобильной индустрии и положит конец господству Blackberry. Он проработал Android-инженером в Square более четырех лет и внес значительный вклад в RxJava (реактивные расширения для JVM) и RxAndroid (привязки RxJava для Android).

Донн Фелкер

@donnfelker

Донн Фелкер — соведущий Fragmented Podcast и основатель Caster IO — небольшого сайта видеоуроков по разработке под Android (например, RailsCasts для Android). Он также является автором статей «Разработка приложений для Android для чайников», «Разработка приложений для Android-планшетов для чайников» и написал главу в «Инструменты разработчика для Android».

Каушик Гопал

@kaushikgopal

Каушик Гопал — другой соведущий Fragmented Podcast.В настоящее время он работает старшим инженером Android в Instacart и поддерживает библиотеку времени Android NTP с открытым исходным кодом от Instacart, которая называется truetime-android.

Эннис Дэвис

@brwngrldev

Эннис Дэвис занимается разработкой для Off Grid Electric, компании, которая занимается снабжением домов в сельских районах Африки солнечной энергией. Она имеет более чем десятилетний опыт разработки и занимается разработкой Android 5 лет. Дэвис специализируется на создании отказоустойчивых онлайн-офлайн-приложений и является инструктором по Caster IO.

Кристин Марсикано

@kristinmars

Кристин Марсикано — разработчик Android и старший инструктор в Big Nerd Ranch, очень успешной компании по обучению разработчиков. Она также является соавтором Руководства по программированию под Android Big Nerd Ranch и является опубликованным академическим исследователем в области взаимодействия человека с компьютером. Она также участвует в исследованиях Google языка визуального программирования, который будет использоваться в образовании в области компьютерных наук.

Ник Батчер

@crafty

Защитник дизайна и разработчиков Android Ник Батчер выступал на бесчисленных мобильных конференциях и мероприятиях от имени Google и сообщества Android.Он также написал приложение для Android, которое объединяет в себе новости дизайна и вдохновение, а также служит прекрасным примером методов материального дизайна.

Рето Мейер

@retomeier

Рето Мейер (Reto Meier) — защитник разработчиков Android в Google. Помимо выступления на конференциях, Мейер известен серией книг «Профессиональная разработка приложений для Android». Он также читает лекции на официальном курсе Google по основам Android на Udacity.

Роман Нурик

@romannurik

Роман Нурик — сторонник дизайна Android, работает над Firebase, платформой мобильной разработки и серверной частью от Google.Ознакомьтесь с его дизайнерским портфолио.

Huyen Tue Dao

@queencodemonkey

Huyen Tue Dao работает в Trello в качестве разработчика Android. Она является соавтором Android Dialogs и выступает на конференциях и встречах. Она также инструктор по Caster IO.

Ребекка Фрэнкс

@riggaroo

Старший разработчик Android днем ​​и пекарь ночью, Ребекка Фрэнкс часто выступает на конференциях и встречах. В свободное время она работает над приложением для Android для некоммерческой организации Book Dash, чтобы продемонстрировать бесплатные детские книги.Вместо обычных кнопок «купи мне пиво», чтобы дать чаевые в хорошем посте в блоге, у нее есть выпадающий список «купи мне кекс».

Сирил Моттье

@cyrilmottier

Сирил Моттье (Cyril Mottier) — руководитель отдела мобильных и веб-разработок в Captain Train, службе бронирования билетов на поезд. Он и разработчик Android, и дизайнер, последние шесть лет выступавший на конференциях Android и Java.

Крис Бэйнс

@chrisbanes

Крис Бэйнс работает в команде Google по связям с разработчиками Android в качестве разработчика программ.Он автор нескольких популярных библиотек поддержки Android. Он также ежегодно выступает на многих конференциях Android, включая Droidcon в Лондоне, Нью-Йорке, Берлине и других.

Дэйв Смит

@devunwired

Дэйв Смит — разработчик Android и встраиваемых систем / Интернета вещей, а также часто выступает с докладами и инструктором. Он является основателем собственной фирмы по обучению и развитию Wireless Designs. Как видно из названия его компании, он с большим энтузиазмом относится к сфере Интернета вещей.

Chet Haase

@chethaase

Chet Haase — ведущий разработчик инструментария Google Android UI.Он часто выступает на конференциях, а также пишет юмористические стихи и играет комедии.

Тор Норбай

@tornorbye

Тор Норбай — технический руководитель Google по Android Studio и часто выступает на конференциях. У него есть опыт разработки нескольких основных Java IDE, включая Eclipse, IntelliJ IDEA и NetBeans.

Ларс Фогель

@vogella

Ларс является руководителем проекта для платформы Eclipse UI и e4. Он основатель Vogella, обширного сайта обучения и руководств по Java, Android и Eclipse.Он также является опытным спикером на конференциях и автором нескольких книг для разработчиков.

Ромен Гай

@romainguy

Ромен Гай — менеджер группы графики Android в Google. Он выступал на крупных конференциях, включая Devoxx и Google I / O. Ромен тоже профессиональный фотограф.

Джесси Уилсон

@jessewilson

Джесси Уилсон (Jesse Wilson) — разработчик Android в Square. Он работал над проектами с открытым исходным кодом, такими как GSON, Guice, Guava и Shush.

Лиза Рэй

@lisawrayz

Лиза Рэй — единственный разработчик Android в Genius. Ранее она работала в группе по связям с разработчиками в Google, а также создала приложение New York Times для Google Glass. Рэй также делает разговоры на конференциях, делает забавные генераторы естественного языка.

Taylor Ling

@taylorling

Taylor Ling — это самоописанный Android / UI / UX / IA / IX Designer для Snappymob. Он является спикером и организатором конференции Android UX.

Филипп Бро

@pbreault

Филипп Бро (Philippe Breault) — старший разработчик Android в American Express.Он выступает на встречах и конференциях по Android, он написал много советов для Android Studio.

Зара Домингес

@zarahjutz

Зара в настоящее время работает Android-разработчиком в Domain.com.au. Она также возглавляет Women Techmakers и помогает организовать GDG Sydney и группу пользователей Android.

Марк Эллисон

@MarkIAllison

Марк Эллисон — директор консалтинговой компании Styling Android Limited. Он также был спикером на таких конференциях, как Droidcon.

Дэниел Лью

@ danlew42

Дэниел Лью, разработчик Android в Trello, также выступает с докладами на местных встречах и конференциях. Он является автором специализированной для Android версии популярной библиотеки даты и времени для Java, Joda time.

Дэн Ким

@dankim

Дэн Ким — программист Android в Basecamp. Он часто публикует сообщения в их популярном корпоративном блоге Signal vs. Noise.

Кэтрин Куан

@katherine_kuan

Кэтрин Куан — адвокат разработчиков в Google и преподаватель курса Google Udacity по основам Android.

Эрик Хеллман

@ErikHellman

Эрик Хеллман руководит собственной консалтинговой компанией Hellman Software AB, специализирующейся на разработке Android, Интернета вещей и облачных технологий. Он также работал в Spotify и написал «Программирование для Android: выход за пределы». Он часто выступает на конференциях.

Райан Хартер

@rharter

Райан Хартер — основатель собственной консалтинговой компании Analog Ocean. Он регулярно выступает на конференциях Android, инструктор Caster IO, а также помогает в организации GDG Chicago West.

Саул Молинеро

@_saulmm

Саул Молинеро — разработчик Android для Popsy — Buy & Sell. Он провел множество бесед на темы Android и наставничество в Google Launchpad.

Тай Смит

@tsmith

Тай Смит (Ty Smith) — разработчик Android в Uber, в число бывших работодателей которого входят Twitter и Evernote. Он помогает организовать группу пользователей Droidcon и Android в Сан-Франциско.

Майк Нахимович

@friendlyMikhail

Майк Нахимович — соучредитель friendlyrobot.nyc, магазин разработки под Android. Он также является ведущим разработчиком Android в The New York Times .

Wiebe Elsinga

@welsinga

Wiebe Elsinga является техническим руководителем в Egeniq и часто выступает на конференциях. Он также является соучредителем и организатором голландской группы пользователей GDG Android.

Келли Шустер

@kellyshuster

Келли Шустер, ранее занимавшаяся встроенным микропрограммным обеспечением, теперь работает инженером Android в компании Ibotta. Она выступает на конференциях по всему миру и освещает темы технического разнообразия, а также темы Android.Шустер также является директором организации «Женщины, которые кодируют Денвер».

Флорина Мунтэнеску

@FMuntenescu

Флорина Мунтэнеску (Florina Muntenescu) — старший разработчик Android в upday. Она выступала на нескольких конференциях по таким темам, как RxJava и MVVM.

Джо Берч

@hitherejoe

Джо Берч, инженер Android в Buffer, ранее работал в магазине разработки, ribot. Он также занимается фотографией-фрилансером и недавно выступил с несколькими докладами на крупных конференциях по Android.

Jan-Lk Else

@jlelse

Jan-Lk Else основал свой собственный журнал для Android и мобильных устройств под названием Appydroid. Его аккаунт в Twitter отслеживает многие важные истории, которые затрагивают разработчиков и потребителей экосистемы Android.

Джеймс Фенн

@IDontLikePHP

Соучредитель Double Dot Labs Джеймс Фенн имеет несколько опубликованных приложений в магазине Google Play. Он любит бегать и не любит PHP, как видно из его ленты в Twitter.

Дэнни Пройсслер

@PreusslerBerlin

Дэнни Пройсслер — самопровозглашенный Android-мастер из Groupon.Он ходит на столько конференций, что присвоил себе звание кочевника конференций. Пройсслер ранее работал на eBay.

AndroidDev

@AndroidDev

Это не человек, но если вы подписаны на один безликий аккаунт, это должно быть оно. Это всеобъемлющий новостной канал прямо от Google, написанный командой, работающей над ОС Android.

Вы бы добавили еще какие-нибудь дескрипторы Twitter в этот список? Поделитесь ими ниже.

Продолжайте учиться

Безопасность | Стеклянная дверь

Мы получаем подозрительную активность от вас или кого-то, кто пользуется вашей интернет-сетью.Подождите, пока мы подтвердим, что вы настоящий человек. Ваш контент появится в ближайшее время. Если вы продолжаете видеть это сообщение, напишите нам чтобы сообщить нам, что у вас возникли проблемы.

Nous aider à garder Glassdoor sécurisée

Nous avons reçu des activités suspectes venant de quelqu’un utilisant votre réseau internet. Подвеска Veuillez Patient que nous vérifions que vous êtes une vraie personne. Вотре содержание apparaîtra bientôt. Si vous continuez à voir ce message, veuillez envoyer un электронная почта à pour nous informer du désagrément.

Unterstützen Sie uns beim Schutz von Glassdoor

Wir haben einige verdächtige Aktivitäten von Ihnen oder von jemandem, der in ihrem Интернет-Netzwerk angemeldet ist, festgestellt. Bitte warten Sie, während wir überprüfen, ob Sie ein Mensch und kein Bot sind. Ihr Inhalt wird в Kürze angezeigt. Wenn Sie weiterhin diese Meldung erhalten, informieren Sie uns darüber bitte по электронной почте: .

We hebben verdachte activiteiten waargenomen op Glassdoor van iemand of iemand die uw internet netwerk deelt.Een momentje geduld totdat, мы узнали, что u daadwerkelijk een persoon bent. Uw bijdrage zal spoedig te zien zijn. Als u deze melding blijft zien, электронная почта: om ons te laten weten dat uw проблема zich nog steeds voordoet.

Hemos estado detectando actividad sospechosa tuya o de alguien con quien compare tu red de Internet. Эспера mientras verificamos que eres una persona real. Tu contenido se mostrará en breve. Si Continúas recibiendo este mensaje, envía un correo electrónico a para informarnos de que tienes problemas.

Hemos estado percibiendo actividad sospechosa de ti o de alguien con quien compare tu red de Internet. Эспера mientras verificamos que eres una persona real. Tu contenido se mostrará en breve. Si Continúas recibiendo este mensaje, envía un correo electrónico a para hacernos saber que estás teniendo problemas.

Temos Recebido algumas atividades suspeitas de voiceê ou de alguém que esteja usando a mesma rede. Aguarde enquanto confirmamos que Você é Uma Pessoa de Verdade.Сеу контексто апаресера эм бреве. Caso продолжить Recebendo esta mensagem, envie um email para пункт нет informar sobre o проблема.

Abbiamo notato alcune attività sospette da parte tua o di una persona che condivide la tua rete Internet. Attendi mentre verifichiamo Che sei una persona reale. Il tuo contenuto verrà visualizzato a breve. Secontini visualizzare questo messaggio, invia un’e-mail all’indirizzo per informarci del проблема.

Пожалуйста, включите куки и перезагрузите страницу.

Это автоматический процесс. Ваш браузер в ближайшее время перенаправит вас на запрошенный контент.

Подождите до 5 секунд…

Перенаправление…

Заводское обозначение: CF-102 / 6a44ce75bb805f98.

NVIDIA CodeWorks для Android | NVIDIA Developer

Лучшие инструменты разработки собственных приложений для Android

Настройка среды разработки Android может быть сложной и утомительной задачей.NVIDIA CodeWorks для Android упрощает это для всех разработчиков Android с помощью единого установщика, который справится с этой сложностью за вас.

NVIDIA CodeWorks для Android — это решение профессионального уровня, предоставляющее полный набор инструментов графического и центрального процессора с возможностями отладки, профилирования и системной трассировки, а также сопутствующие SDK и библиотеки для разработки под Android — не только на устройствах на базе Tegra. NVIDIA CodeWorks для Android устанавливает все программные инструменты, необходимые для разработки для последней версии SHIELD Android OS, и сокращает сложный процесс настройки системы разработки Android до одного клика

CodeWorks для Android предлагается бесплатно, но требует регистрации NVIDIA Участие в Программе разработчиков.

Загрузить Документация

Доступно для телевизоров и планшетов NVIDIA SHIELD!

Этот набор инструментов разработчика настроит среду разработки, которая будет работать с большинством устройств Android (совместимые устройства). CodeWorks для Android доступен для 64-битных платформ Windows, OSX, Ubuntu, Linux.


«Обладая функциональностью, выходящей за рамки Tegra, NVIDIA CodeWorks для Android является важной частью инструментов разработки мобильных игр EA.CodeWorks для Android помогает нам предоставить игрокам невероятные возможности для мобильных устройств на различных устройствах Android и наборах микросхем »,

Льюис Струдвик , технический директор студии EA Melbourne

« Использование Epic Nsight Tegra имело решающее значение для эффективной разработки. функций Android в Unreal Engine 4. Мы рады видеть, что CodeWorks для Android расширяет поддержку за пределы Tegra, поэтому разработчики Unreal Engine могут использовать свои любимые инструменты разработки во всех сценариях разработки.Усовершенствования инструментов NVIDIA доводят Android до уровня, соответствующего разработке игровых консолей ».

Никлас Смедберг , старший программист по графике в Epic Games

Release (1R8)

Новыми в этом выпуске являются обновленные инструменты разработчика, последняя версия Android NDK, SDK и инструменты сборки / платформы для разработки под Android.


Основные характеристики:

Поддержка

Функции

Разработка под Android:
  • Android SDK r26.1.1
  • Android API 28
  • Android NDK64 r18b
  • Инструменты сборки Android r28.03
  • Инструменты платформы Android r28.0.3
  • Библиотека поддержки Android r23.2.1
  • Библиотека репозитория поддержки Android r47
  • Драйвер Google USB r11
  • JDK 1.8.0_77 или OpenJDK 8
  • Gradle 4.4.1
Библиотеки GameWorks и инструменты:
Совместимые устройства

Поддержка Android ABI (ARM v7, ARM v8, x86, x64), включая, помимо прочего:

Системные требования

Поддерживаемые операционные системы:

  • Windows 7/10 (64- бит)
  • Mac OS X 10.14
  • Ubuntu Linux x64 (v16.04 и v18.04)

Веб-семинары для разработчиков

Обучающие видео и веб-семинары можно найти здесь.

Чтобы получить доступ к более старым версиям CodeWorks для Android (ранее AndroidWorks / Tegra Android Development Pack), посетите CodeWorks for Android Archive.

Подсистема Windows для Android ™ ️ | Документы Microsoft

  • Читать 9 минут

В этой статье

Подсистема Windows для Android ™ ️ позволяет вашему устройству с Windows 11 запускать приложения Android, доступные в Amazon Appstore.

Если вы разработчик, заинтересованный в нацеливании на настольные устройства Windows и оптимизации для операционной системы Windows, это руководство для вас. Узнайте, как:

Настройте среду разработки

Чтобы протестировать приложение Android в среде рабочего стола Windows, потребуется выполнить некоторые настройки.

Предварительные требования

Подсистема Windows для Android в настоящее время доступна только через предварительную версию в программе предварительной оценки Windows. Ваше устройство также должно соответствовать определенным требованиям Windows 11.Проверьте раздел «Подсистема Windows для Android» в разделе «Требования к функциям» на странице: Найдите спецификации, функции и требования к компьютеру Windows 11.

Установите Amazon Appstore

Microsoft Store автоматически установит подсистему Windows для Android (под управлением Android 11) в фоновом режиме при выполнении любого из двух следующих действий пользователя:

  1. Установите Amazon Appstore из Microsoft Store.
  2. Установите приложение Android или Amazon в первый раз из Microsoft Store, которое также установит Amazon Appstore.

Amazon Appstore появится в меню «Пуск» Windows 11 и будет доступен для поиска, предлагая тщательно подобранный каталог приложений для Android.

При выборе Get начнется установка приложения. Приложение также появится в Windows «Пуск», «Поиск» и в списке программ Windows.

Приложение «Настройки»

Чтобы получить доступ к подсистеме Windows для приложения «Настройки Android», перейдите по ссылке: Пуск> Все приложения> Подсистема Windows для Android ™ ️ .Приложение «Настройки» можно использовать для настройки следующих параметров:

  • Считыватель экрана подсистемы

    Если сенсорный ввод не работает, убедитесь, что программа чтения экрана подсистемы выключена. Для получения дополнительной информации см. Поддержка Microsoft: специальные возможности в подсистеме Windows для Android.

  • Ресурсы подсистемы

    • При необходимости : при выборе этого параметра подсистема будет открываться при открытии мобильного приложения.Поскольку сначала необходимо открыть подсистему, мобильному приложению может потребоваться немного больше времени для открытия. Мобильные приложения, открытые после первого, могут не пострадать.

    • Непрерывно : подсистема всегда готова открывать приложения. Поскольку он всегда открыт в фоновом режиме, он будет использовать больше памяти и вычислительной мощности вашего ПК.

  • Включить режим разработчика

    Чтобы протестировать и отладить приложение на устройстве с Windows 11, вам необходимо установить для режима разработчика значение на .

Рекомендации по совместимости ввода для устройств Windows

Существует несколько уникальных вариантов поведения ввода, которые, вероятно, потребуют обновления кода вашего приложения Android, разработанного для портативных устройств, для совместимости при запуске на настольном устройстве Windows через Amazon Appstore.

Ввод с клавиатуры

Для полей ввода текста, обрабатываемых методом ввода виртуальной клавиатуры (или IME) на экране, например EditText , приложения должны работать должным образом.(Класс EditText в документации Android).

Для нажатий клавиш, которые не могут быть предвидены платформой, приложения должны будут обрабатывать поведение самостоятельно. Если это уже реализовано в приложении, никаких дополнительных действий не требуется.

В качестве примера, некоторые игры могут уже поддерживать движение с помощью клавиатуры, w a s d клавиш, наряду с сенсорным вводом.

Ниже приведены вводы с клавиатуры, которые разработчикам следует учитывать при обновлении кода при сборке для устройств с Windows 11:

  • Клавиша ввода
  • Клавиша со стрелкой и клавиша Tab для навигации
  • Изменить цвет выделения выбранного элемента
  • Сочетания клавиш на основе Ctrl

Узнайте больше о том, как оптимизировать эти сценарии ввода с клавиатуры на настольных устройствах, следуя документации Android:

Ввод мыши

Разработчикам следует рассмотреть возможность обновления кода для следующих вводов мыши при сборке для устройств Windows:

  • Щелкните правой кнопкой мыши
  • Всплывающие подсказки / текст при наведении
  • Эффекты при наведении
  • Действие колеса прокрутки мыши
  • Перетаскивание

Ввод с помощью мыши, как и ввод с клавиатуры, должен соответствовать официальным рекомендациям для приложений Android.Это означает использование класса InputDevice в паре с константой SOURCE_MOUSE . Узнайте больше о том, как оптимизировать эти сценарии ввода с помощью мыши на настольных устройствах, следуя документации Android:

Управление окнами и изменение размера

В отличие от традиционных мобильных форм-факторов, приложения Android, работающие в Windows 11, могут свободно изменять размер, должны реагировать на изменение размера и могут быть привязаны с помощью действий / жестов Windows.

Минимальные требования к экрану

Windows 11 требует минимального разрешения экрана 720p (1280×720) с экраном> 9 дюймов.

Бокс Letter & Pillar

Когда соотношение сторон размера окна не совпадает с размерами экрана устройства, на котором отображается окно, результатом может быть Letterboxing (окно шире, чем оно выше, или длиннее по горизонтали), или Pillarboxing (окно больше узкий, чем широкий, или по вертикали длиннее). В результате по бокам окна размещаются решетки для его центрирования. Эти полосы могут быть светлыми или темными в зависимости от выбранных системных настроек.Это будет происходить только по мере необходимости, когда приложение Android привязано или развернуто, что позволяет приложениям Android использовать преимущества богатых функций привязки в Windows и интегрироваться в оконную модель.

Дополнительные рекомендации по изменению размера

Следующее также следует учитывать при обновлении приложения Android для работы на устройстве Windows 11 в отношении управления окнами и изменения размера:

  • Начальный стартовый размер
  • Размеры окна
    • Границы содержимого
    • Изменение размера в произвольной форме
  • Ориентация экрана

Узнайте больше о том, как оптимизировать сценарии изменения размера окна на настольных устройствах, следуя руководству по управлению окнами в документации Android.

Тестирование и отладка

Чтобы протестировать и отладить ваше приложение на устройстве Windows 11 с использованием подсистемы Windows для Android, необходимо выполнить следующие действия по настройке.

Включить режим разработчика в настройках Windows

Сначала необходимо включить режим разработчика в настройках Windows. Включить режим разработчика можно тремя способами:

  • Откройте подсистему Windows для приложения «Настройки Android». После открытия выберите Включить параметры разработчика .
  • Найдите «Настройки разработчика» в поиске Windows.
  • Перейдите в «Настройки»> «Конфиденциальность и безопасность»> «Для разработчиков»> «Режим разработчика».

Подключение к подсистеме Windows для Android для отладки

Чтобы подключиться к подсистеме Windows для виртуальной машины Android для отладки, у вас есть два варианта:

  1. Рекомендуемый метод :

    • Используйте localhost для подключения к отладке. IP-адрес локального хоста: 127.0.0.1:58526 . Подсистема Windows для Android должна быть запущена для подключения, лучший способ запустить подсистему Windows для Android — запустить приложение Android, которое было установлено с помощью Amazon Appstore.
    • Чтобы подключиться к адресу localhost подсистемы Windows для Android, введите: adb connect 127.0.0.1:58526
  2. Альтернативный метод : используйте приложение Windows Subsystem for Android Settings, чтобы получить IP-адрес.

    • Запустите приложение «Настройки». (Используйте Windows Search для выбора и запуска.)
    • IP-адрес будет отображаться в разделе IP-адресов. Если IP-адрес не отображается, запустите приложение Android, которое было установлено с помощью Amazon Appstore, затем выберите Обновить на кнопке IP-адреса в приложении «Настройки».

Теперь, когда у вас есть IP-адрес для подключения к подсистеме Windows для Android VM, подключитесь с помощью adb connect:

  adb коннект 172.22.137.166
  

Подключиться к тестируемому устройству

Для подключения к тестируемому устройству (с установленной подсистемой Windows для Android) в той же сети из Windows / Mac:

  1. На тестовом устройстве (где установлена ​​подсистема Windows для Android) откройте окно PowerShell и определите IP-адрес тестового устройства, выполнив команду:

      ipconfig
      
  2. Используя терминал отладочного устройства, на котором установлены Android Studio и Android SDK (Mac / Windows), введите команду:

      adb connect 
      

можно найти в выходных данных «ipconfig» тестового устройства.Вы также можете развертывать и отлаживать приложения из Android Studio.

Чтобы использовать Android Debug Bridge (ADB) для подключения рабочей станции разработчика непосредственно к устройству Android, чтобы вы могли устанавливать пакеты и оценивать изменения, см. Android Debug Bridge в документации Android Open Source Project.

Отладка приложения

Хотя приложения должны устанавливаться с помощью Amazon Appstore, отладка приложения Android на устройстве Windows возможна с помощью APK (пакета приложений Android) и adb (Android Debug Bridge).

Для отладки APK с помощью adb:

  1. Выполните действия, описанные выше для подключения к подсистеме Windows для виртуальной машины Android.

  2. Установите APK с помощью команды adb install: adb install app-debug .apk

    Ожидаемый результат:

      Выполнение потоковой установки
    Успех
      
  3. В меню уведомлений Windows появится успешное уведомление «приложение установлено», и приложение запустится после выбора.

Рекомендации по жизненному циклу ВМ

Подсистема Windows

для Android использует виртуальную машину (ВМ), которая обеспечивает совместимость с платформой AOSP и такими устройствами, как клавиатура, мышь, сенсорный экран, перо и т. Д.

Существует три возможных состояния виртуальной машины, на которой выполняются приложения с подсистемой Windows для Android:

  1. Работает
  2. Легкая доза: активируется после 3 минут бездействия приложения. Деактивировано действиями пользователя или уведомлением приложения.
  3. Не работает: активируется после 7 минут бездействия приложения.

Переходы между этими состояниями инициируются действиями пользователя, такими как запуск или взаимодействие с приложением Android или уведомлением приложения. Приложения Android приостанавливаются, а затем останавливаются, когда их окно свернуто.

VM Properties

Свойства подсистемы Windows для Android VM перечислены ниже. Жесткое кодирование этих значений не рекомендуется, так как это может вызвать несовместимость в будущем.

Подсистема
Имущество Значение
Изготовитель Корпорация Майкрософт
Сборка МОДЕЛЬ для Android
Build.VERSION.SDK_INT 30
ПЛАТА окна

Безопасность

Подсистема Windows

для Android выполняет шифрование файлов на программной основе.

И драйверы режима ядра Windows, и приложения Windows, работающие на среднем уровне целостности (IL), могут проверять произвольные контейнеры Android и память приложений Android. В ближайшее время не планируется добавлять детектирование читов / макросов / ботов / подозрительного поведения.

Разработчики, запрашивающие getSecurityLevel , получат SECURITY_LEVEL_SW_SECURE_CRYPTO . Дополнительные сведения о getSecurityLevel см. В Справочном руководстве по Android API.

Магазин приложений Amazon

Чтобы приложение Android было доступно на устройстве с Windows 11, оно должно быть опубликовано в Amazon Appstore.В настоящее время доступен лишь небольшой набор приложений, выбранных Microsoft и Amazon.

Разработчикам следует обратиться к руководству Amazon Device Targeting для получения информации о нацеливании APK-файлов на определенные устройства.

Устранение проблем с Amazon Appstore

Если вы столкнулись с проблемами, характерными для Amazon Appstore в Windows, попробуйте выполнить следующие действия по устранению неполадок:

  1. Выберите Поиск Windows на панели задач Windows.
  2. Найдите «Amazon Appstore» и щелкните правой кнопкой мыши значок Amazon Appstore.
  3. Выберите «Настройки приложения» в раскрывающемся списке.
  4. Выберите «Хранилище и кэш» и щелкните одновременно «Очистить хранилище» и «Очистить кеш».
  5. Вернитесь назад и выберите «Force Stop».
  6. Закройте окно настроек Amazon Apptore.
  7. Перезапустите магазин приложений Amazon.

Для получения дополнительных сведений о действиях по устранению неполадок, связанных с подсистемой Windows для приложения «Настройки Android» или о том, как оставить отзыв с помощью Центра отзывов, см. Раздел «Устранение неполадок мобильных приложений в Windows».

Строительство универсальных APK-файлов

Подсистема Windows

для Android включает встроенное решение для запуска приложений ARM на процессорах на базе x86.Уровень эмуляции вызовет накладные расходы на производительность — для оптимальной производительности отправьте приложение для архитектуры x86-64.

Удаление подсистемы Windows для Android

Вы можете удалить подсистему Windows для Android, но обратите внимание, что все связанные приложения также будут удалены.

  • При удалении Amazon Appstore будет удалена подсистема Windows для Android и все другие приложения Amazon.