Ёранссон А., Эффективное использование потоков в операционной системе Android
ДМК Пресс, 2018 г., 978-5-97060-168-6,978-5-97060-182-2
Наличие в интернет-магазинах
Описание книги
Купить эту книгу можно в интернет-магазинах
Скачать, но не бесплатно эту книгу можно в интернет-магазинах
Читать онлайн
Доступен для чтения фрагмент книги
Ключевые слова
Поделиться ссылкой на книгу
Содержание книги
Глава 1. Компоненты ОС Android и необходимость
параллельных вычислений
Стек программной среды ОС Android
Архитектура приложения
Приложение
Компоненты
Activity
Service
ContentProvider
BroadcastReceiver
Выполнение приложения
Процесс Linux
Жизненный цикл
Запуск приложения
Завершение приложения
Структурирование приложений для улучшения
производительности
Создание отзывчивых приложений с помощью
потоков
Резюме
Часть I. Основы
Глава 2. Многопоточностьв Java
Основы использования потоков
Выполнение
Приложение с одним потоком
Многопоточное приложение
Увеличение потребления ресурсов
Повышенная сложность
Нарушение целостности данных
Безопасное состояние потока
Внутренняя блокировка и монитор Java
Синхронизация доступа к совместно используемым
ресурсам
Использование внутренней блокировки
Явное использование механизмов блокировки
Пример: потребитель и производитель
Стратегии выполнения задачи
Проектирование параллельного выполнения
Резюме
Глава 3. Потоки в ОС Android
Потоки приложения ОС Android
Ш-поток
Связующие потоки
Фоновые потоки
Процесс Linux и потоки
Планирование
Приоритет
Управляющие группы
Резюме
Глава 4. Взаимодействие потоков
Программные каналы
Основы использования программного канала
Пример: обработка текста в рабочем потоке
Совместно используемая память
Механизм сигналов
Блокирующая очередь BlockingQueue
Передача сообщений в ОС Android
Пример: простая передача сообщений
Классы, используемые при реализации механизма
передачи
сообщений
Класс MessageQueue
Интерфейс MessageQueue. IdleHandler
Пример: использование интерфейса IdleHandler
для завершения ненужного потока
Класс Message
Состояние "инициализировано"
Состояние "ожидание"
Состояние "передано"
Состояние "готово к повторному использованию"
Класс Looper
Завершение работы объекта Looper
Объект Looper в Ш-потоке
Класс Handler
Создание и настройка
Создание сообщения
Вставка сообщения в очередь
Пример: передача сообщений в двух направлениях
Обработка сообщений
Удаление сообщений из очереди
Наблюдение за очередью сообщений
Получение текущего состояния очереди
сообщений
Отслеживание обработки очереди сообщений
Взаимодействие с Ш-потоком
Резюме
Глава 5. Взаимодействие между процессами
Механизм вызова удалённых процедур в ОС
Android
Объект Binder
Язык AIDL
Синхронные вызовы удалённых процедур
Асинхронные вызовы удалённых процедур
Передача сообщений с использованием объекта
Binder
Однонаправленное взаимодействие
Взаимодействие в двух направлениях
Резюме
Глава 6. Управление памятью
Сборка мусора
Утечки памяти, связанные с использованием
потоков
Выполнение потока
Внутренние классы
Статические внутренние классы
Рассогласование жизненных циклов
Взаимодействие потоков
Отправка сообщения с данными
Передача сообщения с задачей
Устранение утечек памяти
Использование статических внутренних классов
Использование слабых ссылок
Остановка рабочего потока
Переключение рабочих потоков
Очистка очереди сообщений
Резюме
Часть II. Механизмы асинхронного выполнения
Глава 7. Управление жизненным циклом простого
потока
Основы использования потоков
Жизненный цикл
Прерывания
Неперехватываемые исключения
Управление потоком
Определение и запуск потока
Анонимный внутренний класс
Общедоступный поток
Определение потока как статического
внутреннего класса
Обзор возможных вариантов выбора определения
потока
Сохранение потока в рабочем состоянии
Сохранение потока в рабочем состоянии
средствами класса
Activity
Сохранение потока в рабочем состоянии
средствами класса
Fragment
Резюме
Глава 8. HandlerThread: механизм очереди
сообщений высокого уровня
Основы использования HandlerThread
Жизненный цикл HandlerThread
Случаи использования
Повторяющееся выполнение задачи
Связанные задачи
Пример: обеспечение надёжности данных с
помощью
SharedPreferences
Объединение задач в цепочку
Пример: сетевые вызовы в цепочке задач
Вставка задач по условию
Резюме
Глава 9. Управление выполнением потока
средствами
фреймворка Executor
Executor
Пулы потоков
Предопределённые пулы потоков
Пулы потоков, определяемые разработчиком
Конфигурация ThreadPoolExecutor
Проектирование пула потоков
Определение размера
Динамические потоки в пуле
Ограниченная или неограниченная очередь задач
Конфигурация потока
Расширение возможностей ThreadPoolExecutor
Жизненный цикл
Корректное завершение работы пула потоков
Варианты использования пула потоков и
возникающие
при этом сложности
Предпочтение отдаётся созданию потока, а не
организации
очереди
Обработка предварительно подготовленных
очередей задач
Опасная ситуация при нулевом количестве
базовых потоков
в пуле
Управление задачами
Представление задачи
Добавление задач
Заявление отдельной задачи
Метод invokeAll
МетодInvokeAny
Отвергнутые задачи
ExecutorCompletionService
Резюме
Глава 10. Связывание фоновой задачи с
Ul-потоком
с помощью AsyncTask
Основы использования класса AsyncTask
Создание и начало работы
Отмена
Состояния
Пример: ограничение режима выполнения
AsyncTask только
одной задачей в любой момент времени
Реализация AsyncTask
Пример: загрузка изображений
Выполнение задачи в фоновом режиме
Глобальная среда выполнения в приложении
Выполнение в разных версиях платформы
Настраиваемое выполнение
Пример: неглобальное последовательное
выполнение
Альтернативы AsyncTask
Случаи излишне упрощённой реализации
AsyncTask
Фоновые задачи, для которых требуется объект
Looper
Локальная служба
Использование метода execute(Runnable)
Резюме
Глава 11. Службы
Причины использования служб для асинхронного
выполнения
Локальные, удалённые и глобальные службы
Создание и выполнение
Жизненный цикл
Запускаемая служба
Реализация метода onStartCommand
Повторный запуск
Служба, управляемая пользователем
Пример: соединение по протоколу Bluetooth
Служба, управляемая задачей
Пример: параллельная загрузка
Подключаемая служба
Локальное подключение
Выбор механизма асинхронного выполнения
Резюме
Глава 12. Класс IntentService
Основы использования IntentService
Эффективные способы использования
IntentService
Задачи, выполнение которых должно быть
последовательным
Пример: взаимодействие с веб-службой
Асинхронное выполнение в BroadcastReceiver
Пример: периодически выполняемые длительные
операции
Сравнение IntentService и Service
Резюме
Глава 13. Доступ к провайдерам контента с
помощью
AsyncQueryHandler
Краткий обзор основ использования провайдеров
контента
Настройка ContentProvider для обработки в
фоновом режиме
Использование AsyncQueryHandler
Пример: список контактов с раскрывающимися
элементами
Как работает AsyncQueryHandler
Ограничения
Резюме
Глава 14. Автоматическое выполнение в фоновом
режиме с помощью загрузчиков Loader
Фреймворк Loader
Класс LoaderManager
Сравнение методов initLoader() и restartLoader()
Интерфейс LoaderCallbacks
Класс AsyncTaskLoader
Надёжная загрузка данных с помощью
CursorLoader
Использование CursorLoader
Пример: список контактов
Добавление поддержки CRUD
Пример: использование CursorLoader вместе с
обработчиком
AsyncQueryHandler
Реализация специализированных загрузчиков
Жизненный цикл загрузчика
Фоновый режим загрузки
Пример: простой специализированный загрузчик
Управление контентом
Доставка каптированных результатов
Пример: специализированный загрузчик файлов
Работа с несколькими загрузчиками
Резюме
Глава 15. Подведение итогов: выбор механизма
асинхронного выполнения
Сохраняйте простоту
Управление потоками и ресурсами
Организация обмена сообщениями для улучшения
отзывчивости
Как избежать неожиданного и нежелательного
завершения задачи
Простой доступ к провайдерам контента
Список литературы
Об авторе
Отзывы
Последние поступления в рубрике "UNIX"
За пределами \"Linux с нуля\". Том 1 Бикманс Ж.
Проект «За пределами «Linux с нуля» является развитием проекта «Linux с нуля». Перевод сделан с англоязычной версии 7.4 – первой стабильной версии, выпущенной в течение последних пяти лет. Эта версия...... | |
Командная строка Linux. Полное руководство Шоттс У.
Международный бестселлер «Командная строка Linux» поможет преодолеть путь от первых робких щелчков по клавишам до уверенного создания полноценных программ для последней версии bash — наиболее популярной командной оболочки Linux....... | |
Kali Linux. Тестирование на проникновение и безопасность Парасрам Ш.
Четвертое издание Kali Linux 2018: Assuring Security by Penetration Testing предназначено для этических хакеров, пентестеров и специалистов по IT-безопасности. От читателя требуются базовые знания операционных систем Windows и Linux. Знания из области...... |
Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Ёранссон А., Эффективное использование потоков в операционной системе Android в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.