AppSearch はオンデバイスのインデックス登録と構造化された検索エンジンであり、Android 12 では APEX として提供されていました。Android 13 では、AppSearch は Mainline モジュールとして提供されています。
目的
Android エコシステム全体で AppSearch の実装方法を統一し、更新可能性をサポートすること。
メリット:
- Play ストアで AppSearch を更新できます
 - AppSearch CDD の要件に確実に準拠します
 
詳細
- AppSearch API を介して収集されたデータは、ユーザーのデバイスに残ります(パフォーマンスの最適化に使用される集計指標データを除く)
 - I/O 使用率の低い、高速かつモバイル ファーストなストレージの実装
 - 大規模なデータセットに対する効率性に優れたインデックス登録とクエリ
 - 複数言語のサポート(英語、スペイン語、CJKT など)
 - 関連性ランキングと使用状況スコア
 
AppSearch のアーキテクチャ
図 1 は、AppSearch のコンセプトとシステム サービスのプロセスの境界を示しています。
 
図 1. AppSearch モジュールのアーキテクチャ
モジュールの境界
AppSearch Mainline 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
 
 - コードの場所: 
 
- AppSearch API サーフェス(Java)
 HAL インターフェース / 実装(C++)
- なし
 
図 1 のモジュールのアーキテクチャ図をご覧ください。
パッケージの形式
このモジュールの主な機能は、APEX パッケージ com.android.appsearch に含まれています。
依存関係
- libicu
 - libprotobuf-cpp-lite
 - NDK
 
カスタマイズ
このモジュールはカスタマイズできません。