現在開發Android程序基本都已經從Eclipse轉到了Android Studio了, 近期項目需求, 需要用到ndk編程, 因而就折騰了一下。java
首先咱們新建一個project叫作NdkDemo, 建立後的project文件夾結構例如如下android
而後咱們打開gradle.properties文件, 在文件的尾端寫一句。 假設沒有寫這一句會編譯不經過編程
android.useDeprecatedNdk=true
接着配置ndk路徑, 點擊左上角File而後選擇Project Structure(或者直接點擊紅框標註的那個button)進入配置界面, 而後在紅框內配置下載好的ndk路徑就能夠。bash
到此,配置工做就全部完畢。 如下進行開發相關的工做。markdown
相信在Eclipse進行ndk編程過的同窗都知道咱們要去編寫Android.mk, 但是在Android Studio是全然不用咱們去編寫的, 咱們僅僅需要在gradle下寫幾個簡單的語句。 Studio就會本身主動幫咱們寫好Android.mk,很方便。app
defaultConfig {
...
ndk{
moduleName "ndk-demo" //要引用module的名字
ldLibs "log" //引用庫的名字(選填)
abiFilters "armeabi" //配置需要編譯出那些版本號的so庫(假設不寫,就編譯出全部版本號的so庫)
}
}
以上就是app文件夾的build.gradle的配置, 僅僅需要在defaultConfig 節點下寫入ndk相關的配置就可以了。函數
接着咱們新建一個Comman類, 寫一個本地函數, System.loadLibrary的參數填的就是剛纔在build.gradle配置的moduleName工具
public class Command {
public static native String getStringFromC();
static{
System.loadLibrary("ndk-demo");
}
}
而後咱們右鍵app文件夾, 選擇新建一個jni文件夾
post
點擊下方的控制檯Tab。 輸入一下命令, 就會發現奇妙的在jni文件夾下會本身主動生成相關的.h文件gradle
解釋一下兩句命令行的意思。第一句意思是進入到app/src/main/java文件夾下。第二句中, javah是jdk一個生成頭文件的工具。 -d ../jni 表示生成的文件要放到上一層文件夾的jni文件夾下。 com.zwf.ndkdemo.ndk.Command就是剛纔咱們寫的Command的全路徑。
有了頭文件咱們就可以開始編寫相關的c文件了, 在jni文件夾下新建一個c文件跟剛纔的頭文件名稱字同樣。 寫入相關的功能。
點擊執行, 成功!
那麼。 咱們生成的so庫在哪裏找呢。
完畢!