Продолжение цикла статей, посвященный программированию под Android. В данной статье подробно рассмотрим: - «внутренности» Android; - основные компоненты архитектуры; - основные библиотеки; Представим компонентную модель Android в виде некой иерархии, в самом низу, как самая фундаментальная и базовая составляющая, располагается ядро ОС Android.

Основные уровни иерархии архитектуры представлены ниже:


Картинка кликабельна

Applications (Приложения)

В Android входит комплекс базовых приложений: e-mail клиент, SMS, календарь, карты, браузер, приложение для управления контактами и т.д. Все приложения под Android написаны на языке Java.

Application Framework (Каркас приложений)

С помощью данного каркаса разработчик получает доступ к API предоставляемым компонентами самой системы. Благодаря архитектуре данного каркаса приложение может получить доступ к реализованным возможностям других приложений.

Основа всех приложений есть набор служб и систем:

View System (Система представления) – набор представлений для интерфейса пользователя. В набор входят элементы управления: кнопки, флажки, текстовые поля, переключатели и т.д.
Content Provider (Контент провайдер) – это службы, которые выполняет обмен данных между приложениями. Службы, которые дают возможность получать доступ к данным другого приложения.
Resource Manager (Менеджер ресурсов) – обеспечивает возможность доступа к строковым, графическим и другим данным.
Notification Manager (Менеджер оповещений) – с помощью данного менеджера приложения могут выводить информацию в строке состояния.
Activity Manager (Менеджер действий) – менеджер управления жизненным циклом приложения, а также хранит историю работы приложения.

Libraries (Библиотеки)

Android-платформа несет в своем составе набор С/С++ библиотек, которые используются различными компонентами ОС. Доступ к этим библиотекам реализован с помощью Application Framework. Ниже представлены некоторые библиотеки:

System C library (Системые библиотеки С) – реализация системной библиотеки С для встраиваемых устройств, основанных на Linux.
Media Libraries (Медиа библиотеки) – медиа библиотеки, реализованные PacketVideo‘s OpenCORE, предназначенные для воспроизведения и записи аудио и видео форматов.
Surface Manager (Менеджер поверхностей) – менеджер поверхностей для управления доступом к подсистеме отображения графики (2d, 3d).
LibWebCore(Веб движок) - web движок, на котором построен встроенный Android-браузер.
SGL (scene graph library) – движок, который осуществляет обработку и работу с 2d-графикой.
3D libraries – движок, осуществляет обработку и работу с 3d-графикой, построен на OpenGL ES 1.0 API.
FreeType – библиотеки для работы со шрифтом.
SQLite – мощный движок для работы с реляционными БД.

Android Runtime (Среда исполнения)

Android имеет набор библиотек ядра, представляющую большую часть функционала библиотек языка Java. Android использует оптимизированную виртуальную машину Dalvik, которая является регистр-ориентированной, в отличии от Dalvik, Java использует стек-ориентированную. Каждое приложение имеет свой userid и свой процесс. Dalvik обеспечивает организацию работу потоковой обработки и низкоуровневого управления памятью. Приложения написанные с помощью Java, компилируются в dex-формат с помощью утилиты dx, которая входит в состав SDK.

Linux Kernel (Ядро Linux)

Не для кого не секрет, что Android построен на OS Linux (версии 2.6), что открывает доступ платформе к системным службам ядра, таким как управление памятью, процессами, безопасностью, работы с сетью и драйверами. Слоем абстракции между аппаратным и программным обеспечением служит ядро.
Продолжение следует...

Михайлов Дмитрий - Crown


 Похожие публикации
2012-01-21 • Просмотров [ 7957 ]