Операционная система Android — это стек программных компонентов, который примерно разделен на пять разделов и четыре основных уровня, как показано ниже на диаграмме архитектуры.
Ядро Linux
В нижней части слоев находится Linux — Linux 3.6 с примерно 115 исправлениями. Это обеспечивает уровень абстракции между оборудованием устройства и содержит все необходимые драйверы оборудования, такие как камера, клавиатура, дисплей и т. Д. Кроме того, ядро обрабатывает все, что Linux действительно хорошо умеет, такие как работа в сети и широкий спектр драйверов устройств. , которые облегчают взаимодействие с периферийным оборудованием.
Библиотеки
В дополнение к ядру Linux имеется набор библиотек, включая движок веб-браузера с открытым исходным кодом WebKit, хорошо известную библиотеку libc, базу данных SQLite, которая является полезным хранилищем для хранения и совместного использования данных приложений, библиотеки для воспроизведения и записи аудио и видео, SSL библиотеки, отвечающие за интернет-безопасность и т. д.
Библиотеки Android
Эта категория охватывает те библиотеки на основе Java, которые являются специфическими для разработки под Android. Примеры библиотек в этой категории включают библиотеки инфраструктуры приложений в дополнение к тем, которые облегчают создание пользовательского интерфейса, рисование графики и доступ к базе данных. Ниже приводится краткое описание некоторых основных библиотек Android, доступных для разработчика Android.
-
android.app — обеспечивает доступ к модели приложения и является краеугольным камнем всех приложений Android.
-
android.content — облегчает доступ к контенту, публикацию и обмен сообщениями между приложениями и компонентами приложения.
-
android.database — используется для доступа к данным, опубликованным поставщиками контента, и включает классы управления базами данных SQLite.
-
android.opengl — интерфейс Java к API рендеринга трехмерной графики OpenGL ES.
-
android.os — предоставляет приложениям доступ к стандартным службам операционной системы, включая сообщения, системные службы и межпроцессное взаимодействие.
-
android.text — Используется для визуализации и управления текстом на дисплее устройства.
-
android.view — Основные строительные блоки пользовательских интерфейсов приложений.
-
android.widget — богатая коллекция предварительно созданных компонентов пользовательского интерфейса, таких как кнопки, метки, представления списка, менеджеры раскладки, переключатели и т. д.
-
android.webkit — набор классов, предназначенных для обеспечения возможности просмотра веб-страниц в приложениях.
android.app — обеспечивает доступ к модели приложения и является краеугольным камнем всех приложений Android.
android.content — облегчает доступ к контенту, публикацию и обмен сообщениями между приложениями и компонентами приложения.
android.database — используется для доступа к данным, опубликованным поставщиками контента, и включает классы управления базами данных SQLite.
android.opengl — интерфейс Java к API рендеринга трехмерной графики OpenGL ES.
android.os — предоставляет приложениям доступ к стандартным службам операционной системы, включая сообщения, системные службы и межпроцессное взаимодействие.
android.text — Используется для визуализации и управления текстом на дисплее устройства.
android.view — Основные строительные блоки пользовательских интерфейсов приложений.
android.widget — богатая коллекция предварительно созданных компонентов пользовательского интерфейса, таких как кнопки, метки, представления списка, менеджеры раскладки, переключатели и т. д.
android.webkit — набор классов, предназначенных для обеспечения возможности просмотра веб-страниц в приложениях.
Рассмотрев основные библиотеки на основе Java во время выполнения Android, пришло время обратить наше внимание на библиотеки на основе C / C ++, содержащиеся в этом слое программного стека Android.
Android Runtime
Это третий раздел архитектуры, доступный на втором уровне снизу. В этом разделе представлен ключевой компонент, называемый виртуальной машиной Dalvik, который представляет собой разновидность виртуальной машины Java, специально разработанной и оптимизированной для Android.
Виртуальная машина Dalvik использует основные функции Linux, такие как управление памятью и многопоточность, что присуще языку Java. Виртуальная машина Dalvik позволяет каждому приложению Android работать в своем собственном процессе с собственным экземпляром виртуальной машины Dalvik.
Среда выполнения Android также предоставляет набор базовых библиотек, которые позволяют разработчикам приложений для Android писать приложения для Android с использованием стандартного языка программирования Java.
Платформа приложений
Уровень Application Framework предоставляет множество высокоуровневых сервисов приложениям в форме классов Java. Разработчики приложений могут использовать эти сервисы в своих приложениях.
Платформа Android включает в себя следующие ключевые сервисы —
-
Activity Manager — контролирует все аспекты жизненного цикла приложения и стека активности.
-
Поставщики контента — позволяет приложениям публиковать и обмениваться данными с другими приложениями.
-
Resource Manager — обеспечивает доступ к встроенным ресурсам, не относящимся к коду, таким как строки, настройки цвета и макеты пользовательского интерфейса.
-
Диспетчер уведомлений — позволяет приложениям отображать предупреждения и уведомления для пользователя.
-
Система представления — расширяемый набор представлений, используемых для создания пользовательских интерфейсов приложения.
Activity Manager — контролирует все аспекты жизненного цикла приложения и стека активности.
Поставщики контента — позволяет приложениям публиковать и обмениваться данными с другими приложениями.
Resource Manager — обеспечивает доступ к встроенным ресурсам, не относящимся к коду, таким как строки, настройки цвета и макеты пользовательского интерфейса.
Диспетчер уведомлений — позволяет приложениям отображать предупреждения и уведомления для пользователя.
Система представления — расширяемый набор представлений, используемых для создания пользовательских интерфейсов приложения.
Приложения
Вы найдете все приложения для Android на верхнем слое. Вы напишите свое приложение, которое будет установлено только на этом слое. Примерами таких приложений являются книги контактов, браузер, игры и т. Д.