標籤:html terminal cmake 預設 實現 make read config 建立
前面一篇我們接觸了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~~
其公眾號是Google開發人員
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(轉)