android - 如何使用 Choreographer 将动画与 VSync 同步?
问题描述
当我使用 Choreographer 时,我想它会每 16 毫秒触发一次 doFrame 以与 vSynch 同步。但是当我查看日志时,情况并非如此:
04-04 01:02:13.430: I/doFrame(5348): 83955391747085
04-04 01:02:13.443: I/doFrame(5348): 83955405796564
04-04 01:02:13.451: I/doFrame(5348): 83955413367397
04-04 01:02:13.461: I/doFrame(5348): 83955421952814
04-04 01:02:13.468: I/doFrame(5348): 83955430145522
04-04 01:02:13.474: I/doFrame(5348): 83955438113751
04-04 01:02:13.497: I/doFrame(5348): 83955460370652
04-04 01:02:13.515: I/doFrame(5348): 83955477302114
04-04 01:02:13.532: I/doFrame(5348): 83955494233669
04-04 01:02:13.549: I/doFrame(5348): 83955511161610
如您所见,每次调用 doframe 之间的时间都小于 16 毫秒。所以现在我不明白 Choreographer 是如何工作的 :( 调用 Choreographer.postFrameCallback 到底是什么意思?怎么可能在 2 个 doFrame 事件之间只有 7 毫秒?
解决方案
推荐阅读
- deep-learning - 是否可以在智能手机上使用 Tensoflow Lite/或任何其他框架训练神经网络模型?
- pytorch - 从集线器 conf 加载 mobilenet_v2 出现错误:无法导入名称“resnext50_32x4d”
- server - GtaCoop 中有可用的主服务器吗?
- apache-kafka - Kafka 流:PolicyViolationException:主题复制因子必须为 3
- c# - Visual Studio 2019,C# 代码库,是否可以更改引用的名称?
- java - Scala-Java 互操作,方法重载问题(数组和可变参数)
- javascript - jquery timepicker 和 ajax
- javascript - 提交表单时更改隐藏的输入值
- azure - 如何在 Azure Devops 管道中的 YAML 中设置管道“任务版本”
- bash - 为什么bash变量不会在while循环中扩展