Разное

Ide android studio: скачивание, установка и работа с программой

Содержание

скачивание, установка и работа с программой

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

В комплекте с IDE идет эмулятор, проверяющий корректную работу уже написанных утилит, приложений на разных конфигурациях.

Где можно скачать бесплатно?

Скачать Android Studio последней версии можно с сайта официального разработчика – developer.android.com. Программа работает на базе Windows ОС. Русский язык отсутствует.

Либо напрямую с нашего проекта:

Установка Android Studio

Алгоритм следующий:

  1. Запустите .exe файл, увидите на экране классическое диалоговое окно инсталлятора.
  2. Выберите путь, по которому Андроид Студио и Android SDK будут установлены на компьютер. Делать выбор стоит в пользу локальных дисков, на них больше пространства.
  3. Далее происходит процесс установки. Приложения Android Studio размещены в папке с самой программой.

Как пользоваться софтом?

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

Разобравшись с предыдущим окном, пользователь увидит новое, которое показывает прогресс загрузки Android SDK на компьютер. Время полного завершения этого процесса зависит исключительно от скорости интернет-соединения на рабочем ПК.

Загрузку можно остановить, по надобности. После нажмите «Finish». Если закачка SDK прервалась и появилась ошибка — кликните на «Retry». Теперь можете работать с Android Studio.

Создание проекта

Начать путь в Android Studio следует с создания первого проекта. В главном окне, которое открылось после запуска программы, пользователю необходимо выбрать «Start a new Android Studio project». Это инициирует открытие диалогового окна, в котором указывается несколько параметров:

  • Имя нового проекта. Позже можно будет переименовать.
  • Домен компании.
  • Место хранение на диске.

Операционная система Андроид идентифицирует приложения благодаря имени пакета, которое составляется из домена компании и названия проекта.

Следующий шаг — выбор гаджетов, под которые будет разработано приложение:

  • Телефоны и планшеты.
  • Часы.
  • Android-TV приставки.
  • Очки виртуальной реальности.
  • Android Auto.

Минимальная версия API для создания приложений — 16. Хоть Android Studio и предоставляет даже ранние версии на выбор, но современными устройствами они уже не распознаются.

Нажав далее, пользователь попадает на следующую вкладку, где на выбор доступен пункт «Empty Activity». Если целью становится написать приложение с нуля, выбирайте его. Можете ознакомиться и с другими вариантами.

Переходите на следующую вкладку, жмите «Finish». Пройдет некоторое время, прежде чем Android Studio сгенерирует новый проект пользователя. Скорость обработки запросов зависит от производительности ПК.

Файлы проекта

IDE Android Studio никак внешне не отличить от других именитых аналогов. Рабочая область очень схожа с программой Visual от Microsoftt. Среда разработки выполнена в классическом виде. Программистам, не имевшим ранее дело с Android, необходимо привыкнуть к тому, как создаются приложения под нее. Все игры и утилиты — это набор идеально синергирующих между собой компонентов, а не цельный программный код.

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

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

Визуальный редактор XML

При работе с файлами типа XML, внизу редактора появляются две вкладки: «Text» и «Design». В них можно редактировать код программы, отвечающий за внешний вид, выбирать интересующие пользователя виджеты, добавлять их при помощи перетаскивания на проект.

Использование GRADLE

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

Инструмент Gradle — то, чего так не хватает во многих других IDE. Благодаря ему все элементы, созданные в ходе развития приложения, объединяются в один APK файл, производится сборка.

Сборка и отладка

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

Чтобы запустить готовую утилиту на Android-устройстве, подключите его к компьютеру, на котором происходит разработка, через USB. Должна быть включена «Отладка по USB» и «Установка приложений из неизвестных источников».

Подключив гаджет к ПК, выберите «Run», а затем «Run App». Далее, откроется окно, в котором нужно выбрать реальное/виртуальное устройство для запуска приложения. После того как выбор будет сделан, проект сразу запустится на гаджете.

Во вкладке Monitors можно проследить за нагрузкой, которую приложение оказывает на смартфон.

ADV Manager

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

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

Для тестирования на эмуляторе стоит перейти по пути: кнопка «Tools» – «Android» – «ADV Manager». В открывшемся окне нужно выбрать «Create Virtual Device», после чего определить модель устройства, эмуляцию которого программе следует произвести, параллельно скачав для него прошивку.

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

SDK Manager

Android Studio SDK – инструмент, позволяющий тестировать ПО для Android на определенной версии ОС, или же разрабатывать приложения только для нее. Доступен во вкладке «Tools» – «SDK Manager», в которой находятся все компоненты SDK Manager. Их можно включать/выключать постановкой или устранением флажка соответственно.

Упаковка APK

Android Studio позволяет создать подписанный APK, чтобы в дальнейшем загрузить приложение в Google Play. Для этого кликните на меню «Tools», а в ней пункт «Create signed APK». После, выберите или создайте хранилище ключей — подтверждение того, что именно вы разработали приложение. Это необходимо для Google Play. Созданный на этом этапе файл сохраните и ни в коем случае не теряйте — без него не удастся обновлять приложение в будущем.

Выбрав тип сборки «Release» и нажав кнопку «Finish», создатель завершит разработку приложения на данном этапе. Можно осуществить выход из IDE, перейти к загрузке программы в сеть.

Отзывы о Android Studio

Разработчики приложений для Андроид предпочитают именно эту программу. Согласно отзывам, которые оставляют пользователи IDE, софт дает больше возможностей, предоставляет более гибкую среду разработки, нежели конкуренты. О чем только говорит наличие такого многофункционального эмулятора и еще нескольких инструментов, которые включены в пакет Android Studio! Видно, что с каждым обновлением IDE становится только лучше, в него интегрируют новый функционал, не забывая про старый.

Благодаря продуманному дизайну и простому оформлению инструментов, Android Studio от Google – один из лучших ПО для разработки Android-приложений.

Комфортная работа с Android Studio / Хабр


Всем доброго времени суток!

Насколько производительно работает Android Studio? Считаете ли Вы, что она работает шустро на Вашем ПК или Mac? Или, иногда, сталкиваетесь с лагами или долгой сборкой? А на крупных проектах?

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

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

Мотивация

Android Studio была неповоротливой еще во времена перехода с Eclipse. И уже тогда я начал искать способы оптимизации работы этой IDE. Однако, большинство коллег относилось к этому «никак». Работает. Не всегда быстро. И ладно.

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

Поговорив с коллегами и знакомыми разработчиками, мне стало понятно, что даже не каждый «профи» понимает нюансы работы железа, ОС и IDE. Потому здесь я постарался собрать полный ликбез на основе собственного опыта.

DISCLAIMER! Все упомянутые в статье модели и бренды не являются рекламой!

Железо

Вот что сказано о железе на официальном сайте Android Studio в графе System requirements (не считая дискового пространства):

3 GB RAM minimum, 8 GB RAM recommended; plus 1 GB for the Android Emulator
1280x800 minimum screen resolution

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

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

Здесь для нас наиболее критичны 5 параметров:

  • Производительность CPU
  • Количество аппаратных потоков CPU
  • Количество оперативной памяти
  • Скорость произвольного чтения и произвольной записи дисковой подсистемы
  • Скорость мелкоблочного чтения и мелкоблочной записи дисковой подсистемы

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

Пара слов о Mac

Существует мнение, что Mac является лучшей машиной для разработки. Чаще так говорят о MacBook Pro.

Лично я считаю это мифом. С приходом технологии NVMe Mac растерял свою «магию». Так что сегодня, даже среди ноутбуков, Mac не является лидером по соотношению цена-качество-производительность. Особенно в контексте разработки под Android Studio.

В остальном для комфортной разработки имеет смысл MacBook Pro 2015 или 2016 года не с U-процессором. Об остальных характеристиках и обслуживании читайте ниже.

Процессор

По производительности процессора- очевидно и понятно. Чем она выше- тем лучше. Единственное, что нужно отметить- при наличии достаточно быстрого накопителя, слабый процессор станет «бутылочным горлышком» в Вашей системе. Особенно критично в случае NVMe-накопителя. Часто, при работе с ним, упор идет именно в мощности CPU.

С потоками всё немного сложнее. Читал о том, что пользователи снижают приоритет студии и ее подпроцессов, чтобы ОС «не зависала» во время сборки. Причина здесь одна- 1-2 аппаратных потока. Этого мало не только для IDE, но и для современной ОС. Единственное «но»- на моей практике были ситуации, когда двухъядерные U-процессоры с Hyper Threading (то есть 2 ядра на 4 потока) нормально работали с относительно мелкими проектами, но на крупных начинались вышеперечисленные проблемы.

Само собой, наличие аппаратной виртуализации обязательно.

Потому рекомендую смотреть в сторону Core i5 HQ Skylake c 4+ потоками и мощнее.

Оперативная память

По поводу стандартов- DDR3 и выше. Тут, думаю, понятно.

Если есть возможность работы в 2х или 4х-канальном режиме и у Вас они не активны- настоятельно рекомендую задействовать, так как можно получить существенную прибавку к отзывчивости IDE. Активируется эта возможность либо в настройках BIOS\UEFI, либо установкой дополнительных модулей оперативной памяти (если у Вас до сих пор один модуль).

Какой нужен объем? Для мелких (действительно мелких) проектов хватает 4ГБ. На проектах крупнее студия способна быстро занять 4ГБ памяти и больше. Добавим сюда эмулятор на HAXM (скажем 2 ГБ) и учтем, что современная ОС (за исключением некоторых дистрибутивов Linux) занимает в памяти около 2ГБ- и вот получается, что 8ГБ уже «впритык».

Это без учета, например, Slack (который занимает в среднем около 500 мб в памяти) и Chrome (там счет идет на гигабайты).

В целом, при 8ГБ оперативной памяти работать быстро и комфортно можно- спасает быстрый накопитель и swap\файл подкачки. Но стоит задуматься об апгрейде.

Потому компания закупает новые, либо предоставляет апгрейд текущих рабочих машин на 12ГБ RAM и более.

SSD

Дисковая подсистема является самым частым «бутылочным горлышком», потому на нее надо обращать внимание в первую очередь.

Работа с Android Studio на HDD в 2018 году сравнима с мучениями- чем больше проект, тем больше фризов Вам обеспечено. Потому, очевидно, использовать только SSD.

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

  • Скорость произвольного чтения и произвольной записи дисковой подсистемы
  • Скорость мелкоблочного чтения и мелкоблочной записи дисковой подсистемы

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

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

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

NVMe

Если Вашей материнской платой поддерживается технология NVMe — то лучше использовать накопитель с ее поддержкой. Она позволяет получить скорости, сравнимые с SSD на Mac и выше.

При наличии скоростного накопителя, упор идет на шину PCIe и мощности Вашего CPU. Потому, если, например, Ваша материнская плата поддерживает вывод на накопитель PCIe 2.0×4\3.0×2 или у Вас не очень мощный CPU- не стоит покупать очень дорогой накопитель. Смотрите на возможности Вашей системы и толщину Вашего кошелька.

SATA3

Да, SATA3 живее всех живых. И на нем можно быстро работать на студии.

В этом сегменте скоростные накопители более доступны, потому имеет смысл сразу смотреть на топовые решения объемом 120 GB и выше.

Intel Optane

Использовать Android Studio на машине с данным накопителем (если его так можно назвать) мне не приходилось. Если у кого-то есть опыт- пишите в комментарии.

GPU

Тут много говорить не нужно.

Если пишете обычные пользовательские приложения- для самой студии и эмулятора чего-то вроде Intel HD 500 Series хватит за глаза.

Если Вы разрабатываете игры или это- Ваша личная машина, то имеет смысл дискретная графика. Какая- смотрите по Вашим потребностям.

Система охлаждения и троттлинг

Здесь речь не о апгрейде, а о обслуживании.

Большинству из нас известно такое явление, как троттлинг. Его реализацию применяют для защиты от перегрева.

Само собой, троттлинг ведет к понижению производительности. Не всегда заметному. В одних случаях работа Turbo Boost снижается до минимальных значений, в других начинается падение максимальных частот процессора. Причина- недостаточно эффективная работа системы охлаждения. Так же важно понимать, что большинство стресс-тестов (вроде AIDA) диагностируют штатную работу Turbo Boost как троттлинг.

В случае десктопных PC всё давно есть в сети. В случае мобильных систем, основанных на тепловых трубках, много противоречивой информации. Сюда относятся большинство ноутбуков, неттопов, MacBook и iMac. Далее речь пойдет именно о них.

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

Современная мобильная система охлаждения

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

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

Из-за маленькой площади кристалла имеет смысл использовать диэлектрическую термопасту с высокой теплопроводностью (такая стоит в районе 800-1000 р за грамм). Ни в коем случае не используйте жидкий металл! Иначе отделить кристалл от пластины Вы, скорее всего, уже не сможете!

Если у Вас не хватает навыков для данной процедуры- лучше обратитесь в сервис.

Аппаратные настройки

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

Intel Hyper Threading

Это технология Intel, которая разделяет аппаратный поток ядра на два «виртуальных». Благодаря ей система видит 4-ядерный процессор как 8-ядерный. Такой подход позволяет эффективно утилизировать процессорные мощности. Аналогичная технология есть и у AMD.

Часто сталкиваюсь с тем, что у многих разработчиков эта функция отключена и они вообще о ней не знают. Однако, ее включение может повысить отзывчивость студии и производительность сборки. В отдельных случаях на 10-15%.

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

Intel Turbo Boost

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

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

Включаться она может как BIOS\UEFI, так и в настройках ОС.

Intel Rapid Storage

Поддержка этой технологии мат.платой крайне рекомендуется. Более подробно можно почитать здесь.

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

В моем конкретном случае, обновление с версии драйвера от производителя до актуальной, повысило скорость линейной записи примерно на 30%, а произвольной- на 15%.

Как устанавливать и обновлять драйверы IRST на Linux- я не знаю (и вообще, возможно ли это?). Если кто знает- пишите в комментарии, я с удовольствием дополню статью.

SSD Secure Erase

Производительность недорогих моделей SSD может со временем падать. Это не всегда происходит из-за «деградации» накопителя. Возможно, в Вашей модели TRIM реализован не очень эффективно.

Secure Erase заставит контроллер пометить все ячейки памяти пустыми, что, теоретически, должно вернуть производительность SSD к заводскому состоянию. И, также, сотрет все Ваши данные! Будьте аккуратны, делайте бекапы!

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

На одном из этапов, возможно, накопитель придется переподключить прямо во время работы. Потому, в случае M.2 очень желательно наличие переходника.

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

Впрочем, если Ваш SSD существенно потерял в скорости за время менее года- лучше поменять накопитель на другую модель.

Аппаратная виртуализация

Эта технология необходима для быстрой работы x86-эмулятора. Если у Вас она отключена- включите ее в настройках BIOS\UEFI. У разных вендоров могут быть разные названия настроек.

Да, мы все знаем про Genymotion и BlueStacks, которые прекрасно обходятся без аппаратной виртуализации. Однако, в образах этих эмуляторов некоторые или многие реализации Android API сильно изменены с целью увеличения скорости работы. Это может провоцировать поведение, которое Вы никогда не встретите на реальном устройстве. Или при отладке Вы можете упустить пару багов. Потому наличие рабочего и шустрого AVD крайне желательно.

ОС и Сторонний софт

В этой главе речь пойдет о возможной настройке ОС и установке стороннего софта с целью увеличения производительности.

Индексация

Здесь речь пойдет о поиске Windows и Spotlight на Mac OS. Эти механизмы могут отнимать до 15% мощностей CPU при сборке поскольку пытаются индексировать всё, что генерируется в /build.

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

  • Директория SDK
  • Директория студии
  • Директория проектов (крайне рекомендуется)
  • ~/.gradle
  • ~/.android
  • ~/Android StudioX.X
  • ~/lldb
  • Директория кеша Kotlin

Антивирус

Знаю, не у всех в среде разработки принято использовать антивирус. Но многие его используют. В том числе, иногда, на Linux и Mac OS. И его использование совершенно оправдано.

Даже если у Вас Windows 10 и нет антивируса- его функции выполняет Windows Defender.

При сборке антивирус может отнимать очень существенную долю CPU. Потому все директории, перечисленные в графе «Индексация», следует добавить в исключения антивируса. Также, в исключения имеет смысл добавить имена процессов самой студии и JetBrains JVM.

В зависимости от реализации антивируса, потребление CPU им во время сборки снизится существенно, либо он вообще перестанет потреблять мощности CPU. А время самой сборки заметно уменьшится.

Шифрование диска или домашней директории

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

А работает ли TRIM?

TRIM может быть реализован как аппаратно, так и программно. В последнем случае обязанность вызова TRIM ложится на ОС. И, по разными причинам, периодический вызов может отключаться, что приводит к падению скорости накопителя.

Проверить работоспособность и возобновить вызовы TRIM можно с помощью специализированных утилит. Рекомендуется использовать утилиты от производителя накопителя.

RAMDisk

Что такое RAMDisk большинству давно известно. Но насколько он эффективен в работе со студией?

По своему опыту скажу- не очень. Разве что Вы перенесете в RAMDisk сам проект, SDK, студию и так далее. Если у вас хватает RAM…

С простым переносом проекта весом в более чем 500 мб (цифра указана с build-кэшем), у меня не получалось добиться прироста более 15%. По всей видимости, тормозятся вызовы к SDK и системным API. В итоге такой прирост обходится достаточно дорого.

Следующий способ существенно эффективнее и обходится куда дешевле.

Кэширование запросов к накопителю

Нечто похожее реализовано в Mac OS. Однако, в сравнении с перечисленными ниже технологиями- не настолько эффективно.

К сожалению, мне известны только две реализации, и обе жестко завязаны на продукцию производителей. Речь о Samsung R.A.P.I.D. и PlexTurbo.

Обе технологии работают по схожим принципам (описываю так, как понял сам):

  • Если был запрос на чтение небольших объемов, то они откладываются в RAM и при повторном чтении берутся уже оттуда. Стандартный RAM cache.
  • Если был запрос на запись небольших данных- они откладываются в RAM-кэш. Далее запросы на запись сравниваются с кэшем. Если Вы повторно пишете одни и те же данные по одним и тем же путям- зачем их повторно записывать аппаратно? И SSD так дольше проживет.

Единственная разница- R.A.P.I.D. использует свободный остаток оперативной памяти в качестве кэша. Меньше остаток- меньше размер кэша, меньше ускорения. PlexTurbo позволяет ограничить максимальный объем кэша и подгружать его с жесткого диска при старте системы.

В случае использовании на SATA 3 можно получить прирост до 50%. При использовании NVMe-накопителя- меньше, но, часто, тоже существенный.

В данный момент у меня в работе Samsung 860 EVO SATA 3. Под спойлером бенчмарки с i7 6700HQ и отключенным Turbo Boost.

860 EVO до включения R.A.P.I.D. и два прогона после

R.A.P.I.D. выключен

Первый прогон

Второй прогон

Наглядно видно, как система начинает кэшировать данные на первом прогоне. Итоговый результат существенно выше показателей SATA 3. Однако, эффективность работы данной технологии больше зависит от мощностей CPU. Что наглядно видно при включении Turbo Boost.

860 EVO + R.A.P.I.D. + Turbo Boost

Синтетика- это, конечно, хорошо. Но это всё работает при чтении\записи повторяющихся мелких файлов. И это- самые частые операции при работе Android Studio.

У меня сейчас в работе проект суммарным с кэшем весом более 700 MB, состоящий из 10 модулей. Один из модулей- собственный кодогенератор на базе kapt с весьма тяжелой логикой. Два NDK-модуля, один из которых ссылается на Boost по внешнему пути. Остальное- тонны Kotlin-кода.

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

  • С выключенным R.A.P.I.D. время составило 1m 47s 633ms. Терпимо.
  • С включенным R.A.P.I.D. первый ребилд прошел за 1m 41s 633ms. Укладывается в погрешность.
  • С включенным R.A.P.I.D. второй ребилд прошел за 1m 7s 132m. Вот и прирост. Чуть больше 37%, что существенно. Дальнейшие ребилды показывают еще меньшее время но уже с разницей не более 3-5 секунд от последнего замера. Что несущественно.

В менее длительных процессах прирост в студии заметен сразу.

Как итог можно рекомендовать эти технологии и накопители как хороший способ повысить производительность. По стабильности нареканий не возникало.

Android Studio

Многие из этих советов взяты отсюда и дополнены моими комментариями. Остальные- результат моих изысканий и опыта.

Обновления

Совет хоть и банальный, но всегда актуальный. Если у Вас не legacy-проект, то, по-возможности, старайтесь держать версии студии и сопутствующих компонентов (таких как Gradle, Android Plugin, Kotlin Plugin) в актуальном состоянии. Google и JetBrains делают много работы в плане оптимизации скорости работы и сборки в новых версиях.

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

В некоторых случаях нужно выполнить File->invalidate caches and restart после отката. Если обновляете саму студию- лучше сделать бекап директории студии и директории настроек. Это актуально в том случае, если Ваш проект содержит какие-либо костыли нестандартные подходы, чувствительные к механизмам сборки или самой студии.

Структура проекта

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

Однако, не возводите всё в абсолют. Выносите компоненты в модули осмысленно, думайте своей головой.

Instant Run

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

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

Включить и отключить функцию можно в меню Build, Execution, Deployment -> Instant Run флагом Enable Instant Run.

Attach to Process

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

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

Gradle build configs

При возможности, если на Вашем основном рабочем buildConfig или flavour есть компоненты, которые используются только в release-сборках (например, crashlytics, различные annotation-процессоры или собственные gradle-процедуры)- отключите их для debug или для Вашего отладочного конфига. Как это сделать- можно найти здесь, либо на официальных страницах компонентов, либо просто загуглите.

В случае, если у Вас кастомный buildConfig, то для него следует отключить PNG crunching, так как по-умолчанию эта опция выключена только для debug-конфига. Эта опция применяет компрессию к png при сборке. Отключить ее можно следующим образом:

android {
   buildTypes {
       myConfig {
           crunchPngs false
       }
   }
}

//Для старых версий android plugin
android{
   aaptOptions {
       cruncherEnabled false
   }
}

WebP

Если minimum api level Вашего проекта больше 18, то имеет смысл конвертация изображений в WebP. Этот формат более компактный, быстрее читается и к нему не применяется компрессия во время сборки. Потому конвертация всей растровой графики в проекте рекомендуется всегда. Соответственно, чем больше растра в Вашем проекте- тем меньше время сборки после конвертации.

Параллельная сборка

Если Ваш проект содержит несколько независимых модулей (например, несколько app-модулей), то для него будет актуальной опция Compile independent modules in parallel в Settings->Build, Execution, Deployment -> Compiler. Это позволит более эффективно утилизировать потоки CPU при сборке. Минус- больший heap size и, как следствие, больший расход оперативной памяти.

Так же эту опцию можно включить посредством строчки в gradle.properties

org.gradle.parallel=true

Gradle daemon

Эта опция в свежих версиях студии включена по-умолчанию и этот совет для тех, кто до сих пор ее не задействовал.

Данная опция позволяет держать отдельный инстанс jvm и gradle в оперативной памяти в течении трех часов с момента последней сборки. Таким образом не тратится время на их инициализацию и наращивание кучи. Минус- больший расход оперативной памяти. Включается строчкой в gradle.properties

org.gradle.daemon=true

Offline-сборка

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

В меню Build, Execution, Deployment -> Gradle отмечаем чекбокс Offline work.

Увеличение heap size Android Studio или IDEA

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

Увеличить стартовый heap size можно как самой студии, так и Gradle.

Для Gradle пишем в gradle.properties

org.gradle.jvmargs=-Xms1024m -Xmx4096m

что соответствует 1ГБ стартового размера кучи и максимума в 4 ГБ для наращивания. Подберите размер в соответствии с ресурсами, которые хотите выделить из доступных Вам.

Для самой Android Studio или IDEA идем в меню Help -> Edit Custom VM Options и пишем те же JVM-параметры с нужными Вам объемами.

Этими же способами можно корректировать поведение JVM в случае, если у Вас возникают с ней какие-либо сложности. Полный список аргументов можно получить с помощью команды java -X.

Плагины

Нет каких либо плагинов, которые могут ускорить IDE. А вот избавиться от пары-тройки можно. Это может повысить отзывчивость или уменьшить время запуска. Особенно если Вы установили несколько сторонних.

Конкретных рекомендаций здесь давать не буду- потребности у всех разные. Просто идете в Settings -> Plugins и отключаете то, что вам не нужно, внимательно прочитав описание и очень хорошо подумав. Не факт, что Вам вообще нужно что-то отключать.

Inspections

Отключение некоторого количества пунктов в меню Settings -> Editor -> Inspections может повысить отзывчивость IDE. Иногда существенно.

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

Power Save mode

Активация этого режима находится в меню File. В нем отключаются все фоновые процессы (индексация, статический анализ кода, Spell Checking и т.д.). И студия начинает вести себя заметно шустрее. Но и по функционалу становится не сильно лучше, например, VS Code.

В общем режим для ситуаций, когда всё совсем плохо.

Settings Repository

Этот совет не о быстродействии, а о комфорте. Ваши настройки удобнее будет хранить в отдельном репозитории и использовать эту функцию. При переезде на другую машину это удобно.

Если Вы работаете в команде с утвержденным codestyle- то новому разработчику будет удобно сделать свою ветку в Git, поменять в ней copyright и настройки для своей машины, и использовать те же настройки codestyle вместе со всеми остальными.

Можно, конечно, коммитить .idea в репозиторий, но это- плохой подход.

AVD

С самого начала своего существования AVD был неповоротлив и прожорлив. В последние 3 года он был сильно усовершенствован, что позволило запускаться и работать на современных машинах относительно быстро (хотя бы в x86-варианте).

И тем не менее, даже сегодня x86-версия Pie на AVD умудряется тормозить. Даже на мощных железках. Ниже представлены варианты, как исправить ситуацию.

Само собой, включение аппаратной виртуализации и установка HAXM с выделением минимум 2 ГБ RAM обязательны.

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

Чаще всего это происходит из-за некорректного определения наиболее подходящего для Вашей машины рендера. Вы можете вручную выбрать наиболее подходящий в меню Settings -> Advanced эмулятора. Конкретные настройки подсказать не смогу, так как всё зависит от конфигурации железа и ОС. Просто смените пункт, закройте эмулятор и вызовите Cold Boot. Остановитесь на наиболее подходящем для Вас варианте.

Меню выбора рендера в AVD

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

Итог

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

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

Android Studio: особенности, достоинства и недостатки

Установка Android Studio. Создание проекта. Файлы проекта. Визуальный редактор. XML. Использование GRADLE. Сборка и отладка. ADV Manager. SDK Manager. Упаковка APK. Отзывы о программе.

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

Android Studio превосходит конкурента по многим параметрам, к которым можно отнести:

  • гибкость среды разработки;
  • больший набор функций;
  • процесс разработки, который подстраивается под разработчика.

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

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

Особенности Android Studio

В программу встроен эмулятор, позволяющий проверить корректную работу приложения на устройствах с разными экранами, с различными соотношениями сторон. Особенно актуальной эта функция стала после входа в тренды смартфонов, в которых установлены экраны с соотношением сторон 18:9.

Отличительная особенность эмулятора – просмотр приблизительных показателей производительности при запуске приложения на самых популярных устройствах.

Среда разработки для приложений Android Studio последней версии стала по настоящему удобной даже для начинающих разработчиков. В программе реализованы все современные средства для упаковки кода, его маркировки. Востребованная многими создателями ПО функция Drag-n-Drop, облегчающая перенос компонентов в среду разработки непосредственно.

Локализация приложений становится существенно проще с функцией SDK, которая также входит в перечень достоинств Android Studio.

Связь с целевой аудиторией приложения после его релиза поможет реализовать инструмент от компании Google – Google Cloud Messaging.

Достоинства утилиты

  • среда разработки поддерживает работу с несколькими языками программирования, к которым относятся самые популярные – C/C++, Java.
  • редактор кода, с которым удобно работать;
  • позволяет разрабатывать приложения не только для смартфонов/планшетов, а и для портативных ПК, приставок для телевизоров Android TV, устройств Android Wear, новомодных мобильных устройств с необычным соотношением сторон экрана;
  • тестирование корректности работы новых игр, утилит, их производительности на той или иной системе, происходит непосредственно в эмуляторе;
  • рефакторинг уже готового кода;
  • достаточно большая библиотека с готовыми шаблонами и компонентами для разработки ПО;
  • разработка приложения для Android N – самой последней версии операционной системы;
  • предварительная проверка уже созданного приложения на предмет ошибок в нем;
  • большой набор средств инструментов для тестирования каждого элемента приложения, игры;
  • для неопытных/начинающих разработчиков специально создано руководство по использованию Android Studio, размещенное на официальном сайте утилиты.

Недостатки/спорные моменты

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

Еще один недостаток — это невозможность написать серверные проекты на языке Java для ПК, Android устройств.

Выводы

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

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

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

10 траблов начинающего разработчика и их решения — «Хакер»

Содержание статьи

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

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

 

1. Медленный эмулятор

Итак, ты набросал свое первое приложение, и пора его запустить и проверить на работоспособность. Для этого в комплекте Android SDK есть эмулятор. Долгое время его упрекали за медлительность, но с выпуском Android Studio 2.0 ситуация намного улучшилась — x86-версия эмулятора получила хардварное ускорение, так что теперь он работает быстрее реальных устройств. К тому же у него появился удобный графический интерфейс, с помощью которого можно симулировать звонки, СМС, изменять данные GPS и сбои в сети, то есть все, для чего раньше приходилось использовать инструменты командной строки.

Поэтому, если ты еще не обновился, настоятельно рекомендую это сделать, не говоря уже о переходе с Eclipse. И обязательно выбирать x86-версию эмулятора в AVD manager, ARM-версия не поддерживает хардварное ускорение.

Новый эмулятор Android Studio 2.0

 

2. Смартфон на поводке

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

К счастью, Android Studio (а точнее, утилита ADB, которую он использует для связи с устройством) поддерживает работу по сети. Но данную функцию еще нужно активировать. Если у тебя рутованный смартфон, то тебе повезло: включить отладку по сети можно с помощью приложения WiFi ADB. Последовательность действий:

  1. Устанавливаем WiFi ADB, запускаем, включаем сетевой режим с помощью переключателя и запоминаем IP-адрес.
  2. Запускаем Android Studio.
  3. Открываем консоль, переходим в каталог с установленным SDK, далее в platform-tools и запускаем следующую команду:

    $ adb connect IP-адрес

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

  1. Подключаем смартфон и устанавливаем драйверы.
  2. Включаем режим отладки в настройках для разработчиков.
  3. Открываем консоль, переходим в каталог SDK/platform-tools и запускаем следующую команду:

    $ adb tcpip 5555

  4. Подключаемся к смартфону по сети:

    $ adb connect IP-адрес

IP-адрес можно узнать через настройки: «О телефоне (О планшете) → Общие сведения», пункт «IP-адрес».

 

3. Библиотеки

Окей, твой накиданный за полчаса огрызок вроде бы работает, и настало время превратить его в настоящее приложение с красивым интерфейсом и виджетами для рабочего стола. На этом этапе тебе наверняка понадобятся внешние библиотеки, реализующие различные концепции интерфейса, паттерны программирования и связь с внешними сервисами. И если с последними все ясно (нужен SDK для Dropbox — открываешь портал для разработчиков и следуешь инструкциям), то с остальными уже сложнее. Где их искать и какие библиотеки лучше?

Наиболее полный каталог библиотек — это Android Arsenal. Там ты найдешь практически все, что тебе нужно. Доступны удобный поиск и сортировка по рейтингу, для каждой библиотеки есть инструкция, как ее подключить к своему проекту, в том числе с помощью стандартной для Android системы сборки Gradle: достаточно добавить репозиторий в файл build.gradle проекта и указать библиотеку в списке зависимостей.

Для каждой библиотеки есть инструкция по подключению

Отличный список must have библиотек ты найдешь на этой странице. От себя добавлю, что на первых этапах стоит сразу изучить Dagger 2, RxJava и Retrofit. Став продвинутым разработчиком, ты так или иначе придешь к использованию этих библиотек.

 

4. Иконки и клипарт

Наконец, спустя дни или недели у тебя начинает вырисовываться полноценное приложение. Вот только никакого графического материала нет до сих пор: иконка стандартная, в форме зеленого робота, вместо клипарта — заглушки. Очевидно, без графики соваться в маркеты бессмысленно, однако и платить за иконку для своего первого приложения тоже глупо. Что делать?

На самом деле иконку можно сгенерировать. Есть замечательный веб-сервис Android Asset Studio, с помощью которого буквально за пару минут ты получишь красивую иконку во всех возможных разрешениях. В качестве основы можно взять подготовленную тобой картинку, просто написать текст или, что лучше всего, выбрать из предоставленного сервисом клипарта. Также ты сможешь задать стиль иконки (круглая, квадратная, в стиле iOS…), цвет, настроить тени и другие параметры. В результате в твоем распоряжении появится архив ic_launcher.zip, который необходимо развернуть в каталог AndroidstudioProjects/ИМЯ_ПРИЛОЖЕНИЯ/app/src/main/res. Обязательно создай веб-иконку, нажав на кнопку «Generate web icon». Она тебе понадобится.

Не забудь про веб-иконку

Тот же сервис позволяет создать иконки для ActionBar’а и строки состояния. Принцип примерно тот же, скажу лишь, что в строке состояния лучше всего смотрятся иконки с отступом от краев 15%.

Кроме того, тебе понадобится так называемая Feature Image. Это специальная картинка, которую Play Market и другие магазины приложений используют в качестве плашки в верхней части экрана (когда открываешь страницу приложения на смартфоне). Ее можно сгенерировать с помощью другого сервиса. Для оформления скриншотов можно использовать официальный сервис от Google. Он создает вокруг скриншота рамку смартфона.

 

5. Краш-репорты

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

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

Одна из самых популярных таких систем — Fabric, однако я рекомендую посмотреть в сторону Splunk MINT: он бесплатный, простой и легко интегрируется в приложение (достаточно добавить всего одну строку кода). Чтобы начать им пользоваться, необходимо подключить к проекту SDK, сделать это можно с помощью все того же Gradle. Открываем файл build.gradle (тот, что относится к приложению, а не ко всему проекту) и добавляем следующие строки:

repositories {
    maven { url "https://mint.splunk.com/gradle/" }
}

dependencies {
    compile "com.splunk.mint:mint:5.0.0"
}

Далее открываем веб-страницу Splunk MINT, регистрируемся и добавляем новое приложение через панель управления (add app):

После этого Splunk MINT покажет тебе строку кода, которую необходимо вставить в код:

Лучшее место для этой строки — основная активность твоего приложения (по умолчанию носит имя MainActivity.java), самое начало метода onCreate(). Однако если ты пишешь сервисное приложение, которое может работать без интерфейса и запускаться во время загрузки или по расписанию, то строку следует вставлять в код сервиса, тоже в начало onCreate().

После сборки приложения и установки на устройство Splunk MINT начнет работать. Ты получишь доступ к статистике (количество установок, юзеров, падений, версии Android, использование сети и прочее):

Ну и конечно же, статистика падений и стектрейсы:

Этой информации вполне достаточно для решения проблемы.

 

6. Тестирование

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

Наверное, лучший сервис автоматического тестирования — это Xamarin. Он позволяет запустить приложение на двух тысячах виртуальных устройств, выполнять операции взаимодействия с пользователем (тапы, жесты, смахивания, нажатия физических кнопок), изменять положение смартфона, включать камеру и многое другое. В ответ на каждое действие ты получаешь скриншот, а также статистику потребления памяти, процессора и прочего.

Проблема Xamarin только в том, что тесты придется писать самому, используя фреймворк Calabash, то есть, по сути, писать еще одно приложение (на Ruby или C#) для тестирования первого. Сам сервис, конечно же, платный. Триальный период составляет 30 дней, после чего придется платить от 100 долларов в месяц. С другой стороны, сам Calabash — это open source проект, так что все можно настроить и на локальной машине.

С тестированием реальными людьми все несколько проще. Достаточно иметь готовое приложение и описание на обычном человеческом языке, что конкретно ты хочешь от тестировщика. Далее подбираем подходящий сервис, загружаем приложение, требования и ждем. Какой сервис выбрать? Их много, но лучше остановиться на Ubertesters. У них весьма демократичные цены, плюс в нагрузку ты получаешь аналог Splunk MINT абсолютно бесплатно. Один час тестирования стоит от 25 долларов.

Создаем новый проект на Ubertesters

 

7. Обфускация и оптимизация

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

К счастью для нас, большинство реверсеров мобильных приложений — слабаки, неспособные расковырять код после применения простейшего обфускатора. И такой обфускатор есть в составе Android Studio. Он носит имя ProGuard и включается простой директивой minifyEnabled true в файле build.gradle приложения:

buildTypes {
    release {
        debuggable false
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

Принцип работы ProGuard довольно прост: он переименовывает имена всех классов, методов и полей (MainActivity.class становится A.class, onCreate() превращается в b() и так далее), а также удаляет всю отладочную информацию, неиспользуемый код и неиспользуемые параметры функций, выполняет инлайнинг методов (если метод-1 состоит из нескольких строк, метод-2 вызывает его множество раз, разумнее перенести код метода-1 в метод-2). Приложение становится компактнее, быстрее, а ориентироваться по нему после декомпиляции сложнее.

Для последующей оптимизации кода можно применить ReDex от Facebook. Как и ProGuard, он выполняет инлайнинг, удаляет мертвый код, а кроме того, делает так называемую feedback-directed optimization (FDO), которая позволяет разместить код, используемый при первом старте приложения, ближе к началу бинарника. Из других возможностей: удаление интерфейсов, которые реализуются только одним классом, и метаданных, включенных в байт-код (например, аннотации, необходимые исключительно на этапе сборки, и ссылки на файлы исходных текстов).

По словам разработчиков, ReDex не призван заменить ProGuard, а должен запускаться уже после него. В результате скорость старта и размер комплексного приложения удастся улучшить примерно на 25% (это информация разработчиков). Единственная проблема инструмента в том, что он доступен только для macOS и Linux. Причем в форме готовых пакетов его нет, придется собирать самостоятельно. В Linux этот процесс выглядит так:

$ git clone https://github.com/facebook/redex.git
$ cd redex
$ autoreconf -ivf && ./configure && make
$ sudo make install

Далее следует натравить его на пакет с приложением:

$ export ANDROID_SDK=/путь/до/SDK
$ redex --sign -s /путь/до/хранилища/ключей -a имя_ключа -s пароль app-release.apk -o app-release-optimzied.apk

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

При необходимости можно применить тяжелую артиллерию, а именно — платные обфускаторы вроде AppSolid и DexProtector. Они позволяют не просто обфусцировать байт-код приложения, но и зашифровать строки, классы, код нативных библиотек, ресурсы и защитить приложение от модификации и перепаковки. Стоят они дорого, и к тому же их защита тоже может быть нейтрализована, причем совсем нехитрым способом.

INFO

Чтобы удалить неиспользуемые ресурсы, следует добавить в блок buildTypes → release директиву shrinkResources true.

 

8. Lite- и Pro-версии

Ну все, пора выкладывать в Play Market. Хотя нет, стоп! Ты же не просто так сидел и писал ночами код, а потом, зевая, шел на учебу. Не зря перерыл кучу документации и терзал людей глупыми вопросами на Stack Overflow. Ты хочешь заработать, а в идеале не просто заработать, а разбогатеть! Поэтому у тебя есть четыре варианта дальнейших действий.

  1. Ты выкладываешь приложение в Play Market и назначаешь за него цену. Недостаток: людей придется каким-то образом убеждать, почему они должны установить твое приложение. Для начинающего разработчика это не вариант.
  2. Ты добавляешь в приложение рекламу. Недостаток: на рекламе ты заработаешь максимум на пиво, к тому же она сильно раздражает людей.
  3. Ты реализуешь систему in-app purchaise, то есть даешь возможность разблокировать дополнительные функции, заплатив прямо из приложения. Недостаток: in-app purchaise полностью завязан на Google Play Services, а значит, либо недоступен в других маркетах, либо реализуется там по-другому. Придется делать разные версии.
  4. Ты разбиваешь приложение на версии Lite и Pro, сохраняя таким образом возможность без модификаций выкладывать приложение в различные маркеты, в том числе китайские — их пользователи обычно не имеют доступа к сервисам Google. Недостаток: Pro-версию очень легко стащить.

Итого два приемлемых варианта: 3 и 4. Но так как третий вариант выходит далеко за рамки данной статьи (придется добавлять в приложение код и перестраивать его структуру, подробнее в официальной документации), то мы поговорим только о четвертом.

Для реализации этой идеи в системе сборки Gradle есть функция Flavors. Она позволяет собрать несколько вариантов приложения из одного проекта. Все, что требуется сделать, — это добавить в build.gradle приложения следующие строки:

productFlavors {
    lite {
        packageName = 'com.example.app'
    }
    pro {
        packageName = 'com.example.app.pro'
    }
}

После этого ты получишь доступ к переменной BuildConfig.FLAVOR. Проверяя ее значение, можно изменять поведение приложения в зависимости от его варианта:

if (BuildConfig.FLAVOR.equals("pro") {
    // Премиум-код
} else {
    // Код для бедных
}

Однако у этого подхода есть изъян — оба варианта приложения будут включать в себя весь код, так что превратить Lite-версию в Pro можно будет правкой одной строки в дизассемблированном коде. Гораздо лучше полностью разделить исходники, отличающиеся в разных вариантах приложения. Для этого достаточно рядом с каталогом main внутри app/src проекта создать два каталога с именами вариантов (Lite и Pro), а в них подкаталоги java/com/example/app, где разместить исходники, различающиеся для каждого варианта. К примеру, в случае с классом Premium структура каталога будет выглядеть так:

 

9. Тонкости Google Play

Разработка завершена, поздравляю! Но на этом твоя эпопея еще не закончена, Google Play не так прост, как кажется. Во-первых, тебе нужны 25 долларов. Без них в маркет не пустят. Во-вторых, сразу после создания нового приложения в Developers Console необходимо сменить язык по умолчанию на английский (Переводы → Сменить язык по умолчанию):

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

Также от тебя потребуют значок в высоком разрешении и значок для раздела «Рекомендуемые». Если ты следовал инструкциям из статьи, они у тебя уже должны быть — это те самые веб-иконка и Feature Image.

Ну а далее все просто: тип приложения, категория, возрастная группа, веб-сайт, email. Когда ты заполнишь все поля и получишь сертификат IARC на публикацию приложений для указанной возрастной группы (он моментально приходит на email), останется только нажать кнопку «Опубликовать приложение» вверху страницы и ждать. Обычно первая публикация занимает в среднем час или два. Обновление — около тридцати минут, причем вне зависимости от того, обновил ли ты само приложение или исправил опечатку в описании.

 

10. Альтернативные маркеты

Тебя может это удивить, но уже через неделю после публикации в Play Market твое приложение начнет всплывать и во многих альтернативных маркетах, таких как AppsZoom и 1Mobile. Это хороший знак, и вместо того, чтобы беспокоиться, лучше самому предпринять дальнейшие шаги для размещения своего приложения в маркетах.

Приложение Overscan появилось на AppZoom менее чем через неделю после публикации в Play Market

Чтобы тебе не пришлось долго искать, вот список наиболее перспективных:

  • Amazon App Store — известный маркет от Amazon, предустанавливаемый на планшеты Kindle.
  • GetJar — один из крупнейших альтернативных маркетов мобильных приложений. Согласно информации на начало 2015 года, содержит 849 036 приложений Java ME, BlackBerry, Symbian, Windows Mobile и Android.
  • SlideMe — известный маркет, который китайцы часто предустанавливают на свои устройства вместо Google Play.
  • Xiaomi App Store — официальный маркет китайского «производителя всего и вся» — Xiaomi.
  • Baidu App Store — один из крупнейших китайских магазинов приложений.
  • Samsung Galaxy Apps — официальный магазин приложений Samsung. Отличается очень дотошной проверкой публикуемых приложений.
  • XDA Labs — магазин приложений форума XDA Developers. Хорошо подходит для публикации системных приложений и твиков, приложений, требующих root, и модулей Xposed.

Ну и не стоит забывать про форум 4pda.ru. Там всегда можно получить хороший фидбэк от юзеров.

 

Выводы

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

новые инструменты работы с макетами, улучшенное профилирование и анализ билдов

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

Android Studio 4.0
включают в себя новый Motion Editor, помогающий оживить ваши приложения, Build
Analyzer для изучения причин замедления сборки и Java 8, которую можно
использовать независимо от минимального уровня API вашего приложения. CPU Profiler был
перелопачен, чтобы сделать рабочий процесс более интуитивно понятным и для простого
параллельного анализа активности потока. Layout Inspector теперь отдаёт живые
данные c UI приложения, а значит, вы можете легко отлаживать
именно то, что отображается на устройстве.

Разбор от команды Android Developers

Редактор движения объектов (MotionLayout)

API MotionLayout
расширяет и без того богатые возможности ConstraintLayout, помогая разработчикам Android управлять сложными движениями и анимацией виджетов

Использование этого API стало проще благодаря новому Motion
Editor – мощному интерфейсу для создания, редактирования и предварительного
просмотра. Больше не нужно создавать и изменять сложные XML-файлы – Motion
Editor делает это за нас, при этом поддерживая редактирование constraint-наборов, переходов, кейфреймов и атрибутов
вьюшек. Чтобы увидеть код, создаваемый редактором, нужно совершить всего один клик.

И ещё небольшое улучшение для разработчиков, уже использующих
ConstraintLayout – новая версия может легко преобразовать их в MotionLayout.

Процесс работы редактирования движения иконки

Инспектор макетов (Layout Inspector)

С помощью
нового Layout Inspector отладка UI становится
намного понятнее. Мы получаем доступ к постоянно обновляемым данным и
информацию о том, как расходуются ресурсы.

Скриншот процесса работы с Layout Inspector

Чтобы использовать Layout
Inspector, в главном меню нужно выбрать View > Tool Windows > Layout Inspector. При развёртывании на устройстве под управлением API
29 или выше у нас есть доступ к дополнительным функциям: динамической иерархии макетов, обновляемой при изменении представления, подробным атрибутам вьюхи и 3D-модели UI запущенного приложения.

Валидация макетов (Layout Validation)

Интерфейс Layout Validation

Когда вы разрабатываете код под несколько форм-факторов, размеров экрана и
разрешений, следует убедиться, что работа корректно отображается на любом экране. С помощью окна Layout Validation можно просматривать макеты на разных экранах и конфигурациях одновременно. Чтобы начать работу, перейдите на вкладку Layout Validation в правом верхнем
углу IDE.

Обновленный CPU Profiler

Обновленный интерфейс CPU Profiler

CPU profiler предоставляет большой объем информации о потоковой
активности и трассировке приложения. В четвёртой версии записи CPU отделены от
основной временной шкалы и организованы в удобные для анализа группы. Группы можно перемешать вверх и вниз или перетаскивать отдельные элементы
внутри групп для дополнительной настройки.

Работа с группами в CPU Profiler

Для облегчения
параллельного анализа теперь можно просмотреть все активити на шкале Thread
Activity
(включая методы, функции и события) и попробовать новую навигацию – можно масштабировать и панорамировать при помощи клавиш W, S, A и D.

Переработан UI трассировки. Теперь легче выявить более
загруженные потоки и сосредоточиться на просмотре данных. Качество CPU
profiler значительно выросло – снизилось число ошибок, о которых
сообщали пользователи с Android Studio 3.6. Больше об улучшениях
профайлера – в официальном хелпе.

Функции
интеллектуального редактора

Улучшенное автодополнение в редакторе

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

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

Обновление платформы
IntelliJ IDEA

Обновлено ядро среды разработки
Android. Следом за ним обновились и версии IntelliJ IDEA
2019.3
и 2019.3.3. Эти улучшения в основном направлены на улучшение производительности.

Живые шаблоны

Live templates – это удобная
функция IntelliJ, позволяющая вставлять общие конструкции в код набирая
ключевые слова. Android Studio теперь также умеет работать с шаблонами: введите Toast,
нажмите Tab и вставится шаблонный код для Toast. Полный список шаблонов находится в Editor > Live Templates в
Settings (или Preferences).

Поддержка Clangd для
C++

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

Чтобы настроить Clangd или Clang-Tidy, зайдите в диалог Settings
(или Preferences) и переместитесь в Languages & Frameworks
> C/C++ > Clangd or Clang-Tidy
.

Плагин Gradle 4.0 включает в себя поддержку Android Studio’s Build Analyzer (независимо
от минимального уровня API вашего приложения) и создание зависимостей между
динамическими модулями функций. Полный список обновлений смотрите в примечаниях к релизу.

Анализатор сборки (Build Analyzer)

Интерфес Build Analyzer

Build Analyzer помогает
понять и устранить узкие места в
сборке, выделяя плагины и задачи, которые ответственны за общее время сборки, а
также предлагая шаги по смягчению «симптомов».

Java 8 и десахаризация в D8/R8

Предыдущие версии
Android Gradle поддерживали различные языковые функции Java 8 для всех уровней
API с помощью процесса,
называемого десахаризацией. В Android-студия 4.0 движок
был расширен для поддержки API
языка Java, независимо от minSdkVersion. Это означает, что теперь вы можете
использовать стандартные языковые API, которые ранее были доступны только в
последних версиях Android (например, java.util.stream, java.util.function и
java.time).

Feature-on-feature зависимости

Схема зависимостей свойств

При использовании
плагина Gradle 4.0.0 и выше теперь можно указать, что модуль Dynamic Feature зависит
от другого модуля. Возможность определить эту взаимосвязь гарантирует, что ваше
приложение будет иметь необходимые модули для разблокировки дополнительных
функциональных возможностей, а это приведёт к меньшему количеству запросов и
более простой структуре приложения. Например, функция :video может зависеть
от функции :camera. Если пользователь хочет разблокировать возможность записи
видео, ваше приложение автоматически при запросе :video загрузит модуль :camera.

Новые опции для
включения или отключения из сборки

Gradle имеет встроенную
поддержку современных библиотек, таких как data binding, view binding, build
features
и BuildConfig classes. Однако не все библиотеки и функции могут понадобиться в проекте. Как показано ниже, в версии 4.0 можно отключить ненужные
функции сборки – это поможет оптимизировать
производительность сборки для крупных проектов.

        android {
    // The default value for each feature is shown below.
    // You can change the value to override the default behavior.
    buildFeatures {
        // Determines whether to support View Binding.
        // Note that the viewBinding.enabled property is now deprecated.
        viewBinding = false
        // Determines whether to support Data Binding.
        // Note that the dataBinding.enabled property is now deprecated.
        dataBinding = false
        ...
    }
}
    

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

Поддержка файлов Kotlin DSL

Студия теперь имеет
встроенную поддержку файлов сценариев сборки Kotlin DSL (*.kts). Сценарии
сборки Kotlin предлагают полный набор быстрых исправлений и поддерживаются
Project Structure dialog. Разработчики собираются в долгосрочной перспективе поддерживать
эту фичу, что позволит создать более простой в использовании DSL.

Метаданные зависимостей

При создании приложения
Gradle включает метаданные, описывающие зависимости компилируемых библиотек. При загрузке приложения Play Console проверяет
эти метаданные, получая информацию об известных проблемах с SDK и
зависимостями, используемыми в приложении, а в некоторых случаях
предоставляет обратную связь для решения этих проблем.

Эти данные сжимаются,
шифруются ключом подписи Google Play и сохраняются в блоке подписи вашего релиза.
Если вы не хотите делиться этой информацией, можно легко отказаться от нее,
включив следующий блок в файл build.gradle:

build.gradle

        android {
    dependenciesInfo {
        // Отключение метаданных о зависимостях при построении APKs.
        includeInApk = false
        // Отключение метаданных о зависимостях при построении Android App Bundles.
        includeInBundle = false
    }
}
    

Загрузите Android
Studio 4.0 с официальной страницы.
Если вы используете предыдущую версию Android Studio, вы можете просто обновиться
до последнего релиза.

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

Топ-17 плагинов для Android Studio / Хабр

Существуют сотни плагинов для Android Studio, и их число растёт с каждым днём. Это в основном происходит по двум причинам. Во-первых, Android Studio — это официальная интегрированная среда разработки для создания Android-приложений. Во-вторых — Intellij IDEA, платформа, на которой основана Android Studio, позволяет разрабатывать и легко устанавливать полезные плагины, совместимые с обеими IDE. Какие плагины устанавливаете вы?

Конечно, вы можете программировать в «голой» Android Studio, просто установив необходимые библиотеки и не добавив ни одного плагина. Но зачем? Плагины для Android Studio могут сделать вашу работу более эффективной и увлекательной. Сейчас мы расскажем вам про топ плагинов Android Studio, которые смогут утроить (как минимум) вашу производительность.

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

Как следует из названия, этот плагин поможет сэкономить часы утомительной ручной работы со строками. Он позволяет изменять стиль текста (camelCase, kebab-lowercase, KEBAB-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, нижний регистр, Заглавные Буквы, PascalCase), кодировать / декодировать, увеличивать / уменьшать, сортировать, фильтровать и выравнивать.

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

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

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

Скобки всегда были источником головной боли для программистов. Сколько часов было потрачено на поиск этой недостающей скобки? Хватит это терпеть!

Вместо того, чтобы сидеть и пытаться понять, какую скобку вы уже закрыли, а какую ещё нет, разукрасьте скобки с помощью плагина Rainbow Brackets.

Он поддерживает Java, Scala, Clojure, Kotlin, Python, Haskell, Agda, Rust, JavaScript, TypeScript, Erlang, Go, Groovy, Ruby, Elixir, ObjectiveC, PHP, HTML, XML, SQL, Apex, C #, Dart и другие языки.

Сложный Java-код для Android-приложений часто может содержать много шаблонного кода (конструкторы, геттеры, сеттеры). Это может быть утомительно и трудно с точки зрения читабельности и поддержки кода. Project Lombok — это Java-библиотека, которая подключается к вашей IDE и генерирует этот шаблонный код за вас, сохраняя ваш код лаконичным и читабельным. Разница кода до и после может быть довольно ошеломляющей.

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

Если вы собираетесь работать с drawable при разработке Android-приложения, то это именно тот плагин, о существовании которого вам следует знать.

Чтобы адаптировать ресурсы ко всем размерам и разрешениям экрана Android-устройств, в каждом Android-проекте есть папка drawable. Если вы были благословлены дизайнером из Рая, который предоставляет ресурсы, уже находящиеся в нужных папках с правильными именами, мы искренне завидуем вам. Но скорее всего, вам вряд ли так повезло, и вы сами переименовываете и перемещаете PNG-файлы в нужные папки.

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

Для предварительного просмотра векторного XML-файла нужно запускать приложение. Vector Drawable Thumbnails поможет вам избавиться от этого и отобразит векторные рисунки по одному щелчку мыши.

Когда в вашем проекте много drawable-компонентов, ориентироваться в них бывает очень сложно. Было бы неплохо, если бы в IDE был быстрый предварительный просмотр изображений, да? С Android Drawable Preview Plugin это возможно.

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

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

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

Плагин Name That Color назовёт цвет, который у вас есть в буфере обмена, прямо в файле ресурсов в Android Studio, и даст название наиболее близкого соответствующего цвета. Эпоха «lighter_light_pink» в ваших xml-файлах подходит к концу.

bundletool — это базовый инструмент, который Gradle, Android Studio и Google Play используют для создания Android App Bundle или преобразования app bundle в различные APK, развёртываемые на устройствах. Этот инструмент от Google необходим для более эффективной работы с APK-пакетами.

Android ButterKnife — это библиотека для внедрения зависимостей. Как правило, это улучшает читабельность кода, позволяя сосредоточиться на логике, а не смешивать в кучу код для поиска View-компонентов или добавления слушателей.

Android ButterKnife Zelezny — плагин для Android Studio для создания инъекций ButterKnife из выбранных XML-макетов в Activity, фрагментах или адаптерах. Большинство руководств по ButterKnife, которые вы найдёте, будут рекомендовать вам установить Zelezny.

Android Input — это довольно простой, но полезный плагин для Android Studio, который позволяет легко вводить текст прямо на ваше Android-устройство или эмулятор. Он запоминает последнее использованное устройство и последний введённый текст.

Этот плагин как для Intellij IDEA, так и для Android Studio добавляет ряд полезных сочетаний клавиш для различных команд ADB-инструментов прямо в вашей IDE. Хотя это кажется излишним дополнением, разработчики говорят, что ADB Idea действительно может ускорить разработку и отладку Android-приложений.

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

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

Here there be dragons — это плагин Intellij и Android Studio, который позволяет аннотировать ваши «нечистые» Java-методы аннотацией @SideEffect. При вызове такого метода плагин отображает маленький значок дракона.

Да и к тому же этот плагин слишком симпатичный, чтобы не включать его в наш список. Это же драконы!

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

И напоследок

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

Урок 4. Визуальный редактор Android Studio

Окно редактора кода достаточно динамичное место – именно здесь вы и проведёте бОльшую часть времени при создании приложений. Чуть ранее, при создании вашего первого проекта, Android Studio сгенерировал простенький пользовательский интерфейс приложения. Пользовательский интерфейс в Android Studio можно создавать как с помощью кода на языке Java, так и с помощью визуального редактора. Однако, после того как вы накидаете примерный внешний вид приложения (кнопки, чекбоксы, текстовые поля) вам потребуется взаимодействие с ним и вот тут-то уже без программирования никуда.

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

  • В обозревателе проекта найдите папку “layout” – там будет находиться файл “activity_main.xml” (на скриншоте внизу):
  • Двойным щелчком открывайте этот файл. После небольшой загрузки вы увидите что-то очень похожее на следующий скриншот. На данном скриншоте мы видим полное отображение того, что содержится в нашем коде. Как вы можете заметить – всё, что только что было текстом теперь можно разбить на несколько частей. Давайте разберёмся с этим:

Под цифрой 1 на данном скриншоте находится область, именуемая “Palette”. Здесь вы можете выбрать один из элементов/компонентов и перетащить его область 2. Область 2 – это визуальное представление пользовательского интерфейса вашего приложения на устройстве. Под цифрой 3 – “Component Tree” – эта область поможет вам не запутаться в структуре интерфейса в том случае, когда интерфейс уже разросся компонентами. Под цифрой 4 – панель свойств – “Properties”. Здесь вы сможете изменять свойства выбранного элемента, например, цвет или название. Обратим внимание на вкладки под цифрой 5: “Design” и “Text”. Вкладка “Design” у вас сейчас открыта. Теперь можете переключиться на вкладку “Text”. Не стоит пугаться при её виде – здесь находится сгенерированный код eXtensible Markup Language (расширяемый язык разметки XML). На данный момент вам не стоит с ним особо иметь дело. По мере создания вашего первого приложения, при разработке которого мы будем пользоваться элементами/компонентами из вкладки “Palette”, время от времени можно будет заглядывать сюда, тем самым приоткрывая понемногу завесу тайны данной вкладки.

Теперь разберём некоторые элементы/компоненты пользовательского интерфейса, которые нам предлагает Android Studio и которыми мы будем пользоваться в ближайшее время:

  • TextView: Кликните на надпись “Hello World” (предварительно переключившись обратно на вкладку “Design”). То, что вы сейчас выбрали и есть виджет, именуемый TextView. TextViews могут быть как маленькими так и большими (то что нужно для нашей игры!). Давайте перетащим еще один TextView на виртуальное устройство. По мере перетаскивание обратите внимание на то, как Android Studio графически показывает разное положение элемента(скриншот ниже):

Отпустите левую кнопку мыши после того, как решите, где будет находиться ваш элемент. Теперь можем поиграть с его свойствами. В области “Properties” кликните по “View all properties”. Можете поменять значения “textSize” на 50 и нажать Enter, тем самым увеличив размер текста.

 

  • ImageView: Виджет ImageView используется для отображения изображения. Из области “Palette” выберите ImageView и перетащите в любое место на виртуальное устройство. Далее откроется окно с выбором изображения. Выберите “Ic_launcher” (позже мы разберём, как закидывать в проект свои изображения). Можете поиграть со свойствами данного ImageView. После этого удалите его.
  • ButtonView: Это кнопки. Можете также перетащить “Button” на виртуальное устройство и поиграть с их свойствами. После чего удалите.

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

Android Studio и IntelliJ — Flutter

меню

  • Документы
    • Начать

      • 1. Установить
      • 2. Настройте редактор.
      • 3. Тест-драйв.
      • 4. Напишите свое первое приложение.
      • 5. Узнать больше
      • С другой платформы?

        • Flutter для разработчиков Android
        • Flutter для разработчиков iOS
        • Flutter для разработчиков на React Native
        • Flutter для веб-разработчиков
        • Flutter для Xamarin.Разработчики форм
        • Введение в декларативный интерфейс
      • Обзор языка Dart
      • Создание веб-приложения
    • Образцы и руководства

      • Галерея Flutter [запущенное приложение]
      • Галерея Flutter [репо]
      • Примеры приложений на GitHub
      • Кулинарная книга
      • Codelabs
      • Учебники
    • Развитие

      • Пользовательский интерфейс

        • Введение в виджеты
        • Макеты зданий

          • Макеты во Flutter
          • Руководство
          • Создание адаптивных приложений
          • Понимание ограничений [НОВОЕ]
          • Ограничения коробки
        • Добавление интерактивности
        • Активы и изображения
        • Навигация и маршрутизация
        • Анимации

          • Вступление
          • Обзор
          • Руководство
          • Неявная анимация
          • Анимация героев
          • Поэтапная анимация
        • Расширенный интерфейс

          • Щепки
          • Жесты
          • Заставки
        • Каталог виджетов
      • Данные и бэкэнд

        • Государственное управление

          • Вступление
          • Мыслите декларативно
          • Эфемерное и состояние приложения
          • Простое управление состоянием приложения
          • Параметры
        • Сеть и http
        • JSON и сериализация
        • Firebase
      • Доступность и интернационализация

        • Доступность
        • Интернационализация
      • Интеграция платформы

        • Добавление поддержки iOS App Clip
        • Поддержка Apple Watch
        • Взаимодействие C и C ++
        • Размещение собственных представлений для Android и iOS
        • Web FAQ
        • Написание кода для конкретной платформы
      • Пакеты и плагины

        • Использование пакетов
        • Разработка пакетов и плагинов
        • Программа Flutter Favorites
        • Фоновые процессы
        • Обновление плагина Android
        • Сайт пакета
      • Добавить Flutter в существующее приложение

        • Вступление
        • Добавление в приложение для Android

          • Настройка проекта
          • Добавить один экран Flutter
          • Добавить фрагмент флаттера
          • Настройка плагина
        • Добавление в приложение iOS

          • Настройка проекта
          • Добавить один экран Flutter
        • Отладка и горячая перезагрузка

.

учебных пособий | ПОМОЩЬ — Android IDE

AIDE поддерживает разработку приложений Android на основе Java / Xml с помощью Android SDK.
Приложение AIDE поставляется с мобильной версией Android SDK, поэтому устанавливать что-либо еще не нужно.
В следующих руководствах показано, как начать разработку приложений Android SDK с помощью AIDE.
Чтобы узнать больше о возможностях SDK, посетите
разработчик.android.com

Учебник: создание вашего первого приложения

Учебник: Создание пользовательского интерфейса Android

Учебное пособие: использование Android UI Designer

AIDE поддерживает разработку приложений на основе HTML5 / CSS / JavaScript с помощью PhoneGap.PhoneGap — это бесплатная платформа с открытым исходным кодом, которая позволяет создавать мобильные приложения с использованием стандартизированных веб-API.
Чтобы узнать больше о PhoneGap, посетите
phonegap.com

Учебное пособие: создание кроссплатформенного приложения PhoneGap

NDK — это набор инструментов, который позволяет вам реализовывать части вашего приложения с использованием нативного кода.
такие языки, как C и C ++.AIDE поддерживает разработку приложений с использованием NDK на устройствах Arm.

Учебник: Создание приложений для Android с помощью Android NDK

AIDE поддерживает разработку приложений на чистом Java. Полностью поддерживается редактирование приложений Java SE.
Возможно запускать консольные приложения Java.

Учебное пособие: Создание приложений на чистом Java

Хотя AIDE полностью поддерживает разработку полнофункциональных приложений на вашем устройстве, он также
поддерживает взаимодействие со средой разработки рабочих станций.AIDE использует формат проекта Eclipse, поэтому любой проект приложения Eclipse для Android можно открыть в AIDE.
AIDE также поддерживает базовые проекты Android Studio, которые соответствуют структуре проекта по умолчанию.
Это позволяет легко переключаться между инструментами.
Чтобы получить исходные файлы проекта на устройстве (и обратно), вы можете скопировать их с / на SD-карту вашего устройства вручную.
В качестве альтернативы вы можете использовать встроенную синхронизацию Dropbox AIDE и хранить исходные файлы в Dropbox.Однако наиболее мощным решением является использование встроенной поддержки AIDE для системы контроля версий Git.

Учебное пособие: взаимодействие с Eclipse

Учебник: взаимодействие с Android Studio

Учебное пособие: использование Dropbox для синхронизации файлов

Учебник: Использование системы контроля версий Git

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *