Android OS

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


История обновлений

С момента выхода первой версии в сентябре 2008 года произошло несколько обновлений системы. Эти обновления, как правило, касаются исправления обнаруженных ошибок и добавления нового функционала в систему. Каждая версия системы получает собственное кодовое имя на тему десерта. Кодовые имена присваиваются в алфавитном порядке. На текущий момент выпущено 9 версий системы и ещё одна находится в разработке. Последняя версия — 3.2 «Honeycomb». С полным списком версий вы можете ознакомится здесь.


Устройства

Первым устройством, работающим под управлением Android, стал разработанный компанией HTC смартфон T-Mobile G1, презентация которого состоялась 23 сентября 2008 года. Вскоре последовали многочисленные анонсы других производителей смартфонов о намерении выпустить устройства с Android. Кроме того, энтузиасты портировали Android на ряд известных устройств, среди которых, например, интернет-планшет Nokia N810, смартфоны HTC Touch, HTC TyTN II и фоторамка. Также известны случаи успешного портирования на компьютеры архитектуры x86.

Отдельного упоминания достойна инициатива компании Koolu, которая занялась не только портированием Android на Neo FreeRunner, но и строит свой бизнес на продаже этих OpenSource-смартфонов с предустановленной мобильной платформой Google. Первый официальный и общедоступный бета-релиз порта Android на Neo FreeRunner от Koolu состоялся во второй половине декабря 2008 года.

Весной 2011 года компания Samsung представила новый смартфон Galaxy S II и планшеты Galaxy Tab также работающие на Android 2.3 (Gingerbread).

С полным списком устройств, работающих на Android OS вы можете ознакомится здесь.


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

Существует сообщество энтузиастов, разрабатывающее полностью open-source варианты Android-прошивок. CyanogenMod, MIUI и VillainROM — известные примеры данных прошивок.

Модифицированные версии Android’a (называемая также «прошивка», или «кастомная прошивка») создаётся для:

  • удаления из Android-устройства сервисов Google (например, таких как синхронизация данных) — для обеспечения локализации данных пользователя только на Android-устройстве — исключения возможности передачи идентификационной информации (IMEI, номера телефона, GPS-координат и т. д.) на серверы Google;
  • более оперативного и частого (по сравнению с производителями самих аппаратов) предоставления новых версий Android OS. Нередки случаи когда производитель прекращает поддержку модели которая показалась им устаревший или нерентабельной и пользователям желающим увидеть новые функции приходится обращаться именно к работам энтузиастов;
  • дополнения Android-прошивки новыми настройками и функциями. Такими как поддержка FLAC Lossless Audio, возможность для хранения загруженных приложений на MicroSD карте (для версий Android до 2.2) и т. д.

Для перепрошивки Android-устройства необходимо получение root-доступа (процесс получения называется «rooting») и разблокировки загрузчика («bootloader»), что даёт больший контроль над системой и над приложениями, установленными по умолчанию. Модифицированные прошивки позволяют пользователям старых телефонов использовать приложения, доступные только для более новых релизов.

Некоторые производители Android-устройств аппаратно блокируют возможность перепрошивки (например, HTC, Sony Ericsson), некоторые аппаратно не блокируют (но тем не менее сохраняют трудности по перепрошивке). Разработчиками (например, альтернативной прошивки CyanogenMod) была решена и эта задача, создающая разногласия по поводу того, что может делать с аппаратом владелец, а чего не имеет права, без учёта того, был или не был куплен им телефон. А некоторые производители (Sony Ericsson в некоторых моделях аппаратов, HTC в своих будущих моделях) делают всё чтобы продвинутый пользователь мог не только установить другую прошивку, но и самостоятельно создать свою (предоставляется детальная инструкции по замене прошивок, программное обеспечение, документация по архитектуре программной платформы, код оригинальной прошивки и т. д.). Риск, связанный с возможной поломкой телефона в процессе разблокирования, перекладывается на пользователя, который в случае разблокирования загрузчика соглашается с условиями, указывающими на досрочную потерю гарантии на телефон (для восстановления гарантии необходимо снова установить официальным флэшером официальную прошивку).

В конфликте интересов двух сторон (производителей самих телефонов (также Google) и пользователей) прослеживается следующая мотивация:

  • производители хотят устанавливать на телефоны «рекламные» приложения, которые невозможно удалить без рутинга;
  • Google хочет собрать максимально много информации о пользователе: не только такие персональные данные, как адреса эл. почты (при пользовании почтой), истории посещений сайтов, и т. д.; но и перемещения (GPS-координаты, или при выключенном GPS-приёмнике местоположение аппарата по сигналам сотовых вышек) пользователя в реальном времени, что привело к судебному разбирательству.
  • производители не стремятся оперативно обновлять операционную систему, а спустя 1-2 года и вовсе прекращают поддержку продукта, тем самым вынуждая покупателей пользоваться всё новыми и новыми моделями телефонов.

24 сентября 2009 года Google обратилась к разработчикам CyanogenMod с письмом, требующим удаления из альтернативной прошивки частей системы и приложений с закрытым исходным кодом (такими как «Маркет», GPS навигация, «Карты» и т. д.). В результате из Android-версии CyanogenMod были удалены «закрытые» приложения, и в процессе установки CyanogenMod пользователь имеет возможность доустановить пакет программ от Google или доустановить альтернативные варианты «закрытых» программ (альтернативный вариант «Карты» и т. д.), что разрешило спор и предоставило возможность пользователям быть или не быть свободными от Google-приложений.


Разработка программного обеспечения

Приложения для Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik.

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

Разработку приложений для Android можно вести на языке Java (не ниже Java 1.5). Существует плагин для Eclipse — «Android Development Tools» (ADT), предназначенный для Eclipse версий 3.3-3.6. Для IntelliJ IDEA также существует плагин, облегчающий разработку Android-приложений. Сообщается, что для среды разработки NetBeans IDE разработан экспериментальный плагин . Кроме того существует Motodev Studio for Android, которая представляет собой комплексную среду разработки, основанную на базе Eclipse и позволяет работать непосредственно с Google SDK.

Доступные библиотеки:

  • Bionic (библиотека стандартных функций, несовместимая с libc);
  • libc (стандартная системная библиотека языка Си);
  • мультимедийные библиотеки (на базе PacketVideo OpenCORE; поддерживают такие форматы, как MPEG4, H.264, MP3, AAC, AMR, JPG и PNG);
  • SGL (движок двухмерной графики);
  • OpenGL ES 1.0 (движок трехмерной графики);
  • Surface Manager (обеспечивает для приложений доступ к 2D/3D);
  • WebKit (готовый движок для Web-браузера; обрабатывает HTML, JavaScript);
  • FreeType (движок обработки шрифтов);
  • SQLite (легковесная СУБД, доступная для всех приложений);
  • SSL (протокол, обеспечивающий безопасную передачу данных по сети).

По сравнению с обычными приложениями Linux, приложения Android подчиняются дополнительным правилам:

  • Content Providers — обмен данными между приложениями;
  • Resource Manager — доступ к таким ресурсам, как файлы XML, PNG, JPEG;
  • Notification Manager — доступ к строке состояния;
  • Activity Manager — управление активными приложениями.

Для Android был разработан формат установочных пакетов .apk.


Android Developer Challenge

В ноябре 2007 года компания Google объявила конкурс «Android Developer Challenge» с призовым фондом 10 млн долларов США.  Задача для участников — создать своё любимое приложение для мобильных телефонов. Принимаются программы любого типа, однако приветствуется инновационность и, конечно, полезность разрабатываемых приложений.

Среди областей, с которых можно начинать разработку приложений для конкурса Android, выделены такие, как социальные сети, работа с информацией различного типа (например, фотографиями), email/IM/календарь, игры, новости, переосмысление традиционных пользовательских интерфейсов. Мероприятия конкурса ADC проходили в 2008 году и закончились награждением 50 финалистов крупными денежными призами (25-275 тыс. долл.).

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


Android Market

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

По состоянию на начало марта 2011 г. в Android Market находится более 250 000 приложений.


Исходный код

21 октября 2008 года альянс OHA опубликовал исходный код платформы Android.

В релиз вошел весь стек Android:

  • операционная система, и промежуточное ПО (middleware)
  • основные конечные приложения, написанные на Java

Общий объём исходного кода Android составил 2,1 Гб

В настоящее время Google придерживает предоставление широкого доступа к новой версии мобильной операционной системе Android 3.1. Разработчики компании заявляют, что такие ограничения связаны с тем, что пока система проходит этап доработки, чтобы в будущем сделать ОС полностью готовой для устройств определенных типов. «Предпочтительной лицензией» на исходный код Android является Apache License 2.0.


Заявления о нарушении прав интеллектуальной собственности

Oracle Corporation обвинила Google в нарушении прав интеллектуальной собственности на Java и направила соответствующий иск в суд. Подобные претензии к компании Google предъявили юристы компании Brown Rudnick LLP, обвинив разработчиков в том, что они нарушают лицензию GPL v.2 своей библиотекой Bionic. Данное заявление вызвало неоднозначную реакцию в прессе, при этом, ряд экспертов пришли к предварительному выводу, что обвинения, возможно, преждевременны.


Android на чужих устройствах

Попытки установить ОС Android на разнообразные устройства происходят давно, примером удачного портирования может служить смартфон HTC HD2, на котором ОС Android можно запускать как с microSD-карты, так и с внутренней NAND-памяти. При этом установленная система имеет полную, ничем особо не ограниченную функциональность. Помимо этого есть удачный опыт установки Android на устройства iPhone и iPad с помощью специальной программы под названием openiboot, которая предназначена для запуска на данных устройствах разнообразных ОС, в том числе и Android.

 


Критика

  • Некоторые обозреватели отмечают, что Android проявляет себя лучше одной из своих конкуренток, Apple iOS, в ряде особенностей, таких как: веб-сёрфинг, интеграция с сервисами Google Inc., удобстве интерфейса и прочих.
  • Платформа основана на виртуальной машине Dalvik, поэтому преимущества и возможности операционной системы Linux на данной платформе практически не используются. Например, не используется ни один из популярных графических тулкитов и библиотек (таких как Qt или GTK), что делает маловероятным появление большого числа приложений, портированных с полноценного десктопного варианта Linux на данную платформу из-за отсутствия по умолчанию X-сервера и распространённых графических библиотек.
  • В версии Android 1.6 разработчики добавили Native Development Kit, который позволяет писать собственные низкоуровневые модули для системы на языке C/С++, опираясь на стандартные linux-библиотеки. Хотя, например, стандартная библиотека языка Си на платформе Android, известная как Bionic, как раз не является стандартной и полностью совместимой с libc.
  • Появилась информация о том, что Google будет по своему усмотрению удалять приложения на телефонах пользователей, если нарушаются условия их использования.
  • Для доступа к Android Market и другим сервисам от Google необходимо использовать проприетарные приложения, которые производитель телефона имеет право устанавливать на телефон только после заключения контракта с Google.
  • Конкуренты Android выступили с критикой платформы, обвиняя её в чрезмерной фрагментации, создающей препятствия разработчикам. Google опровергла все обвинения, заявив, что никаких подобных проблем нет, но, тем не менее, выпустила средство для преодоления проблем фрагментации.
  • Подвергается критике решение Google не размещать в широком доступе код Android 3.0 Honeycomb, доступный только для участников Open Handset Alliance или по индивидуальному запросу после подписания соглашения. Googlе мотивирует это неготовностью платформы и мерой предупреждения небрежной её реализации.

Cсылки: