AOSP offre le seguenti opzioni per archiviare le informazioni di configurazione su un dispositivo:
- Proprietà di sistema
- Proprietà dell'Hardware Abstraction Layer (HAL)
- File XML di configurazione del sistema
- Overlay delle risorse (statici e di runtime)
Proprietà di sistema
Le proprietà di sistema sono coppie chiave/valore stringa archiviate nel dizionario globale build.prop
. Le proprietà di sistema sono risorse a livello di sistema facili da
utilizzare e con un basso overhead delle prestazioni. Quando utilizzi le proprietà di sistema, non
devi utilizzare la comunicazione interprocesso (IPC) anche se una proprietà di sistema è condivisa
tra più processi. Tuttavia, le proprietà di sistema sono simili alle variabili globali e possono essere dannose se utilizzate in modo improprio. L'uso improprio delle proprietà di sistema può
causare problemi come vulnerabilità di sicurezza e inaccessibilità delle app
per gli utenti. Prima di utilizzare le proprietà di sistema per archiviare le informazioni di configurazione,
valuta le altre opzioni di configurazione.
Per ulteriori informazioni sulle proprietà di sistema, vedi Aggiungere proprietà di sistema
Proprietà HAL
Quando l'origine attendibile di una configurazione è un componente hardware di un dispositivo, l'HAL per l'hardware deve fornire le informazioni per quel componente. Definisci un nuovo metodo HAL nell'HAL esistente per accedere alla configurazione. Per ulteriori informazioni sullo sviluppo di un HAL, consulta AIDL per HAL.
File XML di configurazione del sistema
Se i dati di configurazione sono statici ma complessi (strutturati), valuta la possibilità di utilizzare XML o altri formati simili per i dati di configurazione. Assicurati che lo schema del file rimanga stabile. Per i file XML, puoi utilizzare
xsd_config
per mantenere stabile lo schema e sfruttare un parser XML
generato automaticamente.
Sovrapposizione delle risorse
Puoi utilizzare le sovrapposizioni delle risorse per personalizzare un prodotto. Esistono due tipi di overlay delle risorse:
Overlay di risorse standard utilizzato per personalizzare un prodotto in fase di creazione. Per informazioni sulle overlay delle risorse standard, consulta Personalizzare la build con le overlay delle risorse.
L'overlay delle risorse runtime (RRO) viene utilizzato per modificare i valori delle risorse di un pacchetto di destinazione al runtime. Ad esempio, un'app installata sull'immagine di sistema potrebbe modificare il proprio comportamento in base al valore di una risorsa. Anziché codificare in modo permanente il valore della risorsa in fase di compilazione, un RRO installato su una partizione diversa può modificare i valori delle risorse dell'app in fase di runtime. Per ulteriori informazioni sugli RRO, consulta Modificare il valore delle risorse di un'app in fase di runtime.