Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Артикул: 817127.01.99
Доступ онлайн
699 ₽
В корзину
В книге показано, как создавать мобильные приложения для платформы Android на языке C/C++ с использованием пакета библиотек Android Native Development Kit (NDK) и объединять их с программным кодом на языке Java. Вы узнаете как создать первое низкоуровневое приложение для Android, как взаимодействовать с программным кодом на Java посредством механизма Java Native Interfaces, как соединить в своем приложении вывод графики и звука, обработку устройств ввода и датчиков, как отображать графику с помощью библиотеки OpenGL ES и др. Издание предназначено для разработчиков мобильных приложений, как начинающих так и более опытных, уже знакомых с программированием под Android с использованием Android SDK.
Ретабоуил, С. Android NDK. Руководство для начинающих : практическое руководство / С. Ретабоуил ; пер. с англ. А. Н. Киселёва. — 3-е изд. - Москва : ДМК Пресс, 2023. - 519 с. - ISBN 978-5-89818-629-6. - Текст : электронный. - URL: https://znanium.com/catalog/product/2108522 (дата обращения: 21.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Сильвен Ретабоуил

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.

Доступ онлайн
699 ₽
В корзину