NDK筆記(二)-在Android Studio中使用ndk-build(轉)
前面一篇我們接觸了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(轉)