Android手写笔低延迟 - 1

873 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

Android手写笔低延迟

利用低延迟图形和运动预测API创建自然的手写笔体验

简介

随着平板电脑和可折叠设备的日益普及, 用户正使用新的行为来适应他们的设备. 更大的屏幕面积带来了新的体验, 并赋予了以前保留在笔记本电脑和台式机上的生产力任务.

用手写笔进行手写, 绘画和素描. 可以释放出精确和有机的工作流程, 就像我们在模拟世界中进行的那样. 然而, 手势和屏幕渲染之间的延迟会妨碍我们在纸上写字的自然感觉, 这被称为延迟.

很高兴看到Android团队已经发布了两个新的库. 低延迟图形运动预测, 目前是alpha02. 这些库解决了Android和ChromeOS上的手写笔输入延迟问题.

低延迟图形库的目标是减少手写笔输入和屏幕渲染之间的处理时间. 运动预测库利用一种强大的算法来预测下一次手写笔移动的位置. 将这两个库一起使用, 以提供尽可能低的感知延时.

在这里,我们将探讨这些库是如何工作的, 以及你如何在自己的应用中实现一流的手写笔体验. 虽然我们关注的是手写笔体验, 但这两个库可用于任何指针, 手指, 手写笔, 电容式手写笔和鼠标.

但是, 在进入细节之前, 让我们看看这种体验能有多好:

1_UHBRES8dF9f6ba09Oy5gyg.gif

慢动作展示了低延迟的成果 — 设备: Samsung Galaxy Tab S7 + S-Pen

低延迟的图形: 在屏幕下

如果没有任何延迟优化, 系统必须经过许多步骤才能在屏幕上渲染像素. 低延迟图形库通过利用前面的缓冲区渲染, 将延迟降到最低. 其结果是更快地渲染到屏幕上.

了解传统的渲染

传统的渲染方式使用多个缓冲区. 这确保了用户体验的流畅性, 没有视觉撕裂, 但代价是在用户与屏幕互动和内容在显示器上可见之间存在额外的延迟. 要了解更多关于渲染和缓冲区的信息, 请观看Project Butter演示.

在多缓冲区渲染方法中, 显示缓冲区包含用户当前在屏幕上看到的数据, 而渲染缓冲区被图形引擎用来渲染数据(进入内存).

一旦渲染完成, 显示缓冲区就会与渲染缓冲区互换, 这样用户就可以在屏幕上看到结果. 渲染缓冲区变成了显示缓冲区, 而显示缓冲区则被释放出来供将来使用, 现在的渲染就发生在这里.

这要感谢SurfaceFlinger和WindowManager. 下面的动画展示了这个过程.

1_mEfFzGXi8iyrFR2By4cV-A.gif

动画展示了多缓存渲染是如何工作的.

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情