Рубрика: Android
-
IPC. Межпроцессное взаимодействие, AIDL
IPC (Inter-Process Communication) — это способ, с помощью которого два разных процесса обмениваются данными.Это критично, потому что: Примеры IPC в Android Где используется Пример Системные сервисы LocationManager, NotificationManager Между приложениями Приложение <=> Сервис другого приложения AIDL-сервисы Платёжные SDK, медиа-сервисы Binder Основной механизм передачи данных Механизм: Android Binder Вся IPC в Android работает через Binder —…
-
Что такое apk и что в него входит
APK (Android Package) — это обычный архив в формате ZIP, содержащий всё необходимое для установки Android-приложения на устройство: Структура .apk файла Вот что обычно входит в APK: app.apk├── AndroidManifest.xml├── classes.dex├── lib/│ └── armeabi-v7a/libnative.so├── res/│ └── drawable/…├── assets/│ └── raw_data.json├── resources.arsc├── META-INF/│ ├── CERT.RSA│ ├── CERT.SF│ └── MANIFEST.MF Подробности по каждому элементу Файл / Каталог Назначение…
-
Отличия ART от Dalvik
Что такое Dalvik и ART? Dalvik ART (Android Runtime) Использовался До Android 4.4 (по умолчанию) С Android 5.0+ (Lollipop) Тип Интерпретатор + JIT AOT-компилятор + JIT (новый) Цель Выполнять .dex-байткод Тоже .dex, но быстрее и эффективнее Ключевые отличия 1. Компиляция: JIT vs AOT Dalvik ART JIT (Just-In-Time) Только JIT JIT, но в сочетании с AOT…
-
Приоритетность процессов в андроиде
Android даёт каждому процессу приоритет: Приоритет Кто Убивается в последнюю очередь Foreground UI, активные Activity/Service В последнюю очередь Visible View partially visible В последнюю очередь Service Фоновый Service В последнюю очередь Cached / Empty Задние Activity, idle процессы В первую очередь
-
WorkManager — зачем нужен и как используется?
Ответ: WorkManager — это API для выполнения фоновых задач, которые: Когда использовать WorkManager? Сценарий Использовать WorkManager? Синхронизация данных в фоновом режиме Да Отправка логов / статистики ночью Да Загрузка медиафайлов только по Wi-Fi Да One-time задача при следующем запуске Да Точное выполнение в конкретное время Лучше AlarmManager Реальное время (медиа, шагомер и т.п.) ForegroundService Как…
-
Как выгружается приложение(процесс) в Android-е?
Android не выгружает приложение вручную по finish()Он убивает процесс (process-level cleanup) по следующим причинам: Причина Что происходит Нехватка памяти Android убивает least important process Приложение в фоне долго не используется Может быть выгружено «тихо» через LMK Пользователь смахнул в Recents Android убивает task + процесс Приложение само вызвало System.exit(0) или killProcess() Принудительное завершение Force stop…
-
Что такое таск в Android-е? Как задать поведение Activity?
Task — это стэк Activity-объектов, в котором пользователь выполняет задачу.Он отображается как одно приложение в списке недавних (Overview / Recents). Task = back stack Как Activity попадает в таск? Через комбинацию: launchMode это способы запуска Activity Указывается в манифесте или через Intent-флаги. launchMode Поведение standard Каждое открытие → новая копия Activity (дефолт) singleTop Если Activity…
-
ANR в Android-е, как он появляется под капотом?
Ответ: ANR — это системная ошибка, которая возникает, когда приложение не отвечает в течение установленного времени. По умолчанию: Как это происходит внутри Android? 1. ActivityManagerService (AMS) следит за responsiveness 2. InputDispatcher отправляет событие в приложение 3. Looper main/UI thread должен быстро обработать событие 4. Watchdog следит, чтобы ответ был в срок 5. AMS создаёт ANR…
-
Context в Android-е. Какие бывают, чем отличаются?
Ответ: Context — это объект-среда, который предоставляет доступ к: По сути — это «точка входа» к API Android, привязанная к жизненному циклу. Основные виды Context в Android Вид Описание Где используется ApplicationContext Живёт всё время жизни процесса Работа с синглтонами, фоновыми задачами Activity Контекст, привязанный к Activity UI-операции, startActivity(), Inflate Service Контекст сервиса Службы и…
-
Чем Animation отличается от Animator-а?
Ответ: Animation старее и проще работает чем Animator. Вот главные отличия. Animation (View Animation) Классическая система анимаций до Android 3.0 Animator (Property Animation) Появился с Android 3.0 (API 11). Более мощная система: Вот таблица различий Animation (до API 11) Animator (c API 11+, Property Animation) Что анимирует Только визуальное представление (View) Свойства объектов, не только…
-
Какие компоненты реагируют на смену конфигурации?
Что такое смена конфигурации? Смена orientation, языка, темы, DPI, UI Mode, fontScale и др.Android при этом может пересоздать компоненты, чтобы адаптировать UI. Какие компоненты реагируют на смену конфигурации? 1. Activity Основной компонент, который всегда реагирует на конфигурационные изменения, если ты явно не переопределил поведение. 2. Fragment Может использовать setRetainInstance(true) (устаревший способ) или ViewModel, чтобы пережить…
-
Какой компонент Android-е запускается первым?
Ответ: ContentProvider запускается раньше всех Порядок инициализации компонентов Android при запуске приложения: ContentProvider — может предоставлять данные другим приложениям. Он может быть вызван вне зависимости от того, запущено ли приложение. Поэтому Android обязан инициализировать их до всего остального