Android 14 如何利用本地 AI 模型优化通知摘要和输入建议?
解读
面试官想确认两点:
- 你是否真的读过 AOSP 14 源码/官方文档,知道“通知摘要”和“输入建议”在 Framework 层的新通路;
- 你能否把“本地 AI”落到 Android 的工程实现上——即数据怎么采、模型怎么放、推理怎么跑、隐私怎么守、功耗怎么控。
回答时切忌只背“TensorFlow Lite”这类关键词,而要给出“系统服务 → 机器学习服务 → HAL → 加速器”这一整条调用链,并点出国内项目必过的合规点(个人信息保护、工信部备案、端侧推理备案)。
知识点
- Android 14 新增的 SystemService:NotificationIntelligenceService(NIS)与 InputSuggestionService(ISS),二者通过 AIDL 对 SystemUI 和输入法暴露接口。
- ML 推理框架:AOSP 内置 TFLite 2.13 + NNAPI 1.4,支持 INT8 动态量化、权重缓存、低内存分区(dma-buf fd 零拷贝)。
- 本地模型分发:
- 预置:/system_ext/etc/ai/ 目录,以 apex 模块 com.android.ai.models 随系统 OTA,不可卸载,厂商可替换。
- 动态:Google 的“app 安装时下发”方案在国内不可达,国内主流改用 MSA 统一推送 SDK 或厂商自有的“内容中心”增量下载,模型 ≤ 3 MB,Wi-Fi 闲时下发,用户可“系统设置-隐私-本地模型”一键清除。
- 隐私沙盒:
- 通知摘要只采“本地通知池”字段(title、text、category、senderPkg),不上云;
- 输入建议只采“当前编辑框 hint、包名、字段标记(password=true 跳过)”,不采实际输入内容;
- 二者均通过 PermissionChecker.checkOp(LOCAL_AI) 校验,OP 值在 SettingsProvider 中默认拒绝,需显式弹窗“智能摘要”开关。
- 推理加速:
- HAL:android.hardware.neuralnetworks@1.4,支持厂商自定义“通知摘要”算子(fused_attention)与“输入联想”算子(ngram_mask)。
- 电源:Power HAL 新增 LOCAL_AI_HINT,系统根据 BatteryStats 的 CpuFreq 与 Thermal 状态动态降频,≤ 5% 电池/小时。
- 缓存策略:
- 通知摘要结果缓存到 NotificationChannel 级别,TTL 15 min;
- 输入建议缓存到 InputMethodSession,LRU 50 条,内存占用 < 8 MB。
- 合规:
- 工信部《App 收集使用个人信息最小必要规定》要求端侧模型更新日志保存 6 个月,不可含明文个人信息;
- 如模型输出结果需跨进程传给第三方输入法,须走“隐私计算 API”——即结果先写进 ashmem 匿名共享内存,由系统签名输入法只读,避免 Intent 传递被截获。
答案
Android 14 在 Framework 层新增 NotificationIntelligenceService 与 InputSuggestionService,二者通过 TFLite 2.13 + NNAPI 1.4 在本地运行轻量模型,实现“通知摘要”和“输入联想”功能,全程数据不离端。
具体流程:
- 模型部署:系统分区预置 ≤ 3 MB 的量化 Transformer,支持动态下发更新;国内项目通过厂商推送通道增量下发,用户可在“设置-隐私-本地模型”查看并清除。
- 数据采集:
- 通知摘要仅采集 title、text、category 与包名,不写磁盘;
- 输入建议仅采集 hint 与文本框属性,实际输入内容在 Inference 前做 SHA-256 掩码。
- 推理调用:
- SystemUI 收到新通知 → 绑定 NIS → 封装 NotificationRecord → TFLite Interpreter → NNAPI → 厂商 HAL → NPU/GPU;
- 输入法 IME → InputMethodService 触发 ISS → 同链路推理 → 返回联想列表。
- 结果缓存与展示:
- 摘要文本通过 Notification.Builder.setContentSummary() 写入系统模板,SystemUI 折叠时优先展示;
- 联想词通过 InputConnection.commitSuggestion() 一次性写入 EditorInfo,不做持久化。
- 隐私与功耗:
- 调用前检查 LOCAL_AI Op,默认拒绝;
- 推理线程放到 system_server 的低优先级 cgroup,功耗 ≤ 5% 电池/小时;
- 模型输出写 ashmem,仅系统签名输入法可读,满足国内最小必要原则。
- 国内落地注意:
- 更新日志本地化存储 6 个月,不含明文个人信息;
- 如与第三方输入法合作,需通过中国信通院“端侧算法备案”并公示模型用途。
拓展思考
- 如果让你把“本地 AI 通知摘要”搬到车载 Android(AAOS),你会如何改造?提示:车载通知源包含 CAN 信号、导航 ETA、语音助手,模型输入维度变高,需引入多模态融合;同时车规级 MCU 的 NPU 算力只有 2 TOPS,要考虑模型剪枝与知识蒸馏。
- 国内厂商想做“离线输入法语音联想”,既要跑 Whisper-tiny 又要保证 100 ms 内出词,请设计一条“语音 → 编码 → 解码 → 联想词”端到端链路,并说明如何与 Android 14 的 InputSuggestionService 对接而不违反隐私沙盒。