チュートリアル

1.JNIの環境構築

ユーザーアプリからテストポイントを出力するにはいくつかのインターフェースを使う必要があります。
直接インターフェースを制御することはできないため、JNIを経由して制御しテストポイントを出力するようにします。

1-1.NDKのダウンロード

以下のページより、Android NDKをダウンロードします。
お使いのOSに合わせてダウンロードしてください。
http://developer.android.com/tools/sdk/ndk/index.html

1-2.環境設定

NDKのインストールはダウンロードしたファイルの圧縮を解凍するだけです。
ダウンロードしたファイルを解凍してください。
1-2_1

解凍が終わったらNDKファイルを環境構築するフォルダ(DT10フォルダ)へコピーします。
1-2_1

コピーが終わったら、Path設定を行います。
viエディタで ~/.bashrcファイルを開きます。
1-2_1

NDKのPATHを記入し、フォルダを追加します。
下記の赤枠の部分を追加してください。
1-2_1

2.ドライバのカスタマイズ(Java)

2-1.ドライバファイルの追加

ダウンロードしたドライバを以下のようにコピーします。
・Javaファイル
⇒JavaファイルはAndroidプロジェクトのsrcフォルダ下に追加します。
今回はsrcフォルダ下のcom.heartland.blockに追加しています。
1-2_1

・Cファイル
まずはAndroidプロジェクトにjniフォルダを生成します。
1-2_1

生成したフォルダにCファイルをコピーします。
1-2_1

コピーが終わったら、eclipseを起動してコピーしたドライバがあるかを確認します。
1-2_1

2-2.Package名の修正

コピーしたドライバはサンプルドライバなので、お客様の環境に合わせてカスタマイズする必要があります。
DTdrv.javaとDtTestPointDriver.javaファイルのpackage記述をAndroidプロジェクトのpackage名に合わせて修正します。

3.接続方式によるドライバのカスタマイズについて(C言語)

> Ethernet 接続の場合
⇒プロトコル、IP アドレス、ポート番号の設定を行います。

> ファイル書き出しの場合
⇒ファイルフォーマット、保存先の設定を行います。

4.C言語ヘッダファイルの抽出

Java側からjni経由でテストポイントを出力する為、native関数が宣言されたヘッダファイルを抽出する必要があります。
DTdrv.javaファイルにnative関数のクラスが記載されているので、このクラスからヘッダファイルを抽出します。
ヘッダファイルの抽出はjavahを使って行います。
以下はサンプルプロジェクトのblockからヘッダファイル抽出する例なので、実際の作業時には
お客様の環境に合わせてフォルダを指定します。

1. DTdrv.classが存在するかを確認します。
1-2_1

2. DTdrv.classが確認できたら、javahでヘッダファイルを抽出します。
1-2_1

3. ヘッダファイルが抽出されたか確認します。
1-2_1

4. ヘッダファイルの名前を「DTdrv.h」に変更してjniフォルダへコピーします。
1-2_1

5.Android.mkの作成

jniフォルダにあるCファイルをビルドする為にはAndroid.mkファイルを作成する必要があります。
viやgeditでAndroid.mkファイルを作成するか、サンプルドライバにあるAndroid.mkを使用してください。
ファイルの内容は以下になります。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := DTdrv

LOCAL_SRC_FILES := DTdrv.c

include $(BUILD_SHARED_LIBRARY)

6.native関数名の変更

抽出したDTdrv.hファイルを開いてみるとnativeの関数が宣言されています。
サンプルのDTdrv.cファイルに実装されているnative関数名とは違うため、
DTdrv.hの関数名に合わせて変更する必要があります。
native関数名は以下の形になっているので、package名の部分だけ変更します。
(クラス名を変更した場合はクラス名の部分も変更する必要があります。)

・Java_package名_class名_関数名

Ex) Java_com_heartland_block_BlockJNI_TPBusOut

 →Java_com_heartland_block_DTdrv_TPBusOut

7.コンパイル・動作確認

DT10でテストレポートを取得するためには、ドライバ関数が挿入された状態のソースコードをターゲット環境上で動作させる必要があります。
お使いの環境にドライバを使し、コンパイルやビルドなどを行いエラーが発生しないことを確認します。
jniを使うための環境設定をドライバ作成が終わったら、jniフォルダのビルドを行います。
1-2_1

ビルドが正常に終了したら、eclipseにjniのライブラリが表示されます。
(表示されない場合はF5キーにて更新を行ってください。)
1-2_1

ドライバの動作確認が完了したら、DT10でプロジェクトを作成し、実際にテストレポートを取得してみましょう。

レポート取得へ