《客戶端瘦身及快速打包實(shí)踐應(yīng)用》
具體要點(diǎn)。
一.客戶端瘦身。
1.如何分析和梳理apk瘦身方法。使用Android Studio自帶apk分析工具進(jìn)行APK包內(nèi)容組成分析。
2.客戶端瘦身具體分三個(gè)方向。
第一:圖片資源瘦身。?
?? ? ? ? 1.講解webp圖片文件實(shí)踐操作。
?? ? ? ? 2.講解webp兼容性。
? ? ? ? ? ? 4.2.1+ 對(duì)于webp的decode、encode是完全支持的(包含半透明的webp圖)
? ? ? ? ? ? 4.0+到4.2.1,只支持完全不透明的decode、encode的webp圖
? ? ? ? ? ? 4.0 以下,應(yīng)該是默認(rèn)不支持webp的(編碼解碼) 如需兼容支持則需要引入其他兼容方式進(jìn)行兼容處理。
? ? ? ? ? ? 參考博客:https://blog.csdn.net/lmj623565791/article/details/53240600
?? ? ? ? ? ? ? ? ? ? ? ? ? https://stackoverflow.com/questions/28188374/check-if-the-device-supports-webp-image-format
? ? ? ? ? ?3.在Android Studio 內(nèi)使用自帶移除無用資源文件功能,進(jìn)行無用資源自動(dòng)移除。

第二:第三方SO包
?? ? ? ? 1.梳理apk包內(nèi)so包歸屬,將so包進(jìn)行分類處理。諸如,文本標(biāo)記一下so包所屬的功能等。
?? ? ? ? 2.記錄so包各自的大小。
?? ? ? ? 3.清理多余的so包文件。只保留 如下三個(gè)配置文件內(nèi)的so包
ndk {
? ? abiFilters 'armeabi-v7a','arm64-v8a','x86'
}
參考:
? mips / mips64:極少用于手機(jī)可以忽略
? x86 / x86_64: x86架構(gòu)的手機(jī)都會(huì)包含由Intel提供的稱為Houdini的指令集動(dòng)態(tài)轉(zhuǎn)碼工具,實(shí)現(xiàn)對(duì)arm .so的兼容,再考慮x86 1%以下的市場(chǎng)占有率,x86相關(guān)的兩個(gè).so也是可以忽略的
? armeabi: ARM v5 這是相當(dāng)老舊的一個(gè)版本,缺少對(duì)浮點(diǎn)數(shù)計(jì)算的硬件支持,在需要大量計(jì)算時(shí)有性能瓶頸?
? armeabi-v7a: ARM v7目前主流版本
? arm64-v8a: 64位支持
第三:源代碼過于臃腫。
? ? ? ? ? 1. 分析代碼組成結(jié)構(gòu)。剔除沒有用到的第三方庫(kù)代碼。
? ? ? ? ? 2.對(duì)代碼體積進(jìn)行排序。挑選出非核心但體積過大的包。準(zhǔn)備后期進(jìn)行插件化。
? ? ? ? ? 3.在項(xiàng)目混淆文件內(nèi)部指定代碼壓縮級(jí)別為7。-optimizationpasses 7
二.熱更新
?? ? 1.建議引入tinker熱更新框架。
三.Android插件化
?? ? 1.講解360插件化工程配置操作。
? ? ?2.插件工程宿主及插件工程如何配置講解。
? ? ?3.插件工程以百度語音為例進(jìn)行講解說明。
? ? ?4.插件工程升級(jí)及后臺(tái)部署方案講解。
四.斷點(diǎn)續(xù)傳
?? ? 1.采用第三方斷點(diǎn)續(xù)傳包。
? ? ?2.第三方斷點(diǎn)續(xù)傳包采用https://github.com/lingochamp/FileDownloader??
? ? ?3.講解FileDownloader 用法。
五.fastlane快速打包。
?? ? 1.Android、IOS fastlane 配置及打包方法。
? ? ?2.fastlane 本機(jī)配置部署。
? ? ?3.fastlane 實(shí)踐操作(配置打包版本及簽名參數(shù)配置)。
六.其他工具下載
? ? ?https://imageoptim.com/mac
? ? ?https://www.xnview.com/en/xnconvert/#downloads