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

Вопрос 15

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

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

Вопрос 16

Ответ: Thread-Specific Storage

Вопрос 17

Ответ: Template Method

Вопрос 18

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

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

Вопрос 19

Ответ: Command Processor

Active Object

Вопрос 20

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

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

Вопрос 21

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

Вопрос 22

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

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

Вопрос 23

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

Вопрос 24

Ответ: Java Executor

Android HaMeR

Вопрос 25

Ответ: Экземпляр Java ThreadPoolExecutor используется для выполнения каждого объекта AsyncTask.

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

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

Вопрос 26

Ответ: Выполнение AsyncTasks.

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

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

Вопрос 27

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

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

Вопрос 28

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

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

Вопрос 29

Ответ: Template Method

Strategy

Factory Method

Вопрос 30

Ответ: Command Processor

Half-Sync/Half-Async

Thread-Specific Storage

Вопрос 31

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

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

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

Вопрос 32

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

Вопрос 33

Ответ: Класс Android Looper.

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

Вопрос 34

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

Вопрос 35

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

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

Вопрос 36

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

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

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

Вопрос 37

Ответ: Фреймворк Java ExecutorService.

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

Вопрос 38

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

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

Вопрос 39

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

Вопрос 40

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

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

Вопрос 41

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

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

Вопрос 42

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

Вопрос 43

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

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

Вопрос 44

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

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

Вопрос 45

Ответ: Activator

Active Object

Command Processor

Вопрос 46

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

Вопрос 47

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

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

Вопрос 48

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

Вопрос 49

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

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

Вопрос 50

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

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

Тест 20

Вопрос 1

Ответ: Activator

Command Processor

Active Object

Вопрос 2

Ответ: Messenger может быть использован для коммуникации с Started Service и Bound Service.

Messenger это обобщение фреймворка Android HaMeR.

Вопрос 3

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

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