Examples of using Hunter package manager to build and run Android application.
Requirements
Android NDK
Go to download page and choose NDK for your platform. E.g. Mac OS X:
> wget http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86_64.bin
> chmod +x android-ndk-r10e-darwin-x86_64.bin
> ./android-ndk-r10e-darwin-x86_64.bin
Now save location of NDK directory so it can be found in toolchain:
> export ANDROID_NDK_r10e="`pwd`/android-ndk-r10e"
Verify correctness:
> ls "${ANDROID_NDK_r10e}/README.txt"
/.../android-ndk-r10e/README.txt
Note that there is no need to download Android SDK manually since it will be downloaded by Hunter.
Android CMake toolchain
Clone Polly collection of toolchains and add
script to PATH
:
> git clone https://github.com/ruslo/polly
> export PATH="`pwd`/polly/bin":$PATH
> which build.py
/.../polly/bin/build.py
Android tools
Every example will print path to the android
, emulator
and adb
tools:
Path to `android`: /.../Install/android-sdk/tools/android
Path to `emulator`: /.../Install/android-sdk/tools/emulator
Path to `adb`: /.../Install/android-sdk/platform-tools/adb
You need to use this tools to create/start emulator. If no real or virtual device started you will see this message while building example:
Added file /.../_builds/android-ndk-r10e-api-21-x86/apk/build.xml
Added file /.../_builds/android-ndk-r10e-api-21-x86/apk/proguard-project.txt
/.../Install/android-sdk/platform-tools/adb uninstall org.pixellight.test
- waiting for device -
Create device
Choose device name from the list. E.g Nexus 6
:
> /.../Install/android-sdk/tools/android list device | grep 'Nexus 6'
id: 8 or "Nexus 6"
Name: Nexus 6
Choose target and skin:
> /.../Install/android-sdk/tools/android list target
Available Android targets:
----------
id: 1 or "android-21"
Name: Android 5.0.1
Type: Platform
API level: 21
Revision: 2
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : default/x86
...
Create virtual device:
> /.../Install/android-sdk/tools/android create avd --name "Nexus_6_API_21_WXGA720" --skin WXGA720 --target "android-21"
Now you can find it in list of available devices:
> /.../Install/android-sdk/tools/android list avd
Available Android Virtual Devices:
Name: Nexus_6_API_21_WXGA720
Path: /.../.android/avd/Nexus_6_API_21_WXGA720.avd
Target: Android 5.0.1 (API level 21)
Tag/ABI: default/x86
Skin: wxga720
Let's run it:
> /.../Install/android-sdk/tools/emulator -avd Nexus_6_API_21_WXGA720
If you need sdcard
for testing:
> /.../Install/android-sdk/tools/mksdcard 512M "`pwd`/android-sdcard"
> /.../Install/android-sdk/tools/emulator -sdcard "`pwd`/android-sdcard" -avd Nexus_6_API_21_WXGA720
Choosing toolchain
API version
Take a look at this wiki to pick the version you need. E.g. if your device using Android 4.4 you need API level <= 19, for instance android-ndk-r10e-api-16-*
.
CPU architecture
Run next command to determine CPU architecture of emulator:
> /.../Install/android-sdk/platform-tools/adb -e shell getprop ro.product.cpu.abi
x86
And this one for device:
> /.../Install/android-sdk/platform-tools/adb -d shell getprop ro.product.cpu.abi
armeabi-v7a
Logging
You can use adb
to monitor logging messages:
> /.../Install/android-sdk/platform-tools/adb shell logcat
Examples
- Console application
- Load libraries
- Boost.filesystem console
- Boost.iostreams console
- OpenCV console
- Qt HelloGL2
- Qt HelloGL2 (with launch target)
- Qt QML example
- Qt QML camera