Android API являются Java. С 2010 года Google предоставляет NDK (SDK) для разработчиков C / C ++.
НДК предлагает два способа:
- для устройств Android 1.5 вы можете загрузить библиотеку elf и использовать ее из java-приложения через мост JNI
- для устройств Android 2.3 вы можете использовать NativeActivity для обхода кода активности Java для полноэкранного приложения.
NDK предлагает немного API C / C ++:
- псевдо-libc под названием bionics: многие функции недоступны
- библиотека pthread
- OpenGL ES 1.x (> Android 1.5) и OpenGL ES 2.x (Android 2.0)
- OpenSL (ограниченная поддержка на Android 2.3)
Но многие API работают только на Java (также доступны через JNI).
Версия NDK 5 является первой для разработчиков на C ++, потому что она предлагает:
- RTTI
- Поддержка исключений
- STLport
- Поддержка GDB для многопоточных программ
Самая болезненная операция - отладка на устройствах Android. Поэтому я разрабатываю собственную многоплатформенную инфраструктуру (OS X, Windows, Linux, iOS и Android) для отладки сначала на платформе настольных компьютеров, затем на платформе iOS (на симуляторе) и Last (на Android).
Эмулятор Android (не симулятор) имеет низкую производительность и не может эмулировать OpenGL ES 2.x. Я рекомендую реальные устройства для разработки.
Вы можете найти много полезной информации: