Что такое Андроид? Альянс из 30 компаний во главе с Google, решили сделать открытую и бесплатную операционную систему для мобильных устройств.

Android — это программный стэк для мобильный устройств, который влючает в себя следующие уровни: операционную систему, middleware(промежуточное ПО) и приложения.

Возможности:

  • Application framework — набор компонентов для приложений
  • Dalvik virtual machine — виртуальная машина, в которой работают все приложения Оптимизированная для мобильных устройств
  • Встроенный браузер — взят за основу WebKit с открытым кодом
  • Оптимизированная графика с 2D библиотекой, 3D графика — OpenGL ES 1.0. Возможна поддержка hardware акселератора
  • SQLite — база данных
  • Поддержка медиа форматов: звук, видео, картинки(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM стандарт.
  • Bluetooth, EDGE, 3G и WiFi
  • Камера, GPS, компас и акселерометр
  • Богатый выбор инструментов для разработчиков ПО, включает эмулятор устройства, дебаггер, инструменты для профайлинга, плагины для Eclipse IDE

Архитектура Андроида

Приложения

Android будет включать в себя набор стандартных программ, таких как:

  • почтовый клиент
  • SMS клиент
  • календарь
  • гео карты
  • браузер
  • контакты

Всё ПО написано на языке программирования Java.

Application Framework

Программисты имеют полный доступ до всей функциональности, что лежит в основе операционной системы. Архитектура приложений построенна так, чтобы было легко использовать основные компоненты, есть возможность создавать свои компоненты и предоставлять их в открытое использование.

Набор основных компонентов/сервисов:

  • визуальные компоненты (списки, текстовые поля, grids, кнопки и встроенный браузер)
  • провайдеры контента, например для получения стандартных контактов
  • менеджер ресурсов — доступ к таким ресурсам, как локализованные строки, графика, файлы
  • менеджер извещений
  • менеджер активности

Более подробную информацию об архитектуре можно найти здесь.

Библиотеки

Android включает набор С/С++ библиотек, используемых разными компонентами операционной системы. Вот некоторые из них:

  • System C library — взята из BSD. Немного подправлена для embedded-Linux устройств.
  • Media Libraries — за основу взята PacketVideo OpenCORE, библиотеки поддерживающие воспроизведение и запись популярных звуковых и видео форматов, а так же картинок.
  • Surface Manager — 2D и 3D графика
  • LibWebCore — веб-браузер
  • SGL — 2D графический движок
  • 3D библиотеки
  • FreeType — битмапные и векторные шрифты
  • SQLite — база данных

Android Runtime

Включает набор основных библиотек, которые предоставляют функциональность для Java. Каждое приложение запускает свой собственный процесс, с собственным истансем виртуальной машины Dalvik. Dalvik написан и оптимизирован для устройств, так чтоб можно было запуска несколько виртуальных машин одновременно. Dalvik-виртуальная машина запускает файлы на исполнение в формате Dalvik Executable(.dex), который в свою очередь, оптимизирован для минимального использования памяти. Виртуальная машина основана на регистрах, запускает классы скомпилированные Java-компилятором и сконвертированных в .dex формат специальной утилитой — «dx».

В остнове Android лежит операционная система Linux, версии 2.6

Еще краткая справочная информация:

  • Можно ли написать программу для Android на С++? — Нет, только Java
  • Можно ли установить Android на мой телефон <вставьте сюда свою модель телефона>? — Нет. На сегодняшний день существет эмулятор с SDK для Windows, Mac OS X(intel) и Linux(i386) платформ.

Официальная страница проекта: http://code.google.com/android/

Пожалуй, я создам еще один таг — Android.