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
定制
此模塊不可自定義。