Тесты по android разработке

Сборник тестов: 1500 вопросов и ответов на знание Android

Книга содержит 30 тестов по 50 вопросов с ответами на знание Android. Книга предназначена для подготовки к экзаменам и собеседованиям.

Оглавление

Приведённый ознакомительный фрагмент книги Сборник тестов: 1500 вопросов и ответов на знание Android предоставлен нашим книжным партнёром — компанией ЛитРес.

Дизайнер обложки Тимур Сергеевич Машнин

© Тимур Машнин, 2017

© Тимур Сергеевич Машнин, дизайн обложки, 2017

Создано в интеллектуальной издательской системе Ridero

Платформа Андроид основывается на операционной системе:

Архитектура платформы Андроид состоит из:

Приложений, фреймворка приложений, библиотек, среды выполнения Андроид, ядра Linux.

Приложений, библиотек, фреймворка библиотек, среды выполнения Андроид, ядра Linux.

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

Приложений, телефонного менеджера, библиотек, ядра Linux.

Телефонного менеджера, библиотек, среды выполнения Андроид, ядра Linux.

Базовая единица графического интерфейса приложения Андроид это:

Ничего из ниже перечисленного.

Интерактивные элементы экрана.

Layout и Drawing.

View и Viewgroups.

Как называется Java виртуальная машина платформы Андроид:

Forth Virtual Machine

Juke Virtual Machine

Parrot Virtual Machine

Что представляет собой формат APK?

Андроид файл контента.

Андроид файл данных.

Андроид файл пакета.

Андроид файл ресурсов.

Ничего из выше перечисленного.

Файлы ресурсов Layout должны размещаться в папке:

В каталоге assets данные размещаются в формате:

Пустой процесс не должен иметь:

Активных компонентов приложения.

Инструмент bmgr используется для:

Получения резервной копии приложения.

Уничтожения архивных данных для конкретного приложения.

Все выше перечисленное.

Какие утверждения верны относительно сервисов и потоков?

Сервис запускается в отдельном потоке.

Для потока можно создать несколько экземпляров, а для сервиса нет.

Сервис не может использовать потоки для выполнения задач.

В чем разница между сервисом и асинхронной задачей?

AsyncTask зависит от контекста Activity, из которой был запущен, а сервис нет.

И AsyncTask и сервис выполняются в UI thread.

И AsyncTask и сервис имеют доступ к UI thread.

В чем разница между потоком и асинхронной задачей?

AsyncTask имеет доступ к UI потоку, а поток нет. Для доступа потока к UI потоку может использоваться класс Handler.

AsyncTask представляет общий фреймворк потоков.

И AsyncTask и потоки предназначены для выполнения длительных задач.

Запускается при вызове foreground ().

Может или нет обеспечивать уведомление в панель статуса.

Уведомление не может быть убрано, пока сервис не остановится или не перестанет быть foreground.

A1, A2, A3 и A4 являются активностями, которые были вызваны, используя намерения. При том Backstack A1-A4-A2 — A3. Активность A4 вызывает A2 с помощью флага намерения FLAG_ACTIVITY_NO_HISTORY. Когда будет вызван метод finish () активности A3, какая активность останется работающей?

A1, A2, A3 и A4 являются активностями, которые были вызваны, используя намерения. При том Backstack A1-A2-A4 — A3. Активность A2 вызывает A4 с помощью флага намерения FLAG_ACTIVITY_CLEAR_TOP. Когда будет вызван метод finish () активности A3, какая активность останется работающей?

Читайте также:  Unit converter для андроид

A1, A2, A3 и A4 являются активностями, которые были вызваны, используя намерения. При том Backstack A1-A2-A3-A4. Активность A3 вызывает A4 без флага намерения. Когда будет вызван метод finish () активности A4, какая активность останется работающей?

Плюс (+) в выражении android:id=»@+id/my_id» означает:

Определить в качестве идентификатора ресурса

Создать новый идентификатор и добавить к ресурсам

XML-парсер должен разобрать ID строку

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

Android система использует намерения, чтобы:

Широковещать системные намерения.

Широковещать пользовательские намерения.

Вызывать другие приложения из вашего приложения

Уведомление «Экран гаснет» это пример:

Если вы попытаетесь получить доступ к столбцу таблицы, который не существует, тогда будет исключение:

Максимальное количество адресов, возвращаемых методом getFromLocationName () может быть:

Методы startForeground () и stopForeground () были введены в API level:

Проверка наличия аудио эффектов осуществляется с помощью метода:

Приложения, требующие фильтрации по размеру экрана, могут использовать атрибуты:

Какое утверждение ложно относительно метода onBind ():

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

Вызов метода startService () приводит к вызову метода onBind ().

Если вы не хотите, чтобы связывание затем вернуло NULL.

Если вы хотите, чтобы связывание затем вернуло объект Ibinder

Платформа Android лицензирована:

Кто владеет платформой Android?

Open Handset Alliance

Какой была основная бизнес мотивация Google для поддержки Android?

Чтобы выровнять игровое поле для мобильных устройств.

Чтобы конкурировать с iPhone.

Монополизировать рынок мобильных приложений для целей лицензирования.

Чтобы позволить Google больше рекламировать.

Какой первый телефон был выпущен на Android OS?

С точки зрения производителя мобильных устройств, какие преимущества у Android?

Помимо некоторых специфических драйверов, Android обеспечивает все, чтобы устройство работало.

Android обеспечивает лучшую работу устройства.

Android позволяет устройствам конкурировать с iPhone от Apple.

Android позволяет пользователям создавать приложения для получения доходов.

Какой факт является забавным о запуске Android?

Платформу хотели назвать НЛО.

Первая версия Android была выпущена без наличия телефона на рынке.

Главной целью Android была разблокировка дверей автомобиля, когда вы оставили ключи внутри него.

Android хотели сделать с закрытым кодом, чтобы сделать больше денег для компании.

Когда была создана Open Handset Alliance?

Устройство с установленной операционной системой Android необходимо для разработки приложений для Android.

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

Google лицензирует некоторые проприетарные приложения.

Какая часть платформы Android с открытым исходным кодом?

Низкоуровневые модули Linux.

Все эти ответы. Весь стек платформы с открытым исходным кодом.

Когда Google купил Android?

Релизам Android начиная с 1.5 давались прозвища происходящие из?

Нечто что начинается с w/ «A».

Читайте также:  Android studio failed to create jvm

Что не является названием версии Andriod?

Android не делает какие-либо предположения о размере экрана, разрешении или микросхемах устройства.

Какая версия Android имела самую большую долю рынка в январе 2011?

Какая часть кода, используемая Android не является открытой?

Платформа Android собрана на основе Java Micro Edition (J2ME).

Какая из перечисленных не является нативной библиотекой Android?

Android базируется на Linux из следующих соображений:

Все выше перечисленное.

Какая операционная система используется как основа Android стека?

В каком году стартовала разработка на виртуальной машине Dalvik?

Какая разница между распространением приложений для Android устройств и приложений для других устройств?

Приложения распространяются только Apple App Store.

Приложения распространяются множеством поставщиков с различными политиками приложений.

Приложения распространяются множеством поставщиков с одной и той же политикой приложений.

Приложения распространяются только Android Market.

При разработке для Android OS, Java byte код компилируется в:

Источник

Примеры тестовых заданий для Android и iOS

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

Ниже представлены реальные примеры тестовых заданий для Android и iOS разработчиков, которые компании давали моим студентам. Далеко не все из них понятные и адекватные, но это то, что в реальности присылают кандидатам.

Задача 1. Приложение «Погода»

На 1-м экране (отображение) должно быть:

  1. Возможность выбрать город (3-4 города)
  2. Возможность выбрать сезон года
  3. В зависимости от п.1 и п.2 — отображение средней температуры за сезон в городе
  4. В зависимости от п.1 — отображать тип города (малый, средний, большой)

На 2-м экране (настройки) должно быть:

  1. Управление списком городов (город, тип)
  2. Управление температурой по месяцам

Приложение на первом экране должно отображать информацию, введенную пользователем на втором экране. Например, на втором экране вводим: город «Минск», тип «средний», температура июнь «23», июль «28», август «25». На первом экране в списке городов, должен отобразится Минск, тип «средний» и температура за сезон «лето» = 25,3 (среднее арифметическое 3-х месяцев).

Обязательно использовать паттерны:

  • Lazy singleton
  • Factory: получать тип города в зависимости от его названия
  • Decorator: При запросе средней температуры за сезон в городе — должна быть возможность получить строку для логирования
  • Observer: Дополнительно выводить сообщение, о температуре, через Snackbar
  • Strategy: В зависимости от стратегии — выводить температуру в необходимом формате (градус Цельсия, градус Фаренгейта, Кельвин)

Условия:

  • Без использования сети
  • БД: SQLite
  • Мы ожидаем выполнения задания без применения сторонних библиотек, кроме официальных (таких как AndroidX, Android Architectural Components, CoreData и т.д.)
  • Результат выложить на Github.com

Задача 2. Репозитории GitHub

  1. При помощи GitHub API отобразить список репозиториев у организации xxx (github.com/xxx)
  2. Дизайн — полностью на ваше усмотрение
  3. Код разместить на GitHub и прислать нам ссылку

Обязательно:

  • Код на Kotlin/Swift
  • Задействовать RxJava/RxSwift
  • Покрыть юнит-тестами (UI не стоит)

Желательно:

  • Обработка сетевых ошибок
  • Поиск репозиториев в рамках организации по названию (просто фильтр списка подойдёт)
  • MVI, MVVM, MVP — на ваше усмотрение, будет интересно посмотреть, но лучше без сторонних библиотек
Читайте также:  Nfc тинькофф андроид как настроить

Задача 3. Пользователи GitHub

Главный экран:

  1. Users (список всех Github пользователей). Использовать API https://developer.github.com/v3/users/#get-all-users
  2. В элементе списка отрисовать avatar, login (title), id (subtitle)
  3. По нажатию на элемент списка реализовать переход на UserDetails
  4. Реализовать pagination и Pull-to-refresh

UserDetails (экран с информацией о пользователе):

  1. Использовать API https://developer.github.com/v3/users/#get-a-single-user
  2. Поля: Avatar, Name, Email, Organization (если есть), Following count, Followers count, Дата создания аккаунта

Требования:

  • Структурированный код (архитектурный паттерн на усмотрение кандидата)
  • Язык Java/Kotlin/Swift
  • Код поместить в репозиторий на GitHub/Bitbucket/GitLab
  • Неоднозначности задания трактуются на усмотрение разработчика

Задача 4. Приложение «Вечеринка»

На экране располагаются:

  1. Картинка (загружается по URL)
  2. Название вечеринки
  3. Имя пригласившего
  4. Фото пригласившего (извлекается по URL)
  5. Список гостей с фото, которые идут вместе с текущим пользователем. Фото загружаются по URL

Все данные должны загружаться из файла в формате JSON, зашитого в ресурсах приложения.

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

Задача 5. Приложение из 1-го экрана

  1. Необходимо создать приложение состоящее из 1 экрана
  2. Реализовать данное задание с применением RxJava/RxSwift, любого DI (например Dagger 2) и MVP.

Реализовать:

  • База данных 5 полей и заполнить любыми данными
  • Вывод в активити или фрагмент в виде списка
  • Live search по базе данных
  • Реализовать сортировку, любой параметр

Задача 6. Приложение «Авто»

Приложение, должно иметь следующие функции:

  1. Отображение списка автомобилей с характеристиками (10-12 автомобилей, 3 производителя, 1-3 марки у каждого производителя)
  2. Добавление нового автомобиля
  3. Редактирование деталей автомобиля

Желательно:

  • Фильтрация по производителю и марке
  • Сортировка по цене

Задача 7. Проверка адреса email

Создать хороший UX для пользователей, вводящих адрес электронной почты и пароль при регистрации в приложении.

Требования:

  1. Проверка формата электронной почты. Пример: [email protected] не является действительным адресом электронной почты
  2. Пользовательский интерфейс должен показывать, действителен или нет адрес электронной почты. При необходимости интерфейс должен указать, что не так с адресом
  3. Автозаполнение и проверка доступности домена. Пользователи часто опечатываются при вводе адреса. Например, указывают неправильно доменное имя (gmail.con вместо gmail.com)
  4. Проверка пароля. Нет ограничения на вводимые символы. Есть ограничение минимальной и максимальной длины
  5. При необходимости, интерфейс должен указать, что неправильно
  6. Проверить, что заполнены все поля, и указать, какое именно не заполнено

Для автозаполнения необходимо:

  • Проверить существование введённого домена
  • Указать, что неправильно в введённом имени
  • Предложить Автозаполнение доменного имени самыми вероятными и популярными доменными именами. Пример: если пользователь вводит «[email protected]», то продолжениями могут быть «[email protected]», «[email protected]» и т.д. Если пользователь уточняет «[email protected]», то продолжениями могут быть популярные домены, начинающиеся с «g». Например: «[email protected]», «[email protected]»

Источник

Оцените статью