Android

Android robot 2014.svg

Android logo (2014).svg
Start Menu Android
Домашний экран Android 4.4.4
Разработчик Google,
Open Handset Alliance
Семейство ОС UNIX-подобные ОС
Основана на ядро Linux и UNIX-подобные операционные системы
Исходный код свободное и открытое программное обеспечение, проприетарные драйверы
Первый выпуск 23 сентября 2007
Последняя версия
Менеджеры пакетов .APK (В основном через Google Play; установка APK также возможна локально или из альтернативных источников, таких как F-Droid,Яндекс.Store, Amazon Appstore, Samsung Apps и др.)
Поддерживаемые языки русский, английский и ещё более 100 языков
Поддерживаемые платформы 32- и 64-битные: ARM, MIPS, x86
Тип ядра монолитное (модифицированное ядро Linux)
Лицензия Apache v2 — пользовательское пространство,
GNU GPL v2 — патчи ядра Linux[2]
Состояние актуальное
Репозиторий исходного кода android.googlesource.com
android-review.googlesource.com/…
Веб-сайт android.com
Commons-logo.svg Android на Викискладе

Android («Андро́ид»[~ 1]) — операционная система для смартфонов, планшетов, электронных книг, цифровых проигрывателей, наручных часов, фитнес-браслетов, игровых приставок, ноутбуков, нетбуков, смартбуков, очков Google Glass[3], телевизоров[4] и других устройств (в 2015 году появилась поддержка автомобильных развлекательных систем[5] и бытовых роботов).

Основана на ядре Linux[6] и собственной реализации виртуальной машины Java от Google. Изначально разрабатывалась компанией Android, Inc., которую затем купила Google. Впоследствии Google инициировала создание альянса Open Handset Alliance (OHA), который сейчас занимается поддержкой и дальнейшим развитием платформы. Android позволяет создавать Java-приложения, управляющие устройством через разработанные Google библиотеки. Android Native Development Kit позволяет портировать библиотеки и компоненты приложений, написанные на Си и других языках.

Android стала самой революционной операционной системой благодаря разработки по революционной методологии SCRUM. В 86 % смартфонов, проданных во втором квартале 2014 года, была установлена операционная система Android[7]. На конференции для разработчиков в мае 2017 года Google объявила, что за всю историю Android было активировано более 2 млрд Android-устройств.

История

Логотип, использовавшийся с 2007 по 2014 год

11 июля 2005 года корпорация Google купила компанию Android, Inc.[8][9] за 130 миллионов долларов. 5 ноября 2007 года компания официально объявила о создании Open Handset Alliance (OHA) и анонсировала открытую мобильную платформу Android[10], а 12 ноября 2007 года альянс представил первую версию пакета для разработчиков Android «Early Look» SDK и эмулятор Android[8][11].

23 сентября 2007 года официально вышла первая версия операционной системы[12][13], а также первый полноценный пакет разработчика SDK 1.0, Release 1[14][15]. С момента выхода первой версии платформы произошло несколько обновлений системы. Эти обновления, как правило, касаются исправления обнаруженных ошибок и добавления новой функциональности в систему.

В 2009 году было представлено целых четыре обновления платформы. Так, в феврале вышла версия 1.1, но с исправлением различных ошибок[16]. В апреле[17] и сентябре[18] вышли ещё два обновления — 1.5 «Cupcake»(капкейк) и 1.6 «Donut»(пончик) соответственно. Обновление «Cupcake» привнесло существенные изменения: виртуальная клавиатура, воспроизведение и запись видео, браузер и другие[19]. В «Donut» впервые появились поддержка различных разрешений и плотности экрана и сетей CDMA[16]. В октябре того же года вышла версия операционной системы Android 2.0 «Eclair»[20] с поддержкой нескольких аккаунтов Google, поддержкой браузером языка HTML5 и других нововведений, а также после небольшого обновления в пределах версии «Eclair» (элер)(2) появились «живые обои» и был видоизменён экран блокировки[16].

В середине 2010 года[21] Google представила Android версии 2.2 под наименованием «Froyo», а в конце[22] 2010 года — Android 2.3 «Gingerbread». После обновления «Froyo» стало возможно использовать смартфон в качестве точки доступа, использовать традиционную блокировку смартфона цифровым или буквенно-цифровым паролем и другие изменения, а обновление «Gingerbread» (Имбирный пряник) привнесло более полный контроль над функцией копирования и вставки, улучшение управления питанием и контроля над приложениями, поддержку нескольких камер на устройстве и т. д.[16]

22 февраля 2011 года[23] была официально представлена ориентированная на интернет-планшеты платформа Android 3.0 «Honeycomb» (медовая сота)[24]. Исходный код этой версии так и не был открыт компанией Google в связи с опасениями портирования её на смартфоны, для которых она не была предназначена[25].

Android 4.0 «Ice Cream Sandwich» (мороженое с сэндвичем), вышедшая 19 октября 2011 года[26], — первая универсальная платформа, которая предназначена как для планшетов, так и для смартфонов[27][28]. Также обновление принесло новый интерфейс «Holo», который использовался до Android 4.4.4 KitKat .

В июне 2012 вышло обновление под названием «Jelly Bean»(желейный боб) с порядковым номером 4.1[29], который сменился на 4.2 вследствие небольшого обновления в конце октября того же года[30] и на 4.3 после обновления в июле 2013[31].

31 октября 2013 года Google представила следующую версию операционной системы Android 4.4, которая получила название шоколадного батончика «KitKat» по соглашению с компанией производителем Nestlé[32]. Впервые KitKat появился на Nexus 5; эта версия Android оптимизирована для работы на более широком наборе устройств, имеющих 512 МБ ОЗУ в качестве рекомендуемого минимума. Также, в качестве тестовой опции, в настройках разработчика стала доступна виртуальная машина ART.

25 июня 2014 Google представили Android L, доступный для разработчиков, пользователей смартфонов Nexus, а также некоторых других смартфонов[33].

15 октября 2014 года была официально анонсирована Android 5.0 Lollipop. Главные обновления системы — новый дизайн Material Design и полный переход к виртуальной машине ART. Также, если на Android-устройстве установлен пароль или графический ключ, и если поблизости находятся часы хозяина устройства с Android Wear, то устройство автоматически разблокируется.

9 декабря 2014 Google заменила официальную среду разработки, основанную на Eclipse (adt-bundle), на Android Studio[34][35].

В 2015 году была анонсирована операционная система для носимых устройств Android Wear(позже Wear OS). Также на Google IO были представлены версии Android Auto (для автомобилей) и Android TV (для телевизоров), тем самым Android перестал быть операционной системой только для мобильных устройств.

29 мая 2015 Google представила Android M. По словам Google главная цель новой операционной системы — улучшить пользовательский опыт общения со смартфоном, сделать взаимодействие интуитивнее и проще[36]. 17 августа 2015 официально стало известно, что эта версия получила название Android 6.0 Marshmallow[37].

19 мая 2016 года на конференции разработчиков Google I/O была представлена Android N, а 1 июля Google официально объявила название этой версии Android — Android 7.0 Nougat[38]. Рассылка финальной версии операционной системы стартовала 22 августа 2016 года. Поддерживаемые устройства: Huawei Nexus 6P, LG Nexus 5X, Motorola Nexus 6, HTC Nexus 9, ASUS Nexus Player, Google Pixel C и General Mobile 4G.[39]

В марте 2017 года был представлен Android O для разработчиков[40]. Пользовательская версия была выпущена 21 августа 2017 года как 8.0.0 Oreo[41]. 5 декабря 2017 года была выпущена стабильная сборка Android O 8.1.

7 марта 2018 года Google выпустила Android P DP1, а первая бета вышла 8 мая 2018 года, но не только для Pixel, также бету получили Sony Xperia XZ2, Nokia 7 Plus, Xiaomi Mi MIX 2s, Vivo X21, Oppo R15 Pro, Essential Phone, OnePlus 6. Рассылка релизной версии Android 9 Pie началась 6 августа 2018 года.

Применение

HTC Dream (T-Mobile G1) — первый смартфон на базе ОС Android
Рабочий стол ОС Android 1.5 в эмуляторе

Первым устройством, работающим под управлением Android, стал разработанный компанией HTC смартфон HTC Dream (официально выпущен сотовым оператором T-Mobile под названием T-Mobile G1), презентация которого состоялась 23 сентября 2008 года[42]. Вскоре последовали многочисленные заявления других производителей смартфонов о намерении выпустить устройства на базе Android. В России первым Android-смартфоном, поступившим в продажу (июль 2009 года), стал Highscreen PP5420[43]. С выходом Android третьей версии (Honeycomb), ориентированной на планшеты[44], всё больше производителей стало объявлять и о выпуске планшетов на этой платформе[45]. Также компания Google в сотрудничестве с разными компаниями выпускает собственные устройства в серии «Google Nexus». Именно эти устройства первыми получают обновления до новых версий.

Кроме смартфонов и планшетов, операционную систему Android устанавливают и на другие устройства. Так, в конце 2009 года появилась в продаже первая фоторамка, работающая на Android[46][47]. В июне 2011 года итальянская компания Blue Sky анонсировала выпуск интеллектуальных наручных часов i’m Watch под управлением ОС Android[48]. В августе 2012 года Nikon представила первую в мире фотокамеру, которая также работает на Android[49]. В серии «Google Nexus» присутствуют не только смартфоны и планшеты, но и медиаплеер Nexus Q, работающий на Android[50] и Nexus Player.

Кроме того, энтузиасты портировали Android на ряд известных устройств, среди которых, например, смартфоны на платформе Windows Mobile HTC Touch Dual и HTC TyTN II, на которых Android был запущен в режиме эмуляции[51]. Также было осуществлено полноценное портирование на такие устройства, как интернет-планшеты, работающие на Maemo — Nokia N810[52] и Nokia N900 (порт под названием Nitdroid)[53][54], на смартфоны Nokia N9[55], работающий на платформе MeeGo, и HTC HD2, работающий на операционной системе Windows Mobile, на котором ОС Android можно запускать как с microSD-карты, так и с внутренней NAND-памяти. При этом установленная система имеет полную, ничем особо не ограниченную функциональность. Помимо этого, есть удачный опыт установки Android на некоторые устройства Apple — iPhone, iPod Touch и iPad[56] с помощью специальной программы под названием Openiboot, которая предназначена для запуска на данных устройствах разнообразных ОС, в том числе и Android. Вышли прошивки с ограниченной функциональностью на устройствах на операционной системе Bada. Компания Koolu не только занялась портированием Android на Neo FreeRunner, но и строила свой бизнес на продаже этих смартфонов с предустановленной мобильной платформой от Google. Первый официальный и общедоступный бета-релиз порта Android на Neo FreeRunner от Koolu состоялся в декабре 2008 года[57]. Также Android портирован на архитектуру x86[58].

В октябре 2012 года исполнительный директор компании Ларри Пейдж сообщил, что было активировано уже более 500 миллионов смартфонов и планшетов на базе Android, а также заявил, что ежедневно активируется 1,3 миллиона устройств на базе этой операционной системы[59]. В начале сентября 2013 года было объявлено о том, что в мире уже активировано свыше миллиарда устройств на Android[60]. 29 сентября 2015 года СЕО Google Сундар Пичаи отметил, что число пользователей устройств на базе Android превысило 1,4 млрд. В мае 2017 года компания сообщила о 2 миллиардах активированных Android-устройств[61].

Программное обеспечение

Приложения под операционную систему Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik, для них был разработан формат установочных пакетов .APK. Для работы над приложениями доступно множество библиотек: Bionic (библиотека стандартных функций, несовместимая с glibc); мультимедийные библиотеки на базе PacketVideo OpenCORE (поддерживают такие форматы, как MPEG-4, H.264, MP3, AAC, AMR, JPEG и PNG); SGL (движок двухмерной графики); OpenGL ES 1.0 ES 2.0 (движок трёхмерной графики); Surface Manager (обеспечивает для приложений доступ к 2D/3D); WebKit (готовый движок для веб-браузера; обрабатывает HTML, JavaScript); FreeType (движок обработки шрифтов); SQLite (легковесная СУБД, доступная для всех приложений); SSL (протокол, обеспечивающий безопасную передачу данных по сети). По сравнению с обычными приложениями Linux, приложения Android подчиняются дополнительным правилам[62]: Content Providers — обмен данными между приложениями; Resource Manager — доступ к таким ресурсам, как файлы XML, PNG, JPEG; Notification Manager — доступ к строке состояния; Activity Manager — управление активными приложениями.

Google предлагает для свободного скачивания инструментарий для разработки (Software Development Kit), который предназначен для x86-машин под операционными системами Linux, macOS (10.4.8 или выше), Windows XP, Windows Vista и Windows 7. Для разработки требуется JDK 5 или более новый.

Разработку приложений для Android можно вести на языке Java (не ниже Java 1.5). Существует плагин для Eclipse — Android Development Tools (ADT), предназначенный для Eclipse версий 3.3—3.7. Также существует плагин для IntelliJ IDEA, облегчающий разработку Android-приложений[63], и для среды разработки NetBeans IDE[64], который, начиная с версии NetBeans 7.0, перестал быть экспериментальным, хоть пока и не является официальным. Кроме того, существует Motodev Studio for Android — комплексная среда разработки на базе Eclipse, позволяющая работать непосредственно с Google SDK.

В 2009 году в дополнение к ADT был опубликован Android Native Development Kit (NDK)[65] — пакет инструментариев и библиотек, позволяющий реализовать часть приложения на языке С/С++. NDK рекомендуется использовать для разработки участков кода, критичных к скорости.

В 2013 году Google представила новую среду разработки Android Studio, основанную на IntelliJ IDEA от JetBrains.

Google Android Nougat, Oreo, P

В 2013 году состоялся релиз Embarcadero RAD Studio — XE5. Возможность разработки нативных приложений для платформы Android. Процесс создания Android приложения не требует дополнительных устройств, кроме, собственно, Android-устройства (в принципе, можно обойтись и эмулятором).

В Android 4.4 появилась возможность сменить виртуальную машину Dalvik на ART (Android Runtime). ART отличается повышенной скоростью загрузки приложения. Проработан механизм оптимизации памяти.

В Android 5 перерисован дизайн, базирующийся на концепции Material Design, добавлен режим энергосбережения Project Volta, выбор машины пропал, вместо Dalvik стала использоваться ART.

В Android 6 появился интеллектуальный режим расхода энергии Doze и запрет выхода в Интернет и работы в фоне давно не используемых приложений App Standby.

Android Developer Challenge

Для стимулирования разработчиков в ноябре 2007 года компания Google объявила конкурс Android Developer Challenge с призовым фондом в 5 млн долларов[8][66]. Участникам конкурса предлагалось создать любое приложение из самых разных областей — социальные сети, работа с информацией различного типа, игры и т. д.[67] Мероприятия конкурса ADC проходили в 2008 году и закончились награждением 50 финалистов крупными денежными призами (25—275 тыс. долларов)[68].

27 мая 2009 года был объявлен новый конкурс ADC2 с призовым фондом в 2 млн долл. (главный приз — 250 тыс. долл.)[69]. Подача приложений на конкурс продолжалась с 24 по 31 августа 2009 года. С 24 сентября по 6 октября в рамках первого раунда ADC2 пользователи путём голосования отбирали приложения для участия во втором раунде. 5 ноября был опубликован список из 200 лучших приложений (по 20 приложений в каждой из 10 категорий), попавших во второй раунд, и началось голосование пользователей за эти приложения. 24 ноября голосование во втором раунде было закрыто, начал работу специальный комитет судей-экспертов, которые с учётом мнения пользователей отбирали лучшие приложения. 30 ноября был опубликован список победителей конкурса[70].

Магазин приложений «Google Play»

22 октября 2008 года Google объявила об открытии онлайн-магазина приложений для ОС Android — Android Market. По соглашению, разработчики получают 70 % прибыли, операторы сотовой связи — 30 %[71]. В феврале 2009 года для разработчиков из США и Великобритании появилась возможность брать плату за свои приложения в Android Market[72]. Компания Sony Ericsson первой запустила собственный канал в онлайн-магазине приложений Android Market. В нём представлены приложения и игры, которые рекомендованы компанией[73].

На декабрь 2011 года с момента создания Android Market было скачано 10 млрд приложений[74][75].

В марте 2012 года компания Google объединила мультимедийные сервисы «Книги», «Android Market», «Музыка» и другие в единый сервис Google Play[76]. Интернет-магазин Google Play работает в 190 странах[77] и насчитывает более 700 тысяч приложений, а за время работы сервиса набралось около 25 млрд скачиваний[78].

В мае 2017 года на конференции I/O был анонсирован набор сервисов Google Play Protect, предназначенный для защиты устройств с поддержкой сервисов Google Play[79].

Исходный код

22 октября 2008 года альянс OHA опубликовал исходный код платформы Android на открытом исходном коде Android: и операционная система, и промежуточное ПО (middleware), и основные конечные приложения, написанные на Java[80]. Общий объём исходного кода Android составил 2,1 ГБ. «Предпочтительной лицензией» на исходный код Android является лицензия Apache 2.0[2].

После выпуска Android 3.0 «Honeycomb» президент мобильного подразделения Google Энди Рубин (англ.) заявил о том, что открытие исходного кода новой версии системы будет отложено по причине того, что система была плохо готова для запуска на коммуникаторах и требует значительных оптимизаций[81]. Это решение вызвало критические оценки аналитиков: например, обозреватель ZDNet Кристофер Доусон назвал такой ход Google разочаровывающим[82]. Но, согласно данным компанией обещаниям, Google открыла осенью 2011 года исходные коды следующей версии системы — Android 4.0 Ice Cream Sandwich[83].

Заявления о нарушении прав

Oracle обвинила Google в нарушении прав интеллектуальной собственности на Java и направила соответствующий иск в суд[84][85][86]. Подобные претензии к компании Google предъявили юристы компании Brown Rudnick LLP, обвинив разработчиков в том, что они нарушают лицензию GPL2 своей библиотекой Bionic[87]. Данное заявление вызвало неоднозначную реакцию в прессе[88][89][90], при этом ряд экспертов пришёл к предварительному выводу, что обвинения, возможно, преждевременны[91].

31 мая 2012 года судья Уильям Алсуп (William Alsup) вынес решение по поводу правомерности претензий Oracle на обладание авторскими правами на 37 API, которые использует Google в платформе Android и которые дают возможность разработчикам создавать совместимые с Java коды. Согласно вердикту Алсупа, интерфейсы API, которые являются предметом рассмотрения в споре Oracle — Google, не могут быть объектом защиты авторского права: «Поскольку специфический код, используемый при реализации методики, различается, каждый в соответствии с законом об охране авторских прав может написать свой собственный код для выполнения точно такой же функции или спецификаций, или же других методов, используемых в Java API. Не имеет значения, что декларации или заглавные строки методики являются идентичными. Когда существует лишь один путь для воплощения идеи или функции, каждый волен делать это, и никто не вправе монополизировать данный способ воплощения»[92]. Впрочем, после апелляции в вышестоящей инстанции корпорации Oracle удалось добиться отмены трактовок судьи Алсупа касательно защиты интерфейсов программирования авторским правом, и дело вернулось на пересмотр с учётом вердикта Апелляционного суда[93].

В 2016 году Oracle увеличила сумму иска к Google с 1 до 9,3 млрд долларов США[94]. В конце мая 2016 года суд присяжных вынес решение в пользу Google, но Oracle собирается обжаловать решение жюри[95][96].

Альтернативные прошивки

Существует сообщество энтузиастов, разрабатывающее открытые варианты прошивок Android — AOSP (англ.), LineageOS (до 2017 CyanogenMod), Replicant, EMUI, MIUI, Flyme, AOKP (Android Open Kang Project), Paranoid Android и другие. Модифицированные версии Android создаются для дополнения операционной системы новыми настройками, опциями, функциями или для улучшения качества работы устройств[97]; удаления из Android-устройства сервисов Google для исключения возможности передачи идентификационной информации на серверы компании, например, информацию о перемещении пользователя в реальном времени, что привело к судебному разбирательству[98]; более оперативного и частого (по сравнению с производителями самих аппаратов) предоставления новых версий Android (или в случае, когда поддержка устройства прекращается)[99]. При технической или программной неисправности устройства, вызванной неправильным использованием root-доступа, в гарантийном ремонте устройства сервисный центр может отказать или снять действие гарантийного талона[100].

Достоинства