Android – операционная система для смартфонов, планшетов и нетбуков. Компания Google приобрела разработчика программного обеспечения Android inc. в 2005 году. Операционная система Android основана на модифицированном ядре Linux. Впоследствии, Google и другие участники Open Headset Alliance сотрудничали для совместной разработки этой новой операционной системы. Далее Android Open Source Project (AOSP) поручено поддержание и дальнейшее развитие платформы. У Android имеется большое сообщество разработчиков, которые расширяют функциональность устройств.
OS Android имеет свой официальный магазин по продаже приложений – Android Market. Включает он в себя как платные приложения, так и бесплатные. В данный момент, для Украины доступны для загрузки только бесплатные программы и игры. Так как OS Android является открытой, пользователю предоставляется возможность загружать приложения и с других ресурсов.
Под Android разработчики, в основном, пишут приложения на языке Java, управляющие устройством через разработанные Google библиотеки.
Официально об OS Android стало известно 5 ноября 2007 года, когда было объявлено основание Open Headset Alliance – консорциум из 80 компаний. Большую часть кода Android была выпущена под лицензией Apache.
Android приложения включают в себя java-приложения и библиотеки, которые запускаются виртуальной машиной Dalvik с JIT компилятором. Библиотеки включают в себя систему управления, графику OpenGL ES 2.0, движок WebKit, графический движок SGL, SSL и библиотеки Bionic. OS Android состоит из 12 миллионов строк кода, в том числе 3-х миллионов строк XML, 2.8 миллионов строк на C, 2.1 миллиона строк на Java и 1.75 миллиона строк на C++.
История OS Android
Компания Android inc. была основана в октябре 2003 года в Пало Альто, штат Калифорния. Основателями Android inc. были Энди Рубин, Рич Майнер, Ник Сирс и Крис Уайт.
В августе 2005 года компания Google приобрела Android inc. После этого Android inc. стала дочерней компанией Google. После покупки Энди Рубин, Рич Майнер и Крис Уайт остались в Android inc. После поглощения Android inc., в сети стали появляться слухи о том, что Google хочет выйти на рынок мобильных телефонов.
Получив поддержку Google, команда во главе с Энди Рубином начала работать над операционной системой базирующейся на ядре Linux. Тогда же, в декабре 2006 года поползли слухи о том, что Google планирует выпустить смартфон под свои брендом, так называемый “Гуглофон”.
Все эти слухи опроверг Эрик Шмидт, заявив следующее: «Сегодняшнее заявление носит более амбициозный характер, чем выпуск смартфона под нашим брендом, о чем пресса спекулирует последние недели. Наше видение заключается в том, что мощнейшая платформа должна отдать свои силы тысячам различных моделей телефонов». После этих слов 5 ноября 2007 года и был представлен Open Headset Alliance – консорциум из множества компаний, в который вошли такие гиганты как: Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, Texas Instruments и другие.
Названия каждой очередной версии ОС Android представляет собой название какого-либо десерта. Первые буквы наименований в порядке версий соответствуют буквам латинского алфавита.
Лицензирование
За исключением кратких непродолжительных периодов времени в процессе обновлений, с 21 октября 2008 года код Android OS был в свободном доступе. Google публиковала код под лицензией Apache. Хотя любой производитель может использовать сам код операционной системы как ему хочется, но все-таки есть некоторые ограничения. Торговую марку Android нельзя использовать, если устройство не будет соответствовать некоторым критериям совместимости Google. Также без этого условия нельзя использовать Android Market и еще несколько приложения Google.
Устройства
Первым устройством, работающим под управлением Android, стал разработанный компанией HTC смартфон T-Mobile G1, презентация которого состоялась 23 сентября 2008 года. Вскоре последовали многочисленные анонсы других производителей смартфонов о намерении выпустить устройства с Android.
Онлайн-магазин приложений для ОС Android
Android Market – интернет-магазин приложений для девайсов на базе Android, которую продвигает альянс Open Handset Alliance (OHA) во главе с Google. Включает в себя игры, клиенты социальных сетей, офисные приложения, приложения для чтения новостей, управления финансами и другие.
22 октября 2008 года Google объявила об открытии этого онлайн-магазина приложений для Android.
- В Украине на смартфонах первое время отсутствовал официальный магазин приложений. Ситуация была исправлена 12 января 2010 года, когда об этом сообщили в Samsung Украина, естественно, что позже Android Market появился и у других вендоров – Motorola, HTC, LG и Sony Ericsson, что значительно подогрело интерес к Android-смартфонам в Украине.
Первым официальным смартфоном с Android Market в Украине стал Samsung i5700 Galaxy Spica.
Разработка программного обеспечения
Приложения для Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik.
Google предлагает для свободного скачивания инструментарий для разработки (Android SDK), который предназначен для x86-машин под операционными системами Windows XP, Windows Vista, Mac OS X (10.4.8 или выше) и Linux. Для разработки требуется JDK 5 либо JDK 6.
Разработку приложений для Android можно вести на языке Java (не ниже Java 1.5). Существует плагин для Eclipse — «Android Development Tools» (ADT), предназначенный для Eclipse версий 3.3-3.5. Для IntelliJ IDEA также существует плагин, облегчающий разработку Android-приложений. Сообщается, что для среды разработки NetBeans IDE разработан экспериментальный плагин.
Архитектура OS Android
Уровень приложений (Applications)
В состав Android входит комплект базовых приложений: клиенты электронной почты и SMS, календарь, различные карты, браузер, программа для управления контактами и много другое. Все приложения, запускаемые на платформе Android написаны на языке Java.
Уровень каркаса приложений (Application Framework)
Android позволяет использовать всю мощь API, используемого в приложениях ядра. Архитектура построена таким образом, что любое приложение может использовать уже реализованные возможности другого приложения при условии, что последнее откроет доступ на использование своей функциональности. Таким образом, архитектура реализует принцип многократного использования компонентов ОС и приложений.
Основой всех приложений является набор систем и служб:
- Система представлений (View System) – это богатый набор представлений с расширяемой функциональностью, который служит для построения внешнего вида приложений, включающий такие компоненты, как списки, таблицы, поля ввода, кнопки и т.п.
- Контент-провайдеры (Content Providers) – это службы, которые позволяют приложениям получать доступ к данным других приложений, а также предоставлять доступ к своим данным.
- Менеджер ресурсов (Resource Manager) предназначен для доступа к строковым, графическим и другим типам ресурсов.
- Менеджер извещений (Notification Manager) позволяет любому приложению отображать пользовательские уведомления в строке статуса.
- Менеджер действий (Activity Manager) управляет жизненным циклом приложений и предоставляет систему навигации по истории работы с действиями.
Уровень библиотек (Libraries)
Платформа Android включает набор C/C++ библиотек, используемых различными компонентами ОС. Для разработчиков доступ к функциям этих библиотек реализован через использование Application Framework. Ниже представлены некоторые из них:
- System C library — BSD-реализация стандартной системной библиотеки C (libc) для встраиваемых устройств, основанных на Linux.
- Media Libraries – библиотеки, основанные на PacketVideo‘s OpenCORE, предназначенные для поддержки проигрывания и записи популярных аудио- и видео- форматов (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG и т.п.).
- Surface Manager – менеджер поверхностей управляет доступом к подсистеме отображения 2D- и 3D- графических слоев.
- LibWebCore – современный движок web-браузера, который предоставляет всю мощь встроенного Android-браузера.
- SGL – движок для работы с 2D-графикой.
- 3D libraries – движок для работы с 3D-графикой, основанный на OpenGL ES 1.0 API.
- FreeType – библиотека, предназначенная для работы со шрифтами.
- SQLite – мощный легковесный движок для работы с реляционными БД.
Уровень среды исполнения (Android Runtime)
В состав Android входит набор библиотек ядра, которые предоставляют большую часть функциональности библиотек ядра языка Java.
Платформа использует оптимизированную, регистр-ориентированную виртуальную машину Dalvik, в отличии от нее стандартная виртуальная машина Java – стек-ориентированная. Каждое приложение запускается в своем собственном процессе, со своим собственным экземпляром виртуальной машины. Dalvik использует формат Dalvik Executable (*.dex), оптимизированный для минимального использования памяти приложением. Это обеспечивается такими базовыми функциями ядра Linux, как организация поточной обработки и низкоуровневое управление памятью. Байт-код Java, на котором написаны ваши приложения, компилируются в dex-формат при помощи утилиты dx, входящей в состав SDK.
Уровень ядра Linux (Linux Kernel)
Android основан на ОС Linux версии 2.6, тем самым платформе доступны системные службы ядра, такие как управление памятью и процессами, обеспечение безопасности, работа с сетью и драйверами. Также ядро служит слоем абстракции между аппаратным и программным обеспечением.
Доступные библиотеки:
§ Bionic — библиотека стандартных функций, несовместимая с libc
§ SSL — шифрование
§ Media Framework (PacketVideo OpenCORE, MPEG4, H.264, MP3, AAC, AMR, JPG, PNG)
§ Surface Manager
§ LibWebCore (на базе WebKit)
§ SGL — 2D-графика
§ OpenGL ES — 3D-библиотека
§ FreeType — шрифты
§ SQLite — легковесная СУБД
По сравнению с обычными приложениями Linux, приложения Android подчиняются дополнительным правилам:
§ Content Providers — обмен данными между приложениями;
§ Resource Manager — доступ к таким ресурсам, как файлы XML, PNG, JPEG;
§ Notification Manager — доступ к строке состояния;
§ Activity Manager — управление активными приложениями.
Для Android был разработан формат архивных исполняемых файлов-приложений .apk