1. 程式人生 > >NDK筆記(二)-在Android Studio中使用ndk-build(轉)

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

路徑 width 能夠 jdk ide 代碼 目標 -1 adl

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

環境背景

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

計算機環境:Window 64位系統

Demo工程的創建與設置

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

技術分享

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

技術分享

技術分享

這裏需要註意幾點:

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

(2)javah命令中,-d指定創建頭文件的目標路徑,-classpath指定類的路徑,由於當前路徑是main,所以指定其中的java即可。

效果如下:

技術分享

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

技術分享

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

技術分享

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

技術分享

這裏主要配置兩點:

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

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

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

技術分享

註意:一般同步工程後,編輯器就可以找到相應的頭文件,就不會標紅報錯。

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

其他

1.Google Developers中國網站

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

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

2.關於Android.mk

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

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

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

(1)如果有多個文件夾,需要用一個Android.mk文件include所有子文件夾下面的Android.mk文件:

技術分享

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

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

技術分享

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

轉自:http://www.cnblogs.com/tt2015-sz/p/6148723.html

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