一透乾,編譯前的準(zhǔn)備
由于Smart_Gis安卓客戶端的需要,所以需要把skia庫編譯成安卓平臺Arm64_v8a版本的so庫磕秤。由于要求是Android NDK版本 12以上续徽,Android API 21以上的支持。
所以在本次編譯過程中全部需要使用64位的操作系統(tǒng)亲澡,NDK及編譯器钦扭,編譯環(huán)境為 操作系統(tǒng):wondows 10 企業(yè)版,安卓NDK版本:android-ndk-r14b Windows版本,skia版本:github下載,depot_tools版本: https://skia.org/下載床绪,Python版本:2.7客情。
在本次編譯過程中遇到的最大的困難是在編譯的過程中必須要翻墻到google的服務(wù)器下載很多相應(yīng)的編譯構(gòu)建所需的文件,本人翻墻下載編譯構(gòu)建文件的過程中出現(xiàn)了無數(shù)次的下載失敗癞己,血和淚膀斋。
二,配置系統(tǒng)環(huán)境變量
1痹雅,安裝python2.7仰担,必須是2.7,其他版本不行绩社,添加python安裝目錄到系統(tǒng)環(huán)境變量摔蓝。
2,配置depot_tools系統(tǒng)環(huán)境變量朴沿,將depot_tools安裝目錄拷貝到系統(tǒng)path環(huán)境變量里面猜谚。
按照官方編譯指南https://skia.org/user/build 的指導(dǎo)败砂,需要先下載`skia庫源碼和depot-tools工具包`,官方下載指南在https://skia.org/user/download上魏铅,然而這種方法需要翻墻昌犹,兩個包大小加起來有40M,翻墻下載也很慢览芳,因此可以轉(zhuǎn)到github去下載斜姥,地址如下: Skia:https://github.com/google/skia ?
Depot-tools:https://github.com/coreos/depot_tools
下載完兩個包之后,解壓兩個包路操,把depot-tools目錄添加到系統(tǒng)Path環(huán)境變量疾渴,把skia-master重命名為skia。這樣就完成了兩個包的配置屯仗。
三日矫,編譯安卓so庫
這一步是按照官方指南,下載依賴包。要下載的依賴包的信息都在skia目錄的`DEPS`文件里垂谢,可以看到這些依賴包都要從谷歌的代碼倉庫下載苇经,因此要翻墻理卑,否則無法進(jìn)行下去大年。翻墻之后,打開powershell或cmd鞠呈,cd到skia目錄融师,執(zhí)行命令:`python tools/git-sync-deps`。如果不出錯誤地完成蚁吝,那就代表依賴包正常下載到位旱爆,可以準(zhǔn)備編譯了。在控制臺里面進(jìn)入skia目錄下執(zhí)行以下命令bin\gn gen out\arm64 --args='is_component_build=truetarget_os="android"is_debug=truendk_api=21ndk="E:\android-ndk-r14b-windows-x86_64\android-ndk-r14b\" target_cpu="\arm64"\'
out/arm是動態(tài)庫生成的位置窘茁,這個可以自己指定
ndk_api也要結(jié)合自己的需要來更改
ndk路徑請更改為自己的ndk路徑
target_cpu是自己生成的指令平臺,可以是arm,arm64,armx64,armx86等怀伦。
開始編譯,執(zhí)行命令:
sudo ninja -C out/arm64
該命令執(zhí)行成功后會在out/arm64下生成一個libskia.so山林。