Android NDK
Покупка
Издательство:
ДМК Пресс
Автор:
Ретабоуил Сильвен
Перевод:
Киселев Артём Николаевич
Год издания: 2016
Кол-во страниц: 518
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-394-9
Артикул: 712442.01.99
В книге показано, как создавать мобильные приложения для платформы Android на языке C/C++ с использованием пакета библиотек Android Native Development Kit (NDK) и объединять их с программным кодом на языке Java. Вы узнаете как создать первое низкоуровневое приложение для Android, как взаимодействовать с программным кодом на Java посредством механизма Java Native Interfaces, как соединить в своем приложении вывод графики и звука, обработку устройств ввода и датчиков, как отображать графику с помощью библиотеки OpenGL ES и др. Издание предназначено для разработчиков мобильных приложений, как начинающих так и более опытных, уже знакомых с программированием под Android с использованием Android SDK.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Интернетмагазин: www.dmkpress.com Книга – почтой: email: orders@alians-kniga.ru Оптовая продажа: «Альянскнига» Тел./факс: (499) 782-3889 email: 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