AppSearch

AppSearch 是一款设备端索引和结构化搜索引擎,已在 Android 12 中作为 APEX 发布。在 Android 13 中,AppSearch 作为主线模块发布。

动机

确保在整个 Android 生态系统中 AppSearch 实现的一致性,并支持可更新性。

优势

  • 允许通过 Play 商店更新 AppSearch
  • 确保符合 AppSearch CDD 要求

详情

  • 通过 AppSearch API 收集的数据仍保留在用户的设备上(聚合指标数据除外,这些数据用于性能优化目的)。
  • 快速、移动优先的存储实现,具有低 I/O 使用率
  • 针对大型数据集的高效索引和查询
  • 多语言支持,例如英语、西班牙语和 CJKT
  • 相关性排名和用量评分

AppSearch 架构

图 1 重点介绍了 AppSearch 概念以及系统服务进程边界。

AppSearch module architecture

图 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
    • Icing 原生库 (C++)
      • 代码位置:external/icing
      • 进程:system_server
  • HAL 接口/实现 (C++)

    • 不适用

请参阅图 1 中的模块架构图。

软件包格式

此模块的主要功能包含在 APEX 软件包 com.android.appsearch 中。

依赖项

  • libicu
  • libprotobuf-cpp-lite
  • ndk

自定义

此模块不可自定义。