Вопрос 12
Ответ: Если код пользователя в Java Thread вызывает wait (), join () или sleep (), эти методы проверяют исключение InterruptedException.
Вопрос 13
Ответ: Когда Android Linux планировщик выбирает поток, чтобы выполнить его, поток переходит в Runnable состояние.
Вопрос 14
Ответ: Классы в HaMeR слабо связаны, в то время как классы в AsyncTask тесно связаны.
Можно использовать фреймворк AsyncTask без манипулирования потоками, обработчиками, сообщениями или Runnable объектами явно.
Вопрос 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
Ответ: Чтобы позволить сервису быть совместно используемым несколькими приложениями.
Это может сделать приложение более устойчивым при отказе сервиса.
Вопрос 1
Ответ: Activator
Command Processor
Active Object
Вопрос 2
Ответ: Messenger может быть использован для коммуникации с Started Service и Bound Service.
Messenger это обобщение фреймворка Android HaMeR.
Вопрос 3
Ответ: Он работает только до тех пор, пока хотя бы один клиент остается связанным с ним и автоматически уничтожается, когда все клиенты отвязываются от него.
Он предлагает интерфейс клиент/сервер, который позволяет расширить двустороннюю коммуникацию между одним или несколькими клиентами и сервисом.
Вопрос 4
Ответ: onBind ()
Вопрос 5
Ответ: Взаимодействия могут быть общими и сообщение-ориентированными.
Взаимодействия могут быть специфическими по типу и метод-ориентированными.
Вопрос 6
Ответ: Облегчить сложность написания вручную чреватого ошибками кода маршализации-демаршализации.
Позволяет клиентам вызывать методы, определенные объектами, находящимися в другом процессе.
Вопрос 7
Ответ: Broker
Proxy
Вопрос 8
Ответ: Избегает проблем, связанных с блокированием потока клиента во время двухстороннего синхронного вызова метода.
Вопрос 9
Ответ: Синхронизация
Семантика
Синтаксис
Вопрос 10
Ответ: Протокол связи, который обычно используется в веб-браузерах.
Протокол связи, который основан на модели клиент/сервер.
Вопрос 11
Ответ: Существуют значительные инвестиции и инфраструктура для HTTP коммуникации.
Вопрос 12
Ответ: Указание на действия, которые клиент хотел бы, чтобы сервер применил к ресурсу.
Вопрос 13
Ответ: Все перечисленное.
Вопрос 14
Ответ: Альтернативное представление некоторых символов, которые могут быть помещены в URL.
Вопрос 15
Ответ: Чтобы обеспечить индикацию того, что произошло, когда сервер обработал запрос.
Вопрос 16
Ответ: Все перечисленное.
Вопрос 17
Ответ: Если состояние, которое должно быть отправлено клиенту, является чрезвычайно чувствительным, модель «push to poll», где сервер посылает Push уведомление, а затем клиент опрашивает для обновления состояния, является наиболее подходящей.
Push сообщения опираются на постоянную связь между мобильным устройством и серверами системы Push сообщений.
Если состояние, которое должно быть отправлено клиенту, чрезвычайно большое (например, несколько мегабайт), модель «push to poll», где сервер посылает Push уведомление, а затем клиент опрашивает для обновления состояния, является наиболее подходящей.