Архитектура платформы,Архитектура платформы,Архитектура платформы,Архитектура платформы

Android — это программный стек с открытым исходным кодом на базе Linux, созданный для широкого спектра устройств и форм-факторов. На рисунке 1 показаны основные компоненты платформы Android.

Программный стек Android

Рисунок 1. Программный стек Android.

Ядро Linux

Основой платформы Android является ядро ​​Linux. Например, среда выполнения Android (ART) использует ядро ​​Linux для реализации базовых функций, таких как многопоточность и низкоуровневое управление памятью.

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

Уровень абстракции оборудования (HAL)

Уровень абстракции оборудования (HAL) предоставляет стандартные интерфейсы, которые раскрывают возможности оборудования устройства для платформы Java API более высокого уровня. HAL состоит из нескольких библиотечных модулей, каждый из которых реализует интерфейс для определенного типа аппаратных компонентов, таких как камера или модуль Bluetooth . Когда API платформы выполняет вызов для доступа к оборудованию устройства, система Android загружает библиотечный модуль для этого аппаратного компонента.

среда выполнения Android

На устройствах под управлением Android версии 5.0 (уровень API 21) или выше каждое приложение запускается в своем собственном процессе и со своим экземпляром среды выполнения Android (ART) . ART написан для запуска нескольких виртуальных машин на устройствах с низким объемом памяти путем выполнения файлов исполняемого формата Dalvik (DEX) — формата байт-кода, разработанного специально для Android и оптимизированного для минимального использования памяти. Инструменты сборки, такие как d8 , компилируют исходные коды Java в байт-код DEX, который может работать на платформе Android.

К основным особенностям АРТ относятся следующие:

  • Предварительная (AOT) и своевременная (JIT) компиляция
  • Оптимизированная сборка мусора (GC)
  • В Android 9 (уровень API 28) и более поздних версиях преобразование файлов DEX пакета приложения в более компактный машинный код.
  • Улучшенная поддержка отладки, включая специальный профилировщик выборки, подробные диагностические исключения и отчеты о сбоях, а также возможность устанавливать точки наблюдения для мониторинга определенных полей.

До версии Android 5.0 (уровень API 21) средой выполнения Android был Dalvik. Если ваше приложение хорошо работает на ART, то оно может работать и на Dalvik, но обратное может быть неверным .

Android также включает набор основных библиотек времени выполнения, которые обеспечивают большую часть функциональности языка программирования Java, включая некоторые функции языка Java 8 , которые использует платформа Java API.

Собственные библиотеки C/C++

Многие основные компоненты и службы системы Android, такие как ART и HAL, созданы на основе собственного кода, для которого требуются собственные библиотеки, написанные на C и C++. Платформа Android предоставляет API-интерфейсы платформы Java, позволяющие предоставлять приложениям функциональность некоторых из этих собственных библиотек. Например, вы можете получить доступ к OpenGL ES через Java OpenGL API платформы Android, чтобы добавить поддержку рисования и управления 2D- и 3D-графикой в ​​вашем приложении.

Если вы разрабатываете приложение, для которого требуется код C или C++, вы можете использовать Android NDK для доступа к некоторым из этих собственных библиотек платформы непосредственно из вашего собственного кода.

Платформа API Java

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

  • Богатая и расширяемая система представлений, которую вы можете использовать для создания пользовательского интерфейса приложения, включая списки, сетки, текстовые поля, кнопки и даже встраиваемый веб-браузер.
  • Менеджер ресурсов , обеспечивающий доступ к ресурсам, не связанным с кодом, таким как локализованные строки, графика и файлы макета.
  • Менеджер уведомлений , который позволяет всем приложениям отображать настраиваемые оповещения в строке состояния.
  • Менеджер активности , который управляет жизненным циклом приложений и предоставляет общий стек навигации.
  • Поставщики контента , которые позволяют приложениям получать доступ к данным из других приложений, таких как приложение «Контакты», или делиться своими собственными данными.

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

Системные приложения

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

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

,

Android — это программный стек с открытым исходным кодом на базе Linux, созданный для широкого спектра устройств и форм-факторов. На рисунке 1 показаны основные компоненты платформы Android.

Программный стек Android

Рисунок 1. Программный стек Android.

Ядро Linux

Основой платформы Android является ядро ​​Linux. Например, среда выполнения Android (ART) использует ядро ​​Linux для реализации базовых функций, таких как многопоточность и низкоуровневое управление памятью.

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

Уровень абстракции оборудования (HAL)

Уровень абстракции оборудования (HAL) предоставляет стандартные интерфейсы, которые раскрывают возможности оборудования устройства для платформы Java API более высокого уровня. HAL состоит из нескольких библиотечных модулей, каждый из которых реализует интерфейс для определенного типа аппаратных компонентов, таких как камера или модуль Bluetooth . Когда API платформы выполняет вызов для доступа к оборудованию устройства, система Android загружает библиотечный модуль для этого аппаратного компонента.

среда выполнения Android

На устройствах под управлением Android версии 5.0 (уровень API 21) или выше каждое приложение запускается в своем собственном процессе и со своим экземпляром среды выполнения Android (ART) . ART написан для запуска нескольких виртуальных машин на устройствах с низким объемом памяти путем выполнения файлов исполняемого формата Dalvik (DEX) — формата байт-кода, разработанного специально для Android и оптимизированного для минимального использования памяти. Инструменты сборки, такие как d8 , компилируют исходные коды Java в байт-код DEX, который может работать на платформе Android.

К основным особенностям АРТ относятся следующие:

  • Предварительная (AOT) и своевременная (JIT) компиляция
  • Оптимизированная сборка мусора (GC)
  • В Android 9 (уровень API 28) и более поздних версиях преобразование файлов DEX пакета приложения в более компактный машинный код.
  • Улучшенная поддержка отладки, включая специальный профилировщик выборки, подробные диагностические исключения и отчеты о сбоях, а также возможность устанавливать точки наблюдения для мониторинга определенных полей.

До версии Android 5.0 (уровень API 21) средой выполнения Android был Dalvik. Если ваше приложение хорошо работает на ART, то оно может работать и на Dalvik, но обратное может быть неверным .

Android также включает набор основных библиотек времени выполнения, которые обеспечивают большую часть функциональности языка программирования Java, включая некоторые функции языка Java 8 , которые использует платформа Java API.

Собственные библиотеки C/C++

Многие основные компоненты и службы системы Android, такие как ART и HAL, созданы на основе собственного кода, для которого требуются собственные библиотеки, написанные на C и C++. Платформа Android предоставляет API-интерфейсы платформы Java, позволяющие предоставлять приложениям функциональность некоторых из этих собственных библиотек. Например, вы можете получить доступ к OpenGL ES через Java OpenGL API платформы Android, чтобы добавить поддержку рисования и управления 2D- и 3D-графикой в ​​вашем приложении.

Если вы разрабатываете приложение, для которого требуется код C или C++, вы можете использовать Android NDK для доступа к некоторым из этих собственных библиотек платформы непосредственно из вашего собственного кода.

Платформа API Java

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

  • Богатая и расширяемая система представлений, которую вы можете использовать для создания пользовательского интерфейса приложения, включая списки, сетки, текстовые поля, кнопки и даже встраиваемый веб-браузер.
  • Менеджер ресурсов , обеспечивающий доступ к ресурсам, не связанным с кодом, таким как локализованные строки, графика и файлы макета.
  • Менеджер уведомлений , который позволяет всем приложениям отображать настраиваемые оповещения в строке состояния.
  • Менеджер активности , который управляет жизненным циклом приложений и предоставляет общий стек навигации.
  • Поставщики контента , которые позволяют приложениям получать доступ к данным из других приложений, таких как приложение «Контакты», или делиться своими собственными данными.

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

Системные приложения

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

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

,

Android — это программный стек с открытым исходным кодом на базе Linux, созданный для широкого спектра устройств и форм-факторов. На рисунке 1 показаны основные компоненты платформы Android.

Программный стек Android

Рисунок 1. Программный стек Android.

Ядро Linux

Основой платформы Android является ядро ​​Linux. Например, среда выполнения Android (ART) использует ядро ​​Linux для реализации базовых функций, таких как многопоточность и низкоуровневое управление памятью.

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

Уровень абстракции оборудования (HAL)

Уровень абстракции оборудования (HAL) предоставляет стандартные интерфейсы, которые раскрывают возможности оборудования устройства для платформы Java API более высокого уровня. HAL состоит из нескольких библиотечных модулей, каждый из которых реализует интерфейс для определенного типа аппаратных компонентов, таких как камера или модуль Bluetooth . Когда API платформы выполняет вызов для доступа к оборудованию устройства, система Android загружает библиотечный модуль для этого аппаратного компонента.

среда выполнения Android

На устройствах под управлением Android версии 5.0 (уровень API 21) или выше каждое приложение запускается в своем собственном процессе и со своим экземпляром среды выполнения Android (ART) . ART написан для запуска нескольких виртуальных машин на устройствах с низким объемом памяти путем выполнения файлов исполняемого формата Dalvik (DEX) — формата байт-кода, разработанного специально для Android и оптимизированного для минимального использования памяти. Инструменты сборки, такие как d8 , компилируют исходные коды Java в байт-код DEX, который может работать на платформе Android.

К основным особенностям АРТ относятся следующие:

  • Предварительная (AOT) и своевременная (JIT) компиляция
  • Оптимизированная сборка мусора (GC)
  • В Android 9 (уровень API 28) и более поздних версиях преобразование файлов DEX пакета приложения в более компактный машинный код.
  • Улучшенная поддержка отладки, включая специальный профилировщик выборки, подробные диагностические исключения и отчеты о сбоях, а также возможность устанавливать точки наблюдения для мониторинга определенных полей.

До версии Android 5.0 (уровень API 21) средой выполнения Android был Dalvik. Если ваше приложение хорошо работает на ART, то оно может работать и на Dalvik, но обратное может быть неверным .

Android также включает набор основных библиотек времени выполнения, которые обеспечивают большую часть функциональности языка программирования Java, включая некоторые функции языка Java 8 , которые использует платформа Java API.

Собственные библиотеки C/C++

Многие основные компоненты и службы системы Android, такие как ART и HAL, созданы на основе собственного кода, для которого требуются собственные библиотеки, написанные на C и C++. Платформа Android предоставляет API-интерфейсы платформы Java, позволяющие предоставлять приложениям функциональность некоторых из этих собственных библиотек. Например, вы можете получить доступ к OpenGL ES через Java OpenGL API платформы Android, чтобы добавить поддержку рисования и управления 2D- и 3D-графикой в ​​вашем приложении.

Если вы разрабатываете приложение, для которого требуется код C или C++, вы можете использовать Android NDK для доступа к некоторым из этих собственных библиотек платформы непосредственно из вашего собственного кода.

Платформа API Java

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

  • Богатая и расширяемая система представлений, которую вы можете использовать для создания пользовательского интерфейса приложения, включая списки, сетки, текстовые поля, кнопки и даже встраиваемый веб-браузер.
  • Менеджер ресурсов , обеспечивающий доступ к ресурсам, не связанным с кодом, таким как локализованные строки, графика и файлы макета.
  • Менеджер уведомлений , который позволяет всем приложениям отображать настраиваемые оповещения в строке состояния.
  • Менеджер активности , который управляет жизненным циклом приложений и предоставляет общий стек навигации.
  • Поставщики контента , которые позволяют приложениям получать доступ к данным из других приложений, таких как приложение «Контакты», или делиться своими собственными данными.

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

Системные приложения

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

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

,

Android — это программный стек с открытым исходным кодом на базе Linux, созданный для широкого спектра устройств и форм-факторов. На рисунке 1 показаны основные компоненты платформы Android.

Программный стек Android

Рисунок 1. Программный стек Android.

Ядро Linux

Основой платформы Android является ядро ​​Linux. Например, среда выполнения Android (ART) использует ядро ​​Linux для реализации базовых функций, таких как многопоточность и низкоуровневое управление памятью.

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

Уровень абстракции оборудования (HAL)

Уровень абстракции оборудования (HAL) предоставляет стандартные интерфейсы, которые раскрывают возможности оборудования устройства для платформы Java API более высокого уровня. HAL состоит из нескольких библиотечных модулей, каждый из которых реализует интерфейс для определенного типа аппаратных компонентов, таких как камера или модуль Bluetooth . Когда API платформы выполняет вызов для доступа к оборудованию устройства, система Android загружает библиотечный модуль для этого аппаратного компонента.

среда выполнения Android

На устройствах под управлением Android версии 5.0 (уровень API 21) или выше каждое приложение запускается в своем собственном процессе и со своим экземпляром среды выполнения Android (ART) . ART написан для запуска нескольких виртуальных машин на устройствах с низким объемом памяти путем выполнения файлов исполняемого формата Dalvik (DEX) — формата байт-кода, разработанного специально для Android и оптимизированного для минимального использования памяти. Инструменты сборки, такие как d8 , компилируют исходные коды Java в байт-код DEX, который может работать на платформе Android.

К основным особенностям АРТ относятся следующие:

  • Предварительная (AOT) и своевременная (JIT) компиляция
  • Оптимизированная сборка мусора (GC)
  • В Android 9 (уровень API 28) и более поздних версиях преобразование файлов DEX пакета приложения в более компактный машинный код.
  • Улучшенная поддержка отладки, включая специальный профилировщик выборки, подробные диагностические исключения и отчеты о сбоях, а также возможность устанавливать точки наблюдения для мониторинга определенных полей.

До версии Android 5.0 (уровень API 21) средой выполнения Android был Dalvik. Если ваше приложение хорошо работает на ART, то оно может работать и на Dalvik, но обратное может быть неверным .

Android также включает набор основных библиотек времени выполнения, которые обеспечивают большую часть функциональности языка программирования Java, включая некоторые функции языка Java 8 , которые использует платформа Java API.

Собственные библиотеки C/C++

Многие основные компоненты и службы системы Android, такие как ART и HAL, созданы на основе собственного кода, для которого требуются собственные библиотеки, написанные на C и C++. Платформа Android предоставляет API-интерфейсы платформы Java, позволяющие предоставлять приложениям функциональность некоторых из этих собственных библиотек. Например, вы можете получить доступ к OpenGL ES через Java OpenGL API платформы Android, чтобы добавить поддержку рисования и управления 2D- и 3D-графикой в ​​вашем приложении.

Если вы разрабатываете приложение, для которого требуется код C или C++, вы можете использовать Android NDK для доступа к некоторым из этих собственных библиотек платформы непосредственно из вашего собственного кода.

Платформа API Java

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

  • Богатая и расширяемая система представлений, которую вы можете использовать для создания пользовательского интерфейса приложения, включая списки, сетки, текстовые поля, кнопки и даже встраиваемый веб-браузер.
  • Менеджер ресурсов , обеспечивающий доступ к ресурсам, не связанным с кодом, таким как локализованные строки, графика и файлы макета.
  • Менеджер уведомлений , который позволяет всем приложениям отображать настраиваемые оповещения в строке состояния.
  • Менеджер активности , который управляет жизненным циклом приложений и предоставляет общий стек навигации.
  • Поставщики контента , которые позволяют приложениям получать доступ к данным из других приложений, таких как приложение «Контакты», или делиться своими собственными данными.

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

Системные приложения

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

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