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 en cours 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 qui sont faciles à utiliser et présentent un coût de performances faible. 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 similaires 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 référence d'une configuration provient d'un composant matériel d'un appareil, le HAL du matériel doit fournir les informations concernant 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 du fichier reste stable. Pour les fichiers XML, vous pouvez utiliser xsd_config
pour stabiliser le schéma et tirer parti d'un analyseur XML généré automatiquement.
Superposition de ressources
Vous pouvez utiliser les 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 partition différente 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.