androidui适配如何处理,安卓开发刷新频率多少会卡顿
发布:小编
安卓开发刷新频率多少会卡顿
APP使用起来卡顿,主要是用户在使用APP时的感知,主要表现在APP页面的刷新,滑动时的流畅度。
例如用户在某个页面滑动时有明显卡住的现象就是卡顿了。
开发中有一个16ms原则,即APP在16ms内没有更新完界面,用户就会有卡顿的感受。
android ui 适配如何处理
渲染机制介绍
为了分析UI卡顿,我们有必要理解一下渲染机制,这套渲染机制适用于绝大部分的屏幕渲染,其中包括Android手机等众多屏幕设备。
渲染的一些重要参数:
屏幕刷新理想的频率(硬件的角度):60Hz
理想的一秒内绘制的帧数,帧率(屏幕刷新的角度):60fps
这两个参数都是理想值,指代的都是同一个概念。实际情况中难免会比它们低。在60fps内,系统会得到发送的VSYNC(垂直刷新/绘制)信号去进行渲染,就会正常地绘制出我们需要的图形界面。Android手机进行绘制的时候,GPU帮助我们将UI组件等计算成纹理Texture和三维图形Polygons,同时会使用OpenGL---会将纹理和Polygons缓存在GPU内存里面。
其中,VSYNC:有两个概念
Refresh Rate:屏幕在一秒时间内刷新屏幕的次数----有硬件的参数决定,比如60HZ,即屏幕每秒刷新60次
Frame Rate:GPU在一秒内绘制操作的帧数,比如:60fps,
基本结论
要达到60fps,就要求:每一帧只能停留16ms。(大概就是1000ms/60 ~= 16ms刷新一次)
内存抖动是因为大量的对象被创建又在短时间内马上被释放。
瞬间产生大量的对象会严重占用Young Generation的内存区域,当达到阀值,剩余空间不够的时候,也会触发GC。即使每次分配的对象占用了很少的内存,但是他们叠加在一起会增加Heap的压力,从而触发更多其他类型的GC。这个操作有可能会影响到帧率,并使得用户感知到性能问题。
Android里面是一个三级Generation的内存模型,最近分配的对象会存放在Young Generation区域,当这个对象在这个区域停留的时间达到一定程度,它会被移动到Old Generation,最后到Permanent Generation区域。
Android每个16ms就会绘制一次Activity,通过上述的结论我们知道,如果由于一些原因导致了我们的逻辑、CPU耗时、GPU耗时大于16ms( 应用卡顿的根源就在于16ms内不能完成绘制渲染合成过程,16ms需要完成视图树的所有测量、布局、绘制渲染及合成 ),UI就无法完成一次绘制,那么就会造成卡顿。
比如说,在16ms内,发生了频繁的GC:
在第一个16ms内,UI正常地完成了绘制,那么屏幕不会卡顿。
在第二个16ms内,由于某些原因触发了频发的GC,UI无法在16ms内完成绘制,就会卡顿。
UI卡顿外部和内部常见原因
下面总结一些常见的UI卡顿原因:
1.内存抖动的问题
2.方法太耗时了(CPU占用)
1) CPU计算时间,CPU的测量、布局时间
2)CPU将计算好的Polygons和Texture传递到GPU的时候也需要时间。OpenGL ES API允许数据上传到GPU后可以对数据进行保存,缓存到display list。因此,我们平移等操作一个view是几乎不怎么耗时的 。
3) GPU进行格栅化
当我们的布局是用的FrameLayout的时候,我们可以把它改成merge,可以避免自己的帧布局和系统的ContentFrameLayout帧布局重叠造成重复计算(measure和layout)。
使用ViewStub:当加载的时候才会占用。不加载的时候就是隐藏的,仅仅占用位置。
CPU优化建议
针对CPU的优化,从减轻加工View对象成Polygons和Texture来下手:
View Hierarchy中包涵了太多的没有用的view,这些view根本就不会显示在屏幕上面,一旦触发测量和布局操作,就会拖累应用的性能表现。那么我们就需要利用工具进行分析。
如何找出里面没用的view呢?或者减少不必要的view嵌套。
我们利用工具:Hierarchy Viewer进行检测,优化思想是:查看自己的布局,层次是否很深以及渲染比较耗时,然后想办法能否减少层级以及优化每一个View的渲染时间。
我们打开APP,然后打开Android Device Monitor,然后切换到Hierarchy Viewer面板。除了看层次结构之外,还可以看到一些耗时的信息:
三个圆点分别代表:测量、布局、绘制三个阶段的性能表现。
1)绿色:渲染的管道阶段,这个视图的渲染速度快于至少一半的其他的视图。
2)黄色:渲染速度比较慢的50%。
3)红色:渲染速度非常慢。
GPU优化建议就是一句话:尽量避免过度绘制(overdraw)
一、背景经常容易造成过度绘制。
手机开发者选项里面找到工具:Debug GPU overdraw,其中,不同颜色代表了绘制了几次:
以上就是关于androidui适配如何处理,安卓开发刷新频率多少会卡顿的全部内容,以及安卓开发刷新频率多少会卡顿的相关内容,希望能够帮到您。
版权声明:本文来自用户投稿,不代表【推酷网】立场,本平台所发表的文章、图片属于原权利人所有,因客观原因,或会存在不当使用的情况,非恶意侵犯原权利人相关权益,敬请相关权利人谅解并与我们联系(邮箱:350149276@qq.com)我们将及时处理,共同维护良好的网络创作环境。
大家都在看
-
利丰集团是世界500强,中端档次的戒指品牌
综合百科利丰集团是世界500强吗?香港利丰集团起源于广州的华资贸易(1906-1949),利丰是香港历史悠久的出口贸易商号之一,利丰集团曾在2010和2011年入选全球500强企业。于1906年,冯柏燎先生和李道明先生在广州创立了利丰贸易公司;是当时中国第一家华资的对外贸易出口商。初时只
-
优活手环怎么开机,小米智能手环怎么开机键在哪里
综合百科本文目录1.小米智能手环怎么开机键在哪里2.运动手环怎么开机3.运动手环怎么开机4.智能手环怎么用 使用教程视频小米智能手环怎么开机键在哪里智能手环可以看时间、运动步数、心率、睡眠等等功能,那智能手环怎么开机键在哪里呢,让我们一起来看看吧~智能手环怎么开机键在哪里小米手环、华为手
-
交通事故出院后营养费医院给写,事故伤者出院了还需要给营养费吗
综合百科交通事故出院后营养费医院给写吗?交通事故出院后营养费医院给写,对于营养费的支付,医疗机构的意见作为参考,营养费的赔偿,一般来说是结合所在地居民的平均生活费的比例来进行计算的,会参考医疗机构的意见确定营养费。【法律依据】根据《关于审理人身损害赔偿案件适用法律若干问题的解释》第十九条
-
关于陌生人关爱句子,陌生人的暖心经典语录
综合百科关于陌生人关爱句子我最怕看到的,不是两个相爱的人互相伤害,而是两个爱了很久很久的人突然分开了,像陌生人一样擦肩而过。我受不了那种残忍的过程,因为我不能明白当初植入骨血的亲密,怎么会变为日后两两相忘的冷漠。(作者:夏七夕) 陌生人的暖心经典语录1.把最真的祝福化作风,吹送到你的身
-
安徽6所一本大学有哪些,安徽一本大学有哪些
综合百科本文目录1.安徽一本大学有哪些2.安徽有哪些一本大学3.安徽省一本大学有哪几所大学加录取分数线4.合肥一本大学有哪些学校安徽一本大学有哪些1、中国科学技术大学中国科学技术大学简称“中国科大”,中国科学技术大学是教育部评选的双一流A类、985、211、国家重点、中央部属、卓越工程师
-
关于儿童学习的名言,鼓励孩子努力的名人名言
综合百科关于儿童学习的名言天下大事,必做于细。做事认真专一,你将走向成功。努力从今天开始,成功从“零”开始。你喜欢在知识的海洋里遨游,可要达到成功的彼岸,必须坚持不懈地努力,奋勇地拼搏! 鼓励孩子努力的名人名言1、好学而不勤问非真好学者。——古训2、好问的人,只做了五分种的愚人;耻于发
-
滥用职权罪的概念与构成要件,滥用职权罪犯罪构成要件是什么
综合百科滥用职权罪犯罪构成要件是什么滥用职权罪犯罪构成要件为:(一)客体要件本罪侵犯的客体是国家机关的正常活动。(二)客观要件本罪客观方面表现为滥用职权,致使公共财产、国家和人民利益遭受重大损失的行为。(三)主体要件本罪主体是国家机关工作人员。(四)主观要件本罪在主观方面表现为故意,行为
-
新版全民k歌调音技巧,全民k歌怎么设置调音
综合百科新版全民k歌调音技巧截止到2019年7月份,全民k歌最新版本为6.5.9,用户在设置调音的时候注意回音不能太重,若太重的话,可以试着调低一下伴音。若有噪音或者防止噪音的话,用户可以开启减少噪音选项,这样可以很明显的去掉一部分噪音,相对来说也是比较方便的。全民k歌使用技巧:打开全民
-
快手一天能关注几个人,快手关注人数达到上限怎么办
综合百科本文目录1.快手关注人数达到上限怎么办2.快手关注人数达到上限怎么办3.快手一天可以关注多少人4.快手关注人数达到上限怎么办快手关注人数达到上限怎么办快手中,系统提示“关注上限”后用户只能第二天再继续关注其他用户。快手每天的关注上限是20,当天的关注数量满20位时,就无法再继续关
-
失业金不领取就没了,失业金没领是不是以后都会没有了
综合百科失业金不领取就没了吗?1、不是,失业金可以累积的,但有期限。失业人员失业前所在单位和本人按照规定累计缴费时间满1年不足5年的,领取失业保险金的期限最长为12个月;累计缴费时间满5年不足10年的,领取失业保险金的期限最长为18个月;累计缴费时间10年以上的,领取失业保险金的期限最长
-
手机卡密码忘了怎么办
综合百科手机卡密码忘了怎么办1、首先搜索【手机营业厅】下载。2、接着安装好后进入【手机营业厅】点【登陆】。3、点开【登陆】后在下面你会看到【忘记密码?】这句话点开。4、接着你会看到【请输入手机号码】这句话里输入手机号。5、完了你会看到一堆信息你填一下点【提交】就改了你手机卡密码了。 以
-
注册表打不开怎么办,打不开注册表编辑器和任务管理器怎么办
综合百科本文目录1.打不开注册表编辑器和任务管理器怎么办2.windows10注册表损坏导致无法开机3.win10注册表打不开怎么办4.ie主页被360改了怎么办打不开注册表编辑器和任务管理器怎么办分类: 电脑/网络问题描述:打开时注册表编辑器和任务管理器只闪了一下就打不开,还没隔一段时