Что такое Андроид? Альянс из 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.