AOSP propose les options suivantes pour stocker des informations de configuration sur un appareil:
- Propriétés système
- Propriétés de la couche d'abstraction matérielle (HAL)
- Fichiers XML de configuration système
- Superpositions de ressources (statiques et d'exécution)
Propriétés système
Les propriétés système sont des paires clé-valeur de chaîne stockées dans le dictionnaire global build.prop
. Les propriétés système sont des ressources à l'échelle du système, faciles à utiliser et présentant un faible coût lié aux performances. Lorsque vous utilisez des propriétés système, vous n'avez pas besoin d'utiliser la communication interprocessus (IPC), même si une propriété système est partagée entre plusieurs processus. Toutefois, les propriétés système sont semblables aux variables globales et peuvent être dangereuses en cas d'utilisation abusive. L'utilisation abusive des propriétés système peut entraîner des problèmes tels que des failles de sécurité et des applications inaccessibles aux utilisateurs. Avant d'utiliser des propriétés système pour stocker des informations de configuration, examinez les autres options de configuration.
Pour en savoir plus sur les propriétés système, consultez la section Ajouter des propriétés système.
Propriétés HAL
Lorsque la source de vérité d'une configuration provient d'un composant matériel sur un appareil, le HAL du matériel doit fournir les informations de ce composant. Définissez une nouvelle méthode HAL dans le HAL existant pour accéder à la configuration. Pour en savoir plus sur le développement d'un HAL, consultez la section AIDL pour les HAL.
Fichiers XML de configuration système
Lorsque les données de configuration sont statiques, mais complexes (structurées), envisagez d'utiliser XML ou d'autres formats de ce type pour les données de configuration. Assurez-vous que le schéma de fichier reste stable. Pour les fichiers XML, vous pouvez utiliser xsd_config
pour maintenir le schéma stable et tirer parti d'un analyseur XML généré automatiquement.
Superposition de ressources
Vous pouvez utiliser des superpositions de ressources pour personnaliser un produit. Il existe deux types de superpositions de ressources:
Superposition de ressources standard utilisée pour personnaliser un produit au moment de la compilation. Pour en savoir plus sur les superpositions de ressources standards, consultez la section Personnaliser la compilation avec des superpositions de ressources.
La superposition de ressources d'exécution (RRO) permet de modifier les valeurs de ressources d'un package cible au moment de l'exécution. Par exemple, une application installée sur l'image système peut modifier son comportement en fonction de la valeur d'une ressource. Plutôt que de coder en dur la valeur de la ressource au moment de la compilation, un RRO installé sur une autre partition peut modifier les valeurs des ressources de l'application au moment de l'exécution. Pour en savoir plus sur les RRO, consultez la section Modifier la valeur des ressources d'une application au moment de l'exécution.