安卓手机卡顿优化建议

作为安卓手机的用户,你得手机使用一段时间以后,是不是灵敏度严重降低,莫名其妙的变得非常卡,明明点击了某个应用但是半天都没任何反应,有时有电话进来都迟迟看不到电话界面,甚至多个软件无缘无故的停止运行?而这些情况的出现,对于用户体验会造成很大的不利影响,应该尽量的避免,避免卡顿的情况。




问:什么原因导致卡顿?

依据安卓系统显示原理分析,影响绘制的根本原因,主要有两个方面:1)绘制任务太重,绘制一帧内容需要消耗太长时间;2)主线程太忙,系统传递过来VSYNC信号时还没准备好数据导致丢帧。

解决办法:绘制耗时长,可以借助一些工具帮助我们解决定位问题;而主线程太忙时则需要注意,主线程的关键职责是处理用户交互,在屏幕上绘制像素,并进行加载显示相关数据,因此尤其需要避免任何主线程的事情,这样应用程序才能对用户操作做到即时响应。

问:关于安卓手机卡顿有哪些优化建议?

答:A、布局优化

布局会影响到测量的时间,我们知道,一个页面的显示测量和绘制过程都是通过递归来完成的,多叉树遍历的时间与树的高度H有关,其时间复杂度 O(h),如果层级太深,每增加一层则会增加更多的页面显示时间,所以合理的布局显得非常重要。那布局优化有哪些方法呐?总结如下:

1)尽可能少用wrap_content:wrap_content会增加布局measure时计算成本,在已知宽高为固定值时,最好不要使用wrap_content;

2)提高显示速度:使用ViewStub,它是一个看不见、不占布局位置、占用资源极小的视图对象;

3)减少层级:合理使用RelativeLayout和LinerLayout,合理使用Merge;

4)布局复用:可以通过标签来提高复用;

5)删除控件中无用的属性。

B、避免过度绘制

这里所谓的过度绘制是指在屏幕上某个像素在同一帧的时间内被绘制了多次,在多层次重叠的UI结构中,如果不可见的UI也在做绘制的操作,就会导致某些像素区域被绘制了多次,从而浪费了多余的CPU及GPU资源。具体应该避免过度绘制,方式如下:

1)布局优化:移除XML中非必须的背景,移除Window默认的背景、按需显示占位背景图片;

2)定义View优化:使用 canvas.clipRect()来帮助系统识别那些可见的区域,仅有这个区域才能被绘制。

C、启动优化

通过对启动速度的监控,发现影响启动速度的问题所在,优化启动逻辑,提高应用的启动速度。启动以后需要完成UI布局、绘制和数据准备三个工作,因此就需要对这三个过程进行优化。

1)UI布局:往往应用都有闪屏页,优化闪屏页的UI布局,可以通过Profile GPU Rendering检测丢帧的具体情况;

2)启动加载逻辑优化:通常是采用分布加载、异步加载、延期加载策略来提高应用启动速度;

3)数据准备:数据初始化分析,加载数据可以考虑用线程初始化等策略。

D、合理的刷新机制

在开发过程中,由于数据的变动,需要刷新页面来展示新的数据,但频繁的刷新会增加资源开销,并且可能导致卡顿发生,因此,需要一个合理的刷新机制来提整体UI的流畅度。不过,合理的刷新需要注意尽量减少刷新次数;避免后台有高的 CPU 线程运行;缩小刷新区域。

F、其他

在实现动画效果是,需根据不同场景选择合适的动画框架来实现,某些情况下,可以用硬件加速方式来提升流畅度。

总之,安卓手机的卡顿情况不足为奇,虽然看它的配置与ios的配置差不多,甚至比之更高,但是卡顿的问题,一直都存在,而以上天津app开发给出的解决办法多少应该可以帮助到大家。

声明:文章"安卓手机卡顿优化建议"为文率科技APP开发公司原创文章,转载请注明出处,谢谢合作!

上一篇: 献给安卓初学者的建议

下一篇: 没有了

Android APP开发资讯文章推荐阅读