Android環境構成のAndroid Studio開発NDK


==============================================================================================================================================================http://blog.csdn.net/qiujuer/article/details/42040963========================================================
NDK開発はどちらが強いですか?XX XXを探しています Blue Fly.
NDK開発といえば、プロジェクトのために下の部分のC/C++を呼び出す必要がある場合があります.また効率を上げるためです.
でも、たくさんの時は使わないといいです.これはどういう理由ですか?個人的な感覚では、いくつかの時間は、まずNDKを設定する必要がありますCygwinをダウンロードし、Cygwinを配置し、コンパイルして生成する必要があります.もしEclipseを使うと言ったら、確かにこのようにコンパイルしても簡単にたくさんできますが、前の段階もたくさん配置しなければなりません.えっと、配置が間違っていて、まだ傷がつきません.
今Googleの主力はAndroid Studioを推進しています.これはいいツールです.少なくとも今はEclipseでできるところがあります.ここにあるEclipseには必ずありません.
次にAndroid StudioでNDKの開発について説明します.
準備工作
Android Studio環境構築
私の前の文章[Android]環境構成の正式版Android Studio 1.0 に紹介されました
NDK環境構築
  • ダウンロード:http://developer.android.com/tools/sdk/ndk/index.html
  • Windows 32:android-ndk-r 10 d windows-x 86.exe
  • Windows 64:android-ndk-r 10 d windows-x 86_64.exe
  • Mac OS X 32-bit:android-ndk-r 10 d darwin-x 86.bin
  • Mac OS X 64-bit:android-ndk-r 10 d darwin-x 86_64.bin
  • Linux 32-bit(x 86):android-ndk-r 10 d-linux-x 86.bin
  • Linux 64-bit(x 86):android-ndk-r 10 d-linux-x 86_64.bin
  • すべて実行可能なファイルです.ダウンロードしたら、現在のフォルダに解凍できます.もちろんコマンドラインを使ってフォルダ間のストレス解消を行うことができます.
    プロジェクトを構築するNDKDemo:
    [Android] 环境配置之Android Studio开发NDK_第1张图片
    対応するクラスを確立して、MathKitでINT値を計算する平方数を実現します.
    public class MathKit {
        public static native int square(int num);
    
        static {
            System.loadLibrary("JniDemo");
        }
    }
    
    StringKitこれは充数用です.
    public class StringKit {
        public static native void setNull(String str);
        static {
            System.loadLibrary("JniDemo");
        }
    }
    
    準備.hファイル
    Javaディレクトリに入りますCMDはこのディレクトリに入ってjavah操作を行います.
    [Android] 环境配置之Android Studio开发NDK_第2张图片
    これはきっと皆さんはよく知らないでしょう.このファイルはjava類の対応するヘッダファイルです.もちろんあなたが強いなら、このように生成しなくてもいいです.自分でコードを押して完成してもいいです.どうせだめです.
    以下のようにフォルダを作成します.
    [Android] 环境配置之Android Studio开发NDK_第3张图片
    前のファイルをコピーして入ればいいです.
    [Android] 环境配置之Android Studio开发NDK_第4张图片
    それぞれの実装:
    netqiujurer_dkdemoジニMathKit.cpp
    #include 
    
    JNIEXPORT jint JNICALL Java_net_qiujuer_ndkdemo_jni_MathKit_square
      (JNIEnv *env, jclass cls, jint num)
      {
            return num*num;
      }
    
    netqiujurer_dkdemoジニStringKit.cpp
    #include 
    
    JNIEXPORT void JNICALL Java_net_qiujuer_ndkdemo_jni_StringKit_setNull
      (JNIEnv *env, jclass obj, jstring str)
      {
    
      }
    
    設定項目
    ルートディレクトリの設定:local.properties
    [Android] 环境配置之Android Studio开发NDK_第5张图片
    この設定は必須ではありません.環境変数を設定したら設定しなくてもいいです.もしないですが、設定がないと、
    APP項目を設定する build.gradle
    [Android] 环境配置之Android Studio开发NDK_第6张图片
    この設定は、Jniの名前を設定するために生成されました.
    メインファイルの呼び出し:
    [Android] 环境配置之Android Studio开发NDK_第7张图片
    今はクリックして実行します.
    [Android] 环境配置之Android Studio开发NDK_第8张图片
    見えるのはとても簡単です.この呼び出しは私が操作した一番簡単なものと言えます.生成することもできます.Hファイルは編集できます.shファイルはバッチ処理を行います.
    詳細
    普段の操作では私達は避けられないものを作ります.
    Android.mk
    LOCAL_PATH		:= $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE    := genius
    LOCAL_SRC_FILES := net_qiujuer_imageblurring_jni_ImageBlur.cpp
    LOCAL_LDLIBS    := -lm -llog -ljnigraphics
    
    include $(BUILD_SHARED_LIBRARY)
    Apple.mk
    APP_ABI		:= all
    APP_PLATFORM:= android-19
    APP_OPTIM	:= release
    ここではこの二つの書類が作成されていませんが、どうやって決定されますか?
    私達はndkのmodelNameでCtrlを押してクリックすることができます.この画面が現れます.
    [Android] 环境配置之Android Studio开发NDK_第9张图片これらはすべて設定可能なパラメータである.それぞれ対応:
            ndk{
                moduleName "JniDemo" //         
                cFlags "-DANDROID_NDK -D_RELEASE" //          
                ldLibs "m", "log", "jnigraphics" //     LOCAL_LDLIBS           “l”
                abiFilters "all" //       APP_ABI
                stl "stlport_shared" //       APP_STL 
            }
    はい、これだけで成功を祈ります.プロジェクトパッケージアップロード.
    今回のプロジェクトはここをクリックしてダウンロードします.
    ==============================================================================================================================================================http://blog.csdn.net/qiujuer/article/details/42040963========================================================