android NDK技術上的使用非常廣泛,遊戲、視頻、加密等等都需要使用到C、C++動態庫,到此需要我們使用NDK完成,使用NDK開發帶來效率上優化,數據的安全行等等可靠。這章節我們來學習NDK在android上搭建,與需注意的地方。
1,下載NDK,如果沒翻牆,可以去尋找國內的一提供網站,這裏我經常使用的是http://www.androiddevtools.cn/,資源豐富。
2,安裝後(解壓即可),在android studio上項目文件local.properties配置NDK路徑。如圖
或者
3,配置項目gradle.properties文件 如圖
4,通過編寫java文件,編寫調用jni層方法
5,clean或者rebuild一下,主要是爲了生成NdkUtils這個類資源,在build\intermediates\classes\debug下可以看到類文件的生成。如圖
6,使用android studio 的Terminal命令,進入項目main路徑下,生成頭文件,使用javah方式。
語法:
javah -d jni -classpath E:\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-16;..\..\build\intermediates\classes\debug jet.ndk.NdkUtils
解析:
(1)E:\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-16需要版本工具路徑。
(2)build\intermediates\classes\debug類資源文件的路徑。
(3)jet.ndk.NdkUtils是native方法的類,必須是包命+類名。
生成後結果如下:
7,創建C、C++文件(main.c),主要是實現頭文件的方法。Util.c是androidNDK的一個bug,創建空的Uti.c文件即可。注意導入頭文件。
8,配置gradle的生成相應的庫(so)文件,也有使用mk文件生成,這裏我使用gradle去自動生成,modelname是你要給so庫名字的定義,與上面步驟4中的名字對應。
9,rebulid一下生成相應的so庫文件,路徑是在,最後進行相應的拷貝到lib包下,與jni包下。
其實這個流程感覺還是挺複雜,可以去看下其他博客,在最新的as上有更加簡介的方法去使用NDK。下章節我們學習jni層代碼的基本語法。
23:00,澡都沒、飯沒吃!咋辦?--->淒涼.jpg