Este tópico descreve como integrar o recurso de configuração de switches do mPaaS ao seu aplicativo Android.
A configuração de switches permite alterar o comportamento do cliente sem lançar uma nova versão do aplicativo. O cliente busca os valores dos switches no backend conforme um agendamento configurável, e seu código lê esses valores por chave em tempo de execução. Um switch é um par chave-valor. A configuração de switches oferece suporte a dois tipos de integração: integração nativa via AAR e integração baseada em componentes.
O uso da configuração de switches chama a API de atualização e publicação do MDS, o que gera custos. Para detalhes sobre faturamento, consulte o item de faturamento de publicação em tempo real em Preços.
O procedimento inclui três etapas:
Inicializar o mPaaS (apenas para integração nativa via AAR)
Pré-requisitos
Antes de começar, verifique se você:
Para integração nativa via AAR, adicionou o mPaaS ao seu projeto
Para integração baseada em componentes, concluiu o processo de integração
Adicionar o SDK
Integração nativa via AAR
Use o Component Management (AAR) para instale o componente Switch Configuration (CONFIGSERVICE) no seu projeto. Para mais detalhes, consulte Gerenciamento de Componentes AAR.
Integração baseada em componentes
Nos projetos Portal e Bundle, use o Component Management para instale o componente Switch Configuration (CONFIGSERVICE). Para mais detalhes, consulte Gerenciar dependências de componentes.
Inicializar o mPaaS
A integração nativa via AAR exige inicialização explícita. Adicione o seguinte código ao seu objeto Application:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Initialize mPaaS
MP.init(this);
}
}
Para mais informações, consulte Inicializar o mPaaS.
Usar o SDK
O mPaaS fornece a interface MPConfigService para gerencie a configuração de switches.
Siga estas etapas para implementar a configuração de switches:
No console do mPaaS, acesse Real-time Release > Switch Configuration Management. Adicione os itens de configuração de switches necessários e publique as configurações direcionadas com base em plataforma, lista de permissões, porcentagem, número da versão, modelo do dispositivo e versão do Android. Para mais detalhes, consulte Gerenciamento de Configuração Android/iOS.
-
Após publicar um switch no console, chame as APIs da
MPConfigServiceno seu aplicativo para ler valores e responder a alterações.A tabela a seguir descreve as APIs disponíveis.
Método
Descrição
getConfig(String key)Retorna o valor atual de um switch pela chave. Caso o cliente ainda não tenha concluído a primeira sincronização, retorna o último valor armazenado em cache.
loadConfig()Busca os switches mais recentes no servidor. Por padrão, o cliente executa essa chamada automaticamente a cada 30 minutos.
loadConfigImmediately(long delay)Aciona uma busca imediata. Defina
delaycomo0para carregar sem espera ou passe um valor em milissegundos para adiar a operação.addConfigChangeListener(ConfigService.ConfigChangeListener)Registra um listener acionado quando o valor de um switch muda. Retorna
truese o registro for bem-sucedido.removeConfigChangeListener(ConfigService.ConfigChangeListener)Cancela o registro de um listener registrado anteriormente.
ImportanteO sistema mantém o listener como uma referência fraca e pode recuperá-lo sob pressão de memória. Registre o listener apenas quando necessário e cancele o registro ao terminar — evite usar um listener global.
public class MPConfigService { /** * Gets a switch. * * @param key * @return */ public static String getConfig(String key); /** * Loads switches. By default, the latest switches are pulled from the server-side at a 30-minute interval. */ public static void loadConfig(); /** * Loads switches immediately. * * @param delay The delay time for loading switches, in milliseconds. A value of 0 means load immediately. */ public static void loadConfigImmediately(long delay); /** * Registers a switch change listener. * @param configChangeListener The listener. * @return */ public static boolean addConfigChangeListener(ConfigService.ConfigChangeListener configChangeListener); /** * Removes a switch change listener. * @param configChangeListener The listener. */ public static void removeConfigChangeListener(ConfigService.ConfigChangeListener configChangeListener); }