Рубрика: 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. Такое приложение не будет иметь интерфейса и будет предназначено для…