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

Android NDK

Покупка
Артикул: 712442.01.99
Доступ онлайн
699 ₽
В корзину
В книге показано, как создавать мобильные приложения для платформы Android на языке C/C++ с использованием пакета библиотек Android Native Development Kit (NDK) и объединять их с программным кодом на языке Java. Вы узнаете как создать первое низкоуровневое приложение для Android, как взаимодействовать с программным кодом на Java посредством механизма Java Native Interfaces, как соединить в своем приложении вывод графики и звука, обработку устройств ввода и датчиков, как отображать графику с помощью библиотеки OpenGL ES и др. Издание предназначено для разработчиков мобильных приложений, как начинающих так и более опытных, уже знакомых с программированием под Android с использованием Android SDK.
Ретабоуил, С. Сильвен, Р. Android NDK: руководство для начинающих / Ретабоуил Сильвен ; пер. с анг. А.Н. Киселева. - 2-е изд. - Москва : ДМК Пресс, 2016. - 518 с. - ISBN 978-5-97060-394-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1027808 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Интернетмагазин:
www.dmkpress.com
Книга – почтой:
email: orders@alians-kniga.ru
Оптовая продажа: 
«Альянскнига»
Тел./факс: (499) 782-3889
email: books@alians-kniga.ru
www.дмк.рф

Android NDK

Сильвен Ретабоуил 

В книге показано, как создавать мобильные приложения 
для платформы Android на языке C/C++ с использованием 
пакета библиотек Android Native Development Kit (NDK) и 
объединять их с программным кодом на языке Java. Вы 
узнаете, как создать первое низкоуровневое приложение 
для Android, как взаимодействовать с программным кодом 
на Java посредством механизма Java Native Interfaces, как 
соединить в своем приложении вывод графики и звука, 
обработку устройств ввода и датчиков, как отображать 
графику с помощью библиотеки OpenGL ES и др.

Издание предназначено для разработчиков мобильных 
приложений, как начинающих так и более опытных, 
уже знакомых с программированием под Android с 
использованием Android SDK.

Сильвен Ретабоуил (Sylvain Ratabouil) – консультант в области 
информационных технологий с опытом программирования на C++ 
и Java в Android. Участвовал в разработке цифровых и мобильных 
приложений для больших компаний, а также для космической и 
авиационной промышленности. Будучи человеком с техническим 
складом ума, влюблен в мобильные технологии и не представляет 
себе жизни без своего смартфона на платформе Android.

для начинающих

Откройте доступ к внутренней природе 
Android и добавьте мощь C/C++ 
в свои приложения

для Android 4.2.2 и выше

Android NDK для начинающих

9 785970 603949

ISBN 978-5-97060-394-9

Сильвен Ретабоуил

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

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

2-е издание

Москва, 2016

Сильвен Ретабоуил

Откройте доступ к внутренней природе Android  
и добавьте мощь C/C++ в свои приложения

УДК 004.451.9Android
ББК 32.973.26-018.2
P31

Ретабоуил Сильвен
Р31   Android NDK: руководство для начинающих. 2-е изд. / Пер. с 
анг. Киселева А. Н. – М.: ДМК Пресс, 2016. – 518 с.: ил.

ISBN 978-5-97060-394-9

В книге показано, как создавать мобильные приложения для 
платформы 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

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

ISBN 978-1-78398-964-5 (анг.) 
Copyright © 2015 Packt Publishing
ISBN 978-5-97060-394-9 (рус.) 
© Оформление, ДМК Пресс, 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

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