5.Android NDKサンプルアプリケーションのプロジェクトを生成
ここまでの準備ができたら「hello-jni」プロジェクトを取り込む。手順は以下のとおりだ。
Eclipseのメニューから[File]−[New]−[Android Project]をクリックして、「New Android Project」ダイアログを表示する。
「Contents」の「Create project from existing source」を選択し、「Location:」にAndroid NDKで提供されているサンプルアプリケーション「hello-jni」のプロジェクトフォルダ「D:\android-ndk-1.5_r1\apps\hello-jni\project」を指定する(画像7)。また、「Build Target」に「Android 1.5」を指定する(画像8)。
6.Android NDKサンプルアプリケーションの実行
画面左側のPackage Explorerに表示されているサンプルアプリケーションのプロジェクト「HelloJni」を選択し、[Run]ボタンをクリックする。すると「Run As」ダイアログが表示されるので、ここで「Android Application」を選択し、[OK]ボタンをクリックする(画像9)。
しばらくすると、Androidエミュレータが起動し、Android NDKサンプルアプリケーション「HelloJni」が起動する(画像10)(注7)。
D:\android-ndk-1.5_r1\app\hello-jni\project\bin\HelloJni.apk
/data/dalvik-cache/data@com.example.hellojni.apk@classes.dex
/data/data/com.example.hellojni/lib/libhello-jni.so
7.C-Nativeライブラリの読み込みの確認
最後に参考として、C-Nativeライブラリが正しく読み込めているかどうかを確認する方法を紹介する。
エミュレータが起動している状態で、メニューから[Window]−[Open Perspective]−[DDMS]をクリックすると、Androidのデバッギングツール「DDMS(Dalvik Debug Monitor Service)」が表示される。
DDMSの画面最下部にある「LogCat」ビューで以下のメッセージが表示されていれば、正しく読み込まれていることになる(画像11)。
dalvikvm: Trying to load lib /data/data/com.example.hellojni/lib/libhello-jni.so dalvikvm: Added shared lib /data/data/com.example.hellojni/lib/libhello-jni.so
今回は、Android NDKとJNIによるAndroidの拡張方法について解説した。この仕組みを利用することで、ネイティブコードとの連携が可能となり、標準では不足しているAndroidの機能を拡張(組み込みデバイス固有の機能を追加)したり、既存資産を有効活用したりできる。
ただし、拡張したインターフェイスに依存したアプリケーションを個々に開発すると、資産のポータビリティは減少してしまうので、例えば、バーコードリーダ・デバイスをAndroidに機能拡張する場合、バーコード用のデバイスドライバは、Androidで定義するインターフェイスに合わせ込むようにする。そして、合わせ込んだインターフェイスを利用するAndroidアプリケーション用ライブラリを定義して利用するなどの対応が必要となる。
このような拡張インターフェイスを各メーカーが標準化していくことで、今後さまざまな組み込みデバイスで“専用のAndroid”が生まれてくることも十分に考えられる。Androidが組み込み分野にもたらす新たな可能性に大いに期待したい。
Copyright © ITmedia, Inc. All Rights Reserved.