安卓手机玩游戏掉帧严重严重掉帧怎么解决

【游戏问答】
阴阳师安卓手机玩卡顿怎么办 解决安卓手机玩阴阳师 ...
查看:8回复:0
7444主题2万帖子0金币
发表于 昨天&20:46
阴阳师安卓手机玩卡顿怎么办 解决安卓手机玩阴阳师丝滑堪比iOS?手把手教你提升安卓流畅度
  转眼间安卓已经面市了近5年,这些年来安卓的进步有目共睹,但卡顿始终是最让安卓用户咬牙切齿的痛之一。在安卓诞生伊始,卡顿简直就是安卓的代名词,和丝滑般的一对比,安卓看上去如同幻灯片。Google显然也意识到了不流畅就不会让人觉得高档大气上档次,在安卓4.1中引入了黄油计划,安卓终于也迎来了丝滑般的快感。卡顿一直是安卓的老问题,为此Google专门制定了&黄油计划&  然而快感并不是随处可寻,即使有了黄油的加持,人们发现安卓仍然不时掉帧卡顿。虽说系统整体是要流畅了,但体验和之前对比并没有太大改观&&之前的安卓在所有界面都不甚流畅,如同吃饭时口口嗑到生米,而黄油计划以后的安卓就像吃饭吃得正爽,突然就嗑到了一口生米。无论是哪种,都足以令人抓狂。  当然,由于系统开放程度高,安卓的流畅度问题在很大程度上能够通过一些小技巧改善。想要体验到时时爽滑的安卓?下面这些方法也许能够帮到你。  安卓App掉帧怎么办?开启GPU强制渲染  Google在安卓4.0发布后开始推广安卓的App标准Holo框架,如果安卓App按照Holo编写,可以享受到硬件加速等一系列好处,流畅度自然是不会差的。然而Holo并非是一套强制标准,很多开发者并没有跟进,安卓App尤其是国产App不能使用GPU渲染界面,流畅度仍不尽人意。这时候,强制进行GPU渲染就派上用途了。  强制进行GPU渲染的选项隐藏在&开发人员工具&之中。首先确保你的安卓系统是4.0以上,接着进入到设置菜单。如果发现找不到&开发人员工具&一项,就进入到&关于&里面狂点&版本号&,连点几次就会提示你已经进入开发人员模式,接着再回到一级菜单进入&开发人员工具&即可。点击数次版本号激活开发人员工具  当然,并非所有安卓系统都能够用这招开启&开发人员工具&,魅族的Flyme系统需要在电话拨号盘中输入&*#*#6961&才能开启,输入&*#*#6960&则关闭。联想的乐OS似乎没法进入到&开发人员工具&,其他ROM可能还会有不同,大家注意一下吧。开启&强制进行GPU渲染&选项  开启&强制进行GPU渲染&选项后,退出之前觉得流畅度不足的App(注意清理后台,当然重启手机就更万事大吉了),再进入该App,流畅度已经不可同日而语。丝滑般的柔顺,就是如此自信。 开启GPU强制渲染(右)和开启前对比,滑动聊天界面帧数更高,CPU占用率更低  这招对于大部分未使用Holo的App都有奇效,如旗下的QQ、微信等,但也有可能出现兼容问题,如UC反而会变卡,百万亚瑟王会黑屏等等。此外,开启GPU强制渲染会令耗电量略微增加,虽然影响不大,但总归是个负面效应。相关阅读:黑客利用安卓主密钥漏洞在华传播病毒续航更持久!安卓4.3/新Nexus 7今日发布安卓漏洞苹果修 Cydia开发者发修补工具阿喀琉斯之踝!细数安卓碎片化的三宗罪
键盘也能翻页,试试“← →”键
最新资讯离线随时看
聊天吐槽赢奖品
相关软件:
大小:1.93 MB
授权:免费
大小:62.51 MB
授权:免费161被浏览42010分享邀请回答2214 条评论分享收藏感谢收起112 条评论分享收藏感谢收起查看更多回答大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验。但是Android系统很有可能无法及时完成那些复杂的界面渲染操作。Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成()时间超出16ms越多,丢的帧就越多,可以大概估计一下Android&5秒没响应抛出anr异常期间丢了多少帧,笔者算了312帧)。
如果你的某个操作花费时间是24ms,系统在得到VSYNC信号的时候就无法进行正常渲染,这样就发生了丢帧现象。那么用户在32ms内看到的会是同一帧画面。
用户容易在UI执行动画或者滑动ListView的时候感知到卡顿不流畅,是因为这里的操作相对复杂,容易发生丢帧的现象,从而感觉卡顿。有很多原因可以导致丢帧,也许是因为你的layout太过复杂,无法在16ms内完成渲染,有可能是因为你的UI上有层叠太多的绘制单元,还有可能是因为动画执行的次数过多。这些都会导致CPU或者GPU负载过重。
我们可以通过一些工具来定位问题,比如可以使用HierarchyViewer来查找Activity中的布局是否过于复杂,也可以使用手机设置里面的开发者选项,打开Show&GPU&Overdraw等选项进行观察。你还可以使用TraceView来观察CPU的执行情况,更加快捷的找到性能瓶颈(所以布局有一个原则,就是尽量用简单的布局)。
2)&Understanding&Overdraw(理解过度绘制)
Overdraw(过度绘制)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次的UI结构里面,如果不可见的UI也在做绘制的操作,这就会导致某些像素区域被绘制了多次。这就浪费大量的CPU以及GPU资源。
当设计上追求更华丽的视觉效果的时候,我们就容易陷入采用越来越多的层叠组件来实现这种视觉效果的怪圈。这很容易导致大量的性能问题,为了获得最佳的性能,我们必须尽量减少Overdraw的情况发生。
幸运的是,我们可以通过手机设置里面的开发者选项,打开Show&GPU&Overdraw的选项,可以观察UI上的Overdraw情况。
蓝色,淡绿,淡红,深红代表了4种不同程度的Overdraw情况,我们的目标就是尽量减少红色Overdraw,看到更多的蓝色区域(蓝色表面该区域在同一帧的时间里被绘制了一次,淡绿表明两次,往后一次递增)。
Overdraw有时候是因为你的UI布局存在大量重叠的部分,还有的时候是因为非必须的重叠背景。例如某个Activity有一个背景,然后里面的Layout又有自己的背景,同时子View又分别有自己的背景。仅仅是通过移除非必须的背景图片,这就能够减少大量的红色Overdraw区域,增加蓝色区域的占比。这一措施能够显著提升程序性能。
3)&Understanding&VSYNC
为了理解App是如何进行渲染的,我们必须了解手机硬件是如何工作,那么就必须理解什么是VSYNC。
在讲解VSYNC之前,我们需要了解两个相关的概念:
·&Refresh&Rate:代表了屏幕在一秒内刷新屏幕的次数,这取决于硬件的固定参数,例如60Hz。
·&Frame&Rate:代表了GPU在一秒内绘制操作的帧数,例如30fps,60fps。
GPU会获取图形数据进行渲染,然后硬件负责把渲染后的内容呈现到屏幕上,他们两者不停的进行协作。
不幸的是,刷新频率和帧率并不是总能够保持相同的节奏。如果发生帧率与刷新频率不一致的情况,就会容易出现Tearing的现象(画面上下两部分显示内容发生断裂,来自不同的两帧数据发生重叠)。
通常来说,帧率超过刷新频率只是一种理想的状况,在超过60fps的情况下,GPU所产生的帧数据会因为等待VSYNC的刷新信息而被Hold住,这样能够保持每次刷新都有实际的新的数据可以显示。但是我们遇到更多的情况是帧率小于刷新频率。
在这种情况下,某些帧显示的画面内容就会与上一帧的画面相同。糟糕的事情是,帧率从超过60fps突然掉到60fps以下,这样就会发生LAG,JANK,HITCHING等卡顿掉帧的不顺滑的情况。这也是用户感受不好的原因所在(所以帧率可以快不能慢,快不会影响渲染机制,但是慢的话就会丢帧,当然不是丢帧都会影响用户体验(出现卡,顿,慢),其实在没出现卡顿慢的现象前就可能已经丢帧了,只是用户还没发觉,发觉是由于丢帧很严重了)。
4)&Tool:Profile&GPU&Rendering
性能问题如此的麻烦,幸好我们可以有工具来进行调试。打开手机里面的开发者选项,选择Profile&GPU&Rendering,选中On&screen&as&bars(有的手机可能没有这个选项,可能是由于你手机系统被手机厂商定制过,将这个选项删了,这种情况推荐使用第三方模拟器,或者使用别的手机调试)的选项。
选择了这样以后,我们可以在手机画面上看到丰富的GPU绘制图形信息,分别关于StatusBar,NavBar,激活的程序Activity区域的GPU&Rending信息。
随着界面的刷新,界面上会滚动显示垂直的柱状图来表示每帧画面所需要渲染的时间,柱状图越高表示花费的渲染时间越长。
中间有一根绿色的横线,代表16ms,我们需要确保每一帧花费的总时间都低于这条横线,这样才能够避免出现卡顿的问题。
每一条柱状线都包含三部分,蓝色代表测量绘制Display&List(解析xml的布局文件)的时间,红色代表OpenGL渲染Display&List所需要的时间,黄色代表CPU等待GPU处理的时间。
5)&Why&60fps?(为什么帧率要选60fps,不能少些吗?)
我们通常都会提到60fps与16ms,可是知道为何会是以程序是否达到60fps来作为App性能的衡量标准吗?这是因为人眼与大脑之间的协作无法感知超过60fps的画面更新(60fps是最好的效果)。
12fps大概类似手动快速翻动书籍的帧率,这明显是可以感知到不够顺滑的。24fps使得人眼感知的是连续线性的运动,这其实是归功于运动模糊的效果。24fps是电影胶圈通常使用的帧率,因为这个帧率已经足够支撑大部分电影画面需要表达的内容,同时能够最大的减少费用支出。但是低于30fps是无法顺畅表现绚丽的画面内容的,此时就需要用到60fps来达到想要的效果,当然超过60fps是没有必要的。
开发app的性能目标就是保持60fps(低一些亦不会影响用户体验),这意味着每一帧你只有16ms=1000/60的时间来处理所有的任务(这个时间可以用于与traceView&得到的时间对比,不能超出太多例如大于32ms,否则就该优化了)。
6)&Android,&UI&and&the&GPU
了解Android是如何利用GPU进行画面渲染有助于我们更好的理解性能问题。那么一个最实际的问题是:activity的画面是如何绘制到屏幕上的?那些复杂的XML布局文件又是如何能够被识别并绘制出来的?
Resterization栅格化是绘制那些Button,Shape,Path,String,Bitmap等组件最基础的操作。它把那些组件拆分到不同的像素上进行显示。这是一个很费时的操作,GPU的引入就是为了加快栅格化的操作。
CPU负责把UI组件计算成Polygons,Texture纹理,然后交给GPU进行栅格化渲染。
然而每次从CPU转移到GPU是一件很麻烦的事情,所幸的是OpenGL&ES可以把那些需要渲染的纹理Hold在GPU&Memory里面,在下次需要渲染的时候直接进行操作。所以如果你更新了GPU所hold住的纹理内容,那么之前保存的状态就丢失了。
在Android里面那些由主题所提供的资源,例如Bitmaps,Drawables都是一起打包到统一的Texture纹理当中,然后再传递到GPU里面,这意味着每次你需要使用这些资源的时候,都是直接从纹理里面进行获取渲染的。当然随着UI组件的越来越丰富,有了更多演变的形态。例如显示图片的时候,需要先经过CPU的计算加载到内存中,然后传递给GPU进行渲染。文字的显示更加复杂,需要先经过CPU换算成纹理,然后再交给GPU进行渲染,回到CPU绘制单个字符的时候,再重新引用经过GPU渲染的内容。动画则是一个更加复杂的操作流程。
为了能够使得App流畅,我们需要在每一帧16ms以内处理完所有的CPU与GPU计算,绘制,渲染等等操作,重点是减少cup的时间,因为我们写的程序是在cup直接执行的,和Gpu就关系较远,一般不考虑。
总结一下,这里是介绍了导致我们app卡顿慢的直接原因,也是底层原因,至于别的原因例如内存泄漏,耗时任务在主线程这些问题都是先影响了Android渲染机制。然后才会出现卡顿慢现象的,准确说是影响到渲染机制cup相关部分导致延后运行。知道了这个原因后,优化的具体措施就有了。
最后出于尊重别人劳动成果的目的,特别说明一下:关于本系列博客是笔者在看了另一个人的博客后写的,所以或多或少会有一些影子
那个人的博客地址 :
http://hukai.me/android-performance-patterns/ &他的博客,笔者感觉很有用。
本文已收录于以下专栏:
相关文章推荐
读完本文你将了解到:
TraceView 是什么
生成 trace 文件
使用代码生成 trace 文件
使用 Android Studio 生成 trace 文件
使用 DDMS 生成 tra...
前言Android只有主线程才能更新UI。如果界面1秒钟刷新少于60次,即FPS小于60,用户就会产生卡顿感觉。Android使用消息机制进行UI更新的,如果在主线程handler的dispa...
Android App 优化之消除卡顿
1, 感知卡顿
用户对卡顿的感知, 主要来源于界面的刷新. 而界面的性能主要是依赖于设备的UI渲染性能. 如果我们的UI设计过于复杂, 或是实现不够好,...
转自:/myzh/archive//2965225.html
  1、纵观全局
  对于顺畅度的分析,首先要知道一个整体情况,是局部...
卡顿是人的一种视觉感受,比如我们滑动界面时,如果滑动不流程我们就会有卡顿的感觉,这种感觉我们需要有一个量化指标,在编程时如果开发的程序超过了这个指标我们认为其是卡顿的。。...
本文已在我的公众号hongyangAndroid首发。
转载请标明出处:
http://blog.csdn.net/lmj/article/details/586263...
App在点击图标启动时,初始化时候需要一段时间。
如果因为各种原因,导致这个初始化时间过长,会造成很糟糕的用户体验。
经常会产生长时间黑屏,或者长时间白屏的现象。其实产生这一现象的时候App已经进...
这是Android性能优化典范第5季的课程学习笔记,拖拖拉拉很久,记录分享给大家,请多多包涵、担待指正!文章共有10个段落,涉及的内容有:多线程并发的性能问题,介绍了AsyncTask、Han...
在知乎回答了一个“为什么微博的app在iPhone比Android上流畅”的问题。后面部分是一个典型的动画卡顿的性能分析过程,因此帖在这里。有编程问题可以在这里交流。知乎链接。
==========...
大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验。但是Android系统很有可能无法及时完成那些复杂的界...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)后使用我的收藏没有帐号?
所属分类: &
查看: 6|回复: 0
我玩LOL掉帧很严重。以前玩的时候还好,昨天重装了系
发表于 昨天&08:38
我玩LOL掉帧很严重。以前玩的时候还好,昨天重装了系统之后,再玩就很卡了。
倾诉当年的情怀 说出你与夏娜的故事!
踏上讨伐异世界“红世使徒”的冒险旅程!}

我要回帖

更多关于 win10玩游戏掉帧严重 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信