Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Studio NDK JNI開發入門記錄

Android Studio NDK JNI開發入門記錄

編輯:關於Android編程

很早使用eclipse+ndk研究過jni開發,當時覺得配置、開發起來很麻煩,現在使用Android Studio開發jni,相對覺得比較容易。

先說明一下開發環境

Mac OS X 10.11

Android Studio 2.0

現在開始一步一步地進行jni開發。

首先,使用AS創建一個project,命名為JniDemo

\

 

 

如果沒有安裝NDK,安裝NDK。 已安裝,可略過。

打開項目設置對話框,如果沒有安裝NDK, 在Android NDK Location位置就會有Download按鈕,可下載安裝NDK。

\

 

\

 

 

新建一個java類EnUtils, 增加兩個native方法。如圖。

\

 

Rebuild Project之後,build/intermediates/classes/debug目錄下就會生成 EnUtils.class文件

\

 

進入到debug目錄下,執行javah命令,就會生成一個頭文件com_martin_jnidemo_EnUtils.h

命令:javah -jni com.martin.jnidemo.EnUtils

\

 

src/main目錄下,創建jni目錄,把之前生成的頭文件復制到jni目錄下。

 

\

 

 

在jni目錄下,創建c源文件,文件名可隨意。

函數實現,如圖。

這一步之後就可以Rebuild Project了,但會出錯,依據提示修改gradle即可。

\

 

 

配置gradle

1. 在gradle.properties中增加一行android.useDeprecatedNdk=true

2. 在app的build.gradle的defaultConfig中增加

ndk {
moduleName "EnUtilsName" //so名字
abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64"
}


 

\

 

\

 

 

到此為止,再Rebuild Project,就生成了so文件。如圖。

接下來就是如何使用調用so庫文件了。

\

 

 

 

在EnUtils類中添加加載so庫的代碼,名稱要和build.gradle中定義的ndkmoduleName一致。

 

static {
    System.loadLibrary("EnUtilsName");
}

 

\

 

調用沒有什麼特別的,如圖。

\

 

 

運行效果

\

 

 

以上是ndk jni開發的步驟。

下面將要介紹,編譯生成的so文件如何單獨使用。

 

1. 刪除jni目錄,以及目錄下的.h .c文件

2. build.gradle中ndk配置也刪除掉。

\

 

 

在src/main下創建jniLibs目錄,再將ndk/debug/lib下的4個so目錄復制到jniLibs目錄下。

再重新Clean Project, Rebuild Project即可。

 

\

\

 

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