Présentation de la configuration

AOSP propose les options suivantes pour stocker les informations de configuration sur un appareil :

  • Propriétés du système
  • Propriétés de la couche d'abstraction matérielle (HAL)
  • Fichiers XML de configuration du système
  • Superpositions de ressources (statiques et runtime)

Propriétés du 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 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. Cependant, les propriétés du système sont similaires aux variables globales et peuvent être nuisibles en cas de mauvaise utilisation. Une mauvaise utilisation des propriétés du système peut entraîner des problèmes tels que des failles de sécurité et l'inaccessibilité des applications aux utilisateurs. Avant d'utiliser les propriétés système pour stocker les informations de configuration, considérez les autres options de configuration.

Pour plus d'informations sur les propriétés système, voir 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 périphérique, la HAL du matériel doit fournir les informations sur ce composant. Définissez une nouvelle méthode HAL dans le HAL existant pour accéder à la configuration. Pour plus d'informations sur le développement d'un HAL, voir AIDL pour les HAL .

Fichiers XML de configuration du système

Lorsque les données de configuration sont statiques mais compliquées (structurées), envisagez d'utiliser XML ou d'autres formats similaires 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 superpositions de ressources :

  • Superposition de ressources standard utilisée pour personnaliser un produit au moment de la construction. Pour plus d’informations sur les superpositions de ressources standard, consultez Personnalisation de la build avec des superpositions de ressources .

  • La superposition de ressources d'exécution (RRO) est utilisée pour 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 des ressources au moment de la construction, un RRO installé sur une partition différente peut modifier les valeurs des ressources de l'application au moment de l'exécution. Pour plus d'informations sur les RRO, consultez Modifier la valeur des ressources d'une application au moment de l'exécution .

,

AOSP propose les options suivantes pour stocker les informations de configuration sur un appareil :

  • Propriétés du système
  • Propriétés de la couche d'abstraction matérielle (HAL)
  • Fichiers XML de configuration du système
  • Superpositions de ressources (statiques et runtime)

Propriétés du 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 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. Cependant, les propriétés du système sont similaires aux variables globales et peuvent être nuisibles en cas de mauvaise utilisation. Une mauvaise utilisation des propriétés du système peut entraîner des problèmes tels que des failles de sécurité et l'inaccessibilité des applications aux utilisateurs. Avant d'utiliser les propriétés système pour stocker les informations de configuration, considérez les autres options de configuration.

Pour plus d'informations sur les propriétés système, voir 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 périphérique, la HAL du matériel doit fournir les informations sur ce composant. Définissez une nouvelle méthode HAL dans le HAL existant pour accéder à la configuration. Pour plus d'informations sur le développement d'un HAL, voir AIDL pour les HAL .

Fichiers XML de configuration du système

Lorsque les données de configuration sont statiques mais compliquées (structurées), envisagez d'utiliser XML ou d'autres formats similaires 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 superpositions de ressources :

  • Superposition de ressources standard utilisée pour personnaliser un produit au moment de la construction. Pour plus d’informations sur les superpositions de ressources standard, consultez Personnalisation de la build avec des superpositions de ressources .

  • La superposition de ressources d'exécution (RRO) est utilisée pour 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 des ressources au moment de la construction, un RRO installé sur une partition différente peut modifier les valeurs des ressources de l'application au moment de l'exécution. Pour plus d'informations sur les RRO, consultez Modifier la valeur des ressources d'une application au moment de l'exécution .