NDK筆記(二)-在Android Studio中使用ndk-build

前面一篇咱們接觸了CMake,這一篇寫寫關於ndk-build的使用過程。剛剛用到,想到哪兒寫哪兒。java

環境背景

Android開發IDE版本:AndroidStudio 2.2以上版本(目前已經升級到2.2.3)android

計算機環境:Window 64位系統編程

Demo工程的建立與設置

1.新建一個工程,並在app/src/main路徑下新建jni文件夾。

image

 

2.在java代碼中,新建NdkBuildTest類(包含native方法),並用javah命令生成頭文件。

image

 

image

這裏須要注意幾點:微信

(1)javah是JDK中的程序,因此須要將JDK的bin路徑添加到計算機的環境變量path中,才能在terminal中使用這個命令。app

(2)javah命令中,-d指定建立頭文件的目標路徑,-classpath指定類的路徑,因爲當前路徑是main,因此指定其中的java便可。編輯器

效果以下:gradle

image

3.新建C文件,實現native方法

image

4.在jni路徑下新建Android.mk文件

image

5.在Module(app)的build.gradle中進行ndk-build配置

image

這裏主要配置兩點:網站

(1)在defaultConfig節點中,添加ndk,在這裏做一個abi的過濾,(默認的abi好像是MIPS)ui

(2)在android節點中,添加externalNativeBuild節點,在裏面配置ndkBuild的makefile路徑。(用Cmake的話,也是在這裏進行配置)google

6.配置完成後,同步工程,在C文件中進行編程,就能夠引入相應的頭文件,並會有相應的代碼提示。

image

注意:通常同步工程後,編輯器就能夠找到相應的頭文件,就不會標紅報錯。

        固然,即便標紅報錯,提示找不到頭文件,只要編譯時可以Build Success,工程也是可以正常運行的。

其餘

1.Google Developers中國網站

就在昨天,Google Developers中國網站開通了,喜大普奔~~23333~~

其微信公衆號是谷歌開發者

2.關於Android.mk

關於Android.mk的編寫,AndroidStudio上好像也無法自動生成,一直都是手動Coding。

昨天剛剛找到一個關於Android.mk的網站,先做記錄,改天再研讀一下。

這裏寫幾點這段時間用到的經驗吧:

(1)若是有多個文件夾,須要用一個Android.mk文件include全部子文件夾下面的Android.mk文件:

image

這個文件就是配置在build.gradle中的文件。

(2)若是在工程中須要連接一個非系統的so庫(Android系統中找不到的庫),則在Android.mk中,先對該庫進行預編譯,而後再在當前須要生成的module中連接該庫:

image

這樣,在生成的APK中,就能夠看到libReady.so 和當前生成的libCurrent.so都被打包在libs路徑中了。

相關文章
相關標籤/搜索