Главное меню » Начинающим » Для Собеседования » Вопросы и ответы для собеседования на Junior Android-разработчика

Вопросы и ответы для собеседования на Junior Android-разработчика

 

Вопрос 1: Почему нельзя запускать обычный Java байткод на Андроиде?

Ответ: Андроид использует Dalvik Virtual Machine (DVM), для которой небодходим специальный байткод. Необходима конвертация файла, содержащего обычный Java-байткод в исполняемый Dalvik-файл, используя утилиту, называемую “dx”. В нормальных условиях, разработчикам не нужно использовать этот инструмент напрямую, так как DVM-совместимые файлы будут генерироваться инструментами сброки для Android.

Вопрос 2: Можно ли загружать исполняемые JAR-файлы на Андроид? Пакеты какого типа поддерживает Андроид?

Ответ: Нет, загружать исполняемые JAR-файлы на Андроид нельзя. Платформа Андроид не поддерживет загрузку JAR. Приложения для Андроид должны быть упакованы в Android Package (.apk) используя Android Asset Packaging Tool (aapt) и затем уже загруженны на платформу Андроид. Google предоставляет инструменты разработки под Андроид, которые могут быть изпользованы для создания apk-файлов.

Вопрос 3: Приложения под Андроид могут быть написаны только на Java?

Ответ: Нет, вы можете писать Андроид приложения на C/C++ используя NDK.

Вопрос 4: Какие файлы являются исполняемыми файлами Dalvik?

Ответ: Исполняемые файлы Dalvik имеют расширение .dex и упакованы в файл с расширением .apk при развертывании на устройстве.

Вопрос 5: Как Андроид отслеживает установленные приложения?

Ответ: При установке нового приложения, Андроид назначает ему уникальный идентификатор, называемый Linux User Id. Этот идентификатор используется для отслеживания каждого установленного приложения.

Вопрос 6: Как приложение работает изолированно от других приложений?

Ответ: У каждого приложения есть свой Linux User Id и каждому Linux User Id соответствует своя виртуальная машина. Это означает, что код приложения запускается изолированно от других приложений.

Вопрос 7: Когда Андроид запускает и завершает процесс приложения?

Ответ: Андроид порождает процесс приложения, когда какой-либо компонент приложения необходимо использовать. Когда компонент больше не нужен, процесс завершается (происходит сборка мусора).

Вопрос 8: В каком случае два Андроид-приложения могут иметь один и тот же Linux User Id и одну и ту же виртуальную машину

Ответ: Приложения должны быть подписаны одним сертификатом.

Вопрос 9: Можно ли менять имя приложения после его установки?

Ответ: Не рекомендуется менять имя приложения после его установки, так как это может привести к неработоспособности части его функциональности. Например, могут перестать работать ярлыки приложения.

Вопрос 10: Что такое файлы ресурсов Андрой приложения?

Ответ: Как разработчик Андроид-приложений, вы можете настроить сборку проекта таким образом, чтобы в приложение добавлялись различные файлы ресурсов (XML, JSON, JPEG и т.д.), чтобы затем вы могли загружать их во время выполнения приложения. Эти файлы и называются ресурсами.

Вопрос 11: Перечислите, какие основные диалоговые окна могут использоваться в Андроид приложении?

Ответ:

  • AlertDialog: предупреждающее диалоговое окно, поддерживающее от 0 до 3 кнопок и список выбираемых элементов.
  • ProgressDialog: расширение AlertDialog, к нему можно добавлять дополнительные кнопки. Оно показывает индикатор в виде окружности или в виде горизонтальной полосы.
  • DatePickerDialog: используется для выборы даты пользователем.
  • TimePickerDialog: используется для выбора времени пользователем.

 

Вопрос 12: Что такое компонент приложения Activity?

Ответ: Активити используется для предоставления пользователям интерактивного диалогового окна. Она может содержать различные интерфейсные компонентов. Обычное Андроид-приложение состоит из нескольких Activity, которые слабо связаны друг с другом. Разработчик определяет главное Activity, которое запускается при старте приложения.

Вопрос 13: Может ли Андроид приложение получить доступ к файлам и ресурсам другого Андроид приложения?

Ответ: Система настраивает права доступа на все файлы и ресурсы приложения, так что доступ к ним может получить только приложение-владелец. Другие приложения не могут получить доступ к ресурсам другим приложений до тех пор, пока они не будут подписаны тем же сертификатом

Вопрос 14: Андроид приложению необходим доступ к некоторым возможностям устройства, например к отправке SMS сообщений или к камере. Когда пользователь должен предоставить ему соотвествующие права?

Ответ: Права доступа приложению должны быть предоставленны пользователем во время установки приложения

Вопрос 15: Как запустить Activity?

Ответ: Для запуска Activity, нам нужно создать объект типа Intent, который четко определяет, какой Activity надо запустить. Например:

 

Вопрос 16: Как приложение может выполнять действие, функционал которого предоставляется другим приложением, например, отсылка E-mail?

Ответ: Создается Intent для определения действия, которое необходимо выполнить и он запускает соответствующую Activity из другого приложения.
Пример:

 

Вопрос 17: Напишите код для получения IMEI-идентификатора телефона на Андроиде

Ответ: Для этого может быть использован TelephonyManager.

 

Вопрос 18: Как можно вызвать Sub-Activity? Напишите код.

Ответ:

 

Вопрос 19: Назовите ресурс, который скомпилирован из визуальных ресурсов и может быть использован в качестве фона, заголовка или другой части диалогового окна

Ответ: Drawable — виртуальный ресурс, который может быть использован в качестве фона, заголовка или другой части окна. Он скомпилирован в подкласс android.graphics.drawable.

Вопрос 20: Что такое Action, применительно к Андроид?

Ответ: Action, в словаре Андроид обозначает что-то, что Intent хочет сделать. Это строковое значение, которое назначено для Intent’а. Действие может быть определено либо самим Андроидом, либо разработчиком приложения.

Вопрос 21: Как нужно передавать значения в Sub-Activity?

Ответ: Можно использовать Bundle для передачи данных в Sub-Activity. Bundle похож на HashMap и принимает в качестве значений обычные типы данных. Bundle передает информацию из одного Activity в другое.
Пример:

 

Вопрос 22: Где нужно описать Activity, чтобы система могла получить доступ к нему?

Ответ: Activity описывается в файле манифеста. Например: