AppSearch

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

AppSearch, un moteur d'indexation et de recherche structurée sur l'appareil, a été livré en tant qu'APEX dans Android 12. Dans Android 13, AppSearch est livré en tant que module Mainline.

Motivation

Pour assurer une mise en œuvre cohérente d'AppSearch dans l'écosystème Android et prendre en charge la possibilité de mise à jour.

Avantages:

  • Autoriser la mise à jour d'AppSearch via Play Store
  • Assurer la conformité avec les exigences AppSearch CDD

Détails

  • Les données collectées via les API AppSearch restent sur l'appareil de l'utilisateur (à l'exception des données de métriques agrégées, qui sont utilisées à des fins d'optimisation des performances).
  • Une implémentation de stockage rapide et mobile avec une faible utilisation des E/S
  • Indexation et interrogation très efficaces sur de grands ensembles de données
  • Prise en charge multilingue, telle que l'anglais, l'espagnol et le CJKT
  • Classement de pertinence et score d'utilisation

Architecture AppSearch

La figure 1 met en évidence les concepts AppSearch ainsi que la limite du processus de service système.

Architecture du module AppSearch

Figure 1. Architecture du module AppSearch

Limite du module

  • AppSearch Mainline Apex - com.android.appsearch

    • Surface de l'API AppSearch (Java)
      • Emplacement du code : frameworks/base/apex/appsearch/framework
      • Processus : BOOT_CLASS_PATH
    • AppSearchManagerService (Java)
      • Emplacement du code : frameworks/base/apex/appsearch/service
      • Processus : system_server
    • Bibliothèque native de givrage (C++)
      • Emplacement du code : external/icing
      • Processus : system_server
  • Interface HAL/Implémentations (C++)

    • N / A

Reportez-vous au schéma d'architecture du module de la figure 1.

Format de paquet

Les principales fonctions de ce module sont incluses dans le package APEX com.android.appsearch .

Dépendances

  • libicu
  • libprotobuf-cpp-lite
  • ndk

Personnalisation

Ce module n'est pas personnalisable.