关于Android屏幕刷新机制的一些总结

原创 2018年04月15日 21:37:30

以下总结来自这两篇博客:
  Android屏幕刷新机制
  android屏幕刷新显示机制


  1.一般来说人眼能分辨的最大帧数为60帧,即每秒60张图片或者屏幕每秒刷新60次。因此在安卓中有1000/60 = 16.6ms,即CPU/GPU要在16.6毫秒内完成一帧的处理,否则会出现卡顿感。
  2.CPU/GPU和屏幕(Display)是这样配合的:CPU计算要绘制的内容,GPU对内容进一步处理并写入一个缓冲区(buffer)。Display以固定的频率从buffer中取出数据并更新到屏幕上。如果CPU/GPU在一个Display绘制周期内两次写入buffer,由于之前的buffer还没来的及完全更新,因此可能出现撕裂的情况。解决办法是采用双buffer模式。CPU/GPU每次写一个buffer,Display每次更新另一个buffer。
  3.Android4.1之前CPU/GPU/写入buffer比较随意,这样可能导致‘jank’,也就是某些帧不能及时的刷新到屏幕上。因此Android4.1后引入了“VSYNC信号”机制。系统一旦收到vsync通知(16.6ms触发一次),CPU和GPU就立刻开始工作把显示数据写入buffer。这样可以保证每一帧有完整的16.6ms来完成相应的计算和准备工作。
  4.Android无论初始化View还是刷新View都会最终交给ViewRootImpl执行。根据情况不同可能会对View进行重新绘制或者测量加摆放。但是最终都会以一个runnable的形式存放在一个队列中,并注册关注vsync通知(类似观察者,只有注册了才会收到vsync信号)。在收到vsync信号后会执行runnable,runnable的内容就是测量和绘制。一般情况下这个runnable总是会被主线程最先执行。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37988298/article/details/79953675

关于Android 7.0系统通知声音不能播放

由于沉迷于撸(nong)码(yao),很久没有更新过博客了,甚是惭愧.公司的项目比较高大上,主要面对老外开发,所以要适配各种版本的Android机,项目里有个闹钟提醒患者吃药的功能,但是这个功能获取系...
  • pvpheroszw
  • pvpheroszw
  • 2017-07-31 15:15:40
  • 727

android开发(21)蜂鸣提示音和震动提示的实现。

最近在读zxing项目,学到了不少东西。推荐大家也读读。里面有个BeepManager类,实现一个蜂鸣音和震动的实现。我们一起来看看他是怎么做的: 蜂鸣 1.准备一个 音频文件 比如:beep.o...
  • dyllove98
  • dyllove98
  • 2013-04-14 11:03:00
  • 5798

Android屏幕刷新机制解析

今日科技快讯有报道称:获得腾讯和携程投资的在线旅游公司同程艺龙计划下半年在香港进行IPO,募集10-15亿美元。同程艺龙希望利用IPO筹集资金,更好地与阿里巴巴的飞猪和去哪儿网竞争。另外,得益于腾讯市...
  • c10WTiybQ1Ye3
  • c10WTiybQ1Ye3
  • 2018-03-09 00:00:00
  • 87

android屏幕刷新显示机制

android屏幕刷新显示机制 前言 本文是通过阅读各种文章及代码,总结出来的,其中难免有些地方理解得不对,欢迎大家批评指正。 显示系统基础知识 定义 在一个典型的显示系统中,一...
  • litefish
  • litefish
  • 2016-12-30 10:15:18
  • 3806

Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。 ...
  • vipzjyno1
  • vipzjyno1
  • 2014-05-15 07:50:00
  • 248331

Android 程序获取、设置铃声、音量、静音、扬声器

转自:http://blog.sina.com.cn/s/blog_5da93c8f0101g449.html Android 程序获取、设置铃声和音量 通过程序获取android系统手机的铃声和...
  • qq629290
  • qq629290
  • 2017-03-28 17:35:29
  • 823

屏幕刷新的原理

一个屏50~60HZ,人眼就感觉不出闪烁,若以60HZ为例子, 整个屏幕刷新一次的周期是1 / 60 hz 大约是 16.6ms 若整个屏幕由4这个灯组成,则每个灯刷一次的周期为16.6ms / 4 ...
  • lan120576664
  • lan120576664
  • 2014-11-26 14:24:28
  • 850

Android 屏幕刷新机制

这次就来梳理一下 Android 的屏幕刷新机制,把我这段时间因为研究动画而梳理出来的一些关于屏幕刷新方面的知识点分享出来,能力有限,有错的地方还望指点一下。另外,内容有点多,毕竟要讲清楚不容易,所以...
  • Frakie_Kwok
  • Frakie_Kwok
  • 2018-03-11 13:58:50
  • 78

Android Vitamio播放视频有声音无图像问题解决

在项目的主Activity中使用ViewPager,然后在Fragment中加入视屏列表,点击列表项播放视频。VideoView并不是每个item都有,在Fragment创建时根据R.layout创建...
  • baidu_28523317
  • baidu_28523317
  • 2017-03-14 14:22:00
  • 2521

Android MediaRecorder 实现录制无声视频 禁止录入声音

最近遇到使用MediaRecorder录制视频的时候,需要默认录制无声视频,几经研究,也没找到资料解决,后来,发现,只需要同时取消设置AudioSource和AudioEncoder就可以实现录制无声...
  • u010998327
  • u010998327
  • 2017-05-09 13:05:44
  • 2555
收藏助手
不良信息举报
您举报文章:关于Android屏幕刷新机制的一些总结
举报原因:
原因补充:

(最多只允许输入30个字)