Ответ
Все нативные Android-приложения объединяет единая архитектурная модель, определённая операционной системой.
1. Формат распространения и установки:
- APK (Android Package Kit) или AAB (Android App Bundle) — это архивные файлы, содержащие весь код и ресурсы приложения для установки.
2. Обязательный манифест — AndroidManifest.xml:
Это главный конфигурационный файл, который объявляет системе:
- Пакетное имя (уникальный идентификатор, например,
com.company.app). - Компоненты приложения:
Activity,Service,BroadcastReceiver,ContentProvider. - Запрашиваемые разрешения (доступ к интернету, камере, контактам).
- Минимальная и целевая версия Android SDK.
3. Четыре основных компонента приложения:
Activity— экран с пользовательским интерфейсом.Service— фоновая задача без UI.BroadcastReceiver— компонент, реагирующий на системные широковещательные сообщения.ContentProvider— управляет общим набором данных для доступа из других приложений.
4. Структура проекта и жизненный цикл:
- Чёткое разделение ресурсов (
res/для layouts, strings, drawables) и кода (java/илиkotlin/). - У каждого компонента (особенно
Activity) есть строго определённый жизненный цикл (методыonCreate(),onStart(),onResume()и т.д.), которым управляет система.
5. Среда выполнения и API:
- Исполняются в Android Runtime (ART) (или Dalvik в старых версиях).
- Взаимодействуют с системой и железом через Android SDK (набор API, предоставляемых Google).
Пример минимального манифеста, общего для любого приложения:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"> <!-- Уникальный идентификатор -->
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name">
<!-- Объявление главного Activity -->
<activity android:name=".MainActivity">
<intent-filter>
<!-- Это объявление делает Activity точкой входа -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Здесь могут быть объявлены другие компоненты -->
</application>
<!-- Здесь объявляются разрешения -->
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
Эта общая архитектура обеспечивает безопасность, управление ресурсами и единообразие взаимодействия приложений с ОС Android.