前言
下面介绍一些常见的应用性能优化方法
一、布局优化
1、减少嵌套
- 嵌套层数尽量少,使用ConstaintLayout能使层级大大降低
- 尽量使用RelativeLayout和LinearLayout
2、使用抽象布局标签include、merge、ViewStub
- 布局复用,使用标签重用layout
- 减少层级,使用标签merge替换父级布局
- 提高显示速度,使用ViewStub延迟显示
***注意:***使用wrap_content,会增加measure计算成本;
二、内存优化
可以从两方面入手:内存溢出和内存泄漏
1.内存溢出的解决方案:
- 修改JVM启动参数,直接增加内存 (-Xms –Xms 参数一定不要忘记加)
- 检查错误日志查看 OutOfMemory 错误前是否有其他异常或错误
- 对代码进行分步运行分析,找出可能发生溢出的位置
2.内存泄漏解决方案:
android常见内存泄漏主要有以下几类:
- Handler 引起的内存泄漏
- 单例模式引起的内存泄漏
- 非静态内部类创建静态实例引起的内存泄漏
- 非静态匿名内部类引起的内存泄漏
- 注册/反注册未成对使用引起的内存泄漏
- 资源对象没有关闭引起的内存泄漏
- 集合对象没有及时清理引起的内存泄漏
三、App瘦身优化
可优化的地方有:
1、lint使用
采用lint工具,删除了大量无用的资源。有一定作用。Android studio集成了lint工具,检测“unused resoure“及unused declaration等。这里我们使用lint检测了无用的资源文件。
2、其他团队so库的体积减少,作用明显著,尤其类似于百度地图,直播软件
3、代码冗余部分:效果非常有限,你再减少也少不了几kb
4、使用图片压缩工具,有一定作用
Google推荐图片压缩工具:https://developers.google.com/speed/docs/insights/OptimizeImages,
市面上有许多工具可用来对JPEG和PNG文件执行进一步的无损压缩,且不会对图片质量造成任何影响。对于JPEG文件,我们建议您使用jpegtran或jpegoptim(仅适用于Linux;使用–strip-all选项运行)。对于PNG文件,我们建议使用OptiPNG或PNGOUT。
5、H5页面,作用明显,而且H5适配非常简单啊
6、支持插件so,插件支持网络加载so及更新原则,作用明显
7、代码混淆,jar包资源混淆、
8、TinyPng压缩图片