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 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 de cadena clave/valor almacenados en el diccionario global build.prop
. Las propiedades del sistema son recursos de todo el sistema que son fáciles de usar y tienen una sobrecarga de rendimiento baja. Al utilizar propiedades del sistema, no es necesario utilizar 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 resultar perjudiciales si se utilizan incorrectamente. El uso indebido de las propiedades del sistema puede provocar problemas como vulnerabilidades de seguridad y que las aplicaciones se vuelvan inaccesibles para los usuarios. Antes de utilizar las propiedades del sistema para almacenar información de configuración, considere las otras opciones de configuración.
Para obtener más información sobre las propiedades del sistema, consulte Agregar propiedades del sistema.
Propiedades HAL
Cuando la fuente de verdad para una configuración proviene de un componente de hardware en un dispositivo, el HAL del hardware debe proporcionar la información para ese componente. Defina 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, consulte AIDL para HAL .
Archivos XML de configuración del sistema
Cuando los datos de configuración son estáticos pero complicados (estructurados), considere usar XML u otros formatos similares para los datos de configuración. Asegúrese de que el esquema del archivo permanezca estable. Para archivos XML, puede utilizar xsd_config
para mantener estable el esquema y aprovechar un analizador XML generado automáticamente.
Superposición de recursos
Puede utilizar superposiciones de recursos para personalizar un producto. Hay dos tipos de superposiciones de recursos:
Superposición de recursos estándar utilizada para personalizar un producto en el momento de la construcción. Para obtener información sobre superposiciones de recursos estándar, consulte Personalización de la compilación con superposiciones de recursos .
La superposición de recursos en tiempo de ejecución (RRO) se utiliza para cambiar los valores de recursos de un paquete de destino en tiempo de ejecución. Por ejemplo, una aplicación instalada en la imagen del sistema podría cambiar su comportamiento según el valor de un recurso. En lugar de codificar el valor del recurso en el momento de la compilación, un RRO instalado en una partición diferente puede cambiar los valores de los recursos de la aplicación en el tiempo de ejecución. Para obtener más información sobre las RRO, consulte Cambiar el valor de los recursos de una aplicación en tiempo de ejecución .
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 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 de cadena clave/valor almacenados en el diccionario global build.prop
. Las propiedades del sistema son recursos de todo el sistema que son fáciles de usar y tienen una sobrecarga de rendimiento baja. Al utilizar propiedades del sistema, no es necesario utilizar 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 resultar perjudiciales si se utilizan incorrectamente. El uso indebido de las propiedades del sistema puede provocar problemas como vulnerabilidades de seguridad y que las aplicaciones se vuelvan inaccesibles para los usuarios. Antes de utilizar las propiedades del sistema para almacenar información de configuración, considere las otras opciones de configuración.
Para obtener más información sobre las propiedades del sistema, consulte Agregar propiedades del sistema.
Propiedades HAL
Cuando la fuente de verdad para una configuración proviene de un componente de hardware en un dispositivo, el HAL del hardware debe proporcionar la información para ese componente. Defina 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, consulte AIDL para HAL .
Archivos XML de configuración del sistema
Cuando los datos de configuración son estáticos pero complicados (estructurados), considere usar XML u otros formatos similares para los datos de configuración. Asegúrese de que el esquema del archivo permanezca estable. Para archivos XML, puede utilizar xsd_config
para mantener estable el esquema y aprovechar un analizador XML generado automáticamente.
Superposición de recursos
Puede utilizar superposiciones de recursos para personalizar un producto. Hay dos tipos de superposiciones de recursos:
Superposición de recursos estándar utilizada para personalizar un producto en el momento de la construcción. Para obtener información sobre superposiciones de recursos estándar, consulte Personalización de la compilación con superposiciones de recursos .
La superposición de recursos en tiempo de ejecución (RRO) se utiliza para cambiar los valores de recursos de un paquete de destino en tiempo de ejecución. Por ejemplo, una aplicación instalada en la imagen del sistema podría cambiar su comportamiento según el valor de un recurso. En lugar de codificar el valor del recurso en el momento de la compilación, un RRO instalado en una partición diferente puede cambiar los valores de los recursos de la aplicación en el tiempo de ejecución. Para obtener más información sobre las RRO, consulte Cambiar el valor de los recursos de una aplicación en tiempo de ejecución .