Руководство android sdk

Разработка программного обеспечения для операционной системы Android немыслима без специализированной среды. Есть средство создания контента под эту мобильную платформу. Носит оно название «Андроид СДК».

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

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

Описание

Android SDK, согласно данным из Google – это универсальное средство разработки мобильных приложений для Андроида. Обладает широким спектром функций и инструментов, благодаря которым можно быстро запускать тестирование и отладку исходных кодов. Написана соответствующая среда на языке Java. Разработчиком выступила компания Google в 2009 году (октябрь).

Представляет собой эмулятор и среду разработки «в одном флаконе». Выделяется следующими преимуществами:

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

СДК не может быть полноценно запущена на устройствах Android. Но Google позволяет активировать соответствующую утилиту на ПК и ноутбуках.

Особенности редактора

До 2014 года приходилось пользоваться текстовым редактором IDE Eclipse, который имеет дополнение в виде плагина ADT. Можно проводить интеграцию СДК с NetBeans IDE и IntelliJ IDEA.

В 2015 году на передовую вышел комплект разработки под названием Android Studio (он создан Google через технологии IDE IntelliJ). Именно этот редактор стал выступать в качестве основного.

К концу 2015 ADT стал в работе разрабов выступать в качестве устаревшего. С тех пор Android Studio от Google – это основная среда разработки приложений. Здесь предусматривается использование посторонних текстовых редакторов для обеспечения Java и HTML файлов. Можно задействовать утилиты командной строки (для этого необходимо обеспечить Java Development Kit и Apache). Есть софт управления подключенными Андроид устройствами для того, чтобы перезагружать и устанавливать ПО: fastboot и adb.

Инструкция по использованию

Вопрос о том, как у SDK Android пользоваться основным функционалом, возникает преимущественно у новичков. Работать с SDK Manager не составит никакого труда. Представить процедуру можно так:

  1. Ознакомиться с системными требованиями СДК.
  2. Убедиться, что используемое устройство соответствует выдвинутым требованиям.
  3. Установить на ПК комплект разработчика – JDK.
  4. Устанавливаем дополнительный инструментарий в виде плагинов ADT Eclipse и ISE.
  5. Запустить утилиту как обычное приложение.

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

Инициализация

Инструкция по тому, как проходит установка software, представлена далее. На нее можно опираться, чтобы начать работу со средой разработки от компании Google – упрощенный SDK Manager:

  • Загрузить в удобную папку файл с инициализатором СДК.
  • Распаковать и перенести Мастер Установки в root зону.
  • Перейти в нужный раздел и кликнуть дважды по инициализатору.
  • Щелкнуть по шестому пункту Android SDK Platform.
  • Переключиться в отладку драйверов (Google USB Driver package). Здесь нужно установить документ последнего пункта revision 4.
  • Выбрать Package, revision 4. Здесь предстоит инициализировать файл последнего пункта.
  • Перейти в «Переменные среды». Для этого рекомендуется использовать поисковую строчку.
  • Щелкнуть по надписи «Путь». Раздел расположен в нижней части.
  • В закладке Value прописать операцию и подтвердить:

  • Настроить на устройстве Android соединение с ПК через кабель.
  • Найти в сети подходящие драйверы и плагины.
  • В командном центре компьютера прописать adb devices. Если поиск успешен, значит, инициализация удалась. В противном случае предстоит обновить драйверы и попытаться снова.

Это – краткое руководство по Андроид Google СДК, которое поможет начать использование среды. Теперь, когда основной процесс позади, можно запустить ПО и полноценно работать в нем.

Обновление

Иногда для полноценной работы ПО требуется обновление драйверов. Добиться этого можно путем скачивания последней версии Driver pack solutions. Она проведет операцию автоматически. Потребуется обновление SDK Tools.

Также можно осуществить операцию «кустарным» способом:

  1. Найти неопределенные устройства, среди которых есть ADB.
  2. Перейти в «Обновление ПО драйверов»-«Посмотреть»-«Выбор»-«Имеющиеся на диске»-«Просмотр».
  3. Перейти к выбору Android драйверов.
  4. Кликнуть по надписи Android ADB Interface.
  5. Закрыть всплывающее уведомление. Этот шаг необходим, если соответствующее окно появляется на экране.

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

Software Development Kit (SDK) is a collection of Software Development tools in one installable package. This SDK is also used with Android which helps to download the tools, the latest versions of Android. So, this Android SDK Tutorial will help your way in learning about the Android SDK.

  • What is the Android SDK?
  • How to install Android SDK?
  • Android SDK Features
  • SDK Tools
  • Android SDK manager

Let’s begin!

What is the Android SDK?

Every time Google releases a new version, the corresponding SDK is also released. In order to work with Android, the developers must download and install each version’s SDK for the particular device.

SDK Android-Android SDK Tutorial-Edureka

The Android SDK (Software Development Kit) is a set of development tools that are used to develop applications for the Android platform.

This SDK provides a selection of tools that are required to build Android applications and ensures the process goes as smoothly as possible. Whether you create an application using Java, Kotlin or C#, you need the SDK to get it to run on any Android device. You can also use an emulator in order to test the applications that you have built.

Nowadays, the Android SDK also comes bundled with Android Studio, the integrated development environment where the work gets done and many of the tools are now best accessed or managed. Discover how to create mobile apps that look and feel great on any platform with comprehensive Flutter Training.

Note: You can download the Android SDK independently.

Now, the next question is how to install Android SDK on your system.

How to install Android SDK?

Follow these steps in order to install the Android SDK.

Step 1: Install Android Studio on your system.

Step 2: When you get the Welcome page for Android Studio, click on the Configure and select SDK manager.

SDK Installation-Android SDK Tutorial-Edureka

OR

If you have already created a new project, you can simply go to Tools -> SDK Manager -> SDK Tools and install the required SDK files.

SDK- Android SDK Tutorial-Edureka

OR

You can just click on the Download Icon on the menubar.

SDK-Android SDK Tutorial-Edureka

Next, let’s see what are the different features of the Android SDK.

Android SDK Features

Android SDK has a lot of amazing features. I’ve tried noting down most of them. So, have a look!

  • Offline Mapping

SDK Features-EdurekaSDK helps in dynamically downloading the maps for more than 190 countries in over 60 languages. You can view these offline. Also dealing with the map styles and the touch gesture. This SDK also has the ability to render raster tiles and map objects interleaved within different map layers.

  • Dynamic Markers

Dynamic markers-Android SDK Tutorial-EdurekaIn the previous versions, you could not have moved the position without a fallback or re-adding the icon. But in the lastest edition, you can update the position of the icon dynamically.

  • Improvised API compatibility

With the latest release, it is much easier to migrate from the Google Maps Android API. This is another added advantage of using Android SDK in your program.

Now that you guys have understood the features, let’s move ahead and take a look at the SDK tools which play a major role in Android Development.

SDK Tools

Android SDK Tools is a component for the Android SDK. This includes a complete set of development and debugging tools for Android. SDK tools are also included with Android Studio.

Android comes up with the revised version every now and then the latest release is  SDK Tools, Revision 26.1.1 (September 2017)

In this release, they made a few changes. They are:

  • A command-line version of the APK Analyzer has been added in tools/bin/apkanalyzer. It offers the same features as the APK Analyzer in Android Studio and can be integrated into build/CI servers and scripts for tracking size regressions, generating reports, and many more.
  • ProGuard rules that are under the tools/proguard are no longer used by the Android Plugin for Gradle.

These change with each update.

SDK Tools-Edureka

SDK tools are generally platform-independent and they are required no matter which Android platform you are currently working on. There are a set of tools that get installed automatically when you install Android Studio. I’ve tried noting down a few of them:

 Tools

Description

Android

This tool lets you manage the AVD (Android Virtual Device), projects, and the installed components of the SDK.

Emulator

It lets you test your applications without using a physical device.

Proguard

This tool helps in shrinking, optimizing, and obscures your code by removing unused code.

ddms

It lets you debug your Android applications

Android Debug Bridge (Adb)

This is a versatile command-line tool that helps you communicate with an emulator instance or connected Android-powered device.

Now that you have understood the tools, let’s move ahead to the last topic of this article.

Android SDK manager

In order to download and install latest android APIs and development tools from the internet, Android helps us by having the Android SDK manager. This separates the APIs, tools and different platforms into different packages which you can download. Android SDK Manager comes with the Android SDK bundle. You can’t download it separately.

This brings us to the end of this ‘Android SDK Tutorial’ article. I hope you guys are clear about the topics discussed and know how to work with the Android SDK.

Now that you have gone through our Android SDK Tutorial blog, you can check out Edureka’s Android App Development Certification Training to quick-start your learning.

Have any queries? Don’t forget to mention them in the comments of this “Android SDK Tutorial” blog. We will get back to you.

Разработка под Android начинается с Android SDK (Software Development Kit). Хотя существует множество различных языков программирования и множество IDE (интегрированных сред разработки), которые вы можете использовать для создания приложения, SDK остается неизменным.

Читать дальше: Учебник по Java для начинающих

SDK предоставляет набор инструментов, необходимых для создания приложений Android или обеспечения максимально плавного выполнения процесса. Независимо от того, создаете ли вы приложение на Java, Kotlin или C #, вам понадобится SDK, чтобы запустить его на устройстве Android и получить доступ к уникальным функциям ОС. Вы также сможете использовать эмулятор для тестирования созданных вами приложений, мониторинга своего устройства и выполнения множества других действий. В наши дни Android SDK также поставляется в комплекте с Android Studio, интегрированной средой разработки, в которой выполняется работа, и многие инструменты теперь лучше доступны или управляются. Вы можете загрузить SDK самостоятельно, если вам так больше нравится.

Хотя существует множество различных языков программирования и множество IDE, которые вы можете использовать для создания приложения, SDK является постоянным

Итак, все, что вам действительно нужно знать, это то, что вам нужен Android SDK. Настройка с помощью SDK должна быть первым учебным курсом по разработке Android, который вы пройдете (обратите внимание, что вам также понадобится Java Development Kit). Но есть еще кое-что, и использование всех инструментов разработки в полной мере и точное знание того, как работает SDK, приведет к созданию лучших приложений.

Анатомия Android SDK

Android SDK можно разбить на несколько компонентов. Это включает:

  • Платформа-инструменты
  • Строить-инструменты
  • SDK-инструменты
  • Мост отладки Android (ADB)
  • Эмулятор Android

Возможно, наиболее важные части этого пакета находятся в SDKtools. Эти инструменты понадобятся вам независимо от того, на какую версию Android вы ориентируетесь. Это то, что на самом деле создаст APK – превратит вашу Java-программу в Android-приложение, которое можно запустить на телефоне. К ним относятся ряд инструментов сборки, инструментов отладки и графических инструментов. Примером является DDMS, который позволяет нам использовать Android Device Monitor для проверки состояния Android-устройства.

Руководство по Android SDK для начинающих - что вам нужно знать

Инструменты сборки когда-то относились к той же категории, что и инструменты платформы, но с тех пор были разделены, чтобы их можно было обновлять отдельно. Как следует из названия, они также необходимы для создания ваших приложений для Android. Это включает, например, инструмент zipalign, который оптимизирует приложение для использования минимального объема памяти при запуске до генерации окончательного APK, и apksigner, который подписывает APK (сюрприз!) Для последующей проверки.

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

Читать дальше:  Анатомия приложения: введение в жизненные циклы действий

Android Debug Bridge (ADB) это программа, которая позволяет вам общаться с любым Android устройства. Он полагается на инструменты платформы, чтобы понять версию Android, которая используется на указанном устройстве, и, следовательно, он включен в пакет инструментов платформы. Вы можете использовать ADB для доступа к инструментам оболочки, таким как logcat, для запроса идентификатора вашего устройства или даже для установки приложений.

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

Руководство по Android SDK для начинающих - что вам нужно знать

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

Связанный – Как включить параметры разработчика

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

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

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

Использование диспетчера SDK

Хотя Android Studio обычно сообщает вам, когда вам нужно что-то обновить, вы также можете управлять обновлениями SDK вручную через диспетчер. Вы найдете это в Android Studio, если перейдете в Инструменты – Android – Диспетчер SDK. Вы увидите, что здесь есть три вкладки для платформ SDK, инструментов SDK и сайтов обновления SDK.

Руководство по Android SDK для начинающих - что вам нужно знать

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

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

Вы также найдете AVD Manager в разделе Tools – Android – AVD Manager. Это позволяет создавать собственные эмуляторы. Вы выберете размер устройства и некоторые другие характеристики, и вам будет предложено загрузить необходимый образ системы x86, если он еще не установлен.

Руководство по Android SDK для начинающих - что вам нужно знать

Использование монитора устройств Android

Android Device Monitor инкапсулирует DDMS и находится в разделе – как вы уже догадались – Инструменты – Android – DDMS. Это работает как с эмулятором, так и с подключенным устройством и будет немного глубже отслеживать поведение вашего Android-устройства и приложения.

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

Использование ADB немного отличается. Для этого вам нужно будет найти папку установки Android SDK и перейти в каталог инструментов платформы. В Windows удерживайте нажатой клавишу Shift и щелкните правой кнопкой мыши в любом месте папки, чтобы открыть командную строку. На Mac просто откройте Терминал из Launchpad (обычно находится в папке Other).

Руководство по Android SDK для начинающих - что вам нужно знать

Теперь вы можете использовать ряд команд. Например, если вы наберете «adb devices», вы получите список подключенных устройств Android вместе с их идентификаторами устройств. Введите «adb install [options] package-name», и вы сможете удаленно установить APK. Вы можете найти список команд ADB здесь.

Доступ к документации

Ищете конкретное руководство по разработке под Android? Вы можете найти целый подкаталог в папке SDK под названием «Docs», и это даст вам доступ к некоторой полезной информации. Однако по большей части вам лучше посетить developer.android.com.

Было время, когда Android SDK также поставлялся в комплекте с набором полезных примеров проектов. Сегодня это уже не так, но вы можете найти их, открыв Android Studio и перейдя в File – New – Import Sample.

Независимое использование SDK

Хотя Android SDK и Android Studio тесно связаны, вы не всегда захотите использовать их вместе. Вы можете использовать другую IDE (интегрированную среду разработки), например, если вы хотите упростить процесс создания 3D-игры (в этом случае вы можете использовать Unity или Unreal) или если вас интересует кроссплатформенность. мобильная разработка (в этом случае вы можете использовать Xamarin).

В любом случае вам нужно будет показать выбранную IDE, где находится SDK, обычно путем вставки пути куда-нибудь. Вы также можете найти расположение Android SDK в Android Studio на случай, если вам когда-нибудь понадобится его переместить, или просто для справки. Просто зайдите в Файл – Структура проекта. Вы также найдете расположение JDK и Android NDK.

Руководство по Android SDK для начинающих - что вам нужно знать

Вы выберете местоположение SDK при его установке. Если вы оставили этот параметр по умолчанию, то есть вероятность, что он может находиться в каталоге AppData Local. Имейте в виду, что эта папка скрыта в Windows по умолчанию, поэтому вам может быть сложно ее найти.

NDK (Native Development Kit) позволяет создавать приложения с использованием собственных языков, таких как C и C ++. Это дает вам доступ к определенным библиотекам и может помочь выжать немного больше производительности из устройства, что делает его полезным, среди прочего, для разработки игр. NDK можно загрузить через диспетчер SDK, и вы можете узнать о нем подробнее здесь.

По теме: Android Game SDK: что это такое и как использовать его в своих приложениях

Как уже упоминалось, если вас интересует только SDK, вы можете загрузить его самостоятельно, посетив страницу загрузок и затем выбрав включение sdkmanager. Это позволит вам обновить SDK через командную строку. Также есть способы получить доступ к AVD Manager без Android Studio. Но для подавляющего большинства пользователей имеет смысл установить полный пакет и пользоваться графическим интерфейсом и другими удобствами, даже если вы собираетесь использовать другую IDE для разработки.

Руководство по Android SDK для начинающих - что вам нужно знать

И это действительно хорошие новости: разработка Android теперь проще, чем когда-либо прежде, благодаря стремительным шагам, которые Google сделал с Android Studio. Было время, когда все настраивать было значительно сложнее. Сейчас самое время начать разработку Android!

Источник записи: https://www.androidauthority.com

Время на прочтение
19 мин

Количество просмотров 72K

Нам бы хотелось поделиться с вами опытом, который мы, в Futurice, получили, разрабатывая Android-приложения. Надеемся, эти советы уберегут вас от создания собственных велосипедов. Если вы интересуетесь iOS или Windows Phone разработкой, обратите внимание на соответствующие документы на нашем сайте.

Коротко о главном

  • Используйте систему сборки Gradle и стандартную структуру проекта
  • Храните пароли и другие важные данные в файле gradle.properties
  • Не пишите свой собственный HTTP-клиент, лучше используйте библиотеки Volley или OkHttp
  • Используйте библиотеку Jackson для парсинга данных в формате JSON
  • Избегайте использовать Guava и вообще экономьте — старайтесь не превысить ограничение в 65k методов
  • Используйте фрагменты для отображение пользовательского интерфейса
  • Используйте activity только для управления фрагментами
  • XML-разметка — это код, пишите его аккуратно
  • Используйте стили, чтобы не дублировать атрибуты в XML-разметке
  • Лучше несколько файлов со стилями, чем один здоровенный, который будет сложно читать
  • Старайтесь избегать дублей в colors.xml и сделать его покороче — в основном для хранения цветовой палитры
  • То же касается dimens.xml, определите там только основные константы
  • Не делайте слишком глубокую иерархию элементов ViewGroup
  • Избегайте отработки на клиентской стороне при использовании WebView, будьте внимательны к возможным утечкам
  • Используйте Robolectric для unit-тестирования, а Robotium для тестирования UI
  • Используйте Genymotion в качестве эмулятора
  • Всегда используйте ProGuard или DexGuard

Android SDK

Поместите ваш Android SDK в домашнюю директорию или другое место, не связанное с приложением. Некоторые IDE ставятся вместе с SDK, и могут устанавливать его в свою директорию. Это может помешать при обновлении (или переустановке) IDE, или когда вы перейдёте на другую IDE. Избегайте установки SDK в другую системную директорию, поскольку это может потребовать административных привилегий, если ваша IDE запускается с правами пользователя, а не администратора.

Система сборки

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

  • Создавать различные варианты и сборки вашего приложения
  • Создавать простые задачи в виде скрипта
  • Управлять зависимостями и автоматически загружать их
  • Настраивать хранилище ключей
  • И многие другие полезные вещи

Также отметим, что Gradle plugin для Android активно развивается Google как новый стандарт систем сборки.

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

Есть два распространённых варианта: старая Ant & Eclipse ADT структура проекта — либо новая Gradle & Android Studio. Лучше выбрать второй вариант. Если ваш проект использует старую структуру, рекомендуем её портировать.

Старая структура

old-structure
├─ assets
├─ libs
├─ res
├─ src
│  └─ com/futurice/project
├─ AndroidManifest.xml
├─ build.gradle
├─ project.properties
└─ proguard-rules.pro

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

new-structure
├─ library-foobar
├─ app
│  ├─ libs
│  ├─ src
│  │  ├─ androidTest
│  │  │  └─ java
│  │  │     └─ com/futurice/project
│  │  └─ main
│  │     ├─ java
│  │     │  └─ com/futurice/project
│  │     ├─ res
│  │     └─ AndroidManifest.xml
│  ├─ build.gradle
│  └─ proguard-rules.pro
├─ build.gradle
└─ settings.gradle

Основное отличие заключается в том, что новая структура явным образом разделяет ‘наборы ресурсов’ (main, androidTest), это одна из концепций Gradle. Вы можете, к примеру, добавить папки ‘paid’ и ‘free’ в вашу папку ‘src’, и они будут содержать исходный код для платной и бесплатной версий вашего приложения.

Наличие папки приложения app на верхнем уровне иерархии помогает отделить его от библиотек (например, library-foobar), которые приложение использует. Файл settings.gradle в таком случае хранит список этих библиотечных проектов, на которые может ссылаться app/build.gradle.

Конфигурация Gradle

Общая структура. Следуйте инструкциям Google для Gradle for Android.

Маленькие задачи сборки. В отличие от других скриптовых языков (shell, Python, Perl, и т.д.), вы можете создавать задачи сборки в Gradle. Подробности смотрите в документации Gradle.

Пароли. В файле вашего приложения build.gradle вам нужно определить параметры подписи (signingConfigs) для релизной сборки. Следует избегать такой ошибки:

Не делайте так. Эта информация появится в системе контроля версий.

signingConfigs {
    release {
        storeFile file("myapp.keystore")
        storePassword "password123"
        keyAlias "thekey"
        keyPassword "password789"
    }
}

Правильнее будет создать файл gradle.properties, который не будет добавлен под управление системы контроля версий:

KEYSTORE_PASSWORD=password123
KEY_PASSWORD=password789

Эти данные автоматически импортируются в gradle, и вы сможете использовать их в build.gradle следующим образом:

signingConfigs {
    release {
        try {
            storeFile file("myapp.keystore")
            storePassword KEYSTORE_PASSWORD
            keyAlias "thekey"
            keyPassword KEY_PASSWORD
        }
        catch (ex) {
            throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
        }
    }
}

Старайтесь использовать зависимости Maven, а не импортировать jar-файлы. Если вы включаете внешние jar-файлы в ваш проект, они будут законсервированы в той версии, при которой происходил импорт, например 2.1.1. Ручная загрузка jar-файлов и их обновление — достаточно трудоёмкая операция, и Maven может отлично решить эту проблему за нас, включив результат в сборку. Например:

dependencies {
    compile 'com.squareup.okhttp:okhttp:2.2.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
}

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

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

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

Самая популярная IDE на данный момент — Android Studio, поскольку она разрабатывается Google, интегрирована с Gradle, использует новую структуру проекта по умолчанию, находится в состоянии стабильной сборки и заточена под Android-разработку.

Вы можете использовать Eclipse ADT, если он вам нравится, но его придётся настраивать, поскольку он по умолчанию работает со старой структурой проекта и системой сборки Ant. Вы можете даже использовать текстовые редакторы Vim, Sublime Text, или Emacs. В этом случае вам придётся использовать Gradle и adb из командной строки. Если вам не удастся подружить Eclipse с Gradle, вам тоже придётся использовать для сборки командную строку. Учитывая то, что ADT plugin недавно был объявлен устаревшим, лучше просто перейти на Android Studio.

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

Библиотеки

Jackson — библиотека Java для конвертации объектов в JSON и наоборот. Gson — самый распространённый способ решения этой задачи, но по нашим наблюдениям Jackson более производителен, поскольку он поддерживает альтернативные способы обработки JSON: потоковый, модель дерева в оперативной памяти, и традиционную связь форматов JSON-POJO. Имейте в виду, однако, что Jackson по размеру больше чем GSON, так что возможно, вы предпочтёте GSON для того чтобы избежать ограничения в 65k методов. Другие варианты: Json-smart и Boon JSON.

Работа с сетью, кэширование и картинки. Есть пара проверенных опытом решений для производительных запросов к backend-серверам, которые вам стоит рассмотреть перед разработкой вашего собственного клиента. Используйте Volley или Retrofit. Volley к тому же предоставляет средства загрузки и кэширования изображений. Если вы выберете Retrofit, возьмите Picasso для загрузки или кэширования изображений, и OkHttp для эффективных HTTP-запросов. Все эти библиотеки — Retrofit, Picasso и OkHttp разработаны одной компанией, так что они отлично дополняют друг друга. OkHttp также может быть использован с Volley.

RxJava — библиотека для Reactive Programming, другими словами, для обработки асинхронных событий. Это мощная и многообещающая концепция, которая может смутить своей необычностью. Мы рекомендуем хорошо подумать, перед тем как использовать эту библиотеку как фундамент архитектуры всего приложения. Есть проекты, созданные с использованием RxJava, и вы можете обратиться за помощью к однуму из этих людей: Timo Tuominen, Olli Salonen, Andre Medeiros, Mark Voit, Antti Lammi, Vera Izrailit, Juha Ristolainen. Мы писали несколько статей в наш блог по этому поводу: [1], [2], [3], [4].

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

проклянёт вас

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

Retrolambda — это библиотека Java для использования лямбда-выражений в Android и других платформах с JDK ниже 8-ой версии. Она поможет вам сделать ваш код компактным и хорошо читаемым, особенно если вы используете функциональный стиль, например с RxJava. Для её использования, установите JDK8, укажите его в пути к SDK в Android Studio в диалоге описания структуры проекта, и установите переменные окружения JAVA8_HOME и JAVA7_HOME, после чего в корневом build.gradle проекта напишите:

dependencies {
    classpath 'me.tatarka:gradle-retrolambda:2.4.1'
}

и в файле build.gradle каждого модуля добавьте

apply plugin: 'retrolambda'

android {
    compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

retrolambda {
    jdk System.getenv("JAVA8_HOME")
    oldJdk System.getenv("JAVA7_HOME")
    javaVersion JavaVersion.VERSION_1_7
}

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

  • Любой интерфейс с одним методом совместим с лямбда-выражениями и может быть упрощён в написании
  • Если вам непонятно, как описать параметры, напишите обычный внутренний класс и позвольте Android Studio транслировать его в лямбда-выражение.

Помните о ограничении dex-файла на количество методов, и избегайте использования большого количества библиотек. Приложения Android, при упаковке в dex-файл, имеют жёсткое ограничение в 65536 ссылочных методов [1] [2] [3]. При превышении лимита, вы получите фатальную ошибку компиляции. Так что советуем использовать минимально возможное количество библиотек, и обратите внимание на утилиту для подсчёта количества методов в dex-файле. Она поможет определить, какой набор библиотек можно использовать, не превышая лимит. Будьте особенно осторожны при использовании библиотеки Guava, которая содержит более 13k методов.

Activity и фрагменты

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

Исходя из истории развития Android API, вы можете рассматривать фрагменты, как часть пользовательского интерфейса экрана. Другими словами, фрагменты обычно относятся к UI. Activity обычно рассматриваются как контроллеры, они особенно важны с точки зрения их жизненного цикла и для управлением состояниями. Однако, может быть и по-другому: activity могут исполнять функции, связанные с UI (переход состояний между экранами), а фрагменты могут быть использованы только как контроллеры. Мы бы советовали принимать взвешенное решение, имея в виду, что архитектура, базирующаяся на использовании только фрагментов, или только activity, или только view, может иметь ряд недостатков. Вот пара советов, на что стоит обратить внимание, но отнеситесь к ним критично:

  • Избегайте интенсивного использования вложенных фрагментов (nested fragments), из-за возможности появления ошибок типа «матрёшка». Используйте вложенные фрагменты, только если это имеет смысл (например, фрагменты в прокручиваемом горизонтально ViewPager внутри фрагмента-экрана) или если вы хорошо понимаете, что делаете.
  • Не помещайте слишком много кода в activity. Если это возможно, используйте их как лёгкие контейнеры, существующие в вашем приложении в основном для управления жизненным циклом и других важных функций интерфейса Android API. Activity с одним фрагментом лучше, чем просто activity — выносите код, относящийся к пользовательскому интерфейсу во фрагмент. Это сделает возможным его повторное использование в случае, если вам потребуется поместить его в разметку с табами, или на экран планшета с несколькими фрагментами. Избегайте создание activity без связанных фрагментов, кроме случаев, когда вы делаете это специально.
  • Не стоит злоупотреблять API уровня Android, например, слепо полагаясь на механизм Intent для внутренней работы приложения. Вы можете повлиять на операционную систему Android или другие приложения, вызвав ошибки или зависания. Например, известно, что если ваше приложение использует механизм Intent для внутренней коммуникации между пакетами приложения, вы можете вызвать зависание в несколько секунд, если приложение было открыто сразу после загрузки операционной системы.

Архитектура пакетов Java

Архитектура Java для Android-приложений напоминает шаблон Model-View-Controller. В Android, фрагменты и activity представляют классы Conroller’а. С другой стороны, они являются частью пользовательского интерфейса, так что они также являются частью View.

Поэтому сложно отнести фрагменты (или activity) однозначно к Controller либо View. Лучше поместить их в собственный пакет fragments. Activity в этом случае можно оставить в пакете верхнего уровня. Если у вас больше двух-трёх activity, можно вынести их также в отдельный пакет.

С другой стороны, архитектура может выглядеть как обычный MVC, с пакетом models, содержащим объекты POJOs, генерируемые с помощью парсера JSON из ответов API, и пакетом views, содержащим авторские View, оповещения, классы View связанные с action bar, виджеты, и т.д. Адаптеры — это связывающее звено, находящееся между data и views. Учитывая то, что они обычно используют View, экспортируемые через метод getView(), вы можете включить адаптеры как дочерний пакет adapters во views.

Некоторые классы controller используются по всему приложению и работают напрямую с операционной системой Android. Их можно поместить в пакет managers. Различные классы для обработки данных, такие как «DateUtils», можно хранить в пакете utils. Классы, отвечающие за взаимодействие с backend, находятся в пакете network.

Все вышеперечисленные пакеты, в порядке от backend до пользовательского интерфейса:

com.futurice.project
├─ network
├─ models
├─ managers
├─ utils
├─ fragments
└─ views
   ├─ adapters
   ├─ actionbar
   ├─ widgets
   └─ notifications

Ресурсы

Именование. Следуйте конвенции об использовании типа объекта в качестве префикса имени файла, как в type_foo_bar.xml. Примеры: fragment_contact_details.xml, view_primary_button.xml, activity_main.xml.

Структура XML разметки. Если вы не уверены, как форматировать XML разметки, следующие советы могут помочь.

  • Один атрибут на строку, с отступом в 4 пробела
  • android:id всегда находится на первом месте
  • android:layout_**** атрибуты в начале
  • атрибут style на последнем месте
  • Закрывающий тэг /> находится на своей строчке, для облегчения упорядочения и добавления атрибутов.
  • Вместо написания вручную android:text, вы можете использовать Визуальный редактор атрибутов для Android Studio.

Пример

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <TextView
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="@string/name"
        style="@style/FancyText"
        />

    <include layout="@layout/reusable_part" />

</LinearLayout>

Как показывает опыт, атрибут android:layout_**** должен быть определён в XML разметки, а остальные атрибуты android:**** должны быть определены в XML стилей. У этого правила есть исключения, но в целом оно работает хорошо. Смысл в том, чтобы хранить только атрибуты разметки (позиция, поля, размер) и атрибуты контента в файле разметки, а детали отображения визуальных компонентов (цвета, отступы, шрифты) должны быть в файлах стилей.

Исключения:

  • android:id конечно должен быть в файле разметки
  • android:orientation для объекта LinearLayout обычно имеет смысл в файле разметки
  • android:text должен быть в файле разметки, потому что он описывает контент
  • Иногда имеет смысл определить в общем стиле android:layout_width и android:layout_height, но по умолчанию эти атрибуты должны находиться в файле разметки

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

<style name="ContentText">
    <item name="android:textSize">@dimen/font_normal</item>
    <item name="android:textColor">@color/basic_black</item>
</style>

Применимо к TextView:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/price"
    style="@style/ContentText"
    />

Вам наверняка придётся сделать то же самое для кнопок, но не останавливайтесь на этом. Развивайте эти концепцию и выносите все группы повторяющихся атрибутов android:****, относящихся к определённым видам визуальных компонент, в стили.

Разделяйте большой файл со стилями на несколько более маленьких. Нет необходимости хранить все стили в одном файле styles.xml. Android SDK по умолчанию поддерживает различные имена файлов, так что нет никаких проблем с именованием файлов со стилями — они всего лишь должны содержать XML-тэг «style». Так что вы можете создать файлы styles.xml, styles_home.xml, styles_item_details.xml, styles_forms.xml. В отличие от имён директорий, которые важны для системы сборки, имена файлов в res/values могут быть произвольными.

colors.xml это цветовая палитра. Не помещайте в colors.xml ничего, кроме связи названия цвета с его RGBA значением. Не используйте его для определения значений RGBA для разных типов кнопок.

Так неправильно

<resources>
    <color name="button_foreground">#FFFFFF</color>
    <color name="button_background">#2A91BD</color>
    <color name="comment_background_inactive">#5F5F5F</color>
    <color name="comment_background_active">#939393</color>
    <color name="comment_foreground">#FFFFFF</color>
    <color name="comment_foreground_important">#FF9D2F</color>
    ...
    <color name="comment_shadow">#323232</color>

При таком подходе очень просто создать дублирующие значений RGBA, да и цвета изменять гораздо сложнее. Кроме того, эти цвета относятся к определённому контенту, «button» или «comment», и должны быть описаны в стиле кнопки, а не в colors.xml.

А вот так — правильно

<resources>

    <!-- grayscale -->
    <color name="white"     >#FFFFFF</color>
    <color name="gray_light">#DBDBDB</color>
    <color name="gray"      >#939393</color>
    <color name="gray_dark" >#5F5F5F</color>
    <color name="black"     >#323232</color>

    <!-- basic colors -->
    <color name="green">#27D34D</color>
    <color name="blue">#2A91BD</color>
    <color name="orange">#FF9D2F</color>
    <color name="red">#FF432F</color>

</resources>

Цветовую палитру определяет дизайнер приложения. Цвета не обязательно называть «green», «blue», и т.д. Названия вроде «brand_primary», «brand_secondary», «brand_negative» тоже вполне приемлемы. Такое форматирование цветов делает простым их изменение или рефакторинг, а также позволяет легко понять, сколько цветов используется. Для создания красивого пользовательского интерфейса, важно по возможности уменьшить количество используемых цветов.

Оформите dimens.xml как colors.xml. По той же причине, стоит так же определить «палитру» типичных размеров объектов и шрифтов.

Пример хорошей структуры dimens.xml

<resources>

    <!-- font sizes -->
    <dimen name="font_larger">22sp</dimen>
    <dimen name="font_large">18sp</dimen>
    <dimen name="font_normal">15sp</dimen>
    <dimen name="font_small">12sp</dimen>

    <!-- typical spacing between two views -->
    <dimen name="spacing_huge">40dp</dimen>
    <dimen name="spacing_large">24dp</dimen>
    <dimen name="spacing_normal">14dp</dimen>
    <dimen name="spacing_small">10dp</dimen>
    <dimen name="spacing_tiny">4dp</dimen>

    <!-- typical sizes of views -->
    <dimen name="button_height_tall">60dp</dimen>
    <dimen name="button_height_normal">40dp</dimen>
    <dimen name="button_height_short">32dp</dimen>

</resources>

Рекомендуем не писать числовые значения в повторяющихся атрибутах разметки (полях и отступах), а использовать константы вида spacing_**** (примерно так, как вы обычно делаете для локализиции строковых значений).
Это сделает разметку понятнее и позволит проще её изменять.

strings.xml

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

Плохой пример

<string name="network_error">Network error</string>
<string name="call_failed">Call failed</string>
<string name="map_failed">Map loading failed</string>

Хороший пример

<string name="error.message.network">Network error</string>
<string name="error.message.call">Call failed</string>
<string name="error.message.map">Map loading failed</string>

Не пишите строковые значения строчными буквами. Вы можете использовать обычные преобразования текста (в том числе, преобразование первой буквы в прописную). Если потребуется написать всю строку строчными буквами — используйте атрибут textAllCaps объекта TextView.

Плохой пример

<string name="error.message.call">CALL FAILED</string>

Хороший пример

<string name="error.message.call">Call failed</string>

Избегайте глубокой иерархии view. Иногда у вас будет соблазн добавить ещё один LinearLayout, для решения вашей задачи описания view.

В результате может получится примерно следующее

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <RelativeLayout
        ...
        >

        <LinearLayout
            ...
            >

            <LinearLayout
                ...
                >

                <LinearLayout
                    ...
                    >
                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

    </RelativeLayout>

</LinearLayout>

Даже если вы не видите явно выросшую вложенность в файле разметки, она может возникнуть когда вы включаете (в Java) view в другие views.

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

Так что постарайтесь сделать вашу иерархию view как можно более плоской: посмотрите как использовать RelativeLayout, как оптимизировать вашу разметку и использовать

тэг .

Будьте внимательны при использовании WebView. Когда вам нужно показать web-страницу, например новостную статью, избегайте исполнения кода на клиентской стороне для формирования HTML, лучше попросите backend-программистов предоставить «чистый» HTML. WebView также могут вызывать утечку памяти при сохранении ссылки на Activity, к которой привязаны вместа ApplicationContext. Избегайте использования WebView для создания простого текста или кнопки, лучше используйте объекты TextView или Button.

Фреймворки для тестирования

Тестовый фреймворк Android SDK ещё находится в недоделанном состоянии (это они про

Espresso 2.1 ?! — прим. пер.), особенно это касается тестов пользовательского интерфейса. Android Gradle по умолчанию содержит задачу connectedAndroidTest, которая запускает созданные вами тесты JUnit, используя расширение JUnit с утилитами Android. Это обозначает, что вам придётся запускать тесты на устройстве или эмуляторе. Используйте официальные инструкции [1] [2] для тестирования.

Используйте Robolectric только для unit-тестов, не для UI. Этот фреймворк предоставляет возможность для запуска тестов без устройства, для увеличения скорости их выполнения, и идеально подходит для unit-тестов моделей данных и view. Однако, пользовательский интерфейс Robolectric тестирует не полностью и неточно. У вас будут проблемы при тестировании элементов пользовательского интерфейса, относящихся к анимациям, диалогам, и т.д., и процесс тестирования будет проходить «с закрытыми глазами» (не видя экрана).

Robotium делает тестирование пользовательского интерфейса простым. Вы можете запускать UI-тесты без Robotium, но он очень полезен за счёт утилит для анализа view и контроля экрана. Сценарии тестирования будут выглядеть совсем просто:

solo.sendKey(Solo.MENU);
solo.clickOnText("More"); // searches for the first occurence of "More" and clicks on it
solo.clickOnText("Preferences");
solo.clickOnText("Edit File Extensions");
Assert.assertTrue(solo.searchText("rtf"));

Эмуляторы

Если вы занимаетесь Android-разработкой профессионально, купите лицензию на эмулятор Genymotion. Он работает быстрее, чем обычный AVD-эмулятор. Эмулятор Genymotion позволяет записать ролик, демонстрирующий работу вашего приложения, эмулирует различное качество сетевого соединения, сигналы GPS и многое другое. Он идеален для запуска тестов. У вас появится доступ к многим (хотя не ко всем) образам устройств с ОС Android, так что стоимость лицензии Genymotion гораздо дешевле, чем покупка множества устройств.

Подводные камни: Genymotion не позволяет использовать в приложении такие сервисы Google, как Google Play Store или Maps. И если вам понадобится протестировать функции API Samsung, вам придётся купить реальное устройство.

Конфигурация Proguard

ProGuard обычно используется в проектах Android для сжатия и обфускации кода.

Условия использования ProGuard зависят от настроек вашего проекта. Обычно вы настраиваете gradle использовать ProGuard для сборки релизной версии.

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

Чтобы указать, какой именно участок кода нуждается в обработке, вы должны отметить одну или несколько точек входа. Обычно это классы с основными методами, апплеты, мидлеты, активности, и т.д. Конфигурация по умолчанию, которую использует Android framework, находится по адресу SDK_HOME/tools/proguard/proguard-android.txt. Вы можете определить свои собственные правила для конфигурации ProGuard, поместив их в файл my-project/app/proguard-rules.pro, и они дополнят конфигурацию по умолчанию.

Самая распространённая проблема, связанная с ProGuard — падение приложения при запуске с ошибками ClassNotFoundException или NoSuchFieldException, даже если команда сборки проекта (например, assembleRelease) отработала без ошибок. Это может означать одну из двух вещей:

  • ProGuard удалил класс, enum, метод, поле или аннотацию, посчитав что она не нужна.
  • ProGuard переименовал класс, enum или поле, но оно вызывается с использованием его старого имени, в том числе через механизм Java reflection.

Проверьте файл app/build/outputs/proguard/release/usage.txt на предмет упоминания удалённого объекта. Если он был переименован, его имя есть в файле app/build/outputs/proguard/release/mapping.txt.

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

-keep class com.futurice.project.MyClass { *; }

Для защиты от переименования используйте опцию keepnames:

-keepnames class com.futurice.project.MyClass { *; }

Другие возможные модификации конфигурации ProGuard вы можете посмотреть в этом примере. Больше примеров конфигурации Proguard здесь.

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

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

DexGuard. Если вы хотите круто оптимизировать ваш код, и обфускировать его особым образом, попробуйте использовать DexGuard, коммерческий аналог ProGuard. Он может легко разделить Dex-файл на несколько для обхода ограничения в 65k методов.

Благодарности

Antti Lammi, Joni Karppinen, Peter Tackage, Timo Tuominen, Vera Izrailit, Vihtori Mäntylä, Mark Voit, Andre Medeiros, Paul Houghton и другим разработчикам Futurice за то, что они поделились своими знаниями в области Android.

Лицензия

Futurice Oy Creative Commons Attribution 4.0 International (CC BY 4.0)

Android SDK is a software development kit developed by Google for the Android platform. The Android SDK allows you to create Android apps, and you don’t need to be an expert to use it. In this tutorial, I’ll explain what the Android SDK is and how to get started with it. 

Android SDK comes bundled with Android Studio, Google’s official integrated development environment (IDE) for the Android operating system. You can learn about Android Studio and the Android App Development Kit in another of my articles.

In this post, we’ll look at:

  • What is the Android SDK?
  • How to install the Android SDK
  • What is the Android SDK Manager?
  • What are the components of the Android SDK?

What Is the Android SDK?

Android SDKAndroid SDKAndroid SDK

The Android SDK is a collection of software development tools and libraries required to develop Android applications. Every time Google releases a new version of Android or an update, a corresponding SDK is also released which developers must download and install. It is worth noting that you can also download and use the Android SDK independently of Android Studio, but typically you’ll be working through Android Studio for any Android development.

The Android SDK comprises all the tools necessary to code programs from scratch and even test them. These tools provide a smooth flow of the development process from developing and debugging, through to packaging. 

The Android SDK is compatible with Windows, macOS, and Linux, so you can develop on any of those platforms.

How to Install the Android SDK

The Android SDK is optimized for Android Studio, and hence to effectively reap its benefits, you will need to install Android Studio. Having the Android SDK managed from within Android Studio is easier since support for languages like Java, Kotlin, and C++ is handled automatically. Not only that, but updates to the Android SDK are handled automatically by Android Studio.

To install the Android SDK from within Android Studio, first start Android Studio.

  • From the Android Studio start page, select Configure > SDK Manager.

Configure SDKConfigure SDKConfigure SDK

  • If you already have Android Studio open, the SDK Manager icon is found on the top right corner, as shown below.

SDK Manager iconSDK Manager iconSDK Manager icon

Install the required Android SDK platform packages and developer tools. A good start is to install:

  • Android SDK Build-Tools
  • Android Emulator
  • Android SDK Platform-Tools
  • Android SDK Tools
  • Documentation for Android SDK

Install SDK packagesInstall SDK packagesInstall SDK packages

Click Apply, and Android Studio will install the selected tools and packages.

What Is the SDK Manager?

The Android SDK is composed of modular packages that you can download, install, and update separately using the Android SDK Manager. The SDK Manager helps to update new SDK releases and updates whenever a new Android platform is released. The SDK manager can be found in the top-right corner of the Android Studio screen, as shown below. 

SDK managerSDK managerSDK manager

All that is required to follow the instructions provided, and the updates will be immediately downloaded to your environment.

What Are the Components of the Android SDK?

The Android SDK consists of an emulator, development tools, sample projects with source code, and the required libraries to build Android applications. Let’s look at the key components one by one.

Android SDK Tools

Android SDK Tools is a component of the Android SDK. It includes a complete set of development and debugging tools for Android, and is included with Android Studio. The SDK Tools also consist of testing tools and other utilities required to develop an app.

SDK Build Tools

Build tools are required for building components for building the actual binaries for your Android app. Always ensure your build tools component is up to date by downloading the latest version in the Android SDK Manager.

SDK Platform-Tools

Android Platform-Tools are used to support the features for the current Android platform and are necessary for Android app development. These tools interface with the Android platform on the device you use for testing. They include: 

  • Android Debug Bridge (adb): This is a handy command-line tool that lets you communicate with a device. The adb command allows you to perform device actions, such as installing and debugging apps. It also provides access to a Unix shell that you can use to run a variety of commands on a device.
  • fastboot: This lets you flash a device with a new system image.
  • systrace: This tool helps collect and inspect timing information across all processes running on your device at the system level. It’s crucial for debugging app performance.

SDK Platform-Tools are backward compatible, so you need only one version of the SDK Platform-Tools.

SDK Platform

For each version of Android, there’s one SDK Platform available. These are numbered according to the Android version (e.g. Android 7 Nougat) and an API version (e.g. API Level 24). Before you build an Android app, you must specify an SDK Platform as your build target. Newer SDK Platform versions have more features for developers, but older devices may not be compatible with the newer platform versions.

Google APIs

Google provides a number of exclusive Google APIs to make developing your app easier. They also offer a system image for the emulator so you can test your app using the Google APIs.

Android Emulator

The Android Emulator is a QEMU-based device-emulation tool that simulates Android devices on your computer, allowing developers to test applications on different devices and Android API levels, without needing to have physical devices for each. The emulator comes with configurations for various Android phones, tablets, Wear OS, and Android TV devices.

The Android emulator provides almost all of the capabilities of a real Android device. You can perform the following activities:

  • simulate phone calls and text messages 
  • simulate different network speeds
  • specify the location of the device
  • simulate hardware sensors such as rotation 
  • access Google Play Store and much more

Often it is faster and easier to test your app with an emulator instead of using a physical device. 

Conclusion

In this post, we looked at some of the basics of the Android SDK. The Android SDK is the only way to develop for Android devices. Fortunately, it contains extensive documentation, tutorials, samples, best practice guidance, and an array of tools for many different development tasks. 

Premium Android App Templates From CodeCanyon

Android Studio comes with some default templates to help start an app, but these are very basic and provide minimal, generic functionality. 

CodeCanyon is an online marketplace that has hundreds of additional templates, which are way more feature-rich and domain-specific too. You can save days, even months, of effort by using one of them.

CodeCanyon mobile Android app template bestsellersCodeCanyon mobile Android app template bestsellersCodeCanyon mobile Android app template bestsellers

An Android app template is a great way to jump-start your app project or to learn some new skills by exploring the source code of a professionally made app. 

Take a look at some of our roundups of the best Android app templates: 

Did you find this post useful?

Esther Vaati

Software developer

Software developer and content creator. Student of Life | #Pythonist | Loves to code and write Tutorials

Понравилась статья? Поделить с друзьями:
  • Амбробене таблетки от кашля инструкция по применению для детей
  • Капли простодин инструкция по применению цена отзывы
  • Гефал белмед суспензия инструкция по применению взрослым от чего назначают
  • Должностная инструкция специалиста по архивной работе
  • Стиральная машина zanussi zws 3101 инструкция