NDKメモ

自分用のメモ。逐次追加。

インストール

docs/INSTALL.TXT では build/host-setup.sh を実行するように書いてあるが
Ubuntu9.04の場合は以下のようにする。

$ bash build/host-setup.sh

ソースの配置

ソースファイルは $NDK/source/ に置け。シンボリックリンクでもよい。

ネイティブライブラリ用の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の共有ライブラリでグローバル変数、スタティック変数は自分で明示的に初期化しなくてはならない - 組み込みの人。