JDK跟NDK簡介
JDK全名為Java Developer Kit, 顧名思義就是使用Java語言作開發。而NDK為Native Developer Kit,
是將C/C++寫成一個JDK的lib去使用, 利用C/C++運算處理速度是JAVA 3倍以上的效能去加速需要大量運算的處理,也可以用來寫不希望被看光光的程式碼區塊。
JNI LOG
@Thread與UI Thread使用
cmake 本身是 cross compile 工具 只要是C/c++ 都可以用啊
簡單說就是寫 cmake 腳本,然後把各種原始碼掛進去,
設定 GCC,接著自動產生 makefiles ,然後接著BUILD 就好了
.mk 只不過是產生 makefiles 腳本的參考來源罷了,CMake 一樣可以產生 makefiles
.mk 是 autotools 工具 configure 產生時候需要的來源設定檔
最終目的,也只是為了產生 Makefiles
那麼 CMake 寫完,最終目的也是產生 Makefiles
所以結論是,用 CMake 產生 Makefiles 之後 BUILD
然後用 CMake Post Build 功能,自動打包成 APK 就好了
當然你可以選擇用 autotools 寫 *.mk 然後自己連結 目的是一樣的
apk 不過就只是一種打包檔而已,就類似 jar zip 之類的
整個 android 程式分成三個階段
1. JNI/NDK 一個階段,先產生 *.SO 檔,這是動態庫
2. 手動產生 JAVA Application檔,啟動程式,編譯它會生成 *.class
同時或是選擇利用 NDK 設定檔,自動產生 java Application 檔案,然後一樣是編譯成 *.class
3. 最後一步,是把目錄中所有東西打包,包括一堆的 .class 和 JNI中的.SO 還有一堆的 res。反正就最終打包成一個 APK檔案
產生APK,這個功能,可以在任何地方做出來,不需要透過 CMAKE 或是任何東西,只要你可以跑放在 JDK 中的apk功能就好,甚至可以自己寫程式去打包
上面講的三個步驟,可以透過各種 "自動編譯腳本" 完成
只要有辦法達到 cross compile 就好了