Android NDK: руководство для начинающих

Создание приложений на C/C++ и интеграция их с Java.

Ретабоуил Сильвен «Android NDK: руководство для начинающих» ДМК Пресс, 2016 год, 518 стр., 2-е издание (Перевод. с EN) Киселева А. Н.(7,01 мб. pdf )

Вы Java-разработчик для Android, но есть желание изучить создание производительных, низкоуровневых приложений на C и C++, тогда данное руководство для вас. Не секрет, что использование языков C и C++ дают возможность писать быстрые игровые и мультимедийные программы. В представленном руководстве приводится информация по использованию сборки библиотек — NDK (Android Native Development Kit) для разработки приложений под Android и интеграции кода C и C++ с кодом Java посредством Java Native Interfaces. Вы узнаете как правильно программно построить вывод графики и звука, обработку событий, устройств ввода и датчиков, как выводить графику с использованием библиотеки OpenGL ES, а также другие актуальные вопросы. Издание адресовано для разработчикам мобильных приложений — начинающим и более опытным, уже знакомым с использованием Android SDK. Второе издание переработанное и дополненное. ISBN 978-5-97060-394-9

Оглавление книги

Содержание

Глава 1.
Подготовка окружения 19
Приступая к разработке программ для Android 19
Настройка Windows 20
Установка инструментов разработки для Android в Windows 26
Настройка Mac OS X 31
Установка инструментов разработки для Android в Mac OS X 34
Настройка Linux 40
Установка инструментов разработки для Android в Linux 42
Установка среды разработки Eclipse 47
Эмулятор платформы Android 52
Разработка с действующим устройством на платформе Android 56
Дополнительно о службе ADB 60
В заключение 62

Глава 2.
Создание низкоуровневого проекта для Android 64
Компиляция и развертывание примеров приложений из Android NDK 65
Создание файлов проекта с помощью менеджера Android 68
Компиляция низкоуровневого кода с помощью NDK-Build 71
Сборка и упаковка приложений с помощью Ant 71
Развертывание пакета приложения с помощью Ant 72
Запуск приложения с помощью командной оболочки ADB 73
Дополнительно об инструментах для Android 75
Создание первого низкоуровневого проекта для Android 75
Введение в Dalvik и ART 80
Взаимодействие Java и C/C++ 81
Отладка низкоуровневых приложений для Android 85
Определение настроек NDK для приложения 88
Повседневное использование NDK-GDB 90
Анализ аварийных дампов 91
Настройка проекта Gradle для компиляции низкоуровневого кода 96
В заключение 103

Глава 3.
Взаимодействие Java и C/C++ посредством JNI 104
Инициализация библиотеки JNI 105
Преобразование Java-строк в низкоуровневые строки 114
Кодирование строк в низкоуровневом коде 121
Поддержка строк в JNI API 122
Передача элементарных типов Java в низкоуровневый код 124
Ссылки на Java-объекты из низкоуровневого кода 128
Локальные ссылки 133
Глобальные ссылки 135
Слабые ссылки 135
Обработка Java-массивов 137
Элементарные массивы 148
Массивы объектов 151
Возбуждение и проверка Java-исключений 152
Выполнение кода при наличии исключения 156
API обработки исключений 157
В заключение 158

Глава 4.
Вызов функций на языке Java из низкоуровневого кода 160
Обратный вызов Java-методов из низкоуровневого кода 161
Дополнительно о JNI Reflection API 168
Отладка JNI 170
Синхронизация Java с низкоуровневыми потоками выполнения 171
Синхронизация программного кода на Java и C/C++ с помощью мониторов JNI 183
Присоединение и отсоединение потоков выполнения 184
Низкоуровневая обработка растровых изображений 185
Регистрация низкоуровневых методов вручную 200
JNI в C и C++ 201
В заключение 202

Глава 5.
Создание исключительно низкоуровневых приложений 203
Создание низкоуровневого визуального компонента 204
Подробнее о низкоуровневом связующем модуле 211
Обработка событий визуального компонента 214
Доступ к окну из низкоуровневого кода 225
Измерение времени в низкоуровневом коде 236
В заключение 247

Глава 6.
Отображение графики средствами OpenGL ES 248
Инициализация OpenGL ES 249
Конвейер OpenGL 256
Чтение текстур с помощью диспетчера ресурсов 258
Дополнительно об Asset Manager API 262
Подробнее о текстурах 278
Рисование двухмерных спрайтов 280
Массивы вершин и буферные объекты с вершинами 301
Эффект частиц 303
Программирование шейдеров на языке GLSL 314
Адаптация графики для разных разрешений 316
В заключение 324

Глава 7.
Проигрывание звука средствами OpenSL ES 325
Инициализация OpenSL ES 327
Еще о философии OpenSL ES 333
Воспроизведение музыкальных файлов 334
Воспроизведение звуков 342
Обработка событий в очереди звуков 355
Важность низкой задержки в Android 356
Запись звука 358
В заключение 362

Глава 8.
Устройства ввода и датчики 363
Обработка событий касания 364
Обработка событий от клавиатуры, клавиш направления (D-Pad) и трекбола 378
Проверка датчиков 385
Дополнительно о датчиках 400
В заключение 401

Глава 9.
Перенос существующих библиотек на платформу Android 402
Разработка с применением стандартной библиотеки шаблонов 403
Перенос Box2D на платформу Android 420
Мир Box2D 441
Подробнее об определении столкновений 442
Режимы столкновений и фильтрация 444
Дополнительные ресурсы, посвященные Box2D 446
Компиляция Boost на платформе Android 447
Мастерство владения файлами Makefile 459
Переменные в файлах Makefile 459
Инструкции в файлах сборки 463
Архитектуры процессоров (ABI) 467
Дополнитель 471

Глава 10.
Интенсивные вычисления на RenderScript 472
Что такое RenderScript? 473
Выполнение встроенной функции 474
Создание собственного ядра 486
Объединение сценариев 495
В заключение 504
Послесловие 505
Что мы узнали 505
Куда двигаться дальше 506
Где искать помощь 507
Это лишь начало 508
Предметный указатель 509

Скачать  бесплатно7,01 мб pdf

 

 

Похожая литература