AppSearch 是一种设备上的索引和结构化搜索引擎,在 Android 12 中作为 APEX 发布。在 Android 13 中,AppSearch 作为 Mainline 模块发布。
动机
确保在整个 Android 生态系统中一致地实施 AppSearch 并支持可更新性。
好处:
- 允许通过 Play 商店更新 AppSearch
- 确保符合 AppSearch CDD 要求
细节
- 通过 AppSearch API 收集的数据保留在用户的设备上(用于性能优化目的的聚合指标数据除外)。
- 具有低 I/O 使用率的快速、移动优先存储实现
- 对大型数据集进行高效索引和查询
- 多语言支持,如英语、西班牙语和 CJKT
- 相关性排名和使用评分
应用搜索架构
图 1 突出显示了 AppSearch 概念以及系统服务流程边界。
图 1. AppSearch 模块架构
模块边界
AppSearch 主线 Apex -
com.android.appsearch
- AppSearch API 表面 (Java)
- 代码位置:
frameworks/base/apex/appsearch/framework
- 进程: BOOT_CLASS_PATH
- 代码位置:
- AppSearchManagerService (Java)
- 代码位置:
frameworks/base/apex/appsearch/service
- 进程:system_server
- 代码位置:
- 结冰本机库(C++)
- 代码位置:
external/icing
- 进程:system_server
- 代码位置:
- AppSearch API 表面 (Java)
HAL 接口/实现 (C++)
- 不适用
参考图1中的模块架构图。
包装格式
该模块的主要功能包含在 APEX 包com.android.appsearch
中。
依赖项
- 利比库
- libprotobuf-cpp-lite
- ndk
定制
此模块不可自定义。