На чем основан android
Архитектура Android
Автор перевода и источник: Максим Юдин
Android – это набор открытого программного обеспечения для мобильных устройств от компании Google, в состав которого входит операционная система и комплект базовых межплатформенных приложений.
Для разработки приложений под платформу Android потребуется набор инструментов и библиотек API — Android SDK, последнюю версию которого вы можете найти здесь.
На представленном ниже рисунке показана архитектура ОС Android.
Уровень приложений (Applications)
В состав Android входит комплект базовых приложений: клиенты электронной почты и SMS, календарь, различные карты, браузер, программа для управления контактами и много другое. Все приложения, запускаемые на платформе Android написаны на языке Java.
Уровень каркаса приложений (Application Framework)
Android позволяет использовать всю мощь API, используемого в приложениях ядра. Архитектура построена таким образом, что любое приложение может использовать уже реализованные возможности другого приложения при условии, что последнее откроет доступ на использование своей функциональности. Таким образом, архитектура реализует принцип многократного использования компонентов ОС и приложений.
Основой всех приложений является набор систем и служб:
1. Система представлений (View System) – это богатый набор представлений с расширяемой функциональностью, который служит для построения внешнего вида приложений, включающий такие компоненты, как списки, таблицы, поля ввода, кнопки и т.п.
2. Контент-провайдеры (Content Providers) – это службы, которые позволяют приложениям получать доступ к данным других приложений, а также предоставлять доступ к своим данным.
3. Менеджер ресурсов (Resource Manager) предназначен для доступа к строковым, графическим и другим типам ресурсов.
4. Менеджер извещений (Notification Manager) позволяет любому приложению отображать пользовательские уведомления в строке статуса.
5. Менеджер действий (Activity Manager) управляет жизненным циклом приложений и предоставляет систему навигации по истории работы с действиями.
Уровень библиотек (Libraries)
Платформа Android включает набор C/C++ библиотек, используемых различными компонентами ОС. Для разработчиков доступ к функциям этих библиотек реализован через использование Application Framework. Ниже представлены некоторые из них:
1. System C library — BSD-реализация стандартной системной библиотеки C (libc) для встраиваемых устройств, основанных на Linux.
2. Media Libraries – библиотеки, основанные на PacketVideo‘s OpenCORE, предназначенные для поддержки проигрывания и записи популярных аудио- и видео- форматов (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG и т.п.).
3. Surface Manager – менеджер поверхностей управляет доступом к подсистеме отображения 2D- и 3D- графических слоев.
4. LibWebCore – современный движок web-браузера, который предоставляет всю мощь встроенного Android-браузера.
5. SGL – движок для работы с 2D-графикой.
6. 3D libraries – движок для работы с 3D-графикой, основанный на OpenGL ES 1.0 API.
7. FreeType – библиотека, предназначенная для работы со шрифтами.
8. SQLite – мощный легковесный движок для работы с реляционными БД.
Уровень среды исполнения (Android Runtime)
В состав Android входит набор библиотек ядра, которые предоставляют большую часть функциональности библиотек ядра языка Java.
Платформа использует оптимизированную, регистр-ориентированную виртуальную машину Dalvik, в отличии от нее стандартная виртуальная машина Java – стек-ориентированная. Каждое приложение запускается в своем собственном процессе, со своим собственным экземпляром виртуальной машины. Dalvik использует формат Dalvik Executable (*.dex), оптимизированный для минимального использования памяти приложением. Это обеспечивается такими базовыми функциями ядра Linux, как организация поточной обработки и низкоуровневое управление памятью. Байт-код Java, на котором написаны ваши приложения, компилируются в dex-формат при помощи утилиты dx, входящей в состав SDK.
Уровень ядра Linux (Linux Kernel)
Android основан на ОС Linux версии 2.6, тем самым платформе доступны системные службы ядра, такие как управление памятью и процессами, обеспечение безопасности, работа с сетью и драйверами. Также ядро служит слоем абстракции между аппаратным и программным обеспечением.
Как работает Android, часть 1
В этой серии статей я расскажу о внутреннем устройстве Android — о процессе загрузки, о содержимом файловой системы, о Binder и Android Runtime, о том, из чего состоят, как устанавливаются, запускаются, работают и взаимодействуют между собой приложения, об Android Framework, и о том, как в Android обеспечивается безопасность.
Немного фактов
Android — самая популярная операционная система и платформа для приложений, насчитывающая больше двух миллиардов активных пользователей. На ней работают совершенно разные устройства, от «интернета вещей» и умных часов до телевизоров, ноутбуков и автомобилей, но чаще всего Android используют на смартфонах и планшетах.
Android — свободный и открытый проект. Большинство исходного кода (который можно найти на https://source.android.com) распространяется под свободной лицензией Apache 2.0.
Компания Android Inc. была основана в 2003 году и в 2005 году куплена Google. Публичная бета Android вышла в 2007 году, а первая стабильная версия — в 2008, с тех пор мажорные релизы выходят примерно раз в год. Последняя на момент написания стабильная версия Android — 7.1.2 Nougat.
Android is Linux
По поводу такой формулировки было много споров, так что сразу поясню, что именно я имею в виду под этой фразой: Android основан на ядре Linux, но значительно отличается от большинства других Linux-систем.
Среди исходной команды разработчиков Android был Robert Love, один из самых известных разработчиков ядра Linux, да и сейчас компания Google остаётся одним из самых активных контрибьюторов в ядро, поэтому неудивительно, что Android построен на основе Linux.
Как и в других Linux-системах, ядро Linux обеспечивает такие низкоуровневые вещи, как управление памятью, защиту данных, поддержку мультипроцессности и многопоточности. Но — за несколькими исключениями — вы не найдёте в Android других привычных компонентов GNU/Linux-систем: здесь нет ничего от проекта GNU, не используется X.Org, ни даже systemd. Все эти компоненты заменены аналогами, более приспособленными для использования в условиях ограниченной памяти, низкой скорости процессора и минимального потребления энергии — таким образом, Android больше похож на встраиваемую (embedded) Linux-систему, чем на GNU/Linux.
Другая причина того, что в Android не используется софт от GNU — известная политика «no GPL in userspace»:
We are sometimes asked why Apache Software License 2.0 is the preferred license for Android. For userspace (that is, non-kernel) software, we do in fact prefer ASL 2.0 (and similar licenses like BSD, MIT, etc.) over other licenses such as LGPL.
Android is about freedom and choice. The purpose of Android is promote openness in the mobile world, and we don’t believe it’s possible to predict or dictate all the uses to which people will want to put our software. So, while we encourage everyone to make devices that are open and modifiable, we don’t believe it is our place to force them to do so. Using LGPL libraries would often force them to do just that.
Само ядро Linux в Android тоже немного модифицировано: было добавлено несколько небольших компонентов, в том числе ashmem (anonymous shared memory), Binder driver (часть большого и важного фреймворка Binder, о котором я расскажу ниже), wakelocks (управление спящим режимом) и low memory killer. Исходно они представляли собой патчи к ядру, но их код был довольно быстро добавлен назад в upstream-ядро. Тем не менее, вы не найдёте их в «обычном линуксе»: большинство других дистрибутивов отключают эти компоненты при сборке.
В качестве libc (стандартной библиотеки языка C) в Android используется не GNU C library (glibc), а собственная минималистичная реализация под названием bionic, оптимизированная для встраиваемых (embedded) систем — она значительно быстрее, меньше и менее требовательна к памяти, чем glibc, которая обросла множеством слоёв совместимости.
В Android есть оболочка командной строки (shell) и множество стандартных для Unix-подобных систем команд/программ. Во встраиваемых системах для этого обычно используется пакет Busybox, реализующий функциональность многих команд в одном исполняемом файле; в Android используется его аналог под названием Toybox. Как и в «обычных» дистрибутивах Linux (и в отличие от встраиваемых систем), основным способом взаимодействия с системой является графический интерфейс, а не командная строка. Тем не менее, «добраться» до командной строки очень просто — достаточно запустить приложение-эмулятор терминала. По умолчанию он обычно не установлен, но его легко, например, скачать из Play Store (Terminal Emulator for Android, Material Terminal, Termux). Во многих «продвинутых» дистрибутивах Android — таких, как LineageOS (бывший CyanogenMod) — эмулятор терминала предустановлен.
Второй вариант — подключиться к Android-устройству с компьютера через Android Debug Bridge (adb). Это очень похоже на подключение через SSH:
Из других знакомых компонентов в Android используются библиотека FreeType (для отображения текста), графические API OpenGL ES, EGL и Vulkan, а также легковесная СУБД SQLite.
Кроме того, раньше для реализации WebView использовался браузерный движок WebKit, но начиная с версии 7.0 вместо этого используется установленное приложение Chrome (или другое; список приложений, которым разрешено выступать в качестве WebView provider, конфигурируется на этапе компиляции системы). Внутри себя Chrome тоже использует основанный на WebKit движок Blink, но в отличие от системной библиотеки, Chrome обновляется через Play Store — таким образом, все приложения, использующие WebView, автоматически получают последние улучшения и исправления уязвимостей.
It’s all about apps
Как легко заметить, использование Android принципиально отличается от использования «обычного Linux» — вам не нужно открывать и закрывать приложения, вы просто переключаетесь между ними, как будто все приложения запущены всегда. Действительно, одна из уникальных особенностей Android — в том, что приложения не контролируют напрямую процесс, в котором они запущены. Давайте поговорим об этом подробнее.
Основная единица в Unix-подобных системах — процесс. И низкоуровневые системные сервисы, и отдельные команды в shell’е, и графические приложения — это процессы. В большинстве случаев процесс представляет собой чёрный ящик для остальной системы — другие компоненты системы не знают и не заботятся о его состоянии. Процесс начинает выполняться с вызова функции main() (на самом деле _start ), и дальше реализует какую-то свою логику, взаимодействуя с остальной системой через системные вызовы и простейшее межпроцессное общение (IPC).
Поскольку Android тоже Unix-подобен, всё это верно и для него, но в то время как низкоуровневые части — на уровне Unix — оперируют понятием процесса, на более высоком уровне — уровне Android Framework — основной единицей является приложение. Приложение — не чёрный ящик: оно состоит из отдельных компонентов, хорошо известных остальной системе.
In Android, however, we explicitly decided we were not going to have a main() function, because we needed to give the platform more control over how an app runs. In particular, we wanted to build a system where the user never needed to think about starting and stopping apps, but rather the system took care of this for them… so the system had to have some more information about what is going on inside of each app, and be able to launch apps in various well-defined ways whenever it is needed even if it currently isn’t running.
Для реализации такой системы нужно, чтобы приложения имели возможность общатся друг с другом и с системными сервисами — другими словами, нужен очень продвинутый и быстрый механизм IPC.
Этот механизм — Binder.
Binder
Binder — это платформа для быстрого, удобного и объектно-ориентированного межпроцессного взаимодействия.
Разработка Binder началась в Be Inc. (для BeOS), затем он был портирован на Linux и открыт. Основной разработчик Binder, Dianne Hackborn, была и остаётся одним из основных разработчиков Android. За время разработки Android Binder был полностью переписан.
Низкоуровневые части Binder оперируют в терминах объектов, которые могут пересылаться между процессами. При этом используется подсчёт ссылок (reference-counting) для автоматического освобождения неиспользуемых общих ресурсов и уведомление о завершении удалённого процесса (link-to-death) для освобождения ресурсов внутри процесса.
Для Java-кода в процессе-клиенте прокси-объект выглядит как обычный Java-объект, который реализует наш интерфейс, и этот код может просто вызывать его методы. При этом сгенерированная реализация прокси-объекта автоматически сериализует переданные аргументы, общается с процессом-сервисом через libbinder, десериализует переданный назад результат вызова и возвращает его из Java-метода.
Stub работает наоборот: он принимает входящие вызовы через libbinder, десериализует аргументы, вызывает абстрактную реализацию метода, сериализует возвращаемое значение и передаёт его процессу-клиенту. Соответственно, для реализации сервиса программисту достаточно реализовать абстрактные методы в унаследованном от Stub классе.
Такая реализация Binder на уровне Java позволяет большинству кода использовать прокси-объект, вообще не задумываясь о том, что его функциональность реализована в другом процессе. Для обеспечения полной прозрачности Binder поддерживает вложенные и рекурсивные межпроцессные вызовы. Более того, использование Binder со стороны клиента выглядит совершенно одинаково, независимо от того, расположена ли реализация используемого сервиса в том же или в отдельном процессе.
Для того, чтобы разные процессы могли «найти» сервисы друг друга, в Android есть специальный сервис ServiceManager, который хранит, регистрирует и выдаёт токены всех остальных сервисов.
Binder широко используется в Android для реализации системных сервисов (например, пакетного менеджера и буфера обмена), но детали этого скрыты от разработчика приложений высокоуровневыми классами в Android Framework, такими как Activity, Intent и Context. Приложения могут также использовать Binder для предоставления друг другу собственных сервисов — например, приложение Google Play Services вообще не имеет собственного графического интерфейса для пользователя, но предоставляет разработчикам других приложений возможность пользоваться сервисами Google Play.
Подробнее про Binder можно узнать по этим ссылкам:
В следующей статье я расскажу о некоторых идеях, на которых построены высокоуровневые части Android, о нескольких его предшественниках и о базовых механизмах обеспечения безопасности.
Подробная история популярной ОС Google Android: от маленького стартапа до захвата мира
На сегодняшний день последняя версия Android имеет порядковый номер 5 и кодовое название Lollipop. Система получила значительные обновления в дизайне, функциональности, в общем, это практически заново созданный продукт. Сейчас уже смартфоны Google Nexus 5 начали обновляться до этой версии ОС, а скоро и все современные смартфоны получат актуальное обновление. Однако про новый 5.0 мы расскажем отдельно, а начать хочется всё же ещё с тех времён, когда проект Android даже не принадлежал Google…
Android: Начало
Многие считают, что история Android началась в 2008 году, когда была выпущена первая версия Android 1.0. Но на самом деле всё закрутилось на 5 лет раньше, в 2003 году, когда Энди Рубин с товарищами (Ник Сирс, Крис Уайт и Рич Майнер) решил создать мобильную операционную систему и зарегистрировал компанию Android Inc. Разработчики сначала сосредоточились на устройствах, которые могли бы постоянно находиться у пользователей, определять местоположение по GPS и автоматически подстраиваться под нужды человека.
Энди Рубин, создатель Android Источник: technobuffalo.com
Для инвесторов того времени вряд ли вообще было что-то понятно. Ну а кто захочет вкладывать деньги в непонятный стартап, который пока что никаких денег не приносит… Так и случилось, что к 2005 году Энди и друзья потратили все средства, но по счастливой случайности к ним присмотрелись из Google и 17 августа 2005 года корпорация стала полноправным владельцем маленькой Android Inc. Стоит отметить, что Google на тот момент не имела каких-то особых планов на гаджеты, а была больше сосредоточена на улучшении собственного ПО и алгоритмов поиска. Страшно сказать, но на тот момент у Google не было никакого Adsense и даже YouTube (его приобрели только в 2007 году).
Логотип Google в 2005 году
В этом же году на фоне судебных разбирательств Oracle и Google решается, что Android будет свободной операционной системой и, конечно же, в первую очередь ориентироваться на внедрение сервисов Google. Так как Энди Рубин изначально занимался проектом, связанным с GPS, а у корпорации уже были Карты, предполагалось внедрение карт в телефоны. Причём тогда ещё не было никаких смартфонов, поэтому карты могли появиться на обычной раскладушке с кнопками. Первые изображения также указывают на то, что Google ориентировался на опыт RIM с их Blackberry, так что если бы не стечение обстоятельств, то сенсорные телефоны могли бы и не появиться. Но, к сожалению или к счастью, в 2007 выходит iPhone и в Google резко пересматривают стратегию. Тем не менее, к выпуску в 2008 готовится первая сборка Android 1.0. Однако в начале 2007 года у Google нет партнёра, который выпустил бы телефон на новой ОС. Nokia — слишком крупная компания, с которой будет конфликт интересов, Motorola ещё не отошла от взлёта продаж моделей Razr. В Google выбирают между LG и HTC. Корейской LG интересен рынок США, однако она боится сотрудничества с неизвестным партнёром и использует договорённости с Google только для того, чтобы заключить контракты с Microsoft по созданию смартфонов с Windows Mobile. А вот HTC была готова к совместной работе, да к тому же тайваньская компания могла быстро создавать рабочие образцы. Первым известным прототипом стал Google Sooner. Тут, правда, пришлось отказаться от сенсорного экрана, эта модель создана по первоначальным спецификациям, когда Google опиралась на опыт Blackberry.
Возможно первый прототип телефона на Android — Google Sooner
Источники сообщают, что первая рабочая версия датируется 15.05.2007 и называлась она тогда M3. Операционка очень напоминает интерфейс Blackberry, главную позицию занимает поисковая строка Google. В общем, если бы не появление iPhone и курса на сенсорные экраны, возможно, мы бы сейчас видели Android вот таким.
Скриншот Android M3, возможно первой рабочей версии ОС Источник: 9to5google.com
Android: официальный старт
В Google отчетливо понимали, что с релизом Apple iPhone наличие сенсорного экрана просто необходимость, и поэтому ранние разработки пришлось отложить. Этому способствовало и общение с операторами, летом 2007 года их мнение о будущем Android были пессимистичны. В августе 2007 года в WSJ появляется статья, в которой говорится об усилиях Google относительно своего телефона и платформы. В этом материале упоминается, что у компании два прототипа – один похож на Palm Treo с QWERTY-клавиатурой под экраном, а второй чем-то напоминает вариант Nokia. Внутри команды Android идет соревнование со временем, так как все предыдущее планы никуда не годятся и от них решили отказаться. Команда меняет сроки, и во вторую половину 2007 года выпускается М3. В версии М5, она появляется в начале 2008 года, в ней появляется статусная строка, хотя эксперименты с UI заметны невооруженным взглядом. Посмотрите видео, чтобы понять различие между этими версиями.
И только к августу 2008 года в Google разработали версию 0.9, чтобы представить версию ОС 1.0 в сентябре 2008 года. С 22 октября 2008 года, оператор T-Mobile в США начинает продажи HTC Dream (T-Mobile G1), первого Android-смартфона, в котором присутствовал сенсорный экран и ОС полностью интегрирована под его использование. Но переработать ОС в Google смогли только к версии 1.6, избавившись от старых представлений, которые заложили изначально при ее создании. Пожалуй, что именно с этого момента и начинается взлет Android. Интерес к HTC Dream в США был огромен, оператор продал к 23 апреля 2009 года 1 миллион устройств. Такой спрос на столь обыденное и простое устройство еще раз доказал, что идеи выигрывают, в данном аспекте это была идея сенсорных телефонов, которая завладела умами потребителей.
Естественно, первые же тесты на реальных пользователях выявили множество недоработок платформы и уже в первый год существования Android Google выпустила следующие обновления: 1.1. Banana Bread, 1.5 Cupcake (появилась загрузка видео и фото на YouTube и Picasa, автоматическая ориентация дисплея, предикативный ввод и т.д.), и 1.6 Donut (преобразование речи в текст с мультиязычным произношением, поддержка WVGA, оптимизированная работа с жестами и т.д.)
Android: вторая попытка
После усовершенствования 1-й версии, Android получил уже расширенную функциональность и хороший внешний вид к версии 2.0, а затем и в 2.1 с одинаковым кодовым именем Eclair. Стало возможным использовать несколько аккаунтов Google, а стандартный веб-браузер получил поддержку HTML5. Одновременно с этим в продажу поступили новые модели Android-смартфонов: НТС Magic и Hero, Motorola Droid и Samsung Galaxy.
Тогда же, в 2010 году начинается выпуск мобильных процессоров с тактовой частотой 1 ГГц. И появляется первый фирменный смартфон Google Nexus One с 1 ГГц процессором. Разумеется, партнером Google становится компания HTC. А процессоры с аналогичной частотой получили НТС Desire, Motorola Droid 2 и Samsung Galaxy S. Кстати, HTC больше не будет делать устройства Google до 2014 года, когда выйдет Nexus 9. В том же 2010 году Google выпустила ещё одну версию Android, новую 2.2 Froyo, в которой выросло быстродействие приложений, использующих JIT-компиляцию, и появилась поддержка Adobe Flash. Ну а обновление до Froyo получили все вышеупомянутые смартфоны с 1 ГГц процессором. Помимо этого, сборка получила такие обновления, как движок Chrome V8 JS для web-обозревателя, передачу контактов и поддержку док-станций по BlueTooth, облачную синхронизацию и т.д.
Google Nexus One и Android 2.2 Froyo
Кстати, в России многие увидели Android впервые именно в этой редакции, так как в этом году в нашей стране начинается спрос на сенсорные смартфоны, Android постепенно входит в моду. До 2010 года «зелёного робота» видели только гики, да и то, скорее в интернете или журналах, чем в собственных руках.
Android Gingerbread и Honeycomb
Шёл третий год существования Android на рынке. Это уже была популярная ОС, но проблем оставалось ещё много. И вот, появляется обновление 2.3 Gingerbread, которое до 2013 года было установлено на огромном количестве устройств. Действительно, в данной версии ОС было реализовано много функций, которые обозначили перспективы развития платформы как таковой — поддержка SIP-телефонии, Near Field Communication и Google Talk, работа с экранами более высокого разрешения, новый менеджер загрузок и многое другое.
Вместе с Gingerbread компания Google выпусткает свой второй брендовый смартфон – Nexus S. На этот раз производителем становится Samsung, а Nexus S представлял собой, по сути, слегка видоизмененный Galaxy S. Правда, вышел Google Nexus S явно поздновато: в день начала его продаж компания LG анонсировала первый двухъядерный смартфон Optimus 2Х. Теперь производители меряются не гигагерцами, а многоядерностью. В результате двухъядерные чипы получил не только LG Optimus 2Х, но и Samsung Galaxy S II, НТС Sensation и Motorola Droid X2.
А компания Samsung, тем временем, выпускает вслед за смартфоном Galaxy S другое устройство — планшет Galaxy Tab. Компактная и легкая семидюймовая «таблетка» стала хорошей альтернативой для тех, кому не нравился громоздкий Apple iPad. Но вот беда, Android-то пока что существует только для смартфонов. Не проблема, подумали в Google, и в начале 2011 года появляется первая спроектированная специально для планшетных ПК версия Android – 3.0 Honeycomb. Смотрелась на планшетах Honeycomb и правда лучше, чем растянутый смартфонный интерфейс Gingerbread. Так, на базе ОС Android заработали уже и смартфоны, и планшеты. Бизнес начинал расширяться, причём стремительно. Носителями Honeycomb становятся практически все Android-планшеты — Motorola Xoom, Acer Iconia Tab, Samsung Galaxy Tab 10.1, Lenovo ThinkPad Tablet и т.д.
В этом же 2011 году на технологической выставке IFA 2011 в Берлине Samsung представиляет свой первый 5-дюймовый фаблет Glaxy Note, который стал весьма востребованным устройством, несмотря на мнение скептиков. Тогда это было, по сути, первое устройство такого класса, да ещё и на Android. Apple до этого потребовалось ещё 3 года, в 2014 году компания выпустила фаблет iPhone 6 Plus.
Android 4: от Ice Cream Sandwich до KitKat
В Google понимают, что иметь две раздельные системы для смартфонов и планшетов — это не очень выгодно. Тратится больше времени на разработку и поддержку. И осенью 2011 года Google выпускает версию Android 4.0 Ice Cream Sandwich, которая становится первой кроссплатформенной версией для смартфонов и планшетов. В сборке также появляется доступ к приложениям прямо с «локскрина», а AndroidMarket переименовывается в Google Play. По словам многих специалистов, именно с версии 4.0 Android начал приобретать привычные очертания и нормальную функциональность. Теперь устройствами на «зелёном роботе» тоже можно было просто пользоваться, они перестали быть гаджетами для гиков.
Следом за новой операционкой Google презентовала и новый смартфон — Galaxy Nexus, который, очевидно, также был разработан при сотрудничестве с Samsung. И снова после релиза смартфона производители комплектующих начинают борьбу за железо. Qualcomm представляет мощные процессоры Krait, а Nvidia анонсирует 4-ядерные чипы Tegra 3. Ну а бесспорным лидером Android-смартфонов в 2012 году становится Samsung Galaxy S III, составивший компанию бюджетному бестселлеру ASUS Nexus 7 на базе новой ОС Android 4.1 Jelly Bean.
В 2012-2013 годах ничего особого с Android не произошло после глобальных изменений с объединением планшетной и смартфонной версии. Тем не менее, в 2012 году Google делает еще 2 фирменных устройства — смартфон LG Nexus 4 и планшет Samsung Nexus 10. Параллельно с новинками была представлена обновленная сборка Android 4.2 Jelly Bean, которая дополнила предыдущую версию. Теперь пользователи смогли сполна ощутить преимущества от использования GoogleNow, Cloud Messaging, Android Beam, тройной буферизации, многоканального USB audio и т.д. Затем представлен смартфон Google Moto X и планшет Google Nexus 7 2-го поколения, которые в нашей стране не пользовались особой популярностью по причине того, что Motorola ушла с российского рынка ещё в 2010 году.
В 2013 году на рынке появляется Nexus 5, опять же, в результате сотрудничества с LG. И для него и других устройств выходит новая версия Android 4.4 KitKat. Да, это первый случай, когда индикатором версии становится название коммерческого продукта, но не будем об этом. Изменения коснулись не только интерфейса отдельных системных приложений и элементов. Появилась в KitKat обещанная прозрачность верхней панели уведомлений вместе с новым утонченным шрифтом и поддержкой полноэкранного интерфейса со стороны отдельных приложений. С выходом KitKat упростился доступ к сервису Google Now. Теперь его вызов унифицирован – достаточно лишь провести по экрану пальцем слева направо. Ранее способы доступа к Google Now варьировались в зависимости от модели смартфона (нажатие на кнопку Home, потряхивание и т. д.). Дополнительно сервис активируется фразой «OK Google» при открытом стартовом экране. Не обошли вниманием разработчики и программу Hangouts. Теперь она позволяет отправлять не только чат-сообщения, но и SMS/MMS. Наконец, отметим встроенный в KitKat шагомер, который работает даже в фоновом режиме, а также расширенную совместимость с принтерами через облачную технологию Google Print. Последняя позволяет безо всяких проводов отправлять на печать документы, меняя предварительно размер бумаги и указывая требуемое количество страниц.
Таким образом, Android KitKat стал практически совершенной версией системы. Работа всех сервисов была отлажена, внешний вид догнал Apple по интуитивности и стилю, в общем, со всех сторон это была уже хорошая доработанная система. Но Google хотелось большего. Нужен был Material Design, Android Wear, работа с автомобилями и многое другое. В общем, всё то, чего нет в KitKat, но есть в Lollipop.
Android Lollipop
В начале 2014 года Google показывает миру Android Wear, специальную ОС для носимых устройств. Некоторые компании тут же начинают разрабатывать устройства на этой операционке, чтобы уже на IFA 2014 представить их пользователям. Так, появляется Moto 360, LG Watch R и Sony SmartWatch 3. Но это далеко не главное событие у Android, которое ждёт его в этом году.