Android性能优化七种方式
1.Android性能优化之交互优化
交互是用户体验最直接的方面,交互场景大致可以分为四个部分: ui 呈现、应用程序启动、页面跳转和事件响应。对于以上四个方面,可以从以下两个方面进行优化:
主要原因是绘制的层级深、页面复杂、刷新不合理,由于这些原因导致卡顿的场景出现在UI和启动后的初始界面以及跳转到页面的回执上。
数据处理:导致这种卡顿场景的原因是数据处理量太大,一般分为三种情况,
一是数据处理在UI线程(这种应该避免),
二是数据处理占用CPU高,导致主线程拿不到时间片,
三是内存增加导致GC频繁,从而引起卡顿。
我们知道Android的绘制步骤是:Measure、Layout、Draw,所以布局的层级越深、元素越多、耗时也就越长。还有就是Android系统每隔16ms发出VSYNC信号触发对UI进行渲染如果每次渲染都成功这样就能达到流畅的画面所需的60FPS。如果某个操作花费的时间是24ms 系统在得到VSYNC信号时就无法进行正常渲染这样就发生了丢帧现象。
棉白杨现象有两个原因:
==绘制任务太重==,绘制一帧内容耗时太长。
2、主线程太忙根据系统传递过来的VSYNC信号来时还没准备好数据导致丢帧
根据问题的原因,我们可以通过以下方式进行优化:
布局优化
在Android种系统对View进行测量、布局和绘制时,都是通过对View数的遍历来进行操作的。如果视图的高度过高,会严重影响测量、布局和渲染的速度。Google也在API文档中建议View树的高度不宜超过10层。使用RelativeLayout替代LineraLayout作为默认根布局降低LineraLayout嵌套产生布局树的高度从而提高UI渲染的效率。
在布局优化方面,我们可以通过以下方式进行优化:
布局复用,使用标签重用layout;
提高显示速度,使用延迟View加载;
减少层级,使用标签替换父级布局;
注意使用wrap_content,会增加measure计算成本;
删除控件中无用属性;
3.Android性能优化之渲染优化
透支是指屏幕上的一个像素在同一帧中被绘制多次。在多层次重叠的UI结构中如果不可见的UI也在做绘制的操作就会导致某些像素区域被绘制了多次从而浪费了多余的CPU以及GPU资源。我们可以通过开启手机的透支功能来检查页面是否透支。
为了避免过度绘制,我们可以从以下几个方面进行优化:
移除XML中非必须的背景,移除Window默认的背景、按需显示占位背景图片。
自定义View优化,使用 canvas.clipRect()来帮助系统识别那些可见的区域,只有在这个区域内才会被绘制。
4.Android性能优化之启动优化
应用一般都有闪屏页,优化闪屏页的UI布局,可以通过ProfileGPURendering检测丢帧情况。
你也可以通过启动加载逻辑来优化。可以使用分布式加载、异步加载和延迟加载策略来提高应用程序的启动速度。
数据准备。数据初始化分析,加载数据可以考虑使用线程初始化等策略。
5.Android性能优化之刷新优化
Android开发中,通常是异步操作页面的,因此需要可以从刷新优化上来优化应用,主要有两个原则:
减少刷新次数;
缩小刷新区域;
6.Android性能优化之动画优化
在实现动画效果时,需要根据不同的场景选择合适的动画框架。在某些情况下,硬件加速可以用来提供流畅性。
7.Android性能优化之耗电优化
在移动设备中,电池的重要性不言而喻,没有电什么也做不了。对于操作系统和设备开发者来说,功耗的优化并没有停下来追求更长的待机时间,但是对于一个应用来说,功耗的问题是不容忽视的,尤其是那些被归类为“电池杀手”的应用,最终被卸载。因此,应用程序开发人员在实现需求时需要最小化功耗。
浙公网安备 33010602011771号