- Главная
- Android
Все вопросы по 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-проекта?
- Назовите три основных применения интентов