В предыдущем уроке вы узнали, что такое Android, какие есть версии Android и какие функции он поддерживает. Теперь, когда у вас есть базовое понимание и знания об Android, в этом руководстве мы изучим Android Software Stack (стек программного обеспечения Android) см. схему расположенную ниже, которая поможет вам понять, как Android работает внутри устройства.
System Application – системные приложения
Application Framework – каркас приложения
Libraries – библиотеки
Android Runtime (ART) – среда выполнения Android
Hardware Abstraction Layer (HAL) – уровень аппаратной обстракции
Linux Kernel – ядро Linux
Power Managment – управление энергопотреблением
В операционной системе Android используется многоуровневый архитектурный подход. Все эти уровни отвечают за разные роли и функции, которые мы обсудили ниже.
Ядро Linux
Этот уровень является основой платформы Android.
- Содержит все драйверы низкого уровня для поддержки различных аппаратных компонентов.
- Среда выполнения Android полагается на ядро Linux для основных системных служб, таких как:
- Память, управление процессами, многопоточность и т. д.
- Сетевой стек
- Модель драйвера
- Безопасность и многое другое.
Уровень аппаратной абстракции (HAL)
- Обеспечивает абстракцию между оборудованием и остальной частью программного стека.
Среда выполнения Android (ART)
- Предназначен для запуска приложений в ограниченной среде, которая имеет ограниченную мощность с точки зрения батареи, обработки и памяти.
- Начиная с Android 5.0, каждое приложение запускается в собственном процессе в собственном экземпляре виртуальной машины ART, что делает управление процессами более важным.
- АРТ использует DEX files, который представляет собой тип байт-кода, специально разработанный для Android, который помогает ART более эффективно управлять памятью.
- Содержит набор основных библиотек, позволяющих разработчикам писать приложения для Android с использованием программирования на Java.
- До Android 5.0 Dalvik использовался как среда выполнения Android.
- ART поддерживает две компиляции Ahead-of-time (AOT) и Just-in-time (JIT).
- Он также имеет очень эффективную сборку мусора.
Библиотеки
- Доступно разработчикам через Android Application Framework (каркас приложения).
- Содержит библиотеки C / C ++, используемые компонентами систем Android.
- Некоторые функции включают следующие библиотеки:
- Библиотека SQLite, используемая для хранения данных и облегчения с точки зрения использования мобильной памяти и выполнения задач.
- Библиотека WebKit в основном предоставляет движок веб-просмотра и многие другие связанные с ним функции.
- Библиотека диспетчера поверхностей отвечает за рендеринг окон и поверхностей для рисования различных приложений на экране.
- Библиотека медиа-инфраструктуры предоставляет медиа-кодеки для аудио и видео.
- OpenGl (открытая графическая библиотека) и SGL (масштабируемая графическая библиотека) – это графические библиотеки для 3D- и 2D-рендеринга соответственно.
- Библиотека FreeType используется для визуализации шрифтов.
Фреймворк приложения
- Это набор API, написанных на Java, который дает разработчикам доступ к полному набору функций ОС Android.
- Разработчики имеют полный доступ к тем же API-интерфейсам фреймворка, которые используются в основных приложениях, так что они могут расширить функциональные возможности своего приложения.
- Позволяет и упростить повторное использование основных компонентов и служб, например:
- Activity Manager: управляет жизненным циклом приложений и предоставляет общий стек для навигации.
- Window Manager: управляет окнами и поверхностями рисования и является абстракцией библиотеки диспетчера поверхностей.
- Content Providers: Позволяет приложению получать доступ к данным из других приложений или обмениваться собственными данными, т. е. предоставляет механизм для обмена данными между приложениями.
- View System: Содержит стандартные блоки пользовательского интерфейса, используемые для создания пользовательского интерфейса приложения, включая списки, сетки, тексты, поля, кнопки и т. д., а также выполняет управление событиями элементов пользовательского интерфейса (это будет объяснено в последующих уроках).
- Package Manager: управляет различной информацией, связанной с пакетами приложений, которые в настоящее время установлены на устройстве.
- Telephony Manager: позволяет приложению использовать телефонные возможности устройства.
- Resource Manager: обеспечивает доступ к ресурсам, не связанным с кодом (локализованные строки, растровые изображения, графика и макеты).
- Location Manager: управляет возможностями определения местоположения.
- Notification Manager: разрешает приложениям отображать настраиваемые оповещения в строке состояния.
Системные приложения
- Верхнюю часть стека приложений Android занимают системные приложения и тонны других приложений, которые пользователи могут загрузить из официального магазина Android Play, также известного как Google Play Store.
- Набор основных приложений предварительно упакован в телефон, например, почтовый клиент, программа для SMS, календарь, карты, браузер, контакты и некоторые другие.
- Этот уровень использует все нижележащие уровни для правильного функционирования этих мобильных приложений.
Итак, как мы видим и понимаем, Android имеет многоуровневые или, можно сказать, сгруппированные функции в виде программного стека, который позволяет Android работать на любом устройстве.
Устройства Android
Устройства под управлением ОС Android бывают самых разных форм и размеров. Ниже перечислены различные устройства, работающие под управлением ОС Android и приложений.
- Смартфоны
- Смарт-часы
- Планшеты
- Нетбуки
- MP4 плееры
- Интернет-телевидение и многое другое.
Android Market
В августе 2008 года, примерно через год после приобретения Android, Google анонсировала Android Application Market – онлайн-магазин приложений для устройств Android. Позднее этот интернет-магазин получил название Google Play Store и был предоставлен пользователям в октябре 2008 года, что позволило пользователям напрямую загружать любые сторонние приложения на свои устройства. В Play Store доступны как платные, так и бесплатные приложения. Google market store внесла большой вклад в популярность операционная система android, так как позволяет с легкостью скачивать и устанавливать качественные и безопасные приложение для смартфонов, а для разработчиков позволяет выставлять свои приложения на своей площадке Google market store.
В заключение этого урока хочу сказать, что архитектура операционной системы android очень продуманна и поэтому android такой популярный.