Вопросы интервью с разработчиком Android для нетехнических рекрутеров

Ваша компания хочет нанять талантливого разработчика Android? Если у вас есть опыт поиска разработчиков, это не должно быть сложной задачей.

Тем не менее, если у вас нет технического образования, нанять разработчика Android может быть затруднительно. У вас могут быть кандидаты, которые привлекли ваше внимание, но, не зная, о чем спросить, вы можете упустить лучшие таланты для своей команды. В этой статье мы раскроем 15 вопросов для собеседований с Android программистом, чтобы помочь вам подготовиться к предстоящим собеседованиям.

Почему стоит выбрать Android для своего мобильного приложения?

Это вопрос века для тех компаний, которые задаются вопросом, создавать ли приложение на iOS или Android. Обе операционные системы, среди прочего, имеют свои достоинства и недостатки. Однако одно можно сказать наверняка, Android правит миром приложений. Не существует операционной системы, в которой было бы столько приложений, сколько есть в Android. Отчасти это связано с тем, что при сравнении цен на iPhone и устройства Android есть существенная разница. Вот 3 причины, по которым Android - отличный вариант для вашего мобильного приложения:

1. Доля Android на рынке

Когда вы сравниваете Android с другими компаниями, такими как Apple, разница значительна. Хотя вы можете подумать, что есть тысячи поклонников iPhone, реальность такова, что во всем мире люди покупают больше телефонов Android из-за их доступных цен.

Разработка приложения для Android означает, что вы сможете охватить большое количество возможных потребителей, поскольку Android принадлежит 71,9% доли рынка мобильных операционных систем.

2. Это экономичная платформа

Что касается денег, разработка приложения для Андроид более рентабельна, чем для других платформ. Вам не нужно делать значительных вложений, поскольку компания предоставляет свой SDK бесплатно. Основные затраты идут на тестирование и развертывание приложения. Меньшие инвестиции в разработку приложения означают, что у вас будет более высокая рентабельность инвестиций и более прибыльный проект. Так что это беспроигрышный вариант!

3. Это открытый исходный код

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

Однако не дайте себя обмануть; наличие миллионов разработчиков Android не означает, что все они подходят для вашей команды. Чтобы отличать хороших от лучших, важно быть на высоте при выборе кандидатов и знать подходящие вопросы собеседования, которые нужно задавать, чтобы найти разработчиков Android.

15 вопросов для интервью по Android, которые стоит задать кандидату (для нетехнических рекрутеров)

1. Какие типы сервисов существуют в Android?

Служба - это компонент приложения, который выполняет длительные операции в фоновом режиме, даже когда пользователь не взаимодействует с приложением. Есть три типа услуг:
Сервис фронта, выполняющий заметные пользователю операции.
Фоновая служба выполняет операцию, которая не заметна пользователю напрямую.

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

2. Объясните каждый из уровней разрешений в Android.
В Android существует четыре уровня защиты разрешений:

1) Нормальный - он состоит из разрешения с низким уровнем риска, которое дает запрашивающим приложениям доступ к изолированным функциям уровня приложения.

2) Опасно - это разрешение с повышенным риском. Любые опасные разрешения, запрошенные приложением, могут быть показаны пользователю и потребовать разрешения перед продолжением.

3) Подпись - это разрешение, которое система включает, если запрашивающее приложение подписано тем же сертификатом, что и приложение, объявившее разрешение.

4) SignatureOrSystem - разрешение, которое система предоставляет только приложениям, которые находятся в образе системы Android или подписаны тем же сертификатом, что и приложение, объявившее разрешение.

3. Что такое привязка данных Android?

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

Макеты часто определяются в действиях с кодом, который вызывает методы инфраструктуры пользовательского интерфейса. Например, приведенный ниже код вызывает findViewByld (), чтобы найти виджет TextView и привязать его к свойству username переменной viewModel:

TextView textView = findViewById (R.id.sample_text) ;

textView.setText (viewModel.getUserName () ) ;

В следующем примере показано, как использовать библиотеку привязки данных для назначения текста виджету непосредственно в файле макета. Это устраняет необходимость вызывать какой-либо код Java, показанный выше.

<TextView

android : text= @{viewmodel.username} " />

Использование Android Data Binding сокращает шаблонный код, который, в свою очередь, помогает вашему коду быть более читабельным, менее связанным и легко реализуемым настраиваемым атрибутом и настраиваемым представлением.

4. Объясните разницу между Handler, AsyncTask и Thread.

У трех элементов разные цели. Класс Handler используется для регистрации в потоке и предоставляет простой канал для отправки данных в этот поток. И это также позволяет вам взаимодействовать с потоком пользовательского интерфейса из другого фонового потока. Класс AsyncTask инкапсулирует создание фонового процесса и синхронизацию с основным потоком. А поток - это, по сути, основной элемент многопоточности.

5. Что такое ThreadPool

ThreadPool - это очередь задач и группа рабочих потоков, которые позволяют запускать несколько параллельных экземпляров задачи. Одним из преимуществ использования ThreadPool является то, что он более эффективен, чем наличие нескольких операций, ожидающих выполнения в одном потоке. Кроме того, это помогает избежать создания (и исключения) потока каждый раз, когда вам требуется рабочий поток.

6. В чем разница между фрагментом и активностью?

Действие состоит из целенаправленной операции, которую может выполнить пользователь (например, отправки электронного письма). Некоторые действия очень просты, но другие, созданные разработчиками, произвольно сложны. Реализации действий могут использовать класс Fragment для таких целей, как создание более модульного кода или создание сложных интерфейсов или больших экранов.

Фрагмент - это, по сути, модульный раздел действия с собственным жизненным циклом и событиями ввода, который можно добавлять или удалять по желанию. На жизненный цикл фрагмента напрямую влияет жизненный цикл его хоста.

7. Что такое ошибка ANR и какие меры можно предпринять, чтобы ее избежать?

Ошибка ANR (приложение не отвечает) появляется для пользователя, когда приложение Android не отвечает более 5 секунд, обычно из-за того, что вы заблокировали основной поток. Чтобы избежать ошибки ANR, приложение должно выполнять длительные операции с базой данных или сетью в отдельных потоках; вам следует убрать как можно больше работы с основного потока.

8. Каковы семь методов жизненного цикла активности Android и какова их цель?

Семь методов жизненного цикла активности Android:
onCreate ()
onStart ()
onRestart ()
onResume ()
onPause ()
onStop ()
onDestroy ()

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

9. Каковы возможности DDMS?

DDMS расшифровывается как Dalvik Debug Monitor Server и предоставляет широкий спектр функций отладки, таких как снимок экрана, информация о потоках и кучах, отслеживание сетевого трафика, подмена входящего вызова и SMS, подмена данных о местоположении, услуги пост-пересылки и другие.

10. Какие бывают режимы запуска? Объяснять

Режим запуска - это способ, которым новый экземпляр действия связывается с текущей задачей. Режимы запуска можно определить с помощью двух механизмов:

1) Файл манифеста: объявляя действие в файле манифеста, вы можете указать, как действие должно ассоциироваться с задачами при запуске. Поддерживаемые значения включают:

2) Флаги намерений : вызовы startActivity () могут включать в намерение флаг, который объявляет, как новое действие должно быть связано с текущей задачей.

11. Перечислите компоненты архитектуры Android.

Компоненты архитектуры Android:

Ядро Linux - базовый уровень приложения, которое напрямую взаимодействует с оборудованием устройства.

Собственные библиотеки - поверх ядра Linux находится набор библиотек с открытым исходным кодом, включая базу данных SQLite, libc и движок браузера WebKit.

Среда выполнения Android - DVM находится на том же уровне, что и собственные библиотеки, и позволяет каждому приложению Android запускать свои собственные процессы.

Платформа приложения: предоставляет услуги более высокого уровня, такие как диспетчер действий, поставщики контента, диспетчер ресурсов, диспетчер уведомлений и система просмотра.

Приложения. Верхний уровень - это само приложение для Android.

12. Что такое паттерн ViewHolder? Почему это имеет значение?

ViewHolder - это шаблон проектирования, который можно применять как способ избежать многократного использования findViewById (). ViewHolder содержит ссылку на идентификатор ресурса представления, и вызовы ресурса не потребуются после того, как вы их «найдете»: таким образом, производительность приложения увеличивается.

private static class ViewHolder {
final TextView text;
final TextView timestamp;
final ImageView icon;
final ProgressBar progress;

ViewHolder(TextView text, TextView timestamp, ImageView icon, ProgressBar progress) {
this.text = text;
this.timestamp = timestamp;
this.icon = icon;
this.progress = progress;
}
}


public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = // inflate new view
ViewHolder holder = createViewHolderFrom(view);
view.setTag(holder);
}

ViewHolder holder = view.getTag();
// TODO: set correct data for this list item
// holder.icon.setImageDrawable(...)
// holder.text.setText(...)
// holder.timestamp.setText(...)
// holder.progress.setProgress(...)
return view;
}
private ViewHolder createViewHolderFrom(View view) {
ImageView icon = (ImageView) view.findViewById(R.id.listitem_image);
TextView text = (TextView) view.findViewById(R.id.listitem_text);
TextView timestamp = (TextView) view.findViewById(R.id.listitem_timestamp);
ProgressBar progress = (ProgressBar) view.findViewById(R.id.progress_spinner);
return new ViewHolder(text, timestamp, icon, progress);
}

13. Как бы вы могли создать многопоточное Android-приложение без использования класса Thread?
Если вам нужно переопределить метод run () и никакие другие методы Thread, лучший способ создать многопоточный ap - реализовать Runnable.

14. В чем основное различие между ListView и RecyclerView?
Основное различие между ListView и RecyclerView заключается в том, что шаблон ViewHolder не является обязательным в ListView, но встроен в RecyclerView. Еще одно фундаментальное отличие состоит в том, что ListView поддерживает только вертикальную прокрутку, в то время как RecyclerView не ограничивается списками вертикальной прокрутки.

15. Каковы три распространенных случая использования намерения?
Вы можете использовать намерение для:
Запуск действия: вы можете запустить новый экземпляр Activity, передав Intent методу startActivity ().

Запуск службы: вы можете запустить службу для выполнения одноразовой операции (например, загрузки файла), передав намерение в startService ().

Доставка трансляции: вы можете доставить трансляцию в другие приложения, передав намерение в sendBroadcast (), sendOrderedBroadcast () или sendStickyBroadcast ().
HR Блог для IT рекрутера в Телеграм
Хочешь всегда получать новые статьи, бесплатные материалы и полезные HR лайфхаки! Подписывайся на нас в Telegram! С нами подбор ит персонала становится проще ;)
Хотите найти талантливого сотрудника?
Оставьте заявку и получите в подарок список вопросов для сбора рекомендаций на кандидата
Заявка