Разработка программного обеспечения для Android
Разработка программного обеспечения Android — это процесс создания приложений для устройств под управлением операционной системы Android . Гугл утверждает, что [3] «Приложения для Android можно писать с использованием языков Kotlin , Java и C++ » с использованием комплекта разработки программного обеспечения Android (SDK), но также возможно использование других языков. Все языки виртуальных машин (JVM), отличные от Java, такие как Go , JavaScript , C , C++ или ассемблер , нуждаются в помощи кода языка JVM, который может предоставляться инструментами, вероятно, с ограниченной поддержкой API. Некоторые языки программирования и инструменты допускают поддержку кроссплатформенных приложений (т. е. как для Android, так и для iOS ). Сторонние инструменты, среды разработки и языковая поддержка также продолжали развиваться и расширяться с момента выпуска первоначального SDK в 2008 году. Официальным механизмом распространения приложений Android среди конечных пользователей является Google Play ; он также позволяет поэтапно выпускать приложения, а также распространять предварительные версии приложений среди тестировщиков.
Официальные инструменты разработки
[ редактировать ]Комплект разработки программного обеспечения Android (SDK) включает в себя полный набор инструментов разработки. Инструменты платформы Android SDK — это отдельно загружаемая часть полного пакета SDK, состоящая из инструментов командной строки, таких как adb
и fastboot
. [4] Android Debug Bridge (ADB) — это инструмент для запуска команд на подключенном устройстве Android. Fastboot — это протокол, используемый для прошивки файловых систем. Код, написанный на C / C++, можно скомпилировать в ARM или x86 собственный код (или их 64-битные варианты) с помощью Android Native Development Kit (NDK).
Комплект разработки открытых аксессуаров для Android
[ редактировать ]Платформа Android 3.1 (также перенесенная в Android 2.3.4) представляет поддержку Android Open Accessory, которая позволяет внешнему USB-оборудованию (USB-аксессуару Android) взаимодействовать с устройством под управлением Android в специальном «аксессуарном» режиме. Когда устройство под управлением Android находится в режиме аксессуара, подключенный аксессуар действует как USB-хост (питает шину и определяет устройства), а устройство под управлением Android действует как USB-устройство. USB-аксессуары Android специально разработаны для подключения к устройствам под управлением Android и соответствуют простому протоколу (протокол аксессуаров Android), который позволяет им обнаруживать устройства под управлением Android, поддерживающие режим аксессуаров. [5]
Внешняя разработка оборудования
[ редактировать ]Инструменты разработки, призванные помочь устройству Android взаимодействовать с внешней электроникой, включают IOIO , Android Open Accessory Development Kit , Microbridge, Triggertrap и т. д.
Android-эмуляторы
[ редактировать ]- BlueStacks
- Генимоушен
- LeapDroid
- С App Inventor
- Android-студия
- Android-x86
- Подсистема Windows для Android
Конкурс разработчиков Android
[ редактировать ]Android Developer Challenge — это соревнование по поиску самого инновационного приложения для Android. Google предложил призы на общую сумму 10 миллионов долларов США , распределенные между ADC I и ADC II. ADC I принимал заявки со 2 января по 14 апреля 2008 г. 50 наиболее многообещающих работ, объявленных 12 мая 2008 г., каждая получила награду в размере 25 000 долларов США для дальнейшего развития. [6] [7] Он завершился в начале сентября объявлением десяти команд, получивших по 275 000 долларов каждая, и десяти команд, получивших по 100 000 долларов каждая. [8]
ADC II был анонсирован 27 мая 2009 года. [9] Первый раунд ADC II завершился 6 октября 2009 года. [10] Победители первого тура ADC II, включающего 200 лучших заявок, были объявлены 5 ноября 2009 г. Голосование во втором туре также началось в тот же день и завершилось 25 ноября. Google объявил лучших победителей ADC II 30 ноября. с SweetDreams, Что за дудл!? и WaveSecure были признаны абсолютными победителями конкурса. [11] [12]
Распространение через сообщество
[ редактировать ]Существует сообщество энтузиастов с открытым исходным кодом , которые создают и распространяют дистрибутивы на базе Android (то есть прошивки ) с рядом настроек и дополнительных функций, таких как поддержка звука без потерь FLAC и возможность хранить загруженные приложения на карте microSD . [13] Обычно это включает в себя рутирование устройства. Рутинг дает пользователям root-доступ к операционной системе, обеспечивая полный контроль над телефоном. Рутирование также имеет ряд недостатков, в том числе повышенный риск взлома, высокую вероятность блокировки , потери гарантии, повышенный риск вирусных атак и т. д. [14] Также возможна установка кастомной прошивки, правда загрузчик устройства тоже должен быть разблокирован. Кастомная прошивка позволяет пользователям старых телефонов использовать приложения, доступные только в новых версиях. [15]
Эти пакеты прошивок часто обновляются, включают в себя элементы функциональности Android, которые еще не были официально выпущены в рамках прошивки, санкционированной оператором связи, и, как правило, имеют меньше ограничений. CyanogenMod и OMFGB Примерами таких прошивок являются .
24 сентября 2009 г. Google выпустила о прекращении противоправных действий. письмо [16] моддеру Cyanogen со ссылкой на проблемы с перераспределением приложений Google с закрытым исходным кодом. [17] в кастомной прошивке. Несмотря на то, что большая часть ОС Android имеет открытый исходный код, телефоны поставляются с приложениями Google с закрытым исходным кодом для таких функций, как Google Play и GPS-навигация. Google утверждает, что эти приложения могут предоставляться только через одобренные каналы распространения лицензированными дистрибьюторами. Cyanogen выполнил условия лицензии Google и продолжил распространять свой мод без проприетарного программного обеспечения. Он предоставил метод резервного копирования лицензионных приложений Google во время процесса установки мода и их восстановления после завершения процесса. [18]
Стандарты Java
[ редактировать ]К препятствиям для развития можно отнести тот факт, что Android не использует устоявшиеся стандарты Java, то есть Java SE и ME . Это предотвращает совместимость между приложениями Java, написанными для этих платформ, и приложениями, написанными для платформы Android. Android повторно использует синтаксис и семантику языка Java, но не предоставляет полные библиотеки классов и API, входящие в состав Java SE или ME. [19] Однако на рынке существует множество инструментов от таких компаний, как Myriad Group и UpOnTek, которые предоставляют услуги преобразования Java ME в Android. [20] [21] [22]
Android предоставляет собственные классы графического интерфейса и не поддерживает Java AWT, Swing или JavaFX. Он не поддерживает полный API Java Beans. [ нужна ссылка ]
История и доля рынка
[ редактировать ]Android был создан Open Handset Alliance , которым руководит Google. Первые отзывы о разработке приложений для платформы Android были неоднозначными. [23] В число упомянутых проблем входят ошибки, отсутствие документации, неадекватная инфраструктура контроля качества и отсутствие общедоступной системы отслеживания проблем. (Google анонсировал систему отслеживания проблем 18 января 2008 г.) [24] В декабре 2007 года основатель мобильного стартапа MergeLab Адам Макбет заявил: «Функциональность отсутствует, плохо документирована или просто не работает… Она явно не готова к использованию в прайм-тайм». [25] Несмотря на это, приложения, ориентированные на Android, начали появляться уже через неделю после анонса платформы. Первым общедоступным приложением стала игра Snake . [26]
Предварительная версия Android SDK была выпущена 12 ноября 2007 г. 15 июля 2008 г. команда Android Developer Challenge случайно разослала электронное письмо всем участникам Android Developer Challenge, объявляя, что новая версия SDK доступна в «частная» зона загрузки. Письмо предназначалось победителям первого тура конкурса Android Developer Challenge. Обнаружение того, что Google поставляет новые выпуски SDK одним разработчикам, а не другим (и сохраняет эту договоренность в тайне), вызвало в то время широко известное разочарование в сообществе разработчиков Android. [27]
18 августа 2008 г. была выпущена бета-версия Android 0.9 SDK. В этом выпуске представлены обновленный и расширенный API, улучшенные инструменты разработки и обновленный дизайн главного экрана. Подробные инструкции по обновлению доступны тем, кто уже работает с более ранней версией. [28] 23 сентября 2008 г. был выпущен Android 1.0 SDK (выпуск 1). [29] Согласно примечаниям к выпуску, он включал «в основном исправления ошибок, хотя были добавлены некоторые более мелкие функции». Он также включал несколько изменений API по сравнению с версией 0.9. С момента его разработки было выпущено несколько версий. [30]
5 декабря 2008 года Google анонсировала первый Android Dev Phone — устройство с разблокировкой по SIM-карте и аппаратной разблокировкой, предназначенное для продвинутых разработчиков. Это была модифицированная версия телефона HTC Dream. Хотя разработчики могут использовать обычные потребительские устройства для тестирования и использования своих приложений, некоторые разработчики могут выбрать специальное разблокированное устройство или устройство без контракта.
По состоянию на июль 2013 г. [update]для Android разработано более миллиона приложений, [31] с более чем 25 миллиардами загрузок. [32] [33] Исследование, проведенное в июне 2011 года, показало, что на момент публикации эту платформу использовали более 67% мобильных разработчиков. [34] По прогнозам, в 2018 году поставки Android-смартфонов превысят 1,2 миллиарда единиц, а доля рынка составит 85%. [35]
См. также
[ редактировать ]- Android-студия
- Список бесплатных приложений для Android с открытым исходным кодом
- Рутирование (Android)
Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Исходный код Android» . Источник.Android.com . Проверено 2 февраля 2017 г.
- ^ Сайед Х. (24 сентября 2023 г.). «Редакционная статья: Почему вам следует пойти на Нексус» . Уроки дроидов . Архивировано из оригинала 18 февраля 2017 года . Проверено 22 августа 2023 г.
- ^ «Основы применения» . Android-разработчики .
- ^ Модести, Паоло (март 2021 г.). «Сценарный подход к обучению и оценке разработки приложений для Android» . Транзакции ACM по компьютерному образованию . 21 (1): 1–24. дои : 10.1145/3427593 . Проверено 8 мая 2022 г.
- ^ «Руководства для разработчиков Android» . Developer.android.com . Проверено 17 апреля 2021 г.
- ^ Чен, Джейсон (12 мая 2008 г.). «50 лучших приложений» . Блог разработчиков Android . Архивировано из оригинала 25 сентября 2009 года . Проверено 4 сентября 2009 г.
- ^ Браун, Эрик (13 мая 2008 г.). «Android Developer Challenge объявляет победителей первого тура» . Linux для устройств . Архивировано из оригинала 14 мая 2008 года.
- ^ «Галерея ADC I Топ-50» . Конкурс разработчиков Android . Проверено 19 мая 2009 г.
- ^ «Вызов разработчиков Android» . Гугл-код . Проверено 11 января 2008 г.
- ^ Чу, Эрик (6 октября 2009 г.). «Подсчет очков в первом раунде ADC 2 завершен» . Блог разработчиков Android . Архивировано из оригинала 1 ноября 2009 года . Проверено 3 ноября 2009 г.
- ^ «Победители в общем зачете ADC 2» . Конкурс разработчиков Android . Архивировано из оригинала 4 января 2011 года . Проверено 5 декабря 2010 г.
- ^ Хариф, Ольга (30 ноября 2009 г.). «Объявлены победители Android Developer Challenge 2» . БизнесУик . Архивировано из оригинала 4 декабря 2009 года . Проверено 5 декабря 2010 г.
- ^ «Разработка Android мечты» . форум разработчиков xda . Проверено 11 сентября 2009 г.
- ^ «Укоренение: преимущества и недостатки» . Форум ITCSE . Архивировано из оригинала 29 ноября 2014 года . Проверено 21 сентября 2013 г.
- ^ «Android 2.1 от Motorola Droid, портированный на G1» . Вольт Мобайл . 10 марта 2010 года. Архивировано из оригинала 31 мая 2011 года . Проверено 13 мая 2011 г.
- ^ Уимберли, Тейлор (24 сентября 2009 г.). «У CyanogenMod проблемы?» . Андроид и я . Архивировано из оригинала 3 октября 2009 года . Проверено 26 сентября 2009 г.
- ^ Моррилл, Дэн (25 сентября 2009 г.). «Примечание о Google Apps для Android» . Блог разработчиков Android . Архивировано из оригинала 25 октября 2009 года . Проверено 26 сентября 2009 г.
- ^ «Текущее состояние...» CyanogenMod Android ROM . 27 сентября 2009 года. Архивировано из оригинала 3 ноября 2009 года . Проверено 27 сентября 2009 г.
- ^ ван Гурп, Джиллес (13 ноября 2007 г.). «Google Android: первые впечатления и критика» . Джавалобби . Архивировано из оригинала 28 августа 2008 года . Проверено 7 марта 2009 г.
Честно говоря, я не понимаю, почему Google намерен игнорировать огромное количество существующих реализаций. Мне кажется, это плохой случай «не здесь изобретено». В конечном итоге это замедлит внедрение. В мобильном мире уже слишком много Java-платформ, и это еще одна
- ^ «Новый конвертер J2Android от Myriad стимулирует золотую лихорадку приложений для Android» . 19 марта 2010 года. Архивировано из оригинала 4 июля 2011 года . Проверено 13 мая 2011 г.
- ^ Фрулингер, Джош (23 марта 2010 г.). «J2Android надеется, что вы не знаете, что Android основан на Java» . JavaWorld . Проверено 13 июля 2020 г.
С другой стороны, вы можете подумать, что это своего рода мошенничество, нацеленное на разработчиков, которые не совсем понимают природу платформы, на которую они нацелены. Моя самая большая жалоба заключается в том, что можно подумать, что Микаэль Рикнес, репортер службы новостей IDG, написавший первую статью, указанную выше (который работает в той же компании, которая издает JavaWorld), по крайней мере, упомянул бы об отношениях между Java и Android, чтобы проясните странность этого объявления.
- ^ Фрулингер, Джош (31 марта 2010 г.). «Множество технических директоров: J2Android переносит мидлеты в «красивую» среду Android» . JavaWorld . Проверено 13 июля 2020 г.
Нам придется подождать и посмотреть, сколько на самом деле видит пикап J2Android. Этот инструмент пока еще не доступен на открытом рынке; хотя Шиллингс оптимистично говорил о «преобразовании 1000 мидлетов за день», в настоящий момент они работают с несколькими провайдерами над преобразованием своих бэк-каталогов. Так что тем из вас, кто надеется избежать обучения написанию кода Android, возможно, придется подождать некоторое время.
- ^ Пол, Райан (19 декабря 2007 г.). «Разработка приложений для Google Android: это неоднозначная ситуация» . Арс Техника . Архивировано из оригинала 20 декабря 2007 года . Проверено 19 декабря 2007 г.
- ^ Моррилл, Дэн (18 января 2008 г.). «Вы не можете спешить с совершенством, но теперь вы можете сообщать об ошибках» . Блог разработчиков Android . Проверено 3 сентября 2009 г.
- ^ Моррисон, Скотт (19 декабря 2007 г.). «Глюки в программном обеспечении Android от Google» . Уолл Стрит Джорнал . Проверено 19 декабря 2007 г.
- ^ «Первое Android-приложение — Змейка» . Мобильный2день . 14 ноября 2007 года. Архивировано из оригинала 11 мая 2008 года . Проверено 7 января 2008 г.
- ^ Мец, Кейд (14 июля 2008 г.). «Google играет в прятки с помощью Android SDK» . Регистр . Архивировано из оригинала 6 октября 2008 года . Проверено 23 октября 2008 г.
- ^ «Android — проект Альянса открытых мобильных телефонов: обновление SDK» . Архивировано из оригинала 13 сентября 2008 года . Проверено 24 октября 2008 г.
- ^ «Другие выпуски SDK» . Android-разработчики . Проверено 2 сентября 2009 г.
- ^ «Архивы SDK» . Android-разработчики .
- ^ «Google Play насчитывает 1 миллион приложений» . Машаемый . 24 июля 2013 г.
- ^ «Статистика приложений Android» . Архивировано из оригинала 2 января 2011 года . Проверено 31 декабря 2010 г.
- ^ Лина Рао (14 апреля 2011 г.). «Google: установлено 3 миллиарда приложений для Android; количество загрузок выросло на 50 процентов по сравнению с прошлым кварталом» . Техкранч . Архивировано из оригинала 25 апреля 2011 года . Проверено 13 мая 2011 г.
- ^ «Экономика развития 2011» . Архивировано из оригинала 29 сентября 2013 года . Проверено 8 июля 2011 г.
- ^ «По данным IDC, мировые объемы продаж смартфонов останутся низкими в 2018 году, а затем вернутся к росту в 2019 году и в последующий период» . idc.com . 30 мая 2018. Архивировано из оригинала 17 октября 2019 года . Проверено 6 июня 2018 г.
Библиография
[ редактировать ]- Эд, Бернетт (13 июля 2010 г.). Привет, Android: представляем платформу Google для разработки мобильных устройств (3-е изд.). Прагматичная книжная полка . ISBN 978-1-934356-56-2 .
- Аблесон, Фрэнк; Сен, Роби; Кинг, Крис (январь 2011 г.). Android в действии, второе издание (2-е изд.). Мэннинг . ISBN 978-1-935182-72-6 .
- Кондер, Шейн; Дарси, Лорен (24 июля 2012 г.). Разработка беспроводных приложений Android, том II: дополнительные темы (3-е изд.). Аддисон-Уэсли Профессионал . ISBN 978-0-321-81384-8 .
- Мерфи, Марк (26 июня 2009 г.). Начало Android (1-е изд.). Апресс . ISBN 978-1-4302-2419-8 .
- Мейер, Рето (март 2010 г.). Профессиональная разработка приложений для Android 2 (1-е изд.). Врокс Пресс . ISBN 978-0-470-56552-0 .
- Хейсман, Крис (21 июля 2008 г.). Основы Android (1-е изд.). Апресс . ISBN 978-1-4302-1064-1 .
- Клифтон, Ян (3 августа 2012 г.). Живые уроки «Основы разработки приложений для Android» (видеообучение) (1-е изд.). Аддисон-Уэсли Профессионал . ISBN 978-0-13-299658-7 .
- Андроид (операционная система)
- Программное обеспечение для разработки Android (операционной системы)
- Встроенный Linux
- Бесплатное мобильное программное обеспечение
- Мобильный Linux
- Программное обеспечение Android (операционная система)
- Сообщества разработчиков программного обеспечения
- Разработка программного обеспечения по платформам