Оглавление
1.1 Операционная система Android
Глава 1. Система Android
Операционная система Android появилась в 2003 году, как детище одноименной компании Android Inc и затем была приобретена компанией Google LLC в 2005 году. Первое устройство под управлением Android появилось в 2008 году. С тех пор прошло много обновлений ОС и последним на 2023 год является 13 версия.
С момента первой версии рыночная доля ОС Android среди мобильных операционных систем постоянно растет и по состоянию на 2023 год занимает 70,88% Рынка. У различных источников цифры незначительно отличаются – но одно остается неоспоримым – успех ОС Android неоспорим. Первое место частично обусловлено тем, что владельцем ОС является Google LLC, а также политикой компании в плане сопровождения, выпуска новых версий, адаптированностью под множество устройств – от смартфонов и часов, до планшетов и автомобилей. Даже на очках дополненной реальности Google Glass стояла отдельная версия ОС Android.
1.1 Операционная система Android
Ядро ОС Android основано на ядре Linux, в которое включены только необходимые модули для работы с переносной периферией и с упором на поддержку многочисленных мобильных устройств. Это ядро предоставляет все драйверы нижнего уровня, необходимые для работы с аппаратным обеспечением, средой выполнения программ и низкоуровневыми каналами данных. Помимо ядра Вы найдете среду выполнения Android(ART) и пару низкоуровневых библиотек, написанных на языке C. Библиотеки служат связующим звеном между ядром и библиотеками приложений. Android Runtime – это среда, где выполняются все Android программы
Вам, как разработчику, вряд ли понадобятся эти знания о том, как работают низкоуровневые библиотеки и среда выполнения Android, но Вам необходимо знать как програмно обращаться к аудио подсистеме, системным поставщикам данных или камере.
Над низкоуровневыми библиотеками и средой выполнения Android находится Фреймворк Приложений, который определяет архитектуру любого приложения, которое работает под управлением ОС Android. Фреймворк имеет дело с Активностями, UI виджетами, уведомлениями, ресурсами, поставщиками данных, сервисами и т.д. Знание низкоуровневых библиотек не является обязательным для Android программиста – оно повышает Ваш уровень как разработчика, в то время как знание Android фреймворка является обязательным для написание любых, даже самых простых приложений вроде Hello, World.
И на самом верху, Вы найдете пользовательские приложения, такие как браузер, контакты, смс мессенджер и т.д.
Вы, как разработчик, будете создавать Android приложения, используя языки Kotlin, Java/ C/C++. А также Вы будете использовать Фреймворк Приложений и библиотеки для доступа к оборудованию и самой ОС Android. Если Вы планируете включить в свое приложение код, который написан на языках C/C++, то Вам понадобится Native Development Kit (NDK) – пакет нативной разработки, который входит в состав Android SDK. Использование NDK имеет смысл в случае добавления и портирования имеющегося отлаженного кода, так как отладка и тестирование нативного кода в Android SDK займет гораздо больше времени, чем написание аналогичного кода на Kotlin/ Java. В данноq книге разговор ведется только вокруг использования языков Kotlin и Java.
1.2 Система разработки
Операционная система, работающая на мобильных устройства – это несомненно важная часть истории человечества – но Вам как разработчику необходим инструмент для создания Android приложений, фреймворк или некая абстрактная система. Для разработки приложений можно использовать несколько IDE – NetBeans, Eclipse или Android Studio. Мы остановим свой взгляд на Android Studio – потому что это официально разрабатываемая компанией Google IDE для разработки Android приложений на базе IDE JetBrains.
Пока Вы скачиваете, устанавливаете Android Studio с официального сайта, а также скачиваете и устанавливаете пакет SDK, поговорим о виртуальных устройствах – Важной части разработки, тестирования и отладки Ваших приложений.
1.2.1 Android Studio
IDE Android Studio – это специальная среда разработки для создания и запуска Android приложений. Главное окно IDE с запущенным эмулятором показано на рисунке 1-2.
Android Studio предоставляет следующие инструменты и возможности для разработки:
- Мощный текстовый редактор с поддержкой языков Java, Kotlin, C++
- Управление ресурсами приложения
- Возможность тестирования приложения на эмуляторе и на реальном физическом устройстве
- Большое разнообразие средств тестирования
- Инструмент отладки
- Профилировщик памяти и производительности
- Инспекция качества кода
- Средства для сборки локальных приложений и подготовки к публикации в маркетах
Также в IDE включена встроенная справка, а также ссылки онлайн ресурсы для предоставления полной информации о среде Android Studio – в этой книге мы будем периодически напоминать об этом.
1.2.2 Виртуальные устройства
Разработка программного обеспечения для компьютеров всегда включается в себя проблему создания одной программы для всех доступных операционных систем. В текущей реальности мобильные устройства выпускаются в самых различных физических формах – так что этот аспект стал сейчас важен как никогда. У Вас может быть смартфон с экраном от 3.9 дюймов до 6, планшет от 7 до 14 дюймов, часы, ТВ с разными экранами, плотностью пикселей на дюйм и работающих под разными версиями ОС Android.
Конечно, Вам как разработчику нет необходимости покупать все эти устройства со всеми вариантами необходимых экранов. Удобнее использовать эмуляторы. С эмуляторами нет необходимости в покупке устройств и вы можете спокойно разрабатывать приложения.
Android Studio упрощает разработку и тестирование приложений с использование эмуляторов, а с помощью инструментов SDK(см. раздел SDK) Вы можете управлять эмуляторами за пределами IDE.
На заметку! Вы можете разрабатывать приложения и без реального устройства. Однако это не рекомендуется делать. У вас должен быть хотя бы один физический смартфон, желательно последнего поколения и планшет, если Вы себе можете это позволить. Причина заключается в том, что поведение эмуляторов и реальных физических устройств отличается, а также существует заметная разница в производительности эмулятора и реального устройства.
Для управления виртуальными устройствами в IDE, необходимо открыть менеджер виртуальных устройств: Tools ➤ Device Manager или нажать на иконку смартфона в верхнем тулбаре Android Studio. В менеджере устройств Вы можете создавать новые, удалять и запускать имеющиеся виртуальные машины, как видно на рисунке 1-3.
Когда создаете новую виртуальную машину, Вы должны выбрать тип устройства: TV, Wear, Phone, Automotive или Tablet, указать уровень API(выбрать из доступных или скачать), а также можно дополнительно указать производительность графики, режим камеры и многое другое. Если Вас интересует детальная информация, вы можете посетить сайт официальной документации по AVD – https://developer.android.com/studio/run/managing-avds
SDK_INST/system-images
SDK_INST/skins
~/.android/avd
1.2.3 SDK
Комплект SDK, в отличие от Android Studio, представляет набор слабо связанных между собой инструментов, которые тем не менее критически необходимы для разработки Android приложений и напрямую используются Android Studio, или по крайней мере помогают в некоторых задачах разработки. Все они могут запускаться из командной оболочки или поставляться с или без собственной оболочки.
Если Вы не знаете местоположение установки SDK – Вы можете узнать в Android Studio. Достаточно пройти File ➤ Project Structure ➤ “SDK location” из меню.
Инструменты командной строки как части SDK описаны в Главе 19.