AppSearch 是一種裝置上索引和結構化搜尋引擎,在 Android 12 中作為 APEX 提供。在 Android 13 中,AppSearch 作為 Mainline 模組提供。
動機
確保 AppSearch 在整個 Android 生態系統中的一致實施並支援可更新性。
好處:
- 允許透過 Play 商店更新 AppSearch
- 確保符合 AppSearch CDD 要求
細節
- 透過 AppSearch API 收集的資料保留在使用者的裝置上(用於效能最佳化目的的聚合指標資料除外)。
- 快速、行動優先的儲存實現,I/O 使用率低
- 對大數據集進行高效率索引和查詢
- 多語言支持,如英語、西班牙語、中日韓對照
- 相關性排名和使用評分
應用程式搜尋架構
圖 1 突顯了 AppSearch 概念以及系統服務流程邊界。
圖 1. AppSearch 模組架構
模組邊界
AppSearch 主線 Apex -
com.android.appsearch
- AppSearch API 介面 (Java)
- 程式碼位置:
frameworks/base/apex/appsearch/framework
- 進程: BOOT_CLASS_PATH
- 程式碼位置:
- 應用程式搜尋管理員服務 (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
- 恩德克
客製化
該模組不可定制。