Рубрика: Android

  • Смена конфигурации. Как и где обрабатывать? Куда сохраняется этот стейт в системе?

    Что такое «смена конфигурации»? Как происходит пересоздание?Это любое изменение, требующее пересоздания Activity или Fragment, например: По умолчанию Android убивает и пересоздаёт Activity, чтобы применить новую конфигурацию. Как происходит пересоздание? Куда сохраняется Bundle? ‼️ Bundle должен содержать только примитивы, Parcelable, Serializable — иначе он НЕ будет сериализован корректно и Activity не восстановится.

  • Зачем нужен saveInstanceState(), как и где используется? После чего и до чего вызывается onSaveInstanceState?

    Нужен savedInstanceState, чтобы временно сохранить UI-состояние, которое: Аналогия Представь, что ты играешь в шахматы на доске. Вдруг кто-то стучит в дверь, и ты убираешь доску, но фотографируешь позицию фигур. Потом возвращаешься, ставишь доску — и восстанавливаешь фигуры по фото. onSaveInstanceState() — это как сфоткать текущую позицию.savedInstanceState — это снимок доски.onCreate() или onViewStateRestored() — момент, когда…

  • В каких случаях View уничтожается, а Fragment живет? Зачем это может быть нужно?

    Это происходит, когда: ▶️ Fragment переходит в состояние onDestroyView(), но не в onDestroy() Пример:При навигации внутри ViewPager (до ViewPager2) или при использовании фрагментов с FragmentTransaction().replace() / addToBackStack(), когда пользователь покидает экран, но Fragment остаётся в памяти, потому что: Android освобождает ресурсы UI (View), но сохраняет сам Fragment, чтобы быстрее восстановить UI при возврате назад. Инстанс…

  • Бывают ли в Android-е stop-the-world паузы?

    Да, в Android могут происходить stop-the-world (STW) паузы во время сборки мусора (Garbage Collection), даже при использовании ART (Android Runtime). Хотя ART использует оптимизированные сборщики мусора, такие как Concurrent Mark-Sweep (CMS) и Generational GC, некоторые этапы сборки мусора, такие как marking phase или heap compaction, могут временно приостановить выполнение всех потоков приложения для корректного освобождения…

  • Какой GC в ART?

    В Android Runtime (ART) используется Garbage Collector с рядом оптимизаций, чтобы минимизировать задержки при сборке мусора и повысить производительность:

  • Как получить утечку памяти в Android-е?

    В Android утечки памяти происходят, когда объекты, которые больше не нужны, не освобождаются сборщиком мусора (Garbage Collector) из-за оставшихся на них ссылок. Основные причины утечек: Для обнаружения утечек можно использовать инструмент LeakCanary.

  • Сколько может быть процессов в Android приложении? Сколько потоков?

    Процессы в Android: Потоки в Android:

  • Сервисы. Что такое, для чего нужны, какие бывают?

    Сервисы (Service) — это компоненты Android-приложения, которые выполняют долгосрочные операции в фоновом режиме и не имеют пользовательского интерфейса. Они используются для выполнения задач, которые должны продолжаться, даже если пользователь не взаимодействует с приложением. Для чего нужны? Сервисы нужны для выполнения фоновых операций, таких как: Виды сервисов:

  • Жизненный цикл Activity. Какой порядок вызова методов жизненного цикла для двух Activity?

    Ответ: Жизненный цикл Activity состоит из следующих основных методов: Порядок вызова методов жизненного цикла для двух Activity Предположим, есть Activity A и Activity B. Когда вы переходите от Activity A к Activity B, порядок вызова методов будет таким: Если Activity B завершена и возвращается к Activity A:

  • Отличия жизненного цикла Fragment-a от жизненного цикла Activity

    Ответ: Fragment имеет дополнительные методы жизненного цикла:

  • Расскажи про основные компоненты Android приложения

    Ответ: Ключевые компоненты Android-приложения: Activity: Компонент, отвечающий за взаимодействие с пользователем через экранный интерфейс. Service: Фоновый компонент, выполняющий задачи без прямого взаимодействия с пользователем, такие как загрузка данных или воспроизведение музыки. BroadcastReceiver: Обрабатывает широковещательные сообщения от системы или других приложений, например, уведомления об изменениях сети или батареи. ContentProvider: Управляет доступом к структурированным данным и предоставляет…

  • Можно ли сделать приложение например только с BroadcastReciever-ом? Или только с ContentProvider-ом?

    Ответы: Да, в Android можно создать приложение, содержащее только один компонент — BroadcastReceiver. Такое приложение будет реагировать на определённые широковещательные сигналы, такие как системные события или сообщения от других приложений. Да, в Android можно создать приложение, которое будет состоять только из одного компонента — ContentProvider. Такое приложение не будет иметь интерфейса и будет предназначено для…