Собеседование по Android. Stack Of Questions #2

Автор:

1. Пересоздается ли Activity при смене языка системы?

Да, после смены языка происходит полный цикл создания Activity.

2. Что такое Zygote?

Это служба, которая является обязательным компонентом Android-системы. Она отвечает за инициализацию, старт системных служб, запуск и остановку пользовательских приложений и запускается после виртуальной машины Dalvik.

3 Что такое Doze Mode?

Появился в Android 6.0 (API 23). Режим работы системы Android, который запускается, в случае если устройство находится без активного использования и зарядки более одного часа. Данный режим ограничивает функциональность всех приложений, запрещая использовать сеть, Alarm’ы, планировщики.

4. Что такое App Standby?

Появился в Android 6.0 (API 23). Режим работы приложения, который также ограничивает функциональные возможности. Система включает данный режим, если пользователь некоторое время не использует приложение и у приложения нет никаких уведомлений на экране блокировки или панели уведомлений.

5. В чем отличие Dialog от DialogFragment?

Класс Dialog используется для отображения диалогового окна и не позволяет управлять его жизненным циклом. Класс DialogFragment представляет собой фрагмент, который содержит Dialog и позволяет управлять своим жизненным циклом, не допуская утечек памяти и других неявных проблем.

6. Что такое Target Fragment?

Target Fragment используется для взаимодействия между фрагментами, когда один фрагмент, содержит в себе другой фрагмент. Таким образом можно взаимодействовать с родительским фрагментом, по аналогии с методом startActivityForResult() который используется для получения обратной связи в Activity.

7. Для чего нужен SnapHelper?

Класс в Android, который предназначен для изменения поведения прокрутки элементов в RecyclerView. При помощи данного класса, можно сымитировать прокрутку элементов на одну позицию, как это делает ViewPager.

8. Что такое Flavors?

Product flavors – это параметр в Gradle, который предоставляет возможность разделить наше приложение на несколько версий, которые будут иметь различный функционал, например, версии demo/full, разделение приложения для клиентов и администраторов.

productFlavors {
demo {
dimension "version"
applicationId "com.stackofskills.demo"
resValue "string", "flavoredName", "Demo App"
}

full {
dimension "version"
applicationId "com.stackofskills.full"
resValue "string", "flavoredName", "Full App"
}
}

9. Что такое  BuildType?

Данный параметр в Gradle необходим для создания сборок нашего приложения с различными настройками, например каким сертификатом подписывать приложение, какие адреса использовать для сетевых запросов.

signingConfigs {
config {
keyAlias 'stackofskills'
keyPassword 'password'
storeFile file(C:/android/key/key.jks)
storePassword 'password'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", 'URL', '"https://stackofskills.com"'
signingConfig signingConfigs.config
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", 'URL', '"https://demo.stackofskills.com"'
}
}

10. Что такое BuildVariant?

Это совокупность параметров BuildType и Flavors, для создания итоговых билдов приложения, содержащих все необходимые настройки.

 

 

Ваш адрес email не будет опубликован. Обязательные поля помечены *