Android ArchiАрхитектура: Слои, Фреймворк, Компонент

⚡ Умное резюме

Android ArchiАрхитектура — это многоуровневый программный стек, который разделяет задачи на четыре основных уровня: уровень приложения, платформа приложения и т. д. Android Среда выполнения с основными библиотеками и ядром Linux. Каждый слой решает отдельные задачи и может обновляться независимо.

  • 📱 Уровень приложения: На верхнем уровне расположены приложения, ориентированные на пользователя, такие как «Главная», «Контакты», «Сообщения», «Электронная почта» и «Браузер».
  • 🧰 Каркас приложения: Java API-интерфейсы, такие как Activity Manager, Window Manager и Content Provider, предоставляют разработчикам приложений доступ к функциям устройства.
  • ⚙️ Среда выполнения и библиотеки: Android Среда выполнения (ART) выполняет код приложения, поддерживаемый языком C/C++ библиотеки, такие как SQLite, OpenGL и WebKit.
  • ???? Ядро Linux: Фонд предоставляет драйверы устройств, средства управления памятью и управление процессами для оборудования.
  • 🧱 Многослойный дизайн: Разделение задач позволяет разрабатывать, обновлять и исправлять каждый слой, не затрагивая другие.
  • ???? Драйверы оборудования: Драйверы ядра для подключения USB, Bluetooth, Wi-Fi, дисплея и аудио. Android к физическим компонентам.

Android Первоначальный выпуск операционной системы состоялся в 2008 году. Даже в самом начале команда, стоящая за операционной системой, построила ее на плечах гигантов. Помимо пользовательского интерфейса, который Android ОС присутствует на поверхностном уровне, она состоит из нескольких слоев. Эти уровни включают собственный код и технологии с открытым исходным кодом, которые постоянно развиваются на протяжении десятилетий.

Android Разработана благодаря масштабным совместным усилиям и инвестициям многих компаний. Основной компанией, стоящей за разработкой Android, является... GoogleК другим компаниям относятся производители устройств, такие как Samsung, LG; производители процессоров, такие как Intel и ARM, и это лишь некоторые из них.

Когда мы говорим о Android Архитектура, мы имеем в виду, как Android Система была спроектирована, сегментирована на слои и построена для работы как система. Создание такой сложной системы требует тщательного структурирования, чтобы гарантировать, что все компоненты работают вместе слаженно. Ее архитектура гарантирует, что множество компонентов функционируют как единое целое без сбоев.

Слои

Ниже приведены слои, из которых состоит Android архитектура, как указано на схеме:

  1. Области применения
  2. Рамки приложений
  3. Android Библиотеки среды выполнения и основные библиотеки
  4. Ядро Linux

Девелоping Разработка операционной системы для мобильных устройств сопряжена с рядом проблем. Использование многоуровневой архитектуры гарантирует, что различные проблемы будут решаться на разных уровнях.

Многоуровневая архитектура помогает разделить проблемы и гарантировать, что разработчикам программного обеспечения Android не придется на каждом шагу сталкиваться с проблемами низкого уровня. Вместо этого они могут сосредоточиться на обеспечении бизнес-ценности, связанной с уровнем, над которым они работают.

Разработчики работают над тем, чтобы приложениям не приходилось беспокоиться о реализации инфраструктуры приложения. Эта работа остается за разработчиками системы, работающими над платформой приложений.

Разработчики Application Framework работают над опытом разработчиков, и им не нужно беспокоиться о драйверах низкого уровня. Системные инженеры низкого уровня могут полностью сосредоточиться на компонентах низкого уровня, таких как драйверы Bluetooth или аудио и тому подобное.

AndroidМногоуровневая структура позволяет применять обновления с исправлениями ошибок или улучшениями к каждому слою отдельно. Это гарантирует, что изменения между слоями не будут мешать друг другу. Это позволяет людям, работающим на разных уровнях ОС, не мешать друг другу при выпуске новых обновлений и выпусков.

Приложение для Android

Приложение для Android
Приложение для Android

Это уровень, с которым взаимодействуют конечные пользователи. Именно на этом уровне разработчики приложений публикуют свои приложения для запуска.

Androidпо умолчанию поставляется с набором приложений, которые делают устройства Android пригодными для использования со стороны пользователя.

  1. Главная: Домашняя страница на Android состоит из значков запуска часто используемых приложений, к которым конечному пользователю может потребоваться быстрый доступ. Вы можете запустить приложения, щелкнув средства запуска этих приложений. В самом верху экрана расположены виджеты, показывающие сеть, уровень заряда батареи, дату и время.
  2. Контактная информация: Androidпо умолчанию предоставляет средства для хранения и извлечения контактов. Контактная информация передается другим приложениям для расширения функциональности.
  3. Сообщения: Android обеспечивает возможность отправки и получения SMS-сообщений.
  4. Электронная почта: Android поставляется с собственной поддержкой почтовых служб. Настройка Android Для работы устройства требуется Gmail Учетная запись. Настройка. Gmail активирует другие компоненты, зависящие от электронной почты. Android устройства. Некоторые функции, зависящие от электронной почты, включают механизмы безопасности и восстановления. Другая функция, зависящая от электронной почты, — это доступ к Play Store, торговой площадке для Android приложений.
  5. Браузер: Android поставляется с браузером по умолчанию.
  6. Ящик уведомлений: Свиping В нижней части экрана отображается панель уведомлений. Она отображает события приложений, о которых пользователь должен знать. Над уведомлениями расположены ярлыки для некоторых часто используемых настроек устройства, которые пользователь может включать и выключать. Эти настройки включают переключатели включения и выключения различных аппаратных компонентов, таких как Bluetooth и Wi-Fi. Длительное нажатие на эти события позволяет перейти на страницу их конфигурации.

Этот слой также называют пользовательским уровнем, в отличие от нижележащих слоев, которые в основном настроены для разработки приложений. Разработчики приложений создают и настраивают пользовательский интерфейс своих приложений на этом слое. Слои ниже уровня приложения не настраиваются разработчиками приложений. Они считаются частью системного слоя. Эти слои настраиваются производителями устройств. Google команды разработчиков Android или сторонние организации, желающие использовать Android. Android исходный код своего продукта или исследования.

Рамки приложений

Android ОС предоставляет базовые библиотеки и функции Android устройство, использующее Java API. Это то, что известно как Android рамки. Структура предоставляет безопасные и единообразные средства использования Android ресурсы устройства.

Рамки приложений
Фреймворк приложения

1) Менеджер активности

Приложения используют Android компонент активности для представления точки входа в приложение. Android Действия — это компоненты, в которых находится пользовательский интерфейс, с которым взаимодействуют пользователи приложения. По мере того, как конечные пользователи взаимодействуют с Android устройстве, они запускаются, останавливаются и переключаются между многими приложениями. Каждое навигационное событие вызывает активацию и деактивацию многих действий в соответствующих приложениях.

Android ActivityManager отвечает за предсказуемое и согласованное поведение во время переходов между приложениями. ActivityManager предоставляет создателям приложений слот, позволяющий их приложениям реагировать на Android ОС выполняет глобальные действия. Приложения могут прослушивать такие события, как поворот устройства, уничтожение приложения из-за нехватки памяти, смещение приложения из фокуса и т. д.

В качестве примеров того, как приложения могут реагировать на эти переходы, можно привести приостановку активности в игре, остановку.ping Музыка играет во время телефонного разговора.

2) Оконный менеджер

Android может определять информацию об экране, чтобы определить требования, необходимые для создания окон для приложений. Windows — это слоты, в которых мы можем просматривать пользовательский интерфейс нашего приложения. Android использует диспетчер окон для предоставления этой информации приложениям и системе во время их работы, чтобы они могли адаптироваться к режиму, в котором работает устройство.

Диспетчер окон помогает обеспечить индивидуальную работу с приложением. Приложения могут заполнять весь экран для полного погружения или делиться экраном с другими приложениями. Android Это достигается за счет разрешения многооконного режима для каждого приложения.

3) Менеджер местоположения

Лучшее Android устройства оснащены устройствами GPS, которые могут определять местоположение пользователя, используя спутниковую информацию, которая может достигать точности метров. Программисты могут запрашивать у пользователей разрешение на определение местоположения, сообщать о местоположении и предоставлять осведомленные возможности.

Android также может использовать беспроводные технологии для дальнейшего обогащения данных о местоположении и увеличения покрытия, когда устройства находятся в закрытых помещениях. Android предоставляет эти функции под эгидой Location-Manager.

4) Менеджер телефонии

Лучшее Android устройства играют первостепенную роль в телефонии. Android использует TelephoneManager для объединения аппаратных и программных компонентов для предоставления функций телефонии. Аппаратные компоненты включают в себя внешние части, такие как SIM-карта, и части устройства, такие как микрофон, камера и динамики. Компоненты программного обеспечения включают в себя собственные компоненты, такие как панель набора номера, телефонная книга, профили мелодий звонка. Используя TelephoneManager, разработчик может расширить или точно настроить функции вызова по умолчанию.

5) Менеджер ресурсов

Android-приложение обычно содержит не только код. Оно также включает в себя другие ресурсы, такие как значки, аудио- и видеофайлы, анимацию, текстовые файлы и тому подобное. Android помогает обеспечить эффективный и оперативный доступ к этим ресурсам. Это также гарантирует доставку нужных ресурсов конечным пользователям. Например, при заполнении полей в приложениях используются текстовые файлы на соответствующем языке.

6) Система просмотра

Android также предоставляет средства для легкого создания общих визуальных компонентов, необходимых для взаимодействия с приложением. Эти компоненты включают в себя виджеты, такие как кнопки, держатели изображений, такие как ImageView, компоненты для отображения списка элементов, такие как ListView, и многое другое. Компоненты уже готовы, но их также можно настроить в соответствии с потребностями разработчиков приложений и брендингом.

7) Менеджер уведомлений

Менеджер уведомлений отвечает за информирование Android пользователи событий приложения. Это достигается путем подачи пользователям визуальных, звуковых или вибрационных сигналов или их комбинации при возникновении события. Эти события имеют внешние и внутренние триггеры. Некоторыми примерами внутренних триггеров являются события о низком заряде батареи, которые вызывают уведомление о низком заряде батареи. Другим примером являются определяемые пользователем события, такие как сигнал тревоги. Некоторые примеры внешних триггеров включают новые сообщения или обнаруженные новые сети Wi-Fi.

Android предоставляет программистам и конечным пользователям возможность точной настройки системы уведомлений. Это может помочь гарантировать, что они смогут отправлять и получать события уведомлений способом, который лучше всего подходит им и их текущей среде.

8) Менеджер пакетов

Android также обеспечивает доступ к информации об установленных приложениях. Android держит track информации о приложении, такой как события установки и удаления, запрашиваемые приложением разрешения и использование ресурсов, например, потребление памяти.

Эта информация может позволить разработчикам активировать или деактивировать функциональные возможности своих приложений в зависимости от новых функций, представленных сопутствующими приложениями.

9) Поставщик контента

Android имеет стандартизированный способ обмена данными между приложениями на устройстве с помощью поставщика контента. Разработчики могут использовать поставщика контента для предоставления данных другим приложениям. Например, они могут сделать данные приложения доступными для поиска из внешних поисковых приложений. Android сама предоставляет данные, такие как данные календаря, контактные данные и т.п., используя одну и ту же систему.

Android Среда выполнения и основные/родные библиотеки

Android Среда выполнения и основные/родные библиотеки
Библиотеки

1) Android Время выполнения

Android в настоящее время использует Android Runtime (ART) для выполнения кода приложения. ART предшествует Dalvik Runtime, который компилирует код разработчика в исполняемые файлы Dalvik (файлы Dex). Эти среды выполнения оптимизированы для платформы Android с учетом ограничений процессора и памяти на мобильных устройствах.

Среда выполнения преобразует код, написанный программистами, в машинный код, который выполняет вычисления и использует компоненты фреймворка Android для предоставления функциональности. Android размещает несколько приложений и системных компонентов, каждый из которых работает в своих процессах.

Основные библиотеки

В этом сегменте мы обсудим некоторые основные библиотеки, присутствующие в Android операционная система.

2) Медиафреймворк

Android также изначально поддерживает популярные медиакодеки, что упрощает работу с приложениями, созданными на Android платформа для использования/воспроизведения мультимедийных компонентов «из коробки».

3) SQLite

Android также имеет SQLite база данных это позволяет приложениям иметь очень быструю собственную функциональность базы данных без необходимости использования сторонних библиотек.

4) Свободный тип

Android поставляется с предустановленным быстрым и гибким движком шрифтов. Это позволяет разработчикам приложений стилизовать компоненты своего приложения и предоставлять богатый опыт, который передает намерения разработчика.

5) OpenGL

Android также поставляется с графической системой OpenGL. Это библиотека C, которая помогает Android использовать аппаратные компоненты при рендеринге 2D и 3D графики в реальном времени.

6) SSL

Android также имеет встроенный уровень безопасности, обеспечивающий безопасную связь между приложениями на Android а также другие устройства, такие как серверы, другие мобильные устройства, маршрутизаторы.

7) СГЛ

Android поставляется с графической библиотекой, реализованной в низкоуровневом коде, которая эффективно отображает графику для платформы Android. Он работает с компонентами более высокого уровня Android рамки Android графический конвейер.

8) Либк

Ядро Android содержит библиотеки, написанные на C и C++, которые представляют собой языки низкого уровня, предназначенные для встроенного использования и помогающие максимизировать производительность. Libc предоставляет средства для предоставления этим библиотекам низкоуровневых системных функций, таких как потоки, сокеты, ввод-вывод и т.п.

9) Вебкит

Это браузерный движок с открытым исходным кодом, используемый в качестве основы для создания браузеров. По умолчанию Android браузер до версии 4.4. KitKat использует его для рендеринга веб-страниц. Он позволяет разработчикам приложений отображать веб-компоненты в системе представления с помощью WebView. Это позволяет приложениям интегрировать веб-компоненты в свои функциональные возможности.

10) Поверхностный менеджер

Менеджер поверхности отвечает за обеспечение плавного рендеринга экранов приложений. Это достигается путем составления 2D- и 3D-графики для рендеринга. Это также позволяет сделать это за счет буферизации за кадром.

Ядро Linux

Корневой компонент Android Система — это ядро ​​Linux. Это фундаментальная часть, которая позволяет все Androidфункциональность.

Ядро Linux

Ядро Linux — это проверенное в боевых условиях программное обеспечение, которое использовалось в разработке...ping операционные системы для устройств широкого спектра: от суперкомпьютеров до небольших гаджетов. Он имеет ограниченные возможности обработки, как небольшие сетевые гаджеты для Интернета вещей (IoT).

Ядро Linux можно настроить в соответствии со спецификациями устройства, чтобы производители могли создавать Android устройства с различными возможностями в соответствии с пользовательским опытом.

Что касается AndroidЯдро отвечает за многие основополагающие функции, включая, помимо прочего, следующие:

  1. Драйверы устройств
  2. Управление памятью
  3. Управление процессом

Раскроем некоторые функциональные возможности:

Драйверы устройств

В ядре Linux содержатся драйверы, необходимые для работы операционной системы с различными аппаратными компонентами. Эти драйверы предоставляют стандартный интерфейс, с которым могут работать аппаратные компоненты разных производителей.

Это позволяет производителям устройств приобретать различные компоненты, такие как компоненты Bluetooth, компоненты Wi-Fi, компоненты камеры. Пока производители соответствуют Android стандартные характеристики, интеграция происходит без проблем.

1) USB-драйвер

Linux также предоставляет Android со средствами взаимодействия с USB-устройствами. Современные устройства оснащены различными портами USB, включая USB 2.0 и новые версии USB, включая USB-C. Эти драйверы позволяют использовать порт USB для зарядки, передачи данных в реальном времени, таких как журналы, с Android устройства и взаимодействовать с андроидом Файловая система.

2) Драйвер Bluetooth

Ядро Linux обеспечивает поддержку взаимодействия с аппаратными компонентами Bluetooth. Он обеспечивает способ чтения и записи данных, полученных с поддерживаемых радиочастот Bluetooth. Он также предоставляет набор возможностей для Android для настройки Bluetooth.

3) Драйвер Wi-Fi

Ядро Linux предоставляет драйверы для интеграции аппаратных компонентов сети Wi-Fi. Компоненты Wi-Fi, встроенные в мобильные устройства, позволяют Android устройства для подключения к сетям Wi-Fi. Драйвер позволяет компонентам Wi-Fi транслировать сети Wi-Fi и создавать точки доступа.

4) Драйвер дисплея

Android позволяет взаимодействовать с компонентами дисплея. Для большинства устройств компонентом интерфейса является сенсорный ЖК-экран. Он позволяет поддерживать настройку и рисование пикселей.

5) Аудиодрайвер

Android устройства обычно поставляются с аппаратными компонентами для аудиовхода и вывода. Аудиодрайверы в ядре позволяют Android система может использовать звук, полученный от этих компонентов, а также производить аудиовыход.

6) Диспетчер питания

Лучшее Android устройства используются, когда они отключены от электророзеток. Таким образом, они зависят от батарей, которые обеспечивают их питание на протяжении большей части их использования. Linux Kernel поставляется с системой управления питанием, которую можно настроить в соответствии с потребностями использующих ее устройств.

Android ОС использует диспетчер питания, чтобы обеспечить питание других компонентов устройства. Он делает это, транслируя различные состояния, связанные с властью. Это состояния «Режим ожидания», «Сон» и «Низкий заряд батареи». На Android, диспетчер питания по умолчанию переводится в спящий режим, чтобы обеспечить максимальное время автономной работы.

Диспетчер электропитания предоставляет приложениям средства для реагирования на различные режимы питания. Приложения также могут изменять свое поведение в соответствии с текущим состоянием питания устройства.

Приложение также может запросить изменение политик энергопотребления по умолчанию. Приложения могут добиться желаемой функциональности, например, поддерживать...ping Активные аппаратные компоненты. Примером может служить Kee.ping Экран активен во время чтения книги, чтобы пользователь не отвлекался. Другой пример — Kee.ping Аудиокомпоненты включались при прослушивании музыки в фоновом режиме.

7) Флэш-память

Лучшее Android устройства используют флэш-память в качестве средства хранения. Флэш-память быстрая и занимает меньше места, что делает ее идеальной для небольших устройств. Ядро Linux предоставляет средства для Android устройства для чтения и записи во флэш-память. Он предоставляет средства разделения памяти таким образом, чтобы ОС и другие приложения могли легко и эффективно совместно использовать ресурс памяти.

8) Биндер

Android содержит множество приложений и системных компонентов, каждый из которых работает в своих процессах. В большинстве случаев эти процессы следует изолировать друг от друга, чтобы предотвратить помехи и повреждение данных. Тем не менее, бывают случаи, когда нам нужно передать данные из одного процесса в другой.

Ядро Linux обеспечивает функцию совместного использования данных, предоставляя драйверы связывания. Драйверы Binder обеспечивают межпроцессное взаимодействие, IPC. Использование процессов IPC позволяет обнаруживать другие процессы и обмениваться информацией.

Управление памятью

Другая обязанность ядра Linux — управление памятью. При запуске различных приложений ядро ​​гарантирует, что используемое ими пространство памяти не будет конфликтовать и перезаписывать друг друга.

Это также помогает обеспечить наличие достаточного объема памяти для всех запущенных приложений и гарантировать, что ни одно приложение не займет слишком много места.

Управление процессом

Каждое приложение в Android Ядро также отвечает за управление процессами. Это означает, что оно отвечает за создание, приостановку и остановку процессов.ping, завершение или отключение процессов.

Ядро обеспечивает различные функции, такие как одновременный запуск нескольких процессов, взаимодействие между процессами, запуск процессов в фоновом режиме и т. д.

Поскольку каждому процессу для правильной работы требуется собственное пространство памяти, ядро ​​гарантирует, что пространства памяти, выделенные для каждого процесса, защищены от других процессов. Это также гарантирует, что такие ресурсы, как Оперативная память выделенные процессам освобождаются при завершении процессов.

Ядро Linux также отвечает за распределение работы между процессорами, присутствующими в устройстве. Это позволяет максимизировать производительность устройств с несколькими ядрами, поскольку процессы разных приложений выполняются на разных ядрах.

Ядро Linux выполняет больше задач, включая обеспечение безопасности.

Часто задаваемые вопросы (FAQ)

Дальвик был AndroidВ оригинальной среде выполнения использовалась компиляция Dex-файлов «на лету». В ART её заменили на компиляцию «на лету», что обеспечило более быстрый запуск приложений и лучшую энергоэффективность на современных устройствах.

№ Android Она построена на ядре Linux, которое отвечает за драйверы, память и процессы, но сама по себе не является дистрибутивом Linux. Android Добавляет собственную среду выполнения, фреймворк и библиотеки поверх ядра.

Android Приложения пишутся преимущественно на Java и Kotlin с использованием API фреймворка. Нижние уровни, включая основные библиотеки и ядро ​​Linux, написаны на C и C++ за производительность.

Современные Android В устройствах используется встроенный искусственный интеллект для голосовых помощников, улучшения качества изображения на камере, прогнозирования текста и оптимизации энергопотребления. Специализированное аппаратное обеспечение для нейронной обработки и API машинного обучения эффективно ускоряют выполнение этих задач на устройстве.

Да. Искусственный интеллект может объяснить каждый уровень, обобщить принцип работы такого компонента, как Менеджер действий, и ответить на дополнительные вопросы с примерами. Это упрощает понимание многоуровневой архитектуры для начинающих.

Подведем итог этой публикации следующим образом: