Android Studio Ndk 編程

現在開發Android程序基本都已經從Eclipse轉到了Android Studio了, 近期項目需求, 需要用到ndk編程, 因而就折騰了一下。java

開發環境

  • Android Studio 1.5.1
  • android-ndk-r10e
  • gradle 2.8

首先咱們新建一個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庫在哪裏找呢。

這裏寫圖片描寫敘述

完畢!

Demo源代碼

相關文章
相關標籤/搜索