Blog about Android

  • Как выгружается приложение(процесс) в 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 обязан инициализировать их до всего остального

  • BroadcastReceiver, что такое и зачем нужен? Можно ли отправить интент только внутри приложения?

    Это компонент Android, предназначенный для реакции на широковещательные события (broadcasts). Можно: Да. Можно отправить Broadcast только внутри приложения:

  • ContentProvider, что такое и зачем нужен?

    ContentProvider — это компонент Android, предназначенный для: Если App A хочет получить данные из App B, но App A не знает реализацию App B. Оно просто работает с Uri и Cursor. ContentProvider действует как контрактный интерфейс между ними. Как унифицированный интерфейс доступа к данным работа с: всё работает одинаково через ContentResolver

  • В каких случаях onLayout() вызывается два раза?

    onLayout() дважды (или больше раз) может вызываться в рамках одного layout pass-а — и это может как быть нормальным, так и сигналом об ошибке. onLayout() вызывается два и более раз, если:

  • Методы жизненного цикла View, какие есть, зачем нужны?

    1. constructor() / init Что делает: создаёт View, инициализирует поляВызывается: при создании View — через XML или программно Аналогия: ты строишь мебель по инструкции — ещё ничего не стоит, но детали есть. 2. onAttachedToWindow() Что делает: сообщает, что View добавлена в иерархию окнаВызывается: после того, как View прикреплена к окну Аналогия: ты поставил мебель в…

  • onDestroy() когда будет вызван? onRestart() когда будет вызван?

    onDestroy(): когда вызывается? onDestroy() вызывается, когда Activity окончательно уничтожается — то есть больше не будет возвращена пользователю. Вызывается в трёх основных случаях: При этом: onRestart(): когда вызывается? onRestart() вызывается, когда Activity возвращается из состояния Stopped в Started. То есть: Когда не вызывается onRestart():