Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Studio Ndk 編程

Android Studio Ndk 編程

編輯:關於Android編程

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

開發環境

Android Studio 1.5.1 android-ndk-r10e gradle 2.8

首先我們新建一個工程叫做NdkDemo, 創建後的工程目錄結構如下

這裡寫圖片描述

然後我們打開gradle.prZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcGVydGllc87EvP6jrCDU2s7EvP61xM6ytsvQtNK7vuSjrCDI57n7w7vT0NC01eLSu77ku+Gx4NLrsrvNqLn9PC9wPg0KPHByZSBjbGFzcz0="brush:java;"> android.useDeprecatedNdk=true

接著配置ndk路徑, 點擊左上角File然後選擇Project Structure(或者直接點擊紅框標注的那個按鈕)進入配置界面, 然後在紅框內配置下載好的ndk路徑即可。

這裡寫圖片描述

這裡寫圖片描述

到此,配置工作就全部完成, 下面進行開發相關的工作。
相信在Eclipse進行ndk編程過的同學都知道我們要去編寫Android.mk, 但是在Android Studio是完全不用我們去編寫的, 我們只需要在gradle下寫幾個簡單的語句, Studio就會自動幫我們寫好Android.mk,非常方便。

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目錄
這裡寫圖片描述

點擊下方的控制台Tab, 輸入一下命令, 就會發現神奇的在jni目錄下會自動生成相關的.h文件

這裡寫圖片描述

這裡寫圖片描述

解釋一下兩句命令行的意思。第一句意思是進入到app/src/main/java目錄下。第二句中, javah是jdk一個生成頭文件的工具, -d ../jni 表示生成的文件要放到上一層目錄的jni文件夾下, com.zwf.ndkdemo.ndk.Command就是剛才我們寫的Command的全路徑。

有了頭文件我們就可以開始編寫相關的c文件了, 在jni文件夾下新建一個c文件跟剛才的頭文件名字一樣, 寫入相關的功能。

這裡寫圖片描述

點擊運行, 成功!

這裡寫圖片描述

那麼, 我們生成的so庫在哪裡找呢。

這裡寫圖片描述

完畢!Demo源碼

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved