Androidアプリ開発メモ067:NDKのサンプルを動かしてみた
NDKのサンプル「com.example.hellojni.HelloJni」を動かしてみた。
WindowsでNDKを利用するにはCygwinが必要というので、まずCygwinをダウンロードしてインストール。Cygwinのバージョンは1.7.16。
#セットアップファイルがsetup.exeって嫌だなあ。ファイル名で何のインストールをするものなのかわからない。
インストールするパッケージはとりあえず参考ページ3を見てgcc4、make、gdblibexpat1を選択。依存関係で必要なものは「これも必要だけどインストールするか?」って聞かれるので一緒に入れる。
インストールが終わってスタートメニューかデスクトップのアイコンから起動すると /home の下にユーザのディレクトリ作られる。
あと、必要かどうかわからないが、Windowsのユーザ環境変数に、名前はHOMEで値は"/home/<ユーザ名>"を追加。
Cygwinのインストールが終わったらNDKをダウンロードして展開。NDKのリビジョンはRevision 8b。
Cygwinの /home/<ユーザ名>、Windowsから見れば <Cygwinのフォルダ>\home\<ユーザ名> に展開。
展開場所はCygwinのフォルダの配下じゃなくてもどこでもいいだんろうが、Cygwin配下ではない場合はパスが "/cygdrive/<ドライブ>/..."となってなんかかっこ悪い。せっかくCygwinを入れたのだからUNIXっぽいパスにしたかったので。
それから.bash_profileのPATHにNDKのディレクトリを追加。
これで準備完了。
Eclipseでサンプルのプロジェクトを作成する。新規>その他で「Android Project from Existing Code」で <NDKのフォルダ>\samples\hello-jni を選択。
アプリとプロジェクトとtestのプロジェクトが出てくる。アプリだけでいいんだろうけど、とりあえず両方選んでみた。
あとは参考サイト1の通り。Cygwinでhello-jniディレクトリに移動し、ndk-buildを実行すると共有ライブラリファイルlibhello-jnai.soが作成さる。
into@note02 ~ $ cd android-ndk-r8b/ into@note02 ~/android-ndk-r8b $ cd samples/ into@note02 ~/android-ndk-r8b/samples $ cd hello-jni/ into@note02 ~/android-ndk-r8b/samples/hello-jni $ ndk-build Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver Gdbsetup : libs/armeabi/gdb.setup Cygwin : Generating dependency file converter script Compile thumb : hello-jni <= hello-jni.c SharedLibrary : libhello-jni.so Install : libhello-jni.so => libs/armeabi/libhello-jni.so
libhello-jnai.so ができたらEclipseでプロジェクトを最新の状態で更新する。
これで通常のAndroidアプリケーションと同様にAVD上や実機上で実行できる。
参考文献:Androidアプリケーション開発標準資格教科書 10-5 NDKの概要
参考ページ:
1.Android NDKサンプルプログラムのビルドについて~その2~: TBヘッドライン
2.AndroidのNDK 1.5でHelloJNIを動かす手順 - Android(アンドロイド)情報-ブリリアントサービス
3.Android NDK開発環境の設定
« PHPメモ030:PostgreSQLを使う | Main | 「TARI TARI」のあり得ない展開にがっかり »
「開発環境」カテゴリの記事
- PostgreSQLのコマンドラインクライアントpsql(2012.11.25)
- Android SDK tools, Revision 21 に更新(2012.11.18)
- Androidアプリ開発メモ067:NDKのサンプルを動かしてみた(2012.09.10)
- Androidの開発環境壊れたかと思った(2012.07.08)
- サーブレット・JSPメモ012:Eclipseで開発している場合のjarファイルを置く場所(2012.02.20)
「Java」カテゴリの記事
- 正規表現メモ(2013.10.07)
- Androidアプリ開発メモ068:Tweenアニメーション(2012.11.18)
- Androidアプリ開発メモ067:NDKのサンプルを動かしてみた(2012.09.10)
- JNI その2:ネイティブコードからJavaメソッドを呼び出す(2012.08.29)
- JNI その1:Javaからネイティブコードを呼び出す(2012.08.26)
「Androidアプリ開発」カテゴリの記事
- Androidアプリ開発メモ068:Tweenアニメーション(2012.11.18)
- Android SDK tools, Revision 21 に更新(2012.11.18)
- Androidアプリ開発メモ067:NDKのサンプルを動かしてみた(2012.09.10)
- Androidアプリ開発メモ066:Android SDK tools Rev.20 で変わった事(2012.07.12)
- Androidアプリ開発メモ065:ライブフォルダ(2012.07.11)
The comments to this entry are closed.
« PHPメモ030:PostgreSQLを使う | Main | 「TARI TARI」のあり得ない展開にがっかり »
Comments