2012-05-04 12 views
0

JNIを使​​用してAndroidアプリケーションで使用したいCコード(testFile.c)があります。 このコードには純粋なCコードが含まれており、内部には多くのメソッドがあります。さらに、Cヘッダファイル(ファイル1.h、ファイル2.h)も呼び出します。例えばCコードをJNIコードに変換する方法

:私はすべてではないの(JNIコードにTESTFILE .Cの全体を変換、またはちょうど私が後で使用されますいくつかのメソッドを変換するために持っているかどうか TESTFILE .C

#include "file1.h" 
#include "file2.h" 

void myMethod1() 
{ 
    ... 
    ... 
} 
void myMethod2() 
{ 
    ... 
    ... 
} 
void myMethod3() 
{ 
    ... 
    ... 
} 

それら)? ヘッダファイル(file1.hとfile2.h)の中でcコードを変換するか、testFile.cのcコードを変換するだけですか?

答えて

1

最も簡単な方法は、JNI Javaサイドインタフェースを定義し、cメソッドスタブの自動生成javahを使用してcファイルを生成することです。このcファイルでは、実際のcメソッドmethod1()method2()、およびmethod3()を呼び出します。

http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javah.html

+1

ご回答いただきありがとうございます。しかし、 申し訳ありませんが、私の質問は、私もヘッダーファイル(file1.hとfile2.h)内のcコードを変換する必要があります、または私はちょうどtestFile.cのCコードを変換する? –

+1

http://marakana.com/forums/android/examples/49.html –

3

またはあなたのJavaとCコードとの間のインターフェイスは非常にシンプルですが、Android上でJNIを使​​用しての全体的なプロセスが不慣れであれば、あなたは多かれ少なかれからのhello-jniを例にあなたのCコードをマージすることができますndk。重要な点は、構築して作業するものから始め、必要なものを少しずつ追加し、問題にぶつかったらバックアップして、どの段階で破ったのか把握することです。

+0

お返事ありがとうございます。しかし、申し訳ありませんが、私の質問は、私もヘッダーファイル(file1.hとfile2.h)内のcコードを変換する必要があります、または私はちょうどtestFile.cのCコードを変換する? –

+0

Cコードと同様に、ndkビルド環境、アンドロイド実行環境、プロセスライフタイムへのアクティビティライフサイクルの影響などと適合するようにする必要があるかどうかによって異なります。これは、特定の答えについては広すぎる質問です。あなたが1つに遭遇した場合、何かを試して、特定の問題を持つ新しい質問を投稿してください(ただし、*時折のエラーを避けるためにアクティビティのライフサイクルドキュメントを読んで理解してください)。 –

+0

ありがとう、ありがとう。 –