Версия
|
Кодовое название
|
API
|
Распространение
|
2.2
|
Froyo
|
8
|
0.1%
|
2.3.3 - 2.3.7
|
Gingerbread
|
10
|
2.7%
|
4.0.3 - 4.0.4
|
Ice Cream Sandwich
|
15
|
2.5%
|
4.1.x
|
Jelly Bean
|
16
|
8.8%
|
4.2.x
|
|
17
|
11.7%
|
4.3
|
|
18
|
3.4%
|
4.4
|
KitKat
|
19
|
35.5%
|
5.0
|
17.0%
|
5.1
|
Lollipop
|
22
|
17.1%
|
6.0
|
Marshmallow
|
23
|
1.2%
|
Данные на 1 февраля 2016 [5].
Доля Android 6.0 Marshmallow едва превысила 1% спустя почти четыре месяца
после релиза платформы. За это же время до iOS 9 обновились 77% мобильных
гаджетов Apple.
% устройств используют ОС iOS 9 (iPhone и iPad)
Рисунок 4
Данные на 22 февраля 2016 [6].
Что самое удивительное, в рейтинге Google по-прежнему лидирует
анонсированная в 2013 году Android 4.4 KitKat (35.5%). На втором месте по
популярности находится версия Lollipop с долей 34.1%, а третью строчку занимает
Jelly Bean (23.9%).
В ближайшие месяцы из рейтинга может вылететь Android 2.2 Froyo - с
августа доля этой версии сократилась в три раза, опустившись до минимальной
отметки в 0.1%.
3. Встроенные приложения Android
Устройства с системой Android
снабжены набором предустановленных программ, разработанных в рамках проекта Android Open Source Project (AOSP)
(Проект открытых исходных кодов для Android).
Перечислим основные из них:
– E-mail - клиент;
– Приложение для работы с SMS (начиная с Android 5.0
заменено на Hangouts);
– Полный набор инструментов для управления личными данными
пользователя, включая календарь и адресную книгу;
– Браузер на базе WebKit
(начиная с Android 4.4 заменено на Google Chrome);
– Музыкальный плеер и фотогалерея (начиная с Android 5.0 заменено на Google Play Музыка и Google Фото);
– Калькулятор;
– «Рабочий стол»;
– Будильник
Во многих случаях Android
включает также следующее лицензионное ПО от Google:
– Магазин Google Play Store для загрузки сторонних программ,
разработанных для платформы Android,
покупки фильмов, музыки, книг и прессы;
– Полноценное приложение Google Maps, включая
функцию Street View («Просмотр улиц»), Driving Directions («Показ проезда»),
маршрутизированную навигацию, спутниковую карту и информация о пробках;
– Программу для работы с почтой Gmail;
– Программу для обмена мгновенными сообщениями Google Hangouts;
– Программу для работы с файлами Google Диск;
– Видеоплеер для работы с сервисом YouTube.
Данные, к которым имеют доступ из этих приложений, например, адресная
книга, открыты и для программ сторонних разработчиков. Кроме того, приложения
могут, например, реагировать на входящие звонки.
Внешний вид программ, которые установлены на новых телефонах, может
сильно варьироваться в зависимости от производителя аппаратного обеспечения
и/или оператора, дистрибьютора.
Открытый характер платформы Android означает, что операторы или производители комплектного
оборудования могут менять пользовательский интерфейс и набор программ на любом
устройстве под управлением Android.
Некоторые производители разработали свои собственные интерфейсы,
например, Sense от HTC, Moto Blur от Motorola и Touch Wiz от Samsung.
Важно отметить, что для всех совместимых устройств платформа и среда
разработки остаются неизменными независимо от производителя или оператора.
Пользовательский интерфейс может меняться, однако программы будут работать
абсолютно одинокого на всех совместимых с Android устройствах [4, с 26-27].
4. Архитектура Android
Рисунок 5 Структура платформы Google Android
Архитектура Google Android состоит из четырех
уровней (нумерация обозначает порядок уровней снизу-вверх).
Уровень - Ядро OS Linux версии 2.6 обеспечивает
функционирование системы. Оно отвечает за безопасность, управление памятью,
энергосистемой и процессами, а также предоставляет сетевой стек и модель
драйверов. Кроме того, оно играет связующую роль между аппаратным обеспечением
и остальной частью программного стека.
Уровень - Программное обеспечение промежуточного слоя -
набор библиотек (Libraries), предназначенный для обеспечения важнейшего
функционала для приложений.
Вот некоторые из них:
– Surface Manager - композитный менеджер окон. Вместо того, чтобы
отрисовывать графику в буфер дисплея, система посылает поступающие команды
отрисовки в закадровый буфер, где они накапливаются вместе с другими, составляя
некую композицию, а потом выводятся пользователю на экран. Это позволяет
создавать интересные бесшовные эффекты, прозрачность окон и плавные переходы.
– Media Framework - библиотеки, реализованные на базе PacketVideo
OpenCORE. С их помощью система осуществляет запись/воспроизведение аудио- и
видео- контента, а также вывод статических изображений. Поддерживаются форматы
MPEG4, H.264, MP3, AAC, AMR, JPG и PNG и др.
– SQLite - реляционная СУБД, используемая в Android в качестве
основного движка для работы с базами данных, используемыми приложениями для
хранения информации.
– 3D библиотеки - используются для отрисовки 3D-графики, при
возможности используют аппаратное ускорение. Реализуются на основе API OpenGL
ES 1.0, 2.0, 3.0 и 3.1.
– FreeType - библиотека для работы для растеризации шрифтов и
осуществления операций над ними.
– LibWebCore - библиотеки браузерного движка WebKit.
– SGL (Skia Graphics Engine) - библиотека для работы с 2D-графикой.
– Libc - стандартная библиотека языка C, настроенная для работы на
устройствах на базе Linux.
Все библиотеки написаны на языке C++ и скомпилированы
под конкретное аппаратное обеспечение устройства.
На этом же уровне располагается среда выполнения Android
Runtime. Она состоит из виртуальной Java-машины Dalvik/ART и библиотек ядра.
Dalvik/ART поддерживает одновременную работу нескольких приложений и
выполняет файлы в специальном формате. dex, оптимизированном для устройств с
малым количеством памяти. Библиотеки ядра написаны на языке Java и поддерживают
широкий диапазон функциональных возможностей.
Каждое приложение в Android Runtime запускается в
собственном экземпляре виртуальной машины Dalvik/ART. То есть, все работающие
процессы изолированы от операционной системы и друг от друга. Особенность
структуры Android Runtime позволяет осуществлять работу программ строго в
рамках виртуальной машины. Благодаря этому ядро операционной системы защищено
от влияния со стороны других компонентов. Код с ошибками или вредоносное ПО не
смогут испортить систему или само устройство. Функция защиты, кроме
непосредственного выполнения программного кода, является одной из ключевых для
этого уровня.
Уровень - Application Framework, или каркас приложений. Именно через каркасы приложений
разработчики получают доступ к API, предоставляемым компонентами системы,
лежащими ниже уровнем. Кроме того, благодаря архитектуре фреймворка, любому
приложению предоставляются уже реализованные возможности других приложений, к
которым разрешено получать доступ.
В базовый набор сервисов и систем, лежащих в основе каждого приложения и
являющихся частями фреймворка, входят:
– Богатый и
расширяемый набор представлений (Views), который может быть использован для
создания визуальных компонентов приложений, например, списков, текстовых полей,
таблиц, кнопок или даже встроенного web-браузера.
– Контент-провайдеры
(Content Providers), управляющие данными, которые одни приложения открывают для
других, чтобы те могли их использовать для своей работы.
– Менеджер
ресурсов (Resource Manager), обеспечивающий доступ к ресурсам без
функциональности (не несущими кода), например, к строковым данным, графике,
файлам и другим.
– Менеджер
оповещений (Notification Manager), благодаря которому все приложения могут
отображать собственные уведомления для пользователя в строке состояния.
– Менеджер
действий (Activity Manager), который управляет жизненными циклами приложений,
сохраняет данные об истории работы с действиями, а также предоставляет систему
навигации по ним.
– Менеджер
местоположения (Location Manager), позволяющий приложениям периодически
получать обновленные данные о географическом положении устройства.
Таким образом, приложения в ОС Android могут получать в своё распоряжение
вспомогательные инструменты.
Отличия фреймворка от библиотеки
– Фреймворк только выполняет код, написанный для него, библиотеки
исполняются сами.
– Фреймворк состоит из библиотек с разной функциональностью и
назначением, а библиотеки объединяют наборы функций, близких по логике.
4 Уровень - Applications. Сюда относятся базовые программы, предустановленные на
Android. Это браузер, почтовый клиент, программа для отправки SMS, карты,
календарь, менеджер контактов. Список интегрированных приложений может меняться
в зависимости от модели устройства и версии Android. Также на этом уровне
располагается стороннее ПО. Система позволяет устанавливать его без
ограничений, поэтому все стандартные приложения могут быть заменены аналогами. Приложения для Android пишутся на языке Java
[3, с 132-135].
.1 Достоинства
Некоторые обозреватели отмечают, что Android проявляет себя лучше одного
из своих конкурентов, Apple iOS, в ряде особенностей, таких как веб-сёрфинг,
интеграция с сервисами Google Inc. и прочих. Также Android, в отличие от iOS,
является открытой платформой, что позволяет реализовать на ней больше функций.
В Android-аппаратах, как правило, присутствует microSD-кардридер,
делающий возможным быстрый перенос файлов с компьютера на телефон. Кроме того,
в Windows Phone 7 невозможна прямая передача каких-либо файлов с телефона и на
телефон, кроме как через программы синхронизации (Zune), в то время как
телефоны на Android экспортируют файловую систему карты памяти как USB mass
storage device (в версиях начиная с 3.0 на усмотрение производителя) или с
помощью Media Transfer Protocol (MTP).
В отличие от Windows Phone 7, в Android заявлена полноценная реализация
Bluetooth-стека, позволяющая в том числе передачу и приём файлов. Присутствует
реализация FTP-сервера, режима точки доступа к сети (службы PAN) и групповой
одноранговой сети через Bluetooth (службы GN).
Несмотря на изначальный запрет на установку программ из «непроверенных
источников» (например, с карты памяти), это ограничение отключается штатными
средствами в настройках аппарата, что позволяет устанавливать программы на
телефоны и планшеты без интернет-подключения (например, пользователям, не
имеющим Wi-Fi-точки доступа и не желающим тратить деньги на мобильный интернет,
который обычно стоит дорого), а также позволяет всем желающим бесплатно писать
приложения для Android и тестировать на своём аппарате.доступен для различных
аппаратных платформ, таких как ARM, MIPS, x86.
Существуют альтернативные Google Play магазины приложений: Amazon
Appstore (англ.), Opera Mobile Store, Yandex.Store, GetUpps!, F-Droid (англ.) и
другие.
В версии 4.2 введена поддержка многопользовательского режима.
5.2 Недостатки
Наличие в некоторых Android-устройствах сервисов Google, обеспечивающих возможность
передачи идентификационной информации на серверы компании, например, информацию
о перемещении пользователя в реальном времени.
В версии Android 1.6 разработчики добавили Native Development Kit,
который позволяет писать собственные низкоуровневые модули для системы на
языках C/С++, опираясь на стандартные Linux-библиотеки. Хотя, например,
стандартная библиотека языка Си на платформе Android, известная как Bionic, как
раз не является стандартной и полностью совместимой с libc.
Для доступа к Google Play и другим сервисам от Google необходимо
использовать проприетарные приложения, которые производитель телефона имеет
право устанавливать на телефон только после заключения контракта с Google.
Конкуренты Android выступили с критикой платформы, обвиняя её в
чрезмерной фрагментации, создающей препятствия разработчикам. Google опровергла
все обвинения, заявив, что никаких подобных проблем нет.
Подвергается критике решение Google не размещать в широком доступе код
Android 3.0 Honeycomb, доступный только для участников Open Handset Alliance
или по индивидуальному запросу после подписания соглашения. Google мотивирует
это неготовностью платформы и мерой предупреждения небрежной её реализации.
Ричард Столлман заявлял, что «всё просто и ясно: за исключением ядра Linux,
Android 3 представляет собой несвободный софт» и «несмотря на то, что телефоны
с Android на сегодняшний день не так плохи, как смартфоны Apple или Windows,
нельзя сказать, что они уважают вашу свободу». В настоящий момент Google открыл
исходный код для всех версий Android вплоть до 6.0, а также отправил в Linux
все изменения, в соответствии с GPL.
По данным Lookout Security Mobile, за 2011 год у пользователей
Android-смартфонов было украдено около миллиона долларов США (напр., отправка
СМС без ведома владельца телефона). Однако это зачастую возникает у
пользователей, которые невнимательно читают списки разрешений [2, с 36-37].
6. Чем Android
не является
Неудивительно, что внедрение революционной технологии вызвало некоторое
недопонимание, чем на самом деле является Android. Можно уверенно сказать, чем он не является.
- Реализацией платформы Java ME. Приложения для
Android написаны с использованием языка Java, однако они не используются на
виртуальной машине Java ME (Mobile Edition - мобильная версия), соответственно, скомпилированные
для Java классы и исполняемые файлы не будут
работать на платформе Android.
- Частью инициативы Linux Phone Standards Forum (LiPs)
(Форума стандартов мобильногоLinux)
или Open Mobile Alliance (OMA) (Альянс открытых мобильных архитектур). Android работает на Linux-ядре с открытым исходным кодом, но при всей схожести
целей весь программный стек платформы Android призван решить более перспективные задачи по сравнению с
инициативами упомянутых организаций по определению стандартов.
- Стандартным уровнем приложений (например, UiQ или S60). Хотя Android
имеет уровень приложений, он также охватывает весь программный стек, начиная с
самого нижнего уровня - операционной системы - и заканчивая уровнем библиотек API и самих приложений.
- Видом мобильных телефонов. Android включает референс-дизайн для производителей мобильных
телефонов, однако в природе не существует телефона марки Android. Как раз наоборот: Android создали для использования на самых
разнообразных устройств.
- Ответом Google
на iPhone. iPhone представляет собой запатентованную программную и
аппаратную платформу компании Apple.
В тоже время Android - это набор программ с открытым
исходным кодом, разработанный и поддерживаемый Альянс открытых мобильных
архитектур. Android предназначен для работы на любых
совместимых устройствах.
Заключение
Сегодня операционная система для мобильных платформ Google Android стала достаточно популярной. Перспективы ОС для
мобильных устройств весьма многообещающие: улучшение и упрощение пользовательского
интерфейса; улучшенная графика; более широкие мультимедийные возможности;
развитие набора сервисных и игровых программ; совместимость с ПК и с форматами
файлов; продолжение и развитие использования платформы Java для мобильных
устройств; развитие самих мобильных устройств: улучшение разрешения экранов,
ускорение процессоров, увеличение объема памяти, реализация новых быстрых
коммуникационных технологий.
Особенности архитектуры платформы Google Android позволили ей выйти на первое место среди других
платформ. Главные из них:
1 Грамотно разработанное ядро, заимствованное у системы Linux.
2 Регистр-ориентированная виртуальная машина Dalvik/ART для выполнения приложений.
Инновационные библиотеки, значительно расширяющие функционал
устройств.
4 «Легковесная» СУБД SQLite для хранения данных.
5 Возможность поддержки 3D и 2D графики, и даже комбинирования их в
одном приложении.
Многозадачность и изолированность процессов друг от друга.
Универсальность архитектуры наряду с высоким качеством.
Литература
1) Голощапов А.Л. Google Android: системные компоненты и
сетевые коммуникации. - СПб.: БХВ-Петербург, 2012. - 384 c.
2) Фелкер Д. Android: разработка приложений для
чайников. - М.: Диалектика, 2012. - 336 с.
3) Хашими С., Коматинени С., Маклин Д. Разработка
приложений для Android. - СПб.:
Питер, 2011. - 736 с.
4) Майер Р. Android 4. Программирование приложений для планшетных компьютеров и
смартфонов. - М.: Эксмо, 2013. - 816 с.
5) Android developer
) Apple developer