Все вопросы по Android

Из каких базовых компонент состоит приложение?
Может ли приложение быть запущено в нескольких процессах?
Приоритеты процессов
Activity: Что такое и как запустить?
Activity: Жизненный цикл
Activity: Как пережить поворот экрана?
Нужно ли думать о сохранении состояния, если приложение поддерживает только портретную ориентацию?
Fragment
Расскажите про способы добавления и переключения фрагментов. Как работать с бэкстэком?
Важен ли порядок, в котором добавляются операции в FragmentTransaction?
Чем отличается tag в методах add() и addToBackStack()?
Метод FragmentManager.commit() – синхронный или нет?
Что такое Activity State Loss Exception? Для чего нужен commitAllowingStateLoss()?
Как получить ссылку на фрагмент из активити?
Опишите жизненный цикл фрагмента
Что такое Target Fragment и для чего нужен?
В чем разница между Dialog и DialogFragment?
Чем отличается activity Context от application Context?
Что такое и зачем нужен Service? Какие бывают виды сервисов?
В каком потоке работает сервис? В главном или фоновом?
Что такое IntentService / JobIntentService?
Что такое Background и Foreground Service?
Какие ограничения связанные с фоновыми сервисами были добавлены в Android 8.0?
Опишите методы жизненного цикла сервиса
Что такое и для чего используется BroadcastReceiver?
Какие способы регистрации BroadcastReceiver вы знаете? Чем они отличаются?
Можно ли выполнять длительные операции в методе onReceive()?
Какие существуют способы отправки броадкастов?
Как задать приоритет упорядоченного броадкаста?
Как передать результат следующему ресиверу при упорядоченном броадкасте? Как остановить упорядоченный броадкаст?
Что такое sticky broadcast?
Какие ограничения на BroadcastReceiver были введены в Android 8.0?
Что такое утечка активити / контекста?
Что такое и для чего используется ContentProvider?
Приведите примеры системных контент провайдеров
Как работать с данными через ContentResolver?
Из чего состоит Content URI?
Как защититься от SQL инъекции при запросе в ContentResolver?
Что такое Cursor и как с ним работать?
В чем разница между Bundle и Intent?
Опишите структуру объекта Intent
Чем отличаются явный (explicit) и неявный (implicit) интенты?
Расскажите про intent resolution неявных интентов
Что будет если переименовать Main активити в новой версии приложения?
Может ли AndroidManifest содержать несколько main activity?
Можно ли установить приложение с <uses-feature android:name="android.hardware.camera"/> на устройство без камеры?
Может ли <uses-permission> ограничивать доступность приложения в Google Play Store?
В чем разница между <uses-permission> и <permission>?
Можно ли обновлять View не из UI потока? Какие способы выполнить код в UI потоке предоставляются системой?
Чем отличаются build type, flavor и build variant?
Что такое flavor dimensions?
Как фильтровать build-варианты?
В чем разница между Preference и SharedPreferences?
В чем разница между apply() и commit() в SharedPreferences?
Что такое и как работает deep linking?
Что такое app links?
Что такое и как реализовать deferred deep link?
Как создать кастомную View?
Как реализовать метод View.onMeasure()?
Как реализовать метод View.onDraw()?
Как создать кастомные атрибуты view?
Как применить кастомный атрибут?
Что такое Looper?
Что такое Handler?
Синхронно или асинхронно выполняется Handler⁠.post(), если вызывается без изменения треда?
В чем разница между Schedulers⁠.io() и Schedulers⁠.computation() в RxJava?
Какие данные можно передать через MessageQueue?
Как реализованы Looper, Handler и MessageQueue?
Что такое SparseArray?
Чем отличаются hot и cold Observables в RxJava?
Что такое HandlerThread?
Что такое ArrayMap и ArraySet?
Как создать Observable в RxJava?
Чем отличается subscribeOn и observeOn в RxJava?
Когда следует использовать ArrayMap и ArraySet?
Какие бывают Subjects в RxJava?
Что такое Parcelable?
Когда Parcelable.describeContents() должен возвращать не 0?
Что будет, если применить subscribeOn() к Subject?
Что быстрее parcelable или serializable?
Что происходит, когда пользователь кликает на иконку приложения?
Синхронно или асинхронно выполняется Activity.runOnUiThread(), если вызывается из UI потока?
Как система создает новый процесс и стартует приложение?
Какие виды стримов существуют в RxJava?
Как и когда вызывается метод Application.onCreate()?
В каких случаях возникает ANR?
Как работать с Backpressure в RxJava?
Как изменилось поведение onResume() и onPause() в Android 10?
Как изменился location permission в Android 10?
Что такое и для чего нужен foreground service type?
Какие ограничения на старт активити введены в Android 10?
Как трансформировать cold observable в hot?
Как трансформировать hot observable в cold?
В чем разница между flatMap(), concatMap() и switchMap() в RxJava?
Что такое Window?
Как работает метод dispatchTouchEvent()?
Для чего нужен метод onInterceptTouchEvent()?
Как Touch Event доставляется до таргет-view?
Назовите основные MotionEvent Actions
Как реализован оператор subscribeOn в RxJava2?
Является ли List в Kotlin immutable-коллекцией?
Как запустить стек из нескольких активити?
Чем плох AsyncTask?
В чем разница между ListView и RecyclerView?
Как прослушивать lifecycle коллбэки всех активити в приложении?
В чем разница между invalidate() и requestLayout()?
Для чего нужен метод View.forceLayout()?
Работает ли assert в Андроиде?
Чем Dalvik отличается от ART?
В чем достоинства и недостатки ART?
Что такое .dex файл?
Что такое проблема 64К методов?
Опишите структуру APK-файла
Как собирается Android-приложение?
В чем разница между jar и aar?
Что такое Proguard?
Как Proguard удаляет неиспользуемый код?
Как Proguard обфусцирует код?
Что такое Consumer Proguard?
Что такое Android Jetpack?
Что такое MVP?
Назовите минусы MVP
Что такое MVVM?
Какие существуют способы реализации MVVM Android-приложении?
В чем недостатки использования библиотеки Data Binding?
В чем разница между Doze Mode и App Standby?
Что такое Spannable?
Для чего нужен метод Fragment.setRetainInstance()?
Что такое LiveData?
В чем разница между LiveData.observe() и LiveData.observeForever()?
Как правильно подписываться на LiveData во фрагментах?
Какие трансформации возможны на LiveData?
Как объединить несколько LiveData?
Как создать кастомный transform-оператор LiveData?
Для чего нужен класс ViewModel из Architecture Components?
Является ли ViewModel заменой onSaveInstanceState()?
Где хранятся данные onSaveInstanceState()?
В чем разница между Assets и Raw-ресурсами?
Можно ли создавать ресурсы с несколькими квалификаторами?
По какому алгоритму разрешаются квалификаторы ресурсов?
Что такое плотность экрана?
Как перевести dp в px?
Кто такой Джейк Вортон?
В чем разница между квалификаторами -nodpi и -anydpi?
Какие существуют Launch Modes Activity?
Опишите standard и singleTop launch modes
Опишите singleTask и singleInstance launch modes
Что такое App Bundle?
Что такое Android NDK?
Что такое IdlingResource?
Приведите примеры реализаций IdlingResource, основанных на счетчиках
Как создать кастомный IdlingResource?
Как ViewModel переживает пересоздание фрагмента?
Как ViewModel переживает пересоздание активити?
Что такое Room?
Из каких компонентов состоит Room?
Какие существуют способы добавить Primary Key в Room?
Как игнорировать поля родительского Entity-класса в Room?
Что делает аннотация @Embedded в Room?
Можно ли приложение, установленное на External Storage, запускать на разных устройствах?
Что такое PendingIntent?
Как зарегистрировать несколько одинаковых PendingIntents?
Какие планировщики задач существуют в Андроиде?
Что такое Notification Channel?
Как узнать, что пользователь отключил нотификации?
Можно ли программно изменять настройки канала нотификаций?
Для чего используются аннотации @Fts3 и @Fts4 в Room?
Что такое Database View в Room?
Какие лэйауты существуют в Android?
Чем CoordinatorLayout отличается от FrameLayout?
Что такое Compound Drawable?
Как задать отступ у Compound Drawable?
В чем разница между Data Binding и View Binding библиотеками?
Что задает атрибут weight в LinearLayout?
Как атрибут weight влияет на перформанс?
Назовите частые причины проблем с производительностью UI и как их решать
Назовите методы жизненного цикла виджета
Какие ограничения виджетов вы знаете?
Что такое RemoteViews?
Что такое RemoteViewsService?
Что такое 9-Patch Drawable?
Как Андроид масштабирует 9-Patch?
Что такое AIDL?
Как проиграть аудио в приложении?
В каком случае onDestroy вызовется без onPause и onStop?
Что означают dpi, dp, sp, dip, px, mm, in и pt?
Как спрятать клавиатуру?
Чем идентифицировать пользователя?
Опишите архитектуру платформы Android
Как уменьшить APK?
Как отладить приложение на девайсе?
Какие классы служат для доступа к сенсорам?
Как передать параметры в конструктор фрагмента?
Перечислите доступные хранилища данных
Какова структура Android-проекта?
Назовите три основных применения интентов