Относительно недавно, по галлактическим меркам, компания гугл выпустила операционную систему для мобильных платформ Android, ну а совсем недавно компании-производители телефонов начали производить телефоны с этой системой на борту. Как можно судить упор делался восновном на Java программистов, это видно и по более менее вменяемому SDK и по плагинам для IDE Eclipce. А что делать разработчикам на C++ ? Видно компания гугл услышила их мольбы и выпустила в свет Android ndk, собственно о нём и пойдёт речь.
Для чего оно надо.
Вообще Android NDK рекомендуется использовать в случае когда надо реализовать части приложения критичные по скорости выполнения. В принципе никто не запрещает реализовывать почти всё приложение на native коде. Более того такие приложения можно продавать на андроид маркете. В частности, таким образом были портированы DOOM и аналогичные олдскульные игры.
Установка
Она достаточна простая, опишу под операционной системой Windows(так как под Linux ещё проще):
Качаем дистрибутив NDK, распаковываем куда либо
Качаем и устанавливаем CygWin, к нему устанавливаем make версии 3.81 и Nawk. Запускаем Cygwin переходим в папку куда распаковали NDK и выполняем
build/host-setup.sh
NDK поставлен и готов к работе.
Давайте поиграемся
Первое что приходит в голову после установки NDK посмотреть и поиграться с примерами. В папке apps есть пару демо-примеров как простых так и достаточно интересных в частности из примеров стоит отметить san-angeles - демка, показывабщяя возможности OpenGl ES, правда на эмуляторе очень жутко тормозит.
Для сбора 'руками' необходимо:
Android SDK - в нём есть эмулятор и сопутствующие утилиты.
Java SDK - набор для Java разработчика
Appache Ant - это аналог make только для java
Итак находясь в корневой директории NDK в консоле пишем:
make APP=
к примеру
make APP=hello-jni
тем самым компилируем исходный Си код в библиотеку динамической компоновки, далее
переходим в директорию с проектом
cd apps/hello-jni/project
Теперь создаём файл для билда через ant. В командной строке набираем
android update project -p .
после этого должен появится файл build.xml, после этого запускаем ant для сборки apk, для этого в консоле пишем
ant debug
итак версия собрана и лежит тут project/bin/HelloJni-debug.apk
Теперь устанавливаем на эмуляторе
запускаем эмулятор
emulator @имя_созданного_эмулятора
имя_созданного_эмулятора создаётся утилитой android входящей в SDK
после того как эмулятор запущен пишем:
adb -e install HelloJni-debug.apk
Это позволит установить наш собранный архив на эмулятор. После этого его можно будет запустить с панели приложений.
Что ещё посоветую по теме: вот тут описали как портировали SDL библиотеку под adroid. Также стоит упомянуть книгу Vladimir Silva - Pro Android Games советую скачать если вы решили ознакомится с JAVA native code в android поподробнее.
Эта статья не более чем вводная, так как материал очень объёмный.
FOLLOW ME ON TWITTER
Best regards Кульчицкий (nikolayku) Николай
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.