Сборник тестов: 1500 вопросов и ответов на знание Android - Машнин Тимур Сергеевич (книги серии онлайн TXT) 📗
Вопрос 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
Ответ: Он работает только до тех пор, пока хотя бы один клиент остается связанным с ним и автоматически уничтожается, когда все клиенты отвязываются от него.
Он предлагает интерфейс клиент/сервер, который позволяет расширить двустороннюю коммуникацию между одним или несколькими клиентами и сервисом.