AOSP propose les options suivantes pour stocker les 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 type 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 qui ont une faible surcharge de 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 devenant inaccessibles aux utilisateurs. Avant d'utiliser les 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 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, la HAL du matériel doit fournir les informations pour 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'une HAL, consultez 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 maintenir la stabilité du schéma et profiter 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 calques de ressources :
Superposition de ressources standard utilisée pour personnaliser un produit au moment de la compilation. Pour en savoir plus sur les overlays de ressources standards, consultez Personnaliser la compilation avec des overlays de ressources.
L'overlay 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 d'encoder 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 Modifier la valeur des ressources d'une application au moment de l'exécution.