基本的なプロセスのNDKの開発をEclipseの

 基本的なプロセスは、NDKのためのEclipseの開発です。

ジャワの準備を完了するためのAndroidプロジェクト--->関数を作成し、JNIインタフェース機能(ネイティブ関数)を追加追加された--->、JNIフォルダを追加Android.mkを追加し、ソースファイル--->ソースファイルに実装インタフェース機能---> libのライブラリにコンパイルされたソースファイルとNDK-構築--->、Androidのエミュレータを起動し、インストールしてプロジェクトを実行します。

 

 例えば:

 1、オープンEclipseは、Androidのプロジェクトを追加します。プロジェクトの名前はIDETTestあり、その後、プロンプトのアクティビティ名(IDETest)およびJavaパッケージ(com.test.IDETest)を完了します。注Javaパッケージ名は最高、呼び出しは将来のJNI呼び出しに失敗する可能性があり、下線されていないため、パッケージ_Activity Java_java名_関数宣言の名前でJNI形式のインタフェース機能

 2、導入NDKクロスコンパイラを呼び出し必要なJNIのクラスで呼び出されたJavaコードの準備を完了するために:

    静的{
        System.loadLibraryを( "IDETest");

    } 

 クラス宣言ネイティブ関数で同時に(CファイルにNDKクロスコンパイラで、作成されます)

 公共のStringネイティブgenerateID(文字列のラベル)。

 

完全なJavaファイルには、次のようになります。

パッケージcom.test.IDETest;
輸入android.app.Activity。
輸入android.widget.TextView。
輸入android.os.Bundle;
パブリッククラスIDETestは{アクティビティを拡張します
    / **活動が最初に作成されたときに呼び出されます。* /
    @オーバーライド
    公共のボイドのonCreate(バンドルsavedInstanceState){
        super.onCreate(savedInstanceState)。
        //setContentView(R.layout.main);
        TextViewのテレビ=新しいのTextView(この);
        tv.setText(generateID( "47766"));
        setContentView(TV)。
    }
    
    / *ネイティブメソッドを実装します* /
    公共のStringネイティブgenerateID(文字列のラベル)。
    / ******************************* /
    / *インポートC libに* /
    静的{
        System.loadLibraryを( "IDETest");
    }

 3、JNIという名前IDETestプロジェクトにフォルダを追加します。Cは、JNIフォルダファイル(.Cと.hファイルエンジニアリング)とAndroid.mkファイルで実現するためにモジュールを追加します

  Cコンテンツファイルモジュール(IDETest.c)の

  書式#include <string.hの>

  書式#include <jni.h中>
  書式#include <stdio.hに>

 

JSTRING
Java_com_test_IDETest_IDETest_generateID(JNIEnvの* envを、
、thiz jオブジェクト
JSTRINGラベル)
{
CHAR * STR =(CHAR *)はmalloc(1024 *のはsizeof(CHAR))。
sprintf(STR、 "みなさんこんにちは、私はXXXからだ、と私のIDは%sです!"、(* ENV) - > GetStringUTFChars(ENV、ラベル、0));
printf( "%sの"、STR)。
リターン(* ENV) - > NewStringUTF(ENV、STR);
}

 Android.mkファイル

 

LOCAL_PATH:= $(私の-dirを呼び出します)
$(CLEAR_VARS)が含ま
LOCAL_MODULE:= IDETest
LOCAL_SRC_FILES:= IDETest.c
含める$(BUILD_SHARED_LIBRARY)

 

 

 4、ライブラリファイルのソースコードをコンパイルします。

 プロジェクトディレクトリに

 ルートの@ XXX-ノートパソコン:〜/ IDETest番号のLS

AndroidManifest.xmlをビン世代のlibs proguard.cfg SRC
資産default.properties JNI OBJ解像度
ルートの@ XXX-ノートパソコン:〜/ IDETest#NDKビルド
親指をコンパイルします。IDETest <= IDETest.c
SharedLibrary:libIDETest.so
インストール:libIDETest.so =>のlibs / armeabi / libIDETest.so
OBJは、自動的にLIBSフォルダの完了後に作成してコンパイルされています

そこにライブラリファイルをコンパイルしました。

 5、プロジェクトを実行するには、Androidエミュレータを起動します。

 

 

ます。https://www.cnblogs.com/imagelab/archive/2011/08/20/2147023.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_34217773/article/details/94177832