《客户端瘦身及快速打包实践应用》
具体要点。
一.客户端瘦身。
1.如何分析和梳理apk瘦身方法。使用Android Studio自带apk分析工具进行APK包内容组成分析。
2.客户端瘦身具体分三个方向。
第一:图片资源瘦身。
1.讲解webp图片文件实践操作。
2.讲解webp兼容性。
4.2.1+ 对于webp的decode、encode是完全支持的(包含半透明的webp图)
4.0+到4.2.1,只支持完全不透明的decode、encode的webp图
4.0 以下,应该是默认不支持webp的(编码解码) 如需兼容支持则需要引入其他兼容方式进行兼容处理。
参考博客:https://blog.csdn.net/lmj623565791/article/details/53240600
https://stackoverflow.com/questions/28188374/check-if-the-device-supports-webp-image-format
3.在Android Studio 内使用自带移除无用资源文件功能,进行无用资源自动移除。
第二:第三方SO包
1.梳理apk包内so包归属,将so包进行分类处理。诸如,文本标记一下so包所属的功能等。
2.记录so包各自的大小。
3.清理多余的so包文件。只保留 如下三个配置文件内的so包
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86'
}
参考:
• mips / mips64:极少用于手机可以忽略
• x86 / x86_64: x86架构的手机都会包含由Intel提供的称为Houdini的指令集动态转码工具,实现对arm .so的兼容,再考虑x86 1%以下的市场占有率,x86相关的两个.so也是可以忽略的
• armeabi: ARM v5 这是相当老旧的一个版本,缺少对浮点数计算的硬件支持,在需要大量计算时有性能瓶颈
• armeabi-v7a: ARM v7目前主流版本
• arm64-v8a: 64位支持
第三:源代码过于臃肿。
1. 分析代码组成结构。剔除没有用到的第三方库代码。
2.对代码体积进行排序。挑选出非核心但体积过大的包。准备后期进行插件化。
3.在项目混淆文件内部指定代码压缩级别为7。-optimizationpasses 7
二.热更新
1.建议引入tinker热更新框架。
三.Android插件化
1.讲解360插件化工程配置操作。
2.插件工程宿主及插件工程如何配置讲解。
3.插件工程以百度语音为例进行讲解说明。
4.插件工程升级及后台部署方案讲解。
四.断点续传
1.采用第三方断点续传包。
2.第三方断点续传包采用https://github.com/lingochamp/FileDownloader
3.讲解FileDownloader 用法。
五.fastlane快速打包。
1.Android、IOS fastlane 配置及打包方法。
2.fastlane 本机配置部署。
3.fastlane 实践操作(配置打包版本及签名参数配置)。
六.其他工具下载
https://imageoptim.com/mac
https://www.xnview.com/en/xnconvert/#downloads