В этой статье мы рассмотрим некоторые из чаще всего задаваемых вопросов на собеседованиях по Android. Профессия разработчика приложений под Android весьма востребована. Следующие вопросы очень часто встречаются на собеседованиях на должность Android-разработчиков среднего и начального уровня. Они просты по своей сути, и отлично подходят для повторения и тренировки перед походом на собеседование по Android.

Вопрос 1: В чем разница между обычным png-изображением и 9-patch?

Это один из самых популярных вопросов на собеседованиях по операционной системе Android. Его задают разработчикам с опытом от 1-2 до 5 лет. Ответ таков: это допускающий изменение размера ресурс -точечное изображение, который можно использовать для фона или других изображений на устройстве. Класс NinePatch предоставляет возможность отрисовки изображения в девяти областях. Расширение подобных изображений – .9.png. Их можно расширять девятью способами: 4 угла не масштабируются, 4 грани масштабируются по одной оси и средняя область масштабируется по обоим осям. Вопрос 2: Что такое ANR-уведомление в Android?ANR – это сокращение от "Приложение не отвечает" (Application Not Responding). Системы, работающие на операционной системе Android, показывают это диалоговое окно, если приложение выполняет слишком ресурсоёмкую задачу в основной нити (thread), и не отвечает в течение длительного периода времени.

Вопрос 3: Когда вызывается метод onResume()?

Метод onResume() — один из методов жизненного цикла активностей. Он вызывается, когда активность переходит на передний план. Вы можете переопределить этот метод в своей активности, чтобы выполнять код при запуске, перезапуске активности или её переходе на передний план. Вот понятная схема, поясняющая последовательность выполнения различных методов обратного вызова в Android, включая onResume():

Вопрос 4: В чем заключается различие между неявным (implicit) и явным (explicit) намерением?

Под намерением или Intent в основном понимают сообщения, которые передаются между компонентами (Activities, Services, Broadcast Receivers, Content Providers). Существует два типа намерений: неявные и явные. Давайте разберемся, в чем их отличия. 1) Неявное: О неявных намерениях речь идет при вызове системных намерений по умолчанию, таких как отправка сообщения электронной почты, SMS, набор номера телефона, например:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain")
startactivity(sendIntent);
2) Явное: Явное намерение используется для перехода от одной активности к другой, например, от активности first к активности second:
Intent intent = new Intent(first.this, second.class);
startactivity(intent);
Больше узнать о явных и неявных намерениях можно из книги Introduction to Android Development By John Sonmez.

Вопрос 5: Что такое формат APK?

Файл в формате APK представляет собой сжатый файл AndroidManifest.XML с расширением .apk. Он содержит код приложения (файлы .dex), файлы ресурсов и другие файлы, сжатые в единый файл.

Вопрос 6: Что такое виртуальная машина Dalvik?

Подобно тому, как Java-приложения выполняются на Oracle HotSpot JVM или Azul JVM, приложения Android работают на виртуальной машине Dalvik (DVM). По сути, это аналог Java-машины, разработанный Google и оптимизированная под. работу с RISC-процессорами.

Вопрос 7: Как приложение Android выполняется на мобильном устройстве под управлением операционной системы Android?

Поскольку код приложений Android чаще всего пишется на языке Java, они сначала компилируются, а затем выполняются, но виртуальная машина, для которой генерируется их байт-код, отличается от стандартной JVM. Для выполнения приложений Android используется виртуальная машина Dalvik.
Источник
Что еще почитать?

Чего хотят люди в 2018-м? Пять потребительских трендов, интересных айтишнику

10 вопросов по абстрактным классам и интерфейсам с собеседований по Java