AppSearch

AppSearch, un motor de búsqueda estructurado y de indexación en el dispositivo, se lanzó como un APEX en Android 12. En Android 13, AppSearch se incluye como un módulo de Mainline.

Motivación

Garantizar una implementación coherente de AppSearch en todo el ecosistema de Android y admitir la capacidad de actualización

Beneficios:

  • Permite actualizar AppSearch a través de Play Store
  • Garantiza el cumplimiento de los requisitos del CDD de AppSearch

Detalles

  • Los datos recopilados a través de las APIs de AppSearch permanecen en el dispositivo del usuario (excepto los datos de métricas agregadas, que se usan para optimizar el rendimiento).
  • Una implementación de almacenamiento rápida y que prioriza los dispositivos móviles con un uso de E/S bajo
  • Indexación y consultas altamente eficientes en grandes conjuntos de datos
  • Compatibilidad con varios idiomas, como inglés, español y CJKT
  • Clasificación de relevancia y puntuación de uso

Arquitectura de AppSearch

En la Figura 1, se destacan los conceptos de AppSearch, así como el límite del proceso del servicio del sistema.

Arquitectura del módulo de AppSearch

Figura 1: Arquitectura del módulo de AppSearch

Límite del módulo

  • Apex de Mainline de AppSearch: com.android.appsearch

    • Superficie de la API de AppSearch (Java)
      • Ubicación del código: frameworks/base/apex/appsearch/framework
      • Proceso: BOOT_CLASS_PATH
    • AppSearchManagerService (Java)
      • Ubicación del código: frameworks/base/apex/appsearch/service
      • Proceso: system_server
    • Biblioteca nativa de Icing (C++)
      • Ubicación del código: external/icing
      • Proceso: system_server
  • Interfaces y HAL (C++)

    • N/A

Consulta el diagrama de arquitectura del módulo en la Figura 1.

Formato del paquete

Las funciones principales de este módulo se incluyen en el paquete de APEX com.android.appsearch.

Dependencias

  • libicu
  • libprotobuf-cpp-lite
  • ndk

Personalización

Este módulo no se puede personalizar.