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áticas e no momento da 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 fáceis de
usar e que têm uma sobrecarga de desempenho baixa. Ao usar propriedades do sistema, você não
precisa usar a comunicação interprocesso (IPC, na sigla em inglês), mesmo que uma propriedade do sistema seja compartilhada
em vários processos. No entanto, as propriedades do sistema são semelhantes às variáveis
globais e podem ser prejudiciais quando usadas indevidamente. O uso indevido de propriedades do sistema pode
resultar em problemas, como vulnerabilidades de segurança e apps inacessíveis
para os usuários. Antes de usar propriedades do sistema para armazenar informações de configuração,
considere as outras opções de configuração.
Para mais informações sobre as propriedades do sistema, consulte Adicionar propriedades do sistema.
Propriedades do HAL
Quando a fonte de verdade de uma configuração é de um componente de hardware em um dispositivo, o HAL do hardware precisa fornecer as informações para esse componente. Defina um novo método HAL no HAL atual para acessar a configuração. Para 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 semelhantes para os dados de configuração. Confira se o
esquema de arquivo permanece estável. Para arquivos XML, use
xsd_config
para manter o esquema estável e aproveitar um analisador XML
gerado automaticamente.
Sobreposição de recursos
É possível usar sobreposições de recursos para personalizar um produto. Há dois tipos de sobreposições de recursos:
Sobreposição de recursos padrão usada para personalizar um produto no momento da criação. Para informações sobre sobreposições de recursos padrão, consulte Como personalizar o build com sobreposições de recursos.
A sobreposição de recursos de tempo de execução (RRO, na sigla em inglês) é usada para mudar os valores de recursos de um pacote de destino no momento da execução. Por exemplo, um app instalado na imagem do sistema pode mudar o comportamento com base no valor de um recurso. Em vez de codificar o valor do recurso no momento da criação, uma RRO instalada em uma partição diferente pode mudar os valores dos recursos do app no momento da execução. Para mais informações sobre RROs, consulte Mudar o valor dos recursos de um app durante a execução.