Appearance
生产力与界面特性:大屏多窗口、通知、触感、文本与无障碍
本页导读:Android 16 在「日常使用体验」上给了成建制的新东西:大屏/桌面窗口化的强制自适应(target36)、以进度为中心的通知(
Notification.ProgressStyle)、系统动画层的预测性返回、可编程触感曲线、动态壁纸内容 API、竖排文字与自定义度量衡、一整批无障碍新语义,以及 LE Audio 助听器控制。本页逐项给出版本归属与官方链接,并标注哪些是 API 36 首发、哪些来自 QPR 次要发布。
版本注记:事实源为官方Android 16 特性页与两页行为变更,核对时间 2026-10。
前置阅读:本页多处引用 02 行为变更-targetSdk 36(强制项细节)与 01 行为变更-全部应用(不看 target 的行为项),三页合看才是完整的 Android 16 界面改造清单。
一、能力地图:先分清首发与 QPR
| 特性 | 版本归属 | API 级别 | 官方入口 |
|---|---|---|---|
| 大屏忽略方向/比例限制 | API 36(仅 target36) | 36 | bc-36 页 |
| 以进度为中心的通知 | API 36 | 36 | ProgressStyle 专页 |
| 预测性返回增强(观察者/任务回调) | API 36 | 36 | 特性页 §预测性返回更新 |
| 三按钮导航支持预测动画 | API 36 | 36 | bc-all 页 |
| 触感振幅/频率曲线 | API 36 | 36 | 特性页 §触感 |
| 动态壁纸内容 API | API 36 | 36 | WallpaperDescription 参考 |
| 竖排文字(Paint 级) | API 36 | 36 | Paint.VERTICAL_TEXT_FLAG |
| 自定义度量衡制 | API 36 | 36 | 特性页 §国际化 |
| 无障碍语义 API 一批 | API 36 | 36 | 特性页 §无障碍 |
| 主题应用图标自动应用 | Android 16 QPR2 | 36.x(minor) | bc-all 页 |
表中「API 36」列的含义:功能守卫写 SDK_INT >= 36 即可;标 QPR 的行必须改用 SDK_INT_FULL/getMinorSdkVersion()(用法见 00 页 §三),两者混用会把 minor 特性误判成 major。
二、大屏、多窗口与桌面窗口化:从「可选」变「默认」
版本注记:核心机制是 target36 行为变更(API 36,sw≥600dp 屏生效);窗口形态本身(分屏、桌面窗口化)为既有能力在 16 上继续演进。
Android 16 改变了什么
- 过去「锁竖屏、禁缩放、限宽高比」是合法防御;target36 起这些限制在 sw600dp+ 屏上被系统直接忽略(细节与例外矩阵见 02 页 §六)。官方明确表述:Android 正转向「应用必须适应任意屏幕方向、显示大小与宽高比」的模型,分屏与桌面窗口化模式都在此约束下运行。
- 临时逃生阀
PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY可用,但官方白纸黑字:target 37 起作废。把「先躲一躲」当成终局方案的团队,37 会被动补课。
工程清单(大屏适配实操)
- 尺寸假设清零:不要按「手机竖屏」写死边距/断点,用窗口尺寸类(WindowSizeClass 思路)与自适应布局(官方自适应布局)。
- 状态可恢复:旋转/拖窗口/分屏都会触发配置变更与重建(02 页 §六的状态保存要求)。
- 多窗口形态纳入回归矩阵:分屏 50/50、1/3 侧栏、桌面窗口任意拖拽尺寸三档起步;桌面形态的指针交互、悬停态与最大窗口边距按桌面设计规范走。
- 跨设备投影:VDO 场景(手机应用投到 PC/车机)下限制同样可被属主应用忽略,见 01 页 §九。
- 系统级多窗口既有 API(分屏/画中画/
ActivityOptions等)不属于 16 新增,用法不变,可在自适应应用门户统一复习。
测试窗口的推荐档位(覆盖绝大多数桌面窗口化布局问题):
- 全屏横屏(基准档,sw≥600dp 设备上跑);
- 分屏左右 1:1 与 2:1;
- 桌面窗口三种典型尺寸:最小宽 600dp 临界、接近正方形、用户拉满的超宽窗口;
- 每档各触发一次旋转与一次「拖窗改尺寸」,同时监控 activity 重建与列表滚动位置。
三、预测性返回:从「应用侧迁移」进入「系统动画全量接管」
版本注记:Android 16 / API 36。行为变更(默认启用、
onBackPressed停发)在 02 页 §三;本页讲新能力。
PRIORITY_SYSTEM_NAVIGATION_OBSERVER:以观察者身份注册OnBackInvokedCallback,能在系统处理返回时收到常规onBackInvoked回调而不干扰正常返回流——适合埋点、动画协同这类只读需求。finishAndRemoveTaskCallback()/moveTaskToBackCallback():注册到OnBackInvokedDispatcher后,返回手势触发对应行为并播放匹配的预测动画(任务关闭/任务退后台),替代过去「手动调 finish + 无动画」的割裂体验。- 三按钮导航同样受益:长按返回键即触发预测动画预览(回主页/跨任务/跨 activity 动画全系统覆盖)。
- 迁移主文档:预测性返回。
四、以进度为中心的通知(ProgressStyle)
版本注记:Android 16 / API 36 新 API;官方专页与类参考齐全。
- 类:
Notification.ProgressStyle(内部原语ProgressStyle.Point里程碑点 /ProgressStyle.Segment分段)。 - 设计意图:跟踪「用户发起的端到端进程」——网约车行程、外卖配送、导航线路——用点与段表达状态与里程碑,锁屏与通知栏有两套呈现形态。
- 与旧「进度条通知」的区别:ProgressStyle 是语义化的进程叙事(里程碑 + 当前所处段),不是百分比进度条;适合有确定阶段的业务,纯百分比下载仍用传统进度通知。
- 完整用法见官方专页:以进度为中心的通知。
三个常见误用(设计评审先挡住):把 ProgressStyle 画成百分比进度条(丢掉了里程碑语义);给无终点的任务铺满 Point(应留给确定阶段);用通知进度替代应用内页而不给跳转入口(用户看不到细节)。
五、更丰富的触感反馈:振幅与频率曲线可编程
版本注记:Android 16 / API 36。谱系:Android 11(API 30)引入语义基元
VibrationEffect.Compositions,Android 16 引入振幅/频率曲线定义并抽象设备差异。
能力:应用按曲线描述一次触感的强度/频率随时间变化,系统映射到设备执行器能力,避免过去「逐机型调参」。
演进脉络:固定时长/振幅(API 30 前)→ 语义组合基元
Compositions(Android 11,API 30)→ 曲线化定义(Android 16,API 36)。适用:游戏命中反馈、地图导航分段提示、关键操作确认等;低配设备会退化但仍可感。
API 面:
Vibrator/VibrationEffect扩展(参考文档);配合 04 页 的性能话题,游戏侧注意与 ADPF 热降频的体感联动。
六、动态壁纸的内容处理 API
版本注记:Android 16 / API 36,壁纸框架新 content API。
- 新类型:
WallpaperDescription/WallpaperInstance——同一壁纸服务可声明多实例(主屏与锁屏可呈现不同内容),壁纸选择器与WallpaperManager据此呈现。 - 价值:过去「用户提供素材 + 动态壁纸」需要服务私有的复杂实现;现在元数据标准化,个性化动态壁纸的集成成本显著下降。
七、输入法与文本改进
版本注记:Android 16 / API 36。
7.1 竖排文字(低级 API)
Paint新增VERTICAL_TEXT_FLAG(参考):设置后文本测量按垂直进度报告,Canvas垂直绘制——面向日语等竖排书写系统给库开发者打地基。- 官方明确边界:
TextView/Layout/ComposeText等高级 API 暂不支持竖排,需要者目前只能自绘(特性页给了 ComposedrawIntoCanvas示例)。
7.2 自定义度量衡制
- 设置 → 系统 → 语言和地区:用户可自定义测量系统(如英语(美国)设备改走公制);偏好编译进 locale 代码,监听
ACTION_LOCALE_CHANGED处理变更。 - 用格式化器(
LocaleList/MeasurementSystem感知)输出本地化单位,别硬编码「in/oz」。
7.3 优雅字体的终局
elegantTextHeight 在 target36 被忽略的迁移要求见 02 页 §四;与本页 7.1 合看就是 16 的文本渲染两条线:复杂文种默认排版现代化 + 竖排基建起步。
八、可访问性:一次补齐八块语义
版本注记:Android 16 / API 36。总入口无障碍指南。
| 能力 | API 要点 | 对谁有用 |
|---|---|---|
| 轮廓文本 | AccessibilityManager 查询/监听轮廓文本模式(替代高对比度文本,描边增强对比) | 自绘文本/界面工具包必须跟进,否则主题切换后文字对比失衡 |
| 时长朗读 | TtsSpan.TYPE_DURATION(ARG_HOURS/MINUTES/SECONDS) | 计时、运动、导航类 app 的 TTS 读法统一 |
| 多标签关联 | AccessibilityNodeInfo#addLabeledBy/removeLabeledBy/getLabeledByList(弃用 setLabeledBy/getLabeledBy) | 表单控件对应多个 label 的 Web 式场景 |
| 展开态播报 | setExpandedState + CONTENT_CHANGE_TYPE_EXPANDED 事件 | 菜单、折叠列表的 TalkBack 反馈 |
| 不确定进度 | RangeInfo 新增 RANGE_TYPE_INDETERMINATE | 加载环/跑马灯的读屏一致性 |
| 三态复选框 | getChecked()/setChecked(int) 支持「部分选中」,取代布尔版 | 全选框半选态 |
| 补充说明 | setSupplementalDescription(GroupView 说明不覆盖子节点标签) | 「字体族:Roboto」这类父子双标签 |
| 必填字段 | setFieldRequired | 表单必填项的读屏提示与快速跳转 |
同时注意减法:announceForAccessibility/TYPE_ANNOUNCEMENT 在 16 被弃用,替代矩阵见 01 页 §六。
验收要点提醒:
- 轮廓文本只对「绕过
android.text.Layout的自绘文本」和界面工具包有硬要求,普通 app 系统自动生效,但要在开启模式后目检对比度。 - 三态复选框迁移时注意别新旧两套 API 混用:布尔
isChecked与新 int 版并存期间以 int 版为准。 setSupplementalDescription是给「父容器补充语境」用的,别拿它替代contentDescription,否则会把子节点标签盖掉(这正是 16 要修的历史坑)。
九、LE Audio 助听器:通话麦源与环境音量
版本注记:Android 16 / API 36,面向助听器用户(Android 无障碍体系的硬件侧延伸)。
- 语音通话可在「助听器内置麦」与「手机麦」之间切换——嘈杂环境或助听器麦克处境差时救场。
- 新增环境音量调节:放大/压低助听器麦克风拾取的环境声。
- 对应用开发者多为无感受益; hearing-aid 相关适配检查点在通话/会议类 app 的音频路由测试。
验收建议:通话类 app 在支持 LE Audio 助听器的环境跑一轮「麦源切换 + 环境音量调节」组合用例,确认音频焦点与路由回调无异常即可,无应用侧 API 需要接入。
十、把 16 界面特性做进产品的顺序建议
- 先还债:target36 的 edge-to-edge、预测性返回、大屏自适应三件套(02 页)——不做完,后面全是 bug。
- 再收益:ProgressStyle(行程类)、触感曲线(游戏/导航)、
addLabeledBy等无障碍八项(可分批)。 - 后铺开:竖排与度量衡(出海日区/多地区产品),动态壁纸 API(壁纸类 app),主题图标(5 分钟补 monochrome 图层,QPR2 起系统自动兜底)。
- 无障碍改完用 TalkBack 实测清单回归。
- 涉及自绘文本/界面库的团队,把「轮廓文本监听接入」列入 16 的必做项,其他团队列入观察项。
- 游戏团队额外把触感曲线与 04 页 §四 的 ADPF 裕度 API 放进同一迭代。
每条特性的「版本校验」小抄(写文档/提测单时用):
- 说 ProgressStyle、触感曲线、竖排 flag、八项无障碍 → 一律标 Android 16 / API 36。
- 说主题应用图标 → 标 Android 16 QPR2(次要发布),判断代码用
SDK_INT_FULL。 - 说桌面窗口化的「强制自适应」→ 标 Android 16 / API 36,仅 target36、仅 sw≥600dp,三个限定词一个都不能少。
- 说分屏/画中画→ 那是 Android 7(API 24)起的老三样,别蹭 16 的热度。
十一、FAQ:四个高频疑问
- Q:桌面窗口化要单独申请什么权限或特性声明吗? A:官方两页行为变更里没有任何应用侧声明要求,自适应布局是唯一的硬性要求;具体形态入口(如何进入窗口模式、快捷键)以设备/OEM 实现为准,官方设计规范见桌面设计。
- Q:ProgressStyle 会替换现有
Notification.ProgressStyle的媒体进度吗? A:不会互相替换;ProgressStyle 面向「里程碑叙事」,与媒体播放进度、下载百分比通知并存使用。 - Q:竖排文字能直接让 Compose 页面竖排吗? A:不能,官方明确高级文本 API 尚未支持;当前用
VERTICAL_TEXT_FLAG在 Canvas 层自绘,或等 Jetpack 跟进。 - Q:三按钮用户能拿到预测动画吗? A:能,前提是应用已完成预测性返回迁移;长按返回键即可看到动画(Android 16 起,见 01 页 §七)。
本页小结
本页小结:Android 16 的界面与生产力更新有一条共同主线——系统把「自适应」变成默认契约,同时把表达力(通知叙事、触感曲线、竖排文本、无障碍语义)交到应用手里。大屏/桌面窗口化侧,target36 后方向与比例限制形同虚设、退出机制到 target37 作废,越早自适应越主动;表达力侧的 ProgressStyle、触感曲线、八项无障碍 API 都是低迁移成本的直接收益项。QPR2 的自动主题图标提醒我们:次要发布也在持续改变观感,别只盯 major。
参考资料
- Android 16 特性页(UI/无障碍/国际化章节):https://developer.android.google.cn/about/versions/16/features
- 以进度为中心的通知:https://developer.android.google.cn/about/versions/16/features/progress-centric-notifications
- Notification.ProgressStyle 参考:https://developer.android.google.cn/reference/android/app/Notification.ProgressStyle
- 预测性返回指南:https://developer.android.google.cn/guide/navigation/custom-back/predictive-back-gesture
- 自适应布局:https://developer.android.google.cn/develop/ui/compose/layouts/adaptive
- 自适应应用门户:https://developer.android.google.cn/adaptive-apps
- 桌面设计规范:https://developer.android.google.cn/design/ui/desktop
- 无障碍指南:https://developer.android.google.cn/guide/topics/ui/accessibility
- TalkBack 测试:https://developer.android.google.cn/guide/topics/ui/accessibility/testing#talkback
- WallpaperDescription 参考:https://developer.android.google.cn/reference/android/app/wallpaper/WallpaperDescription
- Paint 参考(VERTICAL_TEXT_FLAG):https://developer.android.google.cn/reference/android/graphics/Paint
- Vibrator 参考:https://developer.android.google.cn/reference/android/os/Vibrator
- 行为变更:以 Android 16 为目标平台:https://developer.android.google.cn/about/versions/16/behavior-changes-16
- 行为变更:所有应用(QPR 主题图标出处):https://developer.android.google.cn/about/versions/16/behavior-changes-all