Estructura del código de seguridad de la pantalla

En esta página, se describe la organización del código fuente de Display Safety.

Para obtener más información, consulta el archivo README.md en cada directorio.

Clona el repositorio

Para obtener acceso al repositorio, comunícate con tu administrador técnico de cuentas de Google.

Framework

Este directorio contiene los componentes principales del framework de Display Safety.

Directorio Objetivo
api/har-platform-api Es una colección de abstracciones de subsistemas de la plataforma para compilar apps de renderizador de alta disponibilidad (HAR) en plataformas compatibles.
api/har-types Son los tipos de capas de abstracción de hardware.
asset-manager Herramientas para administrar los recursos de la aplicación en el tiempo de ejecución.
audio/har-audio Crate para controlar la reproducción de audio de HAR
customizations Contiene APIs, implementaciones y macros de derivación para producir personalizaciones de diseño a partir de una app basada en HAR.
derive/har-ui-model-derive Macros de procedimientos para derivar rasgos comunes que usa el sistema del modelo de IU de HAR
display_list Define las estructuras y los componentes que describen una escena para la renderización, independientemente de cualquier backend gráfico.
graphics/external-image Un crate para representaciones de imágenes externas.
graphics/har-gl-context Define la API de contexto de gráficos y, además, incluye varias implementaciones en las plataformas compatibles, tanto para la renderización en pantalla como fuera de ella.
graphics/impeller API de Rust segura para Impeller, basada en las vinculaciones de FFI generadas.
graphics/impeller-renderer Implementación del renderizador de alto nivel que usa Impeller como motor de renderización de respaldo.
har-layout Es un wrapper para Taffy que calcula el diseño de las vistas en HAR.
har-monitoring Kit de herramientas de supervisión del rendimiento.
har-utils Utilidades comunes.
harry Es un framework que se usará como base para crear aplicaciones HAR.
harry-animation Una API y una implementación de animación para Harry
squoosh Es el motor de animación y representación intermedio para los parámetros de vista en el framework de Harry.
task-scheduler Utilidad para programar tareas y ejecutarlas en un subproceso en segundo plano después de una demora especificada.
test_suites Paquetes de pruebas para ejecutar pruebas de unidades de Display Safety

Compilaciones previas

Este directorio contiene bibliotecas y recursos ya compilados.

Directorio Objetivo
impeller/ Son bibliotecas precompiladas para el motor de gráficos Impeller, organizadas por SO y arquitectura.
impeller-rs-bindgen/ Son vinculaciones de FFI de Rust para Impeller.
impeller-rs-bindgen-wrapper/ Es un wrapper de API para las vinculaciones de Impeller.

Referencia

Este directorio contiene la implementación de referencia de HAR, las implementaciones específicas de la plataforma, las herramientas y los artefactos de prueba.

Directorio Objetivo
audio/tinyalsa-rs Vinculaciones de FFI de Rust para la biblioteca de audio de Tinyalsa.
audio/tinyalsa-audio Biblioteca para la reproducción de audio y la administración de dispositivos, basada en vinculaciones de FFI generadas por el crate `tinyalsa-rs`
camera/emulated-camera Proporciona una implementación de una cámara emulada con el rasgo "Camera" de "har-platform-api".
graphics/gl-helpers Cajón de utilidades que contiene funciones auxiliares de GL
har-user-input-evdev/ Implementa una implementación básica del controlador de entrada basado en evdev. Admite eventos de teclado, mouse y táctiles (de un solo toque y multitáctiles)
harry-app/ Implementación de referencia para una app de renderizador de alta disponibilidad (HAR) portátil compilada con el framework de "harry".
harry-app-core/ Lógica principal de la aplicación, administración de estados y definiciones de modelos de IU para la app de referencia `harry-app`.
harry-app-utils/ Funciones de utilidad y módulos auxiliares para la app de referencia "harry-app".
harry-control-api/ Son las APIs de control para la app de referencia `harry-app`.
harry-grpcio-server/ Servidor gRPC (basado en grpcio). Solo se usa cuando se compila la versión de Android con Soong.
harry-tonic-server/ Servidor gRPC (basado en Tonic). Solo se usa cuando se compila la versión de Linux con Cargo.
harry-vehicle-data-grpc/ Es el código de gRPC de los datos del vehículo, que se genera a partir de los archivos .proto de los datos del vehículo.
i18n/harry-app-i18n Servicios de internacionalización y localización para HAR.
i18n/i18n-protos Define los mensajes de protobuf y la generación de código Rust para los datos de i18n.
libyuv-rs/ Son vinculaciones de Rust para libyuv.
platforms/har-log Define las implementaciones de registro y seguimiento para cada plataforma compatible.
platforms/har-looper-headless Es una implementación de Looper independiente de la plataforma para la renderización sin interfaz gráfica.
platforms/har-platform-android Proporciona implementaciones específicas de Android de las abstracciones de la plataforma `har-platform-api`.
platforms/har-platform-linux Proporciona implementaciones específicas de Linux de las abstracciones de la plataforma `har-platform-api`.
platforms/harry-app-platform-specific Es el puente de compilación condicional para harry-app, que selecciona la implementación correcta según la plataforma seleccionada.
safety-monitor Implementación de un monitor de seguridad de referencia para Android.
screencap Utilidad de captura de pantalla para extraer capturas de pantalla directamente de los búferes de fotogramas DRM
vehicle-data-scripts Estructuras y lógica para crear secuencias de datos del vehículo basadas en secuencias de comandos

Servicio

Este directorio contiene servicios de Android relacionados con la Seguridad de la pantalla.

Directorio Objetivo
ds-cvd-toolkit Es una herramienta de línea de comandos para la seguridad de la pantalla que permite iniciar varios dispositivos de Cuttlefish.
emulator Compatibilidad del emulador con las superposiciones de recursos en tiempo de ejecución
har-grpc-services Contiene las definiciones de .proto que se usan en la implementación de referencia para establecer canales de comunicación entre la app de HAR y los servicios de DriverUI y de datos del vehículo.
har-sdv-service* Proporciona un paquete de servicios de SDV que se usa para proporcionar servicios de datos a HAR utilizando el código generado por los archivos .proto.
har-tracing-common Servicios de registro de rendimiento para HAR
harry-prebuilt/ Componentes de Harry prediseñados (recursos, configuraciones, etc.)
ivi/ Componentes relacionados con el IVI (infoentretenimiento en el vehículo) de Android
libhar_graphics/ Biblioteca de gráficos en C++ para los servicios de HAR.
pdk/ Metadatos de lanzamiento del PDK
product/ Configuraciones y recursos específicos del producto
SdvCameraPreviewApp App de vista previa de la cámara para el SDV.
vehicledata Implementa un publicador de Data Tunnel de SDV de datos del vehículo con gRPC

Utils

Este directorio contiene utilidades generales para implementaciones de referencia y pruebas.

Directorio Objetivo
asset-manager-cli Proporciona una interfaz de línea de comandos para generar paquetes de recursos.
dcf-info/ Herramienta para extraer metadatos de un DCF (documento de Figma de diseño serializado de Compose).
figma-utils Proporciona un wrapper de línea de comandos para `figma_import` para recuperar documentos de Figma serializados.
gauge-test App diseñada para probar y demostrar elementos de la IU de dial y medidor.
gui-playground-app Es un entorno de zona de pruebas para probar nuevas funciones de IU y animación.
har-platform-tests Es un conjunto de pruebas de integración para implementaciones de rasgos específicos de la plataforma.
har-rendering-parity Herramienta visual para verificar la paridad de renderización entre HAR, DesignCompose y Figma.
harry-rpc-client Proporciona una interfaz de línea de comandos para enviar comandos a Harry a través de RPC.
human-readable-report-generator Utilidad para la verificación visual de artefactos de seguridad.
ktx-utils Proporciona utilidades para codificar y decodificar archivos de texturas Khronos KTX 2.0.
list-test-app Sirve como entorno de prueba y demostración para la administración de listas en HAR.
transfer-localizations Es una utilidad para convertir archivos de localización XML de Android al formato .proto de HAR.
variable-density-analyzer Analiza un documento de Figma y calcula la proporción de nodos en relación con las variables de diseño.