since 2012-01-12
最初の方に JNI の基本が分かりやすくまとまっている。後半のアーキテクチャや最適化の情報も有用。
サポートページ には書かれていないけれど、p.240 の「利用できるARM命令セットを判別する」は android_getCpuFamily() ではなく android_getCpuFeatures() のような気がする。。
if (android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM && (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0)
よく見たら p.273 (10.02.04) にはちゃんと上記のように書かれていた。
直してみたら、 HTC EVO WiMAX ISW11HT は ARMv7 VFPv3 NEON すべて利用できるとのこと。。
オーディオ処理は OpenSL|ES for Android というライブラリ。
http://mobilepearls.com/labs/native-android-api/opensles/index.html
android-ndk-r6b/samples/native-audio のサンプルをビルドして実機 (Android 2.3.4) で動作を確認した。
オーディオ出力だけはエミュレーターでも動くようだ。。
http://warpedtimes.wordpress.com/2010/02/03/building-open-source-libraries-with-android-ndk/
FFTW を使う話:
since 2012-03-22
http://d.hatena.ne.jp/tarosay/20120126/1327608537
NDK-r7b で
$ ndk-build APP_ABI=all
して apk を作ったら SDK R17 + emulator-x86 で動いた。
Installing the Intel Atom Android x86 Emulator Image Add-on from the Android SDK Manager http://intel.ly/GILC3C
音声出力は動いたが、音声入力は動かなかった。
なお ndk-build のオプションで指定したら x86 がビルドされるが jni/Android.mk で APP_ABI := x86 (all) を指定しても無視された。
Hardware Accelerated Execution Manager (Intel HAXM)
since 2013-03-14
http://developer.android.com/tools/sdk/ndk/index.html
android-ndk-r8d-darwin-x86.tar.bz2