AOSP oferece as seguintes opções para armazenar informações de configuração em um dispositivo:
- Propriedades do sistema
- Propriedades da camada de abstração de hardware (HAL)
- Arquivos XML de configuração do sistema
- Sobreposições de recursos (estático e em tempo de execução)
Propriedades do sistema
As propriedades do sistema são pares de chave/valor de string armazenados no dicionário global build.prop
. As propriedades do sistema são recursos de todo o sistema fáceis de usar e com baixa sobrecarga de desempenho. Ao usar propriedades do sistema, você não precisa usar a comunicação entre processos (IPC), mesmo que uma propriedade do sistema seja compartilhada entre vários processos. No entanto, as propriedades do sistema são semelhantes às variáveis globais e podem ser prejudiciais quando utilizadas indevidamente. O uso indevido das propriedades do sistema pode resultar em problemas como vulnerabilidades de segurança e aplicativos que se tornam inacessíveis aos usuários. Antes de usar as propriedades do sistema para armazenar informações de configuração, considere as outras opções de configuração.
Para obter mais informações sobre propriedades do sistema, consulte Adicionar propriedades do sistema
Propriedades HAL
Quando a fonte da verdade para uma configuração provém de um componente de hardware em um dispositivo, o HAL do hardware deve fornecer as informações desse componente. Defina um novo método HAL no HAL existente para acessar a configuração. Para obter mais informações sobre o desenvolvimento de uma HAL, consulte AIDL para HALs .
Arquivos XML de configuração do sistema
Quando os dados de configuração forem estáticos, mas complicados (estruturados), considere usar XML ou outros formatos semelhantes para os dados de configuração. Certifique-se de que o esquema do arquivo permaneça estável. Para arquivos XML, você pode usar xsd_config
para manter o esquema estável e aproveitar um analisador XML gerado automaticamente.
Sobreposição de recursos
Você pode usar sobreposições de recursos para personalizar um produto. Existem dois tipos de sobreposições de recursos:
Sobreposição de recursos padrão usada para personalizar um produto no momento da construção. Para obter informações sobre sobreposições de recursos padrão, consulte Personalizando a construção com sobreposições de recursos .
A sobreposição de recursos de tempo de execução (RRO) é usada para alterar os valores de recursos de um pacote de destino em tempo de execução. Por exemplo, um aplicativo instalado na imagem do sistema pode alterar seu comportamento com base no valor de um recurso. Em vez de codificar o valor do recurso em tempo de construção, um RRO instalado em uma partição diferente pode alterar os valores dos recursos do aplicativo em tempo de execução. Para obter mais informações sobre RROs, consulte Alterar o valor dos recursos de um aplicativo em tempo de execução .
AOSP oferece as seguintes opções para armazenar informações de configuração em um dispositivo:
- Propriedades do sistema
- Propriedades da camada de abstração de hardware (HAL)
- Arquivos XML de configuração do sistema
- Sobreposições de recursos (estático e em tempo de execução)
Propriedades do sistema
As propriedades do sistema são pares de chave/valor de string armazenados no dicionário global build.prop
. As propriedades do sistema são recursos de todo o sistema fáceis de usar e com baixa sobrecarga de desempenho. Ao usar propriedades do sistema, você não precisa usar a comunicação entre processos (IPC), mesmo que uma propriedade do sistema seja compartilhada entre vários processos. No entanto, as propriedades do sistema são semelhantes às variáveis globais e podem ser prejudiciais quando utilizadas indevidamente. O uso indevido das propriedades do sistema pode resultar em problemas como vulnerabilidades de segurança e aplicativos que se tornam inacessíveis aos usuários. Antes de usar as propriedades do sistema para armazenar informações de configuração, considere as outras opções de configuração.
Para obter mais informações sobre propriedades do sistema, consulte Adicionar propriedades do sistema
Propriedades HAL
Quando a fonte da verdade para uma configuração provém de um componente de hardware em um dispositivo, o HAL do hardware deve fornecer as informações desse componente. Defina um novo método HAL no HAL existente para acessar a configuração. Para obter mais informações sobre o desenvolvimento de uma HAL, consulte AIDL para HALs .
Arquivos XML de configuração do sistema
Quando os dados de configuração forem estáticos, mas complicados (estruturados), considere usar XML ou outros formatos semelhantes para os dados de configuração. Certifique-se de que o esquema do arquivo permaneça estável. Para arquivos XML, você pode usar xsd_config
para manter o esquema estável e aproveitar um analisador XML gerado automaticamente.
Sobreposição de recursos
Você pode usar sobreposições de recursos para personalizar um produto. Existem dois tipos de sobreposições de recursos:
Sobreposição de recursos padrão usada para personalizar um produto no momento da construção. Para obter informações sobre sobreposições de recursos padrão, consulte Personalizando a construção com sobreposições de recursos .
A sobreposição de recursos de tempo de execução (RRO) é usada para alterar os valores de recursos de um pacote de destino em tempo de execução. Por exemplo, um aplicativo instalado na imagem do sistema pode alterar seu comportamento com base no valor de um recurso. Em vez de codificar o valor do recurso em tempo de construção, um RRO instalado em uma partição diferente pode alterar os valores dos recursos do aplicativo em tempo de execução. Para obter mais informações sobre RROs, consulte Alterar o valor dos recursos de um aplicativo em tempo de execução .