Android性能优化方面概述

个人总结性能优化中需要考虑的方面以及简单总结,毕竟相关内容很多,就不详细展开具体内容,但持续更新中,方便自己或大家查阅

1、UI卡顿优化
1)布局优化:减少层级(merge),代码重用(include),延迟初始化(viewstub)
2)绘制优化:频繁刷新,过度绘制,超过16ms
3)内存优化:频繁创建对象导致:内存抖动、内存溢出或泄露导致频繁GC
4)ANR优化:内存不足,IO阻塞,线程死锁
2、内存优化
1)内存溢出:大图加载或buff过大检测而导致的以及线程栈溢出
2)减少内存泄露
3) 对象池复用及回收
3、App启动优化
1)Application初始化优化
2)闪屏页显示优化:fragment方式切换引导层,广告层
3)MainActivity初始化优化:分UI显示之前之后判处来进行初始化,避免阻碍界面显示
策略:能延迟就延迟 能异步就异步,需要在界面显示之后初始化的
View.post();
方法:查找运行启动的方法耗时情况,例如TraceView 使用
4、Apk瘦身优化
1)dex大小优化: lint检查删除无用代码 及代码重构优化 再用混淆精简 动态加载和插件化的方式来优化大小
2)asset/res资源大小优化 :lint优化删除无用或重复资源 AndProguardResources来混淆资源
3)图片大小优化压缩,png格式图片使用tinypng或者其他工具进行压缩;用Tint着色减少纯色状态变化图片
4)资源分辨率适配:尽量使用一套图,然根据屏幕分辨率进行适配,尽量选择主流较高分辨率,低分辨率向下兼容容易,从而可以省去低密度适配图。对于大图高分辨率的静态图,仍然需要多分辨率套图,但推荐使用远程网络图片进行下载后适配使用。
5)so库精简,根据实际实际使用情况保留一种架构
5、网络优化
1)减少流量消耗:优化传输内容大小,压缩传输 ;缓存使用;合并优化减少请求次数
2)加快网络响应结果:网络传输链接复用,避免重复握手;缓存使用
3)网络环境复杂情况下稳定性:wifi 和mobile切换以及当前网络的状态监测以及弱网下提高连接成功率
一篇不错的文章:现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障

6、代码效率优化
1)参考代码规范 如阿里巴巴的ava开发手册以及安卓开发规范

7、耗电优化
1)Ui绘制显示:过度绘制,以及频繁刷新,布局复杂
2)后台任务频繁唤起
3)网络请求频繁耗电

架构设计:
Android App的设计架构:MVC,MVP,MVVM与架构经验谈https://www.tianmaying.com/tutorial/AndroidMVC

一个写的比较详细的文章:https://blog.csdn.net/carson_ho/article/details/79708444

猜你喜欢

转载自blog.csdn.net/u010019468/article/details/79181206
今日推荐