AOSP ofrece las siguientes opciones para almacenar información de configuración en un dispositivo:
- Propiedades del sistema
- Propiedades de la capa de abstracción de hardware (HAL)
- Archivos en formato XML de configuración del sistema
- Superposiciones de recursos (estáticos y en tiempo de ejecución)
Propiedades del sistema
Las propiedades del sistema son pares clave-valor de cadenas que se almacenan en el diccionario global build.prop
. Las propiedades del sistema son recursos del sistema que son fáciles de usar y tienen una sobrecarga de rendimiento baja. Cuando usas propiedades del sistema, no necesitas usar la comunicación entre procesos (IPC), incluso si una propiedad del sistema se comparte entre varios procesos. Sin embargo, las propiedades del sistema son similares a las variables globales y pueden ser dañinas cuando se usan de manera inadecuada. El uso inadecuado de las propiedades del sistema puede generar problemas, como vulnerabilidades de seguridad y apps inaccesibles para los usuarios. Antes de usar las propiedades del sistema para almacenar información de configuración, considera las otras opciones de configuración.
Para obtener más información sobre las propiedades del sistema, consulta Cómo agregar propiedades del sistema.
Propiedades de HAL
Cuando la fuente de confianza de una configuración proviene de un componente de hardware en un dispositivo, el HAL del hardware debe proporcionar la información de ese componente. Define un nuevo método HAL en el HAL existente para acceder a la configuración. Para obtener más información sobre el desarrollo de un HAL, consulta AIDL para HALs.
Archivos en formato XML de configuración del sistema
Cuando los datos de configuración sean estáticos, pero complicados (estructurados), considera usar XML o algún otro formato similar para los datos de configuración. Asegúrate de que el esquema del archivo permanezca estable. En el caso de los archivos en formato XML, puedes usar xsd_config
para mantener el esquema estable y aprovechar un analizador de XML generado automáticamente.
Superposición de recursos
Puedes usar superposiciones de recursos para personalizar un producto. Existen dos tipos de superposiciones de recursos:
Superposición de recursos estándar que se usa para personalizar un producto en el tiempo de compilación. Para obtener información sobre las superposiciones de recursos estándar, consulta Cómo personalizar la compilación con superposiciones de recursos.
La superposición de recursos del entorno de ejecución (RRO) se usa para cambiar los valores de los recursos de un paquete de destino en el entorno de ejecución. Por ejemplo, una app instalada en la imagen del sistema podría cambiar su comportamiento en función del valor de un recurso. En lugar de codificar el valor del recurso en el momento de la compilación, una RRO instalada en una partición diferente puede cambiar los valores de los recursos de la app en el tiempo de ejecución. Para obtener más información sobre los RRO, consulta Cómo cambiar el valor de los recursos de una app en el tiempo de ejecución.