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 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 que são fáceis de usar e têm uma sobrecarga de baixo desempenho. Ao usar as 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 usadas incorretamente. 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 as propriedades do sistema, consulte Adicionar propriedades do sistema
Propriedades HAL
Quando a fonte de verdade para uma configuração é de um componente de hardware em um dispositivo, a 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 um HAL, consulte AIDL para HALs .
Arquivos XML de configuração do sistema
Quando os dados de configuração são estáticos, mas complicados (estruturados), considere usar XML ou outros formatos para os dados de configuração. Certifique-se de que o esquema de 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 compilação. Para obter informações sobre sobreposições de recursos padrão, consulte Personalizando a compilaçã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 compilaçã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 .