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 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 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 as 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 na HAL existente 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 forem estáticos, mas complicados (estruturados), considere
usar XML ou outros formatos semelhantes. 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
Você pode 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 conferir informações sobre sobreposições de recursos padrão, consulte Como personalizar o build com sobreposições de recursos.
A sobreposição de recursos do ambiente de execução (RRO, na sigla em inglês) é usada para mudar os valores de recursos de um pacote de destino no ambiente de 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.