您好,登錄后才能下訂單哦!
環境
Android Studio:1.3.2
JRE:1.7.0
Android SDK Tools:24.3.4
Android NDK:r10e
Android Studio安裝步驟略,下載地址:http://developer.android.com/tools/studio/index.html
找到下載地址后,復制到迅雷下載后安裝,Studio很好用的一個地方就是有更新直接下載安裝,不用像Eclipse那樣重新下載新版。
Android NDK下載地址:https://developer.android.com/tools/sdk/ndk/index.html
同樣迅雷下載安裝,唯一提醒一點,先把安裝包拷貝到要安裝的目錄,exe文件自動提取到當前目錄下,害的我又拷貝了一般,3個多G吶!
上述環境安裝完畢,啟動Android SDK Manager更新好Android SDK,進入正題;
首先Studio中新建一個工程,默認就是這個樣子:
在Project的local.properties文件中告知Android Studio你的ndk所在目錄:
注意':'和'\'要進行轉義
ndk.dir=D\:\\Android\\android-ndk-r10e
創建一個JNI文件(我放在一個單獨的jni包中),簡單的一個native方法add,計算兩個整數相加的值:
接著我們就要寫C層的代碼了,在main文件夾下建立一個jni的子文件夾(跟java文件夾并列,Android會默認知道這事底層的代碼源文件夾),聲明頭文件和源碼文件:
tips:可以使用javah -jni 'your jni java class with package name'來自動生成.h文件
用法:打開命令行,切換到..\your project path\app\build\intermediates\classes\debug目錄下,執行上述命令,然后把這個生成的.h文件拷貝到剛建立的jni目錄下
建一個cpp文件,名稱自己起名,我起名為math.cpp,實現頭文件中聲明的方法:
// // Created by dell on 2015/9/10. // #include "math.h" JNIEXPORT jint JNICALL Java_com_lbrant_jni_MathJNI_add (JNIEnv *env, jobject, jint a, jint b) { return a + b; }
在gradle.properties中添加如下,不然編譯器會提示錯誤:
android.useDeprecatedNdk=true
在app module中(注意不是項目根目錄),配置ndk編譯(這里只配置了moduleName和平臺):
defaultConfig { applicationId "com.lbrant.x_project" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" ndk { moduleName "math" abiFilters "armeabi", "armeabi-v7a", "x86" } }
由于是JNI和應用層是在同一個工程中,直接運行系統會自動編譯,生成Android.mk和對于so:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。