Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Settore automobilistico

Icona HAL del veicolo Android

Molti sottosistemi di automobili si collegano tra loro e al sistema di infotainment a bordo del veicolo (IVI) tramite varie topologie di autobus. Il tipo esatto di bus e i protocolli variano ampiamente tra i produttori (e anche tra diversi modelli di veicoli della stessa marca); esempi includono bus CAN (Controller Area Network), bus LIN (Local Interconnect Network), MOST (Media Oriented Systems Transport), nonché reti Ethernet e TCP / IP di livello automobilistico come BroadR-Reach.

Il livello di astrazione hardware Android Automotive (HAL) fornisce un'interfaccia coerente al framework Android indipendentemente dal livello di trasporto fisico. Questo veicolo HAL è l'interfaccia per lo sviluppo di implementazioni Android Automotive.

Gli integratori di sistema possono implementare un modulo HAL del veicolo collegando le interfacce HAL della piattaforma specifiche della funzione (ad es. HVAC) con interfacce di rete specifiche della tecnologia (ad es. CAN bus). Le implementazioni tipiche possono includere un'unità a microcontrollore (MCU) dedicata che esegue un sistema operativo in tempo reale proprietario (RTOS) per l'accesso al bus CAN o simile, che può essere collegato tramite un collegamento seriale alla CPU che esegue Android Automotive. Invece di una MCU dedicata, potrebbe anche essere possibile implementare l'accesso al bus come CPU virtualizzata. Spetta a ciascun partner scegliere l'architettura adatta all'hardware purché l'implementazione soddisfi i requisiti di interfaccia per il veicolo HAL.

Architettura

Il veicolo HAL è la definizione dell'interfaccia tra l'auto e il servizio di rete del veicolo:

Architettura HAL per veicoli Android

Figura 1 Veicolo HAL e architettura automobilistica Android

  • API per auto . Contiene API come CarHvacManager e CarSensorManager. Per i dettagli sulle API supportate, consultare /platform/packages/services/Car/car-lib .
  • CarService . Situato in /platform/packages/services/Car/ .
  • Veicolo HAL . Interfaccia che definisce le proprietà del veicolo che gli OEM possono implementare. Contiene metadati di proprietà (ad esempio, se la proprietà del veicolo è un int e quali modalità di modifica sono consentite). Situato in hardware/libhardware/include/hardware/vehicle.h . Per un'implementazione di riferimento di base, fare riferimento a hardware/libhardware/modules/vehicle/ .

Per ulteriori dettagli, consultare Proprietà del veicolo .

Sicurezza

Il veicolo HAL supporta tre livelli di sicurezza per l'accesso ai dati:

  • Solo sistema (controllato da vns_policy.xml )
  • Accessibile all'app con autorizzazione (tramite servizio auto)
  • Accessibile senza permesso (tramite servizio auto)

L'accesso diretto alle proprietà del veicolo è consentito solo ai componenti del sistema selezionati con il servizio di rete del veicolo che funge da gatekeeper. La maggior parte delle applicazioni passa attraverso il gatekeeping aggiuntivo per servizio auto (ad esempio, solo le applicazioni di sistema possono controllare l'HVAC in quanto richiede l'autorizzazione di sistema concessa solo alle app di sistema).

Validazione

AOSP include le seguenti risorse di test da utilizzare nello sviluppo:

  • hardware/libhardware/tests/vehicle/vehicle-hal-tool.c
    Strumento nativo della riga di comando per caricare l'HAL del veicolo ed eseguire semplici operazioni. Utile per mettere in funzione il sistema nelle prime fasi di sviluppo.
  • packages/services/Car/tests/carservice_test/
    Contiene test di servizio auto con proprietà HAL del veicolo beffardo. Per ogni proprietà, il comportamento previsto viene implementato nel test. Questo può essere un buon punto di partenza per comprendere il comportamento previsto.
  • hardware/libhardware/modules/vehicle/
    Un'implementazione di riferimento di base.