Visão geral da configuração

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.