Android NDK. Руководство для начинающих
Покупка
Тематика:
Программирование на C и C++
Издательство:
ДМК Пресс
Автор:
Ретабоуил Сильвен
Перевод:
Киселев Артём Николаевич
Год издания: 2023
Кол-во страниц: 519
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-629-6
Артикул: 817127.01.99
В книге показано, как создавать мобильные приложения для платформы Android на языке C/C++ с использованием пакета библиотек Android Native Development Kit (NDK) и объединять их с программным кодом на языке Java. Вы узнаете как создать первое низкоуровневое приложение для Android, как взаимодействовать с программным кодом на Java посредством механизма Java Native Interfaces, как соединить в своем приложении вывод графики и звука, обработку устройств ввода и датчиков, как отображать графику с помощью библиотеки OpenGL ES и др.
Издание предназначено для разработчиков мобильных приложений, как начинающих так и более опытных, уже знакомых с программированием под Android с использованием Android SDK.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование
- Программирование на C и C++
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Сильвен Ретабоуил Android NDK Руководство для начинающих
Android NDK Beginners's Guide Second Edition Sylvain Ratabouil Discover the native side of Android and inject the power of C/C++ in your applications BIRMINGHAM - MUMBAI
Android NDK Руководство для начинающих 3-е издание, электронное Москва, 2023 Сильвен Ретабоуил Откройте доступ к внутренней природе Android и добавьте мощь C/C++ в свои приложения
УДК 004.451.9Android ББК 32.973.26-018.2 Р31 Р31 Ретабоуил, Сильвен. Android NDK. Руководство для начинающих / С. Ретабоуил ; пер. с англ. А. Н. Киселёва. — 3-е изд., эл. — 1 файл pdf : 519 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-629-6 В книге показано, как создавать мобильные приложения для платформы Android на языке C/C++ с использованием пакета библиотек Android Native Development Kit (NDK) и объединять их с программным кодом на языке Java. Вы узнаете как создать первое низкоуровневое приложение для Android, как взаимодействовать с программным кодом на Java посредством механизма Java Native Interfaces, как соединить в своем приложении вывод графики и звука, обработку устройств ввода и датчиков, как отображать графику с помощью библиотеки OpenGL ES и др. Издание предназначено для разработчиков мобильных приложений, как начинающих так и более опытных, уже знакомых с программированием под Android с использованием Android SDK. УДК 004.451.9Android ББК 32.973.26-018.2 Электронное издание на основе печатного издания: Android NDK. Руководство для начинающих / С. Ретабоуил ; пер. с англ. А. Н. Киселёва. — 2-е изд. — Москва : ДМК Пресс, 2016. — 518 с. — ISBN 978-5-97060-394-9. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-629-6 © 2015 Packt Publishing © Оформление, ДМК Пресс, 2016
Содержание Об авторе ........................................................ 10 О рецензентах.................................................. 11 Предисловие ................................................... 13 О чем рассказывается в этой книге ............................................... 14 Что потребуется для работы с книгой ............................................ 15 Кому адресована эта книга ............................................................ 15 Разделы ........................................................................................ 16 Соглашения................................................................................... 16 Отзывы и пожелания ..................................................................... 17 Загрузка исходного кода примеров ............................................... 18 Список опечаток............................................................................ 18 Нарушение авторских прав ........................................................... 18 Глава 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 Дополнительные наборы инструкций (NEON, VFP, SSE, MSA) .............. 468 В заключение .............................................................................. 471 Глава 10. Интенсивные вычисления на RenderScript .......... 472 Что такое RenderScript? ............................................................... 473 Выполнение встроенной функции ....................................................... 474 Создание собственного ядра ...................................................... 486 Объединение сценариев ............................................................. 495 В заключение .............................................................................. 504 Послесловие ................................................. 505 Что мы узнали ............................................................................. 505 Куда двигаться дальше ................................................................ 506 Где искать помощь....................................................................... 507 Это лишь начало.......................................................................... 508 Предметный указатель .................................... 509
Об авторе Сильвен Ретабоуил (Sylvain Ratabouil) – консультант в области информационных технологий с опытом программирования на C++ и Java в Android. Участвовал в разработке цифровых и мобильных приложений для больших компаний, а также для космической и авиационной промышленности. Будучи человеком с техническим складом ума, влюблен в мобильные технологии и не представляет себе жизни без своего смартфона на платформе Android.