Googlebook首批开发者实战:Notability与罗技如何打造桌面级Android体验

Notability与罗技分享Googlebook原生应用开发经验:忘掉设备类型,聚焦屏幕尺寸与输入模态。
文章基于Googlebook开发者活动,记录Notability Android负责人Ryan与罗技Joe的分享。Notability完全以Jetpack Compose构建UI,借助Navigation 3按窗口空间动态切换侧栏与底部弹窗,实现手机、平板、折叠屏与Googlebook的一套代码适配;桌面体验则依靠键盘优先、输入感知界面、Continue On接力与多输入模式处理。Jetpack Ink把自定义墨迹笔刷开发从数月压缩到一周。罗技Options Plus利用Googlebook外设定制API,将鼠标按键映射为圈选搜索、魔法指针等动作,并通过快速配对发现降低安装门槛。核心结论是开发者应停止按设备类型划分,转而回答“屏幕多大、有哪些输入方式”。
Googlebook的发布标志着Android向桌面级设备迈出了关键一步。在近期的一场开发者活动中,Notability的Android负责人Ryan和罗技的Joe分享了他们的团队如何从零开始,为这一新平台构建真正原生、且具备桌面级体验的应用。他们的经验揭示了一个核心趋势:开发者不应再以设备类型来思考,而应聚焦于屏幕尺寸与输入模态。
Notability:用Jetpack Compose实现“一次编写,处处适配”
Notability是一款拥有数百万学生和专业用户笔记应用,在iOS和桌面端久负盛名。其Android版本从项目启动之初就明确了目标:不是简单移植iOS应用,而是打造一款真正符合Android用户期待的原生应用,同时保持功能对等。

全面拥抱Jetpack Compose与Navigation 3
Ryan强调,Notability的整个UI都构建在Jetpack Compose之上。这使他们能够以一套代码,原生支持从低端手机到高性能平板、电脑、XR甚至汽车等全系列硬件。Navigation 3则解决了布局自适应的核心难题。在代码层面,Notability为侧边摘要面板设置了一个入口点,并将其加入返回栈。随后,自定义的场景策略会根据屏幕空间决定布局:在平板或Googlebook上,面板从右侧滑入;在手机或折叠屏上空间不足时,则自动转为底部弹窗。
这种基于窗口尺寸而非设备类型的适配逻辑,让Notability的UI能自动适应各种场景。在手机上,工具按钮会重新定位到拇指易达的区域;在平板上,导航面板侧置以利用更大空间;在折叠屏上,则利用折叠特性创造独特布局,例如将测验答案与进度分屏显示。而在Googlebook上,应用支持平滑的窗口缩放,如同任何桌面窗口应用一样,可自由调整大小进行并排操作。
Jetpack Compose 是 Google 推出的 Android 现代声明式 UI 工具包,用 Kotlin 编写,取代了传统的基于 View 和 XML 的命令式 UI 体系。它的核心优势在于:UI 由状态驱动,状态变化时框架自动重组(recomposition)最小必要部分,从而天然适配不同屏幕尺寸。Compose 提供 WindowSizeClass 等 API 让开发者按窗口宽高断点(compact / medium / expanded)而非设备类型做布局决策,这正是 Notability “一次编写、处处适配”的技术基础。
Navigation 3 是 Android 导航库的最新大版本,它把返回栈(back stack)的所有权交给开发者,允许将导航状态作为普通列表来观察和修改。这一设计使得“为侧边面板单独设置入口点并加入返回栈”成为可能:面板在宽屏上作为侧栏常驻,在窄屏上退化为底部弹窗,而返回键行为始终一致。Navigation 3 还支持多场景(scene)策略,让同一目的地根据可用窗口空间渲染为不同形态。
桌面级体验的关键:键盘优先与多输入支持
尽管自适应UI已能覆盖大部分桌面体验,但要达到“真正出众”的水平,还需额外努力。Ryan给出了几条关键建议:
- 键盘优先:桌面用户对触摸的敏感度低于手机用户,因此键盘快捷键和便捷的快捷键列表入口至关重要。
- 输入感知的界面调整:当检测到键盘和鼠标连接时,Notability会调整首页UI,优先展示更适合桌面用户的工具,而非平板上的手写笔功能。
- 多设备接力:Android 17引入的“Continue On”功能允许应用在设备间无缝切换。Notability通过同步笔记ID和进度,利用一个简单的应用意图即可将笔记从手机接力到Googlebook,让用户从上次中断处继续。
- 多输入模式处理:除了键盘快捷键,还需考虑触控板的不同缩放与滚动行为、右键菜单,以及触摸屏上对手指、手写笔和触控板光标三种输入的差异化识别。
Jetpack Ink:将墨迹开发从数月缩短至一周
对于Notability这类以手写为核心的应用,墨迹延迟和效果至关重要。Ryan透露,过去构建自定义笔刷需要处理复杂的线程、渲染和缓冲区管理,耗时可能长达数月。而借助Jetpack Ink,这一过程被大幅简化。

Jetpack Ink提供了一个低延迟的墨迹构建系统。Notability利用其“湿墨层”(绘制中的墨迹)和“干墨层”(已保存的墨迹)概念,过去需要手动处理的线程交接、重绘和防闪烁问题,现在只需将自定义曲线拟合模型通过其自定义进度形状视图传入即可。Ryan现场演示了使用手指绘制的彩虹和闪光效果笔刷,并指出,得益于Jetpack Ink和其自定义笔刷构建器,开发此类笔刷的时间已从数月缩短到不到一周。
Jetpack Ink 是 Google 为 Android 手写与绘图场景推出的墨迹(ink)框架,其核心是低延迟渲染管线。传统手写实现中,输入事件、笔迹预测、曲线拟合与最终栅格化分属不同线程,开发者需手动管理缓冲区与重绘,稍有不当便出现延迟或闪烁。Jetpack Ink 将“湿墨层”(正在绘制、尚未提交的笔迹)与“干墨层”(已持久化的笔迹)分离:湿墨层走预测性低延迟路径,干墨层负责稳定渲染与存储。开发者只需提供一个自定义的进度形状(progress shape)或曲线拟合模型,框架负责线程交接与防闪烁。这对笔记类应用意义重大——墨迹延迟直接决定书写手感,而 Jetpack Ink 把这一门槛从“数月工程”降到“一周集成”。
Kotlin Multiplatform与自研文本编辑器的探索
在代码共享方面,Notability最初考虑使用C++或Objective-C,但最终发现Kotlin Multiplatform不仅更容易让iOS工程师上手,而且性能更好、开发更快。目前他们仍在积极评估中,但评价很高。
此外,Ryan还透露了一个“独门秘方”:Android平台缺乏构建大型文档文本编辑器的良好方案。Notability自研了一套复杂系统,能够同时处理数千页文本的协同编辑。其核心机制是按键输入走两条路径:一条是本地最佳猜测的即时显示,另一条是快速同步到后端进行协同校验,如有冲突则进行再调整。这套系统投入巨大,Notability正在考虑将其开源,并寻求社区协作。
罗技:用Options Plus重新定义外设定制体验
罗技拥有超过40年的外设制造经验,并在此前与Chrome OS建立了良好的兼容性口碑。随着Googlebook的推出,罗技同步发布了Options Plus应用,让用户能够在新的桌面环境中配置其鼠标和键盘。

打通硬件、软件与操作系统的边界
罗技的Joe指出,外设定制涉及硬件固件和操作系统两个层面。过去,Android应用受限于沙箱环境,难以深度配置外设功能。而Googlebook提供的“外设定制API”改变了这一局面。该API目前处于白名单阶段,但计划随Android更新(26Q4)向所有开发者开放。
通过该API,开发者可以定义三个核心组件:设备(通过供应商ID和产品ID识别)、触发器(按键或按钮)以及动作(应用或系统功能)。Joe展示了一段简化代码:将鼠标中键映射为系统语音助手。实际代码更复杂,但概念直观。
现场演示中,Joe将MX Master 4的拇指按钮设为“圈选搜索”,将功能按钮设为“魔法指针”。在浏览器中,他按下拇指按钮圈选键盘,Google立即显示相关信息;随后切换功能按钮,指向设备并点击,即可触发搜索。这种将整个工作流集成到单手操作的设计,显著提升了可访问性和工作效率。
外设定制 API(Peripheral Customization API) 是 Googlebook 引入的系统级接口,解决的是 Android 长期存在的沙箱限制:普通应用无法直接读写外设固件或拦截全局按键。该 API 定义了一个三方模型——设备(以供应商 ID + 产品 ID 标识)、触发器(物理按键或按钮)与动作(启动应用、调用系统功能或执行自定义逻辑)。应用通过声明式配置把触发器绑定到动作,由系统在输入分发层统一执行,从而绕过沙箱又不破坏安全边界。该 API 目前处于白名单阶段,计划随 Android 26Q4 更新向所有开发者开放,这意味着外设厂商与第三方应用将能在桌面级 Android 上实现接近 Windows/macOS 驱动级软件的定制深度。
快速配对发现与一致性UI设计
罗技还利用了一个称为“快速配对发现”的功能:当兼容的罗技鼠标靠近时,操作系统会触发标准通知,提示用户有配套应用,点击即可跳转Play Store安装。
在UI设计上,Options Plus横跨Windows、Mac和Googlebook。罗技的目标是让应用既感觉是平台专属的,又在各平台间保持一致性。由于Googlebook用户更倾向于桌面式使用,Options Plus在Googlebook上同样呈现桌面应用形态,良好支持窗口缩放、触摸和鼠标键盘操作。
核心启示:忘掉设备类型,关注屏幕与输入
Ryan在演讲结尾总结道,开发者应停止以“手机、折叠屏、XR、桌面、平板、汽车、电视”来划分设备,而应思考两个问题:当前可用的屏幕尺寸是多少?用户有哪些输入模态? 然后为这些条件提供最佳体验。Jetpack Compose和Navigation 3让支持这些变得简单,而Google不断推出的新API(如Jetpack Ink、端侧Gemini)则让开发者能专注于构建核心体验和独特价值。
据Notability和罗技的分享,Googlebook的首发生态已展现出Android桌面化的清晰路径。无论是笔记应用还是外设管理,成功的关键都在于真正理解桌面场景下的交互逻辑,而非简单放大手机应用。
相关推荐

DeepSeek开源DeepInfer:推理框架到底有什么用?
DeepSeek开源推理框架DeepInfer,采用Apache 2.0许可证,支持DeepSeek V4.1 Flash离线推理。本文解析其请求调度、FlashMLA/DeepGEMM计算优化、DSPark投机验证加速以及对开发者和普通用户的实际意义。

开源AI学习智能体:从拓扑图到试卷生成的全流程体验
探索开源AI学习智能体:基于DeepSeek API,通过拓扑图构建知识体系,支持自动文档生成、笔记、超级文档和试卷考试。了解其Agent工作流与设计亮点。

开源大肥鱼Pro桌宠:集成AI对话与音乐联动,全平台安装指南
大肥鱼Pro版开源桌宠集成AI对话、唱歌分声与音乐软件联动,支持Windows、Linux、macOS全平台。本文介绍其核心功能与两种安装方式,包括直接通过GitHub部署和借助AI助手代装,适合桌面美化与AI应用爱好者参考。