参考鸿洋大神的博客整理的https://mp.weixin.qq.com/s/QVOYF2nfoWMCbM5YsxQgRQ
一、性能优化的几个方面
- APP启动速度
- UI流畅度
- 内存优化
- apk瘦身
- 电量优化
二、APP启动速度优化
利用主题防止出现白屏,针对启动速度慢,尽可能减少Application的onCreate中的初始化动作,比如一些不重要的SDK延迟和异步加载,多进程情况下必须在onCreate下区分进程做一些初始化操作,部分将要使用的类使用异步加载,
启动加速:https://www.jianshu.com/p/f5514b1a826c
应用的启动分为热启动,冷启动,温启动
方案1:主题切换:使用activity的windowBackground主题属性为启动的activity提供简单的drawable
方案2:白屏情况可以修改 styles.xml中主题相关的代码,
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
四、apk瘦身 参考资源:http://t.cn/RGjNpam
- 仅取一套设计图资源 ,比如 720P 可放在xhdpi目录下
-
开启minifyEnabled混淆代码 减少apk大小 酌情使用
android { buildTypes { release { minifyEnabled true } } }
-
开启shrinkResources去除无用资源
android { buildTypes { release { shrinkResources true } } }
-
删除无用的语言资源
android { defaultConfig { resConfigs "zh" } }
-
使用tinypng有损压缩 官网地址:http://tinypng.com/
-
使用jpg格式 如果对于非透明的大图,jpg将会比png的大小通常会减小到一半。
-
使用webp格式 webp支持透明度,压缩比比jpg更高但显示效果却不输于jpg,官方评测quality参数等于75均衡最佳。官网地址:https://developers.google.com/speed/webp/docs/precompiled
-
缩小大图
-
覆盖第三库里的大图
-
删除armable-v7包下的so
-
删除x86包下的so
-
使用微信资源压缩打包工具
-
使用provided编译
-
使用shape背景
-
使用着色方案
-
避免重复库
-
使用更小的库
-
使用插件化
-
精简功能业务 等
-
微信资源压缩打包工具通过短资源名称,采用7zip对APP进行极致压缩实现减小APP的目标,效果非常的好