NDKメモ
自分用のメモ。逐次追加。
インストール
docs/INSTALL.TXT では build/host-setup.sh を実行するように書いてあるが
Ubuntu9.04の場合は以下のようにする。
$ bash build/host-setup.sh
ソースの配置
ソースファイルは $NDK/source/
- $NDK/sources/
/Android.mk
ネイティブライブラリ用のmakefile
- $NDK/apps/
/Application.mk
アプリケーション用のmakefile
ネイティブライブラリとアプリケーションの組み合わせは任意。
サンプルのビルド
$ cd $NDK $ make APP=hello-jni
ネイティブライブラリが作られる。アプリケーション(java)のビルドは別途。
コマンドラインを隠さずに表示する
$ make APP=hello-jni V=1
コンパイルオプションを変更したときなどで、一度全部消して作り直したい場合
$ make APP=hello-jni clean all
ログ
ログを出すには
docs/STABLE-APIS.TXT 参照。
stdin, stdout, stderrはframeworkの中で /dev/null にリダイレクトされているから
普通にprintf を使ってもどこにも表示されない。
変数の初期化
ローダまかせにせず、自分で初期化関数を作って明示的にそれを呼び出す。
NDKの共有ライブラリでグローバル変数、スタティック変数は自分で明示的に初期化しなくてはならない - 組み込みの人。