Программный стек Android состоит из разных уровней, каждый из которых демонстрирует четко определенное поведение и предоставляет определенные услуги уровню над ним. На следующем рисунке представлена широкая архитектура Android с ее основными компонентами.
Ядро Linux
Android построен на коде ядра Linux, модифицированном для работы на встроенных системах, в отличие от традиционной системы Linux. Аппаратные драйверы для многих распространенных устройств встроены в ядро, что обеспечивает мобильность устройства. Он основан на модели защищенных прав доступа пользователя, которая не позволяет одному приложению читать информацию другого приложения или мешать его выполнению (например, ЦП, память, устройства и т. Д.).
Доступ на основе идентификатора группы к сетевым функциям и функциям Bluetooth, регистратору, сигнализации, управлению питанием, ограничению памяти и механизмам Binder IPC — это несколько отмеченных улучшений ядра.
Библиотеки и время выполнения
Это формирует второй уровень архитектуры. Он включает в себя набор аппаратно оптимизированных библиотек C, C ++, также называемых собственным уровнем. Примеры включают библиотеки мультимедиа, SQLite, SSL, Bionic, WebKit и т. Д.
Android Runtime состоит из двух разных компонентов — Dalvik VM и Core Libraries. Виртуальная машина Dalvik обеспечивает среду выполнения для приложений на платформе Android. Набор базовых библиотек обеспечивает большую часть функциональности, доступной в API Java.
Платформа приложений
Этот слой делает библиотеки доступными для приложений. Некоторые наиболее важные компоненты в этом слое включают в себя диспетчер местоположений, диспетчер ресурсов, диспетчер операций и диспетчер уведомлений.
Приложения
По умолчанию Android поставляется с богатым набором приложений, включая браузер, программу SMS, календарь, менеджер контактов, карты и т. Д. Google Play предлагает альтернативы этим приложениям, если пользователь того пожелает.
Строительные блоки
Приложение может взаимодействовать с системой с помощью четырех функциональных блоков. Они заключаются в следующем —
-
Действия — Действия представляют собой один экран, который пользователь видит или взаимодействует визуально. Например, приложение электронной почты может иметь одно действие, которое показывает список новых электронных писем, другое действие для составления электронного письма и другое действие для чтения электронных писем.
-
Службы — большая часть обработки выполняется этими службами для вашего приложения. Это логика пользовательского интерфейса. Например, служба может воспроизводить музыку в фоновом режиме, пока пользователь находится в другом приложении, или она может извлекать данные по сети, не блокируя взаимодействие пользователя с действием.
-
Broadcast Receivers — компонент, который можно зарегистрировать для прослушивания событий системы или приложения и выдачи уведомлений о них. Экземпляр для широковещательной передачи, исходящей из системы, представляет собой « уведомление о низком заряде батареи », в то время как широковещательная передача на уровне приложения может быть уведомлением « загрузка успешна ».
-
Поставщики контента — поставщик контента управляет и помогает вам обмениваться данными между несколькими приложениями. Например, поставщик контента может использоваться для обмена данными контактов.
Действия — Действия представляют собой один экран, который пользователь видит или взаимодействует визуально. Например, приложение электронной почты может иметь одно действие, которое показывает список новых электронных писем, другое действие для составления электронного письма и другое действие для чтения электронных писем.
Службы — большая часть обработки выполняется этими службами для вашего приложения. Это логика пользовательского интерфейса. Например, служба может воспроизводить музыку в фоновом режиме, пока пользователь находится в другом приложении, или она может извлекать данные по сети, не блокируя взаимодействие пользователя с действием.
Broadcast Receivers — компонент, который можно зарегистрировать для прослушивания событий системы или приложения и выдачи уведомлений о них. Экземпляр для широковещательной передачи, исходящей из системы, представляет собой « уведомление о низком заряде батареи », в то время как широковещательная передача на уровне приложения может быть уведомлением « загрузка успешна ».
Поставщики контента — поставщик контента управляет и помогает вам обмениваться данными между несколькими приложениями. Например, поставщик контента может использоваться для обмена данными контактов.
Эти компоненты взаимодействуют друг с другом через сообщения, называемые Intents .