Тест 19

Вопрос 1

Какие из следующих являются свойствами, которые можно установить в View?

Ориентация экрана.

Видимость.

Непрозрачность (прозрачность).

Позиция.

Вопрос 2

AutoCompleteTextView это подкласс ViewGroup.

Да

Нет

Вопрос 3

Какие из следующих утверждений описывают отношения между AdapterView и его адаптером?

AdapterView создает представления для данных в адаптере.

Адаптер управляет набором данных для AdapterView.

Адаптер запрашивает представления из AdapterView.

Адаптеры могут уведомлять AdapterView при изменении данных адаптера.

Вопрос 4

Предположим, что файл макета объявляет LinearLayout, который называется LL, который содержит два дочерних представления, View1 и View2. В файле макета, View1 объявляется с android: layout_weight = 2 и layout_width = 0dp. View2 объявляется с android: layout_weight = 3 и layout_width = 0dp. В этом примере, какие из следующих утверждений должны быть правдой?

View1 занимает 2/3 ширины LL.

View2 занимает 3/5 ширины LL.

View2 занимает 2/3 ширины дисплея.

View1 занимает 2/5 ширины дисплея.

Вопрос 5

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

setHasOptionsMenu ().

registerForContextMenu ().

onCreateContextMenu ().

onContextItemSelected ().

Вопрос 6

Предположим, что приложение хочет создать и отобразить диалоговое окно. Если приложение встраивает диалог в DialogFragment, какой метод DialogFragment будет вызываться, чтобы сделать Диалог видимым пользователю?

show ()

onCreateView ()

showFragment ().

dismiss ()

Вопрос 7

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

Область переполнения отображает выпадающий список для доступа к часто используемым функциям.

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

Это расположение по умолчанию для кнопок действий.

Область переполнения позволяет пользователю перемещаться обратно к предыдущим пунктам в стеке Task Back Stack.

Вопрос 8

Что из следующего является мотивом для использования потоков в Android?

Повышение производительности на многоядерных платформах.

Сделать программу проще для отладки.

Улучшение отклика приложения.

Упрощение структуры программы относительно событийного программирования.

Сделать поведение программы более детерминированным в отношении порядка выполнения.

Вопрос 9

Что из следующего является примером Android фреймворка параллельных вычислений?

Класс Java Thread, который обеспечивает блок вычислений, который работает в контексте процесса.

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

Android «Handler Messages and Runnables» (HaMeR) фреймворк, который позволяет запускать операции в одном или нескольких фоновых потоках, публикующих свои результаты в потоке пользовательского интерфейса.

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

Вопрос 10

Какие из следующих элементов реализации являются уникальными для каждого потока?

Стек времени выполнения

Куча времени выполнения

Программный счетчик

Область статических данных

Вопрос 11

Что из следующего является способом, с помощью которого программа может запустить Java Thread?

Реализовать Runnable интерфейс, переопределить его run () метод, передать Runnable объект в конструктор нового объекта Thread, и вызвать start () объекта Thread.

Расширить класс Thread, переопределить его run () метод, и вызвать start () экземпляра расширенного класса Thread.

Расширить класс Thread, переопределить его run () метод, и явно вызвать run () из кода приложения, чтобы начать поток без вызова его start () метода явно.

Вопрос 12

Какие из следующих утверждений верны?

Если код пользователя в Java Thread вызывает wait (), join () или sleep (), эти методы проверяют исключение InterruptedException.

Использование изменяемого логического флага «stop» автоматически пробуждает блокирующие wait (), join (), sleep () вызовы.

Единственный надежный и переносимый способ прекратить Java поток, это вызвать его метод stop ().

Thread interrupt () метод ведет себя как традиционные аппаратные и системные прерывания, т. е. он автоматически прекращает поток независимо от того, что поток делает.

Вопрос 13

Какие из следующих утверждений верны о жизненном цикле Java Thread?

Когда Java программа вызывает sleep (), поток переходит в заблокированное состояние.

Когда Thread run () метод возвращает, поток переходит в Runnable состояние.

Когда Java программа создает объект Thread, этот объект находится первоначально в состоянии Runnable.

Когда Android Linux планировщик выбирает поток, чтобы выполнить его, поток переходит в Runnable состояние.

Вопрос 14

Что из следующего является ключевым различием между фреймворками HaMeR and AsyncTask?

Классы в HaMeR слабо связаны, в то время как классы в AsyncTask тесно связаны.

Классы в HaMeR тесно связаны, в то время как классы в AsyncTask слабо связаны.

Можно использовать фреймворк AsyncTask без манипулирования потоками, обработчиками, сообщениями или Runnable объектами явно.

Можно использовать фреймворк HaMeR без манипулирования потоками, обработчиками, сообщениями или Runnable объектами явно.

Вопрос 15

Что из следующего является мотивацией для Android фреймворков параллельных вычислений?

Они увеличивают производительность путем совмещения коммуникации и вычисления на многоядерных платформах.

Они запускают короткие операции в фоновых потоках и длительные операции в потоке пользовательского интерфейса.

Они улучшают переносимость приложений для различных реализаций виртуальных машин Java.

Они защищают разработчиков от утомительных и чреватых ошибками аспектов конструктивных ограничений платформы Android.

Вопрос 16

Какой шаблон применяется к Looper, обеспечивающий, что есть только один Looper для потока?

Template Method

Guarded Suspension

Thread-Specific Storage

Active Object

Вопрос 17

Какой шаблон позволяет классу HandlerThread создать нужные обработчики с помощью переопределения метода onLooperPrepared?

Template Method

Guarded Suspension

Thread-Specific Storage

Active Object

Вопрос 18

Какие из следующих возможностей предоставляет Handler для приложений?

Выполнять Runnable задачи последовательно или в пуле потоков.

Взаимодействовать с Looper для сериализации обработки сообщений в потоке, с которым они связаны.

Отправлять Message объекты и/или публиковать Runnable объекты в Looper в потоке обработчика.

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

Вопрос 19

Что из следующего является ключевыми паттернами, поддерживаемыми Handler?

Command Processor

Active Object

Guarded Suspension

Strategy

Вопрос 20

Какие из следующих возможностей паттерна Command Processor применяются классом Android Handler?

Включает выделение сообщения из глобального пула, устанавливая различные поля сообщения.

Позволяет handleMessage () методу Handler направляться в разные потоки, а не клиенту, который отправил сообщение.

Позволяет Runnable обрабатываться в более позднее время в том же потоке, что и клиент, который разместил Runnable.

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

Вопрос 21

Что из следующего является причиной того, что отправка сообщения в обработчик сложнее, чем размещение Runnable в обработчике?

Handler должен быть расширен и его handleMessage () метод должен быть переопределен для обработки полученных сообщений.

Логика обработчика локализуется в точке, где метод send () вызывается.

Обработчик предоставляет методы, которые позволяют программе реализовать поведение синхронизации.

Обработчик определяет методы, которые позволяют программе использовать очередь сообщений, связанную с Looper потока.

Вопрос 22

Что из следующего является преимуществом фреймворка AsyncTask по сравнению с фреймворком HaMeR?

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

Фреймворк AsyncTask не требует от разработчиков приложений явно манипулировать потоками, обработчиками, сообщениями или Runnable объектами.

Тесная интеграция классов в фреймворке AsyncTask упрощает их использование за счет снижения «площадь поверхности» API, который фреймворк предоставляет для приложений.

Слабая интеграция классов в фреймворке AsyncTask упрощает их использование за счет снижения «площадь поверхности» API, который фреймворк предоставляет для приложений.

Вопрос 23

Что из следующего является способом, которым фреймворк AsyncTask расширяет шаблон Template Method?

Он откладывает некоторые шаги в своем алгоритме параллельной обработки для подкласса.

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

Он позволяет своим методам работать в разных потоках управления.

Он отделяет интерфейс от реализации, так они могут изменяться независимо.

Вопрос 24

Какие из следующих фреймворков используются внутри фреймворка Android AsyncTask?

Java Executor

Android IntentService

Android HaMeR

Android Activity

Вопрос 25

Что из следующего является поведением по умолчанию AsyncTasks в последних версиях Android?

Пул потоков запускает несколько AsyncTasks одновременно в процессе, чтобы использовать многоядерные чипсеты.

Фреймворк Android HaMeR используется внутри фреймворка AsyncTask для передачи сообщений из фонового потока в поток пользовательского интерфейса.

Единственный фоновый поток в каждом процессе запускает все doInBackground () методы AsyncTasks.

Вопрос 26

Что из следующего являются различными способами параллельной загрузки изображения?

Выполнение AsyncTasks.

Вызов удаленного метода через Binder.

Размещение и обработка Runnable.

Отправка и обработка сообщений.

Вопрос 27

Что из следующего является преимуществом AsyncTask фреймворка по отношению к фреймворку HaMeR?

Он обеспечивает низкие накладные расходы для синхронизации, переключения контекста и перемещения данных.

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

Он обеспечивает относительно прозрачную масштабируемость с помощью своего использования Java Thread Pool Executor.

Он позволяет осуществлять взаимодействие между многими фоновыми потоками.

Вопрос 28

Что из следующего лучше всего описывает способы, с помощью которых потоки в AsyncTask и HaMeR фреймворках взаимодействуют.

Фоновые потоки в AsyncTask явно взаимодействуют с UI потоком.

Фоновые потоки в HaMeR неявно взаимодействуют с UI потоком.

Фоновые потоки в AsyncTask неявно взаимодействуют с UI потоком.

Фоновые потоки в HaMeR явно взаимодействуют с UI потоком.

Вопрос 29

Какие из следующих Gang-of-Four паттернов применяются к Android фреймворкам параллельных вычислений?

Active Object

Template Method

Visitor

Monitor Object

Strategy

Factory Method

Вопрос 30

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

Command Processor

Extension Interface

Bridge

Template Method

Half-Sync/Half-Async

Thread-Specific Storage

Вопрос 31

Какие из следующих паттернов применяются в соответствующих фреймворках?

Active Object применяется в Java ExecutorService.

Bridge применяется в HaMeR.

Command Processor применяется в HaMeR.

Factory Method применяется в AsyncTask.

Strategy применяется в HaMeR.

Thread-Specific Storage применяется в Java Executor.

Вопрос 32

Что из следующего является преимуществом применения паттерна Thread-Specific Storage?

Это позволяет подклассам переопределить методы.

Это отделяет интерфейс от реализации, так они могут изменяться независимо.

Это уменьшает накладные расходы синхронизации для доступа к объекту.

Это откладывает некоторые шаги в алгоритме параллельной обработки для подкласса.

Вопрос 33

Что из следующего является известным применением паттерна Thread-Specific Storage?

Класс Android Looper.

Фреймворк Java Executor.

Стандарт C errno macro.

Android IntentService.

Вопрос 34

Что из следующего является предназначением паттерна Command Processor?

Определить запросы сервиса как единицы параллельного вычисления и запускать запросы сервиса в разных потоках из запрашивающего клиентского потока.

Обеспечить нескольким потокам использовать одну «логически глобальную» точку доступа без накладных расходов блокировки доступа для каждого объекта.

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

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

Вопрос 35

Что из следующего является негативным последствием использования паттерна Command Processor?

Поддержка двусторонних операций требует дополнительных усилий программирования.

Клиент не заблокирован в течении обработки.

Функциональность управляется отправителем, а не получателем.

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

Вопрос 36

Что из следующего является примером ситуации, при которой применяется паттерн Active Object?

Когда методы объекта могут блокироваться в течение длительного времени, в течение их исполнения.

Когда дополнительные возможности должны быть реализованы последовательно для всех запросов к сервису.

Когда методы интерфейса объекта должна определить свои границы параллельного вычисления.

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

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

Когда несколько запросов метода клиента могут работать одновременно для объекта.

Вопрос 37

Что из следующего является известным использованием паттерна Active Object?

Фреймворк Android IntentService.

Фреймворк Java ExecutorService.

Фреймворк Java Executor.

Фреймворк Android HaMeR.

Вопрос 38

Что из следующего лучше всего описывает мотивацию для паттерна Half-Sync/Half-Async?

Гарантировать усовершенствования для сервиса, предоставляемые компонентом, не нарушая существующий код.

Отделить кратковременные операции от длительных операций в программах с параллельными вычислениями.

Упростить программирование параллельных вычислений без чрезмерного снижения производительности.

Гарантировать, что только один Looper находится в каждом потоке в программе с параллельными вычислениями.

Вопрос 39

Что из следующего верно описывает Android сервис?

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

Сервис это компонент приложения, который отвечает на общесистемные широковещательные объявления.

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

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

Вопрос 40

Что из следующего является ключевым различием между Started Service и Bound Service?

Bound Service предлагает интерфейс клиент/сервис, который позволяет расширенную двустороннюю коммуникацию между клиентом и сервисом.

Bound Service работает только до тех пор, пока клиент связан с ним, в то время как Started Service может работать бесконечно.

Bound Service запускается по требованию, в то время как Started Service предварительно запускается при загрузке системы.

Bound Service всегда работает в процессе своего клиента, в то время как Started Service всегда запускается в отдельном процессе.

Вопрос 41

Что из следующего лучше всего описывает цель onStartCommand () метода?

Он используется, чтобы уведомить сервис, что сервис должен быть удален, и поэтому должен очистить занятые ресурсы.

Он вызывается фреймворком Android Service, когда Started Service первый раз запускается.

Он вызывается каждый раз, когда Started Service получает Intent от клиента с помощью вызова startService ().

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

Вопрос 42

Что из следующего является причиной того, что методу stopSelf () передается параметр startId?

Чтобы позволить сервису выключиться и избежать работы в фоновом режиме и потребления системных ресурсов на неопределенный срок.

Чтобы гарантировать, что все ресурсы, выделенные оnCreate () методом освобождаются в оnDestroy () методе.

Для устранения необходимости в явном виде получать и освобождать блокировки в критических секциях.

Чтобы избежать преждевременного завершения работы сервиса, когда он еще обрабатывает одновременные запросы Intent.

Вопрос 43

Что из следующего является механизмом IPC, поддерживаемом Android для взаимодействия сервиса с Actiivty?

Используйте AIDL объект обратного вызова, который передается от активности сервису.

Отправить Intent команду через метод startService ().

Отправить Intent команду через метод bindService ().

Используйте Messenger объект, который передается от активности сервису.

Вопрос 44

Что из следующего является причиной того, что Handler не может быть использован для прямой связи между активностью и сервисом?

Обработчики не могут быть переданы в качестве «extras» в Intent.

Обработчики реализуют паттерн Command Processor, который работает только в пределах одного процесса.

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

Если пользователь имеет доступ к ресурсу на платформе, все приложения, которые пользователь запускает, имеют доступ к этому ресурсу.

Обработчики не реализуют интерфейс Parcelable.

Вопрос 45

Какие POSA паттерны связанны с использованием Android Intent, Started Service и Messenger?

Half-Sync/Half-Async

Activator

Active Object

Command Processor

Вопрос 46

Что из следующего означает возврат методом onStartCommand () значения START_NOT_STICKY?

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

Перезапуск сервиса через onStartCommand (), но не передавать намерение (передать NULL).

Перезапуск сервиса через onStartCommand (), передавая то же самое намерение.

Остановить сервис и вернуть код ошибки компоненту, который его вызвал.

Вопрос 47

Что из следующего является способом остановить Started Service?

Он может вызвать stopSelf (), чтобы закрыть себя сам.

Другой компонент может закрыть сервис, вызвав stopService ().

Сервис будет автоматически остановлен, когда все клиенты отвяжутся от него.

Сервис отключится автоматически, когда не будет больше Intent для обработки.

Вопрос 48

Что из следующего описывает предназначение Android IntentService?

Он обеспечивает фреймворк для выполнения удаленных вызовов методов синхронно и асинхронно.

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

Он обеспечивает обобщение фреймворка HaMeR, который инкапсулирует Handler, реализованный в сервисе, и позволяет активности передавать сообщения в Handler.

Он обеспечивает фреймворк для программирования Started Services, которые одновременно обрабатывают команды, выраженные в виде намерений.

Вопрос 49

Что из следующего является ключевым различием между IntentService и обычным сервисом?

IntentService останавливает себя автоматически, когда больше нет Intent для обработки, в то время как обычный сервис должен остановить себя вручную.

Обычный сервис обрабатывает намерения, отправленные клиентами, в фоновом потоке, в то время как IntentService обрабатывает запросы в потоке пользовательского интерфейса.

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

Обычный сервис останавливает себя автоматически, когда больше нет Intent для обработки, в то время как IntentService должен остановить себя вручную.

Вопрос 50

Что из следующего является причиной развертывания сервиса для работы в другом процессе, чем процесс его клиента?

Чтобы позволить сервису быть совместно используемым несколькими приложениями.

Это оптимизирует взаимодействие между клиентом и сервисом.

Это позволяет сервису вызывать Java Native Interface (JNI) методы.

Это может сделать приложение более устойчивым при отказе сервиса.

Больше книг — больше знаний!

Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом

ПОЛУЧИТЬ СКИДКУ