Android — это операционная система на основе ядра Linux
, разработанная для мобильных устройств (смартфонов, планшетов, умных часов и т.д.).
Она предоставляет среду для выполнения приложений и взаимодействия с аппаратными компонентами устройства.
Android SDK (Software Development Kit) — это набор инструментов для разработки приложений под Android
. Он включает:
- Библиотеки - Готовые компоненты для работы с
UI
, сетью, базами данных и т.д. - Эмулятор - Для тестирования приложений на виртуальных устройствах.
- Инструменты командной строки - Например,
adb
(Android Debug Bridge
) для отладки. - Документацию - Руководства и справочные материалы.
Основные компоненты Android SDK:
- Android Studio - Официальная среда разработки (
IDE
) дляAndroid
. - SDK Manager - Управление версиями SDK, эмуляторами и инструментами.
- Build Tools - Инструменты для сборки приложений (например,
gradle
). - Platform Tools - Инструменты для работы с устройствами (например,
adb
).
Android NDK (Native Development Kit) — это набор инструментов для разработки приложений на языках C/C++
. Он используется, когда нужно:
- Использовать существующие библиотеки на
C/C++
. - Оптимизировать производительность (например, для игр или обработки видео).
- Работать с низкоуровневыми
API
(например,OpenGL
).
Основные компоненты NDK:
- Компиляторы - Для сборки кода на
C/C++
. - Библиотеки - Например,
libc
,libm
и другие. - Инструменты для отладки - Например,
ndk-gdb
.
Операционная система Android состоит из нескольких уровней (слоев), каждый из которых выполняет свои задачи.
Ядро Linux — это основа Android
. Оно управляет:
- Памятью.
- Процессами.
- Драйверами устройств (например, камеры, дисплея, сенсоров).
- Сетью и безопасностью.
Библиотеки на C/C++
:
- Surface Manager - Управляет отображением графики.
- Media Framework - Для работы с аудио и видео.
- SQLite - Для работы с базами данных.
- OpenGL ES - Для работы с 3D-графикой.
- WebKit - Для работы с веб-контентом.
Android Runtime (ART
):
- ART — это среда выполнения приложений, которая заменяет Dalvik (использовался до Android 5.0).
- ART компилирует байт-код приложений (DEX) в машинный код (AOT-компиляция), что повышает производительность.
Framework API — это набор Java
-библиотек, которые предоставляют доступ к функциям ОС:
- Activity Manager - Управляет жизненным циклом приложений.
- Content Providers - Для обмена данными между приложениями.
- Resource Manager - Для работы с ресурсами (например, строками, изображениями).
- Notification Manager - Для работы с уведомлениями.
- View System - Для создания пользовательского интерфейса.
- Системные приложения: Например, телефон, сообщения, камера.
- Сторонние приложения: Устанавливаются пользователем из Google Play или других источников.
Android
использует многоуровневую архитектуру, которая включает:
- Приложения - Верхний уровень, с которым взаимодействует пользователь.
- Framework API - Предоставляет API для разработки приложений.
- Библиотеки и Android Runtime - Обеспечивают выполнение приложений.
- Ядро Linux - Управляет аппаратными ресурсами.
- Activity - Представляет собой один экран с пользовательским интерфейсом.
- Service - Выполняет задачи в фоновом режиме (например, воспроизведение музыки).
- BroadcastReceiver - Реагирует на системные события (например, изменение времени).
- ContentProvider - Управляет доступом к данным (например, контактам, медиафайлам).
AndroidManifest.xml — это файл, который описывает основные компоненты приложения и их настройки.
Он находится в папке app/src/main
и является обязательным для любого Android
-приложения.
- Описывает приложение.
- Содержит атрибуты, такие как
android:icon
,android:label
,android:theme
.
- Описывает
Activity
в приложении. - Содержит атрибуты, такие как
android:name
,android:label
,android:theme
.
- Определяет, как Activity или Service могут быть запущены.
- Например,
<action android:name="android.intent.action.MAIN" />
указывает, чтоActivity
является главной.
- Запрашивает разрешения для приложения (например, доступ к интернету, камере).
- Описывают
Service
,BroadcastReceiver
иContentProvider
соответственно.