Публикации | Комментарии | Email

Выбор механизма асинхронного выполнения



Платформа Android предоставляет несколько асинхронных механизмов для выполнения задач параллельно с UI- потоком или для выноса продолжительных операций из U 1-потока. Без этих механизмов было бы невозможно создать быстрое и отзывчивое приложение, поэтому они фактически стали частью основной функциональности платформы. Богатый набор механизмов облегчает жизнь разработчика и помогает ему, но при этом всегда приходится выбирать, каким именно воспользоваться в том или ином случае. Иногда выбор прост, как, например, CursorLoader при чтении данных из провайдера, но достаточно часто мы сталкиваемся с ситуацией, когда решить поставленную задачу можно с помощью нескольких различных механизмов. В подобных случаях большинство разработчиков предпочитают выбрать механизм, которым они пользовались ранее и который им хорошо известен, что вполне естественно. Но такой выбор может оказаться не самым оптимальным, и мы должны найти что-то более эффективное, руководствуясь следующими характеристиками, присущими каждому механизму:

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

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

минимальные трудозатраты при реализации;

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

Прежде всего следует уделить внимание отношениям между асинхронными механизмами. Базовой сущностью всех механизмов является поток — Thread. Функциональные возможности, поддерживающие выполнение в асинхронном режиме, добавляются при движении вверх по иерархии, причём каждая функция использует возможности более низких уровней.Для продуктивной работы сети понадобится кабель витая пара. Он обеспечит надежную защиту от внешних электромагнитных помех.

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

Добавить комментарий

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