Разработка программного обеспечения Android

редактировать
Процесс написания программного обеспечения для операционной системы Android

Стек Android Nexus 4, часть серии Google Nexus, серия "удобных для разработчиков" устройств

Разработка программного обеспечения Android - это процесс, с помощью которого создаются приложения для устройств под управлением операционной системы Android.. Google заявляет, что «приложения для Android могут быть написаны с использованием языков Kotlin, Java и C ++ » с использованием пакета разработки программного обеспечения Android (SDK), при этом возможно использование других языков. Все языки, не относящиеся к JVM, такие как Go, JavaScript, C, C ++ или сборка, нуждаются в помощи кода языка JVM, который может предоставляться инструментами, вероятно, с ограниченной поддержкой API. Некоторые языки программирования и инструменты позволяют поддерживать кроссплатформенные приложения (например, для Android и iOS ). Сторонние инструменты, среды разработки и языковая поддержка также продолжали развиваться и расширяться с момента выпуска исходного SDK в 2008 году. Официальный механизм распространения приложений Android среди конечных пользователей - Google Play ; он также позволяет поэтапно выпускать приложения, а также распространять предварительные версии приложений среди тестировщиков.

Содержание
  • 1 Официальные инструменты разработки
    • 1.1 Android SDK
    • 1.2 Android SDK Platform Tools
      • 1.2.1 Android Debug Bridge (ADB)
      • 1.2.2 Fastboot
    • 1.3 Android NDK
    • 1.4 Android Open Accessory Development Kit
  • 2 Внешняя разработка аппаратного обеспечения
  • 3 Android Developer Challenge
  • 4 Распределения на основе сообщества
  • 5 Стандарты Java
  • 6 История и доля рынка
  • 7 См. также
  • 8 Ссылки
  • 9 Библиография
Официальные инструменты разработки

Android SDK

Android SDK
Разработчик (и) Google
Первоначальный выпускоктябрь 2009 г.; 11 лет назад (2009-10)
Стабильный выпуск 26.1.1 / сентябрь 2017 г.; 3 года назад (2017-09)
Написано наJava
Операционная система Кросс-платформенная
Доступно наанглийском
Типе IDE, SDK
Веб-сайтдля разработчиков.android.com / sdk / index.html

Комплект для разработки программного обеспечения Android (SDK) включает полный набор инструментов разработки. К ним относятся отладчик , библиотеки, эмулятор телефона на основе QEMU, документация, примеры кода и руководства. В настоящее время поддерживаемые платформы разработки включают компьютеры под управлением Linux (любой современный настольный компьютер дистрибутив Linux ), Mac OS X 10.5.8 или более поздней версии и Windows 7 или новее. По состоянию на март 2015 года SDK недоступен для самого Android, но разработка программного обеспечения возможна с использованием специализированных приложений Android.

Примерно до конца 2014 года официально поддерживаемая интегрированная среда разработки (IDE) была Eclipse с использованием подключаемого модуля Android Development Tools (ADT), хотя IntelliJ IDEA IDE (все выпуски) полностью поддерживает разработку Android из коробки, а NetBeans IDE также поддерживает разработку под Android через плагин. По состоянию на 2015 год официальной IDE является Android Studio, созданная Google и работающая на IntelliJ; тем не менее, разработчики могут использовать других, но Google дал понять, что ADT официально устарел с конца 2015 года, чтобы сосредоточиться на Android Studio в качестве официальной Android IDE. Кроме того, разработчики могут использовать любой текстовый редактор для редактирования файлов Java и XML, а затем использовать инструменты командной строки (требуется Java Development Kit и Apache Ant ) для создания, создавать и отлаживать приложения Android, а также управлять подключенными устройствами Android (например, запускать перезагрузку, удаленно устанавливать программные пакеты).

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

Android-приложения упакованы в формат .apk и хранится в папке / data / appв ОС Android (папка доступна только пользователю root из соображений безопасности). Пакет APK содержит файлы.dex (файлы скомпилированного байтового кода, называемые исполняемыми файлами Dalvik ), файлы ресурсов и т. Д.

Android SDK Platform Tools

Android SDK Platform Tools - это отдельно загружаемое подмножество полного SDK, состоящее из инструментов командной строки, таких как adbи fastboot.

Android Debug Bridge (ADB)

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

Формат для выдачи команд обычно:

adb [-d | -e | -s ] где -d - это опция для указания одного подключенного USB device, -e для единственного запущенного эмулятора Android на компьютере, -s для указания подключенного USB-устройства по его уникальному серийному номеру. Если есть только одно подключенное устройство или запущенный эмулятор, в этих параметрах нет необходимости.

Например, приложения Android можно сохранить командой backup в файл с именем backup.abпо умолчанию.

В проблеме безопасности, о которой сообщалось в марте 2011 года, ADB был нацелен как вектор для попытки установить руткит на подключенные телефоны с помощью «атаки исчерпания ресурсов».

Fastboot

Fastboot - это протокол, и у него есть инструмент с тем же именем, включенный в пакет Android SDK, используемый в основном для изменения flash файловая система через соединение USB с главного компьютера. Это требует, чтобы устройство было запущено в режиме загрузчика или Загрузчика вторичных программ, в котором выполняется только самая основная инициализация оборудования. После включения протокола на самом устройстве, оно будет принимать определенный набор команд, отправленных ему через USB с помощью командной строки. Вот некоторые из наиболее часто используемых команд fastboot:

  • flash - перезаписывает раздел двоичным образом, хранящимся на главном компьютере.
  • erase - стирает определенный раздел.
  • reboot - перезагружается устройство в основную операционную систему, раздел восстановления системы или обратно в загрузчик.
  • устройства - отображает список всех устройств (с серийным номером), подключенных к главному компьютеру.
  • формат - форматирует определенный раздел; файловая система раздела должна распознаваться устройством.

Android NDK

Android NDK
Разработчик (и) Google
Первоначальный выпускиюнь 2009 г.; 11 лет назад (2009-06)
Стабильный выпуск r21b / апрель 2020 г.; 7 месяцев назад (2020-04)
Написано наC и C ++
Операционная система
Платформа IA-32 (только Windows) или x86-64 (Windows, macOS и Linux)
Доступно наанглийском
Введите SDK
Веб-сайтразработчик.android.com / ndk /

Код, написанный на C /C ++, можно скомпилировать в ARM или x86 собственный код (или их 64-битные варианты) с использованием Android Native Development Kit (NDK). NDK использует компилятор Clang для компиляции C / C ++. GCC был включен до NDK r17, но удален в r18 в 2018 году.

Нативные библиотеки можно вызывать из кода Java, работающего в среде Android Runtime с использованием системы .loadLibrary, часть стандартных классов Android Java.

Инструменты командной строки могут быть скомпилированы с помощью NDK и установлены с помощью adb.

Android использует Bionic как его библиотека C, а LLVM libc ++ как его стандартная библиотека C ++. NDK также включает множество других API: zlib сжатие, OpenGL ES или Vulkan графика, OpenSL ES аудио и различные Android - специальные API для таких вещей, как ведение журнала, доступ к камерам или ускорение нейронных сетей.

NDK включает поддержку CMake и собственный ndk-build(на основе GNU Make ). Android Studio поддерживает запуск любого из них из Gradle. Другие сторонние инструменты позволяют интегрировать NDK в Eclipse и Visual Studio.

Для профилирования ЦП NDK также включает simpleperf, который похож на инструмент Perfomance Linux, но с лучшей поддержкой для Android и специально для смешанных стеков Java / C ++.

Android Open Accessory Development Kit

Платформа Android 3.1 (также обратно перенесенная на Android 2.3.4) представляет поддержку Android Open Accessory, которая позволяет внешнему USB-оборудованию (USB-аксессуар Android) взаимодействовать с устройство на базе Android в специальном «аксессуарном» режиме. Когда устройство под управлением Android находится в режиме аксессуара, подключенный аксессуар действует как хост USB (питает шину и перечисляет устройства), а устройство под управлением Android действует как устройство USB. USB-аксессуары Android специально разработаны для подключения к устройствам под управлением Android и соответствуют простому протоколу (протокол аксессуаров Android), который позволяет им обнаруживать устройства под управлением Android, которые поддерживают режим аксессуаров.

Разработка внешнего оборудования

Инструменты разработки, которые помогают устройству Android взаимодействовать с внешней электроникой, включают IOIO, Android Open Accessory Development Kit, Microbridge, Triggertrap и т. д.

Android Developer Challenge

Android Developer Challenge был соревнованием по поиску самого инновационного приложения для Android. Google предложила призы на общую сумму 10 миллионов долларов США, распределенных между ADC I и ADC II. ADC I принимал заявки со 2 января по 14 апреля 2008 г. 50 наиболее многообещающих работ, объявленных 12 мая 2008 г., получили награду в размере 25 000 долларов США на дальнейшее развитие. Он закончился в начале сентября объявлением о десяти командах, получивших по 275 000 долларов каждая, и о десяти командах, получивших по 100 000 долларов каждая.

ADC II было объявлено 27 мая 2009 г. Первый раунд ADC II завершился в октябре 6 ноября 2009 г. Победители первого раунда ADC II, включающие 200 лучших заявок, были объявлены 5 ноября 2009 г. Голосование во втором раунде также началось в тот же день и завершилось 25 ноября. Google объявил победителей ADC II. 30 ноября с SweetDreams, What the Doodle !? и WaveSecure были названы победителями конкурса.

Дистрибутивы на основе сообщества

Существует сообщество энтузиастов открытого исходного кода, которые создают и распространяют дистрибутивы на основе Android (т.е. прошивки ) с рядом настроек и дополнительных функций, таких как FLAC поддержка аудио без потерь и возможность сохранять загруженные приложения на карту microSD. Обычно это включает рутирование устройства. Получение root-прав дает пользователям root-доступ к операционной системе, обеспечивая полный контроль над телефоном. У рутинга также есть несколько недостатков, в том числе повышенный риск взлома, высокая вероятность блокировки, потеря гарантии, повышенный риск вирусных атак и т. Д. Также можно установить кастомную прошивку, хотя загрузчик устройства также должен быть разблокированным. Специальная прошивка позволяет пользователям старых телефонов использовать приложения, доступные только в более новых версиях.

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

24 сентября 2009 г. Google направил моддеру Cyanogen письмо о прекращении и воздержании, в котором указывалось на проблемы с повторным распространением приложений Google с закрытым исходным кодом в рамках специальной прошивки. Несмотря на то, что большая часть ОС Android имеет открытый исходный код, телефоны поставляются с приложениями Google с закрытым исходным кодом для таких функций, как Google Play и GPS-навигация. Google утверждает, что эти приложения могут быть предоставлены только через утвержденные каналы распространения лицензированными дистрибьюторами. Cyanogen выполнила лицензию Google и продолжила распространять свой мод без проприетарного программного обеспечения. Он предоставил метод резервного копирования лицензионных приложений Google в процессе установки мода и их восстановления после завершения процесса.

Стандарты Java

Препятствия на пути разработки включают тот факт, что Android не использует установленную Java стандартов, то есть Java SE и ME. Это предотвращает совместимость между приложениями Java, написанными для этих платформ, и приложениями, написанными для платформы Android. Android повторно использует синтаксис и семантику языка Java, но не предоставляет полные библиотеки классов и API, связанные с Java SE или ME. Однако на рынке есть множество инструментов от таких компаний, как Myriad Group и UpOnTek, которые предоставляют услуги преобразования Java ME в Android.

Android предоставляет свои собственные классы графического интерфейса пользователя и не предоставляет Java AWT, Swing или JavaFX. Он не поддерживает полный API Java Beans.

История и доля рынка

Android был создан Open Handset Alliance, возглавляемым Google. Первые отзывы о разработке приложений для платформы Android были неоднозначными. Упомянутые проблемы включают ошибки, отсутствие документации, неадекватную инфраструктуру контроля качества и отсутствие общедоступной системы отслеживания проблем. (Google анонсировал средство отслеживания проблем 18 января 2008 года.) В декабре 2007 года основатель мобильного стартапа MergeLab Адам Макбет заявил: «Функциональность отсутствует, плохо документирована или просто не работает... Она явно не готова к использованию в прайм-тайм.. " Несмотря на это, приложения, ориентированные на Android, начали появляться через неделю после анонса платформы. Первым общедоступным приложением была игра «Змейка».

12 ноября 2007 г. была выпущена предварительная версия Android SDK. 15 июля 2008 г. команда Android Developer Challenge случайно разослала электронное письмо всем участникам конкурса. Android Developer Challenge объявляет о том, что новый выпуск SDK доступен в «частной» области загрузки. Письмо предназначалось для победителей первого раунда Android Developer Challenge. Открытие того, что Google поставляет новые выпуски SDK одним разработчикам, а не другим (и сохраняет эту договоренность в тайне), вызвало в то время широко сообщаемое разочарование в сообществе разработчиков Android.

18 августа 2008 года Android Выпущена бета-версия 0.9 SDK. В этом выпуске представлен обновленный и расширенный API, улучшенные инструменты разработки и обновленный дизайн главного экрана. Подробные инструкции по обновлению доступны тем, кто уже работает с более ранней версией. 23 сентября 2008 г. был выпущен Android 1.0 SDK (Release 1). Согласно примечаниям к выпуску, он включал «в основном исправления ошибок, хотя были добавлены некоторые более мелкие функции». Он также включает несколько изменений API по сравнению с версией 0.9. С момента его разработки было выпущено несколько версий.

5 декабря 2008 года Google анонсировала первый Android Dev Phone, SIM с разблокировкой и аппаратной разблокировкой. устройство, предназначенное для продвинутых разработчиков. Это была модифицированная версия телефона HTC Dream. Хотя разработчики могут использовать обычные потребительские устройства для тестирования и использования своих приложений, некоторые разработчики могут выбрать выделенное разблокированное устройство или устройство без контракта.

По состоянию на июль 2013 года для Android было разработано более одного миллиона приложений с более чем 25 миллиардами загрузок. Исследование, проведенное в июне 2011 года, показало, что более 67% мобильных разработчиков использовали платформу на момент публикации. По прогнозам, поставки смартфонов Android превысят 1,2 миллиарда единиц в 2018 году с долей рынка 85%.

См. Также
Ссылки
Библиография
В Викиучебнике есть книга на тему: Android
Последняя правка сделана 2021-06-11 01:23:31
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте