19 февраля 2012

Android: установка SDK и NDK

Привет. Так случилось что у меня в распоряжении оказалось небольшое android устройство. А так как android это почти GNU/Linux, то почему бы и не попробовать написать для него небольшую игру. Уж очень хочется изучить что-то новое.

Начну я с простого. Небольшая памятка для себя как установить и настроить SDK и NDK. Еще конечно нужно что-нибудь собрать и запустить на устройстве или эмуляторе. Думаю какой-нибудь пример из NDK. Для начала думаю хватит.

Установка

Для начала скачаем с сайта SDK и NDK:

Нам понадобиться openjdk6. Еще возможно lib32-библиотеки если у вас система x86_64. Так же возможно нам понадобятся вспомогательные библиотеки, такие как openal, sdl и возможно какие-либо еще. Ах да, еще нужен ant для сборки примеров.

Давайте для начала запустим андроид в эмуляторе. Для этого нам нужно запустить android-sdk-linux/tools/android и кое-что установить.

По мимо всего для работы с Android 4.0.3 (API 15) я поставил SDK Platform и Samples for SDK для Android 2.3.3 (API 10) и Android 2.2 (API 8).

Дальше нам нужно зайти в Tools->Manage AVDs.... Можно поступить иначе и запустить это же через командную строку:

> android-sdk-linux/tools/android avd

Там нам нужно создать android устройство:

Теперь нажимайте Start... и запускаем наше устройство.

Для удобства мы можем добавить в .profile вот эти строчки:

ANDROID_SDK_NDK_DIR=/home/user/.android/
ANDROID_SDK=${ANDROID_SDK_NDK_DIR}/android-sdk-linux/
ANDROID_NDK=${ANDROID_SDK_NDK_DIR}/android-ndk-r7b/
export PATH=${PATH}:${ANDROID_SDK}/tools/:${ANDROID_SDK}/platform-tools/:${ANDROID_NDK}

Можно запускать эмулятор через командную строку без промежуточного окна.

> android list avd
Available Android Virtual Devices:
    Name: name_device
    Path: /home/user/.android/avd/android2.3.avd
  Target: Android 2.3.3 (API level 10)
     ABI: armeabi
    Skin: WQVGA400
  Sdcard: 256M
> emulator @name_device

Сборка тестового приложения

Вот с установкой мы и закончили, теперь давайте соберем пример из NDK. Например san-angeles. Его можно найти в папке android-ndk-r7b/samples.

Для начало нужно собрать нативный код, перейдите в папку с проектом и запустите:

> ndk-build

Теперь создадим проект для API-8, это Android 2.2:

> android update project --name san-angeles --path . --target "android-8"

Теперь проект нужно собрать с помощью ant:

> ant debug

Запускаем эмулятор, после чего устанавливаем на запущенное устройство наш пакет:

> adb install -r bin/san-angeles-debug.apk

Приложение будет называться DemoActivity. В эмуляторе все будет не очень быстро. Поэтому можно использовать реальное устройство. Для этого в нем достаточно включить режим отладки по USB.

Но что бы adb смог установить приложение нужно научить udev разрешать пользователю работать с устройством. Делается это написанием правила.

> cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb",ATTR{idVendor}=="0fce", MODE="0666", GROUP="storage"
> sudo udevadm control --reload-rules

0fce это Vendor IDs, для своего устройство можно его посмотреть на страничке для разработчиков.

После этого можно залить приложение на устройство и понять что со скоростью в эмуляторе не все нормально, в то время как на самом устройстве все гораздо лучше. Заливка на реально устройство ни чем не отличается от заливки на эмулятор.

На этом пока пожалуй все.


  • Сайт для разработчиков под Android.