A API Memory Advice é uma API nativa experimental que ajuda os apps Android a permanecerem dentro dos limites de segurança para o uso de memória. Para conseguir isso, a API estima a quantidade de recursos de memória que estão em uso e notifica o app quando determinados limites são excedidos. A API também pode informar o percentual estimado de uso de memória diretamente ao app.
As estimativas fornecidas pela API ajudam a determinar quando o app precisa ajustar o uso de memória e a encontrar áreas para melhorar em versões futuras do app. Os ajustes podem incluir qualquer coisa que mude o consumo de memória, como a redução dos detalhes e da qualidade dos recursos visuais e de áudio.
Os recursos de memória estimados incluem memória de heap nativa alocada por malloc e memória gráfica alocada pelas APIs OpenGL ES e Vulkan Graphics, tornando a API Memory Advice ideal para jogos e apps com muitos gráficos.
As estimativas são feitas com base no seguinte:
- Métricas de dispositivo coletadas pela API
- Dados de aprendizado de máquina de dispositivos
- Teste de dispositivo
No nível da API, a API Memory Advice define um conjunto de estados de orientação de memória e os comunica a apps com um conjunto de funções.
Introdução Introdução aos jogos do Unity
Distribuições
A API Memory Advice é parte do Android Games Development Kit (AGDK) e é distribuída por estes canais:
- Versões binárias nas bibliotecas Android Games do Jetpack.
- Versões binárias na página de download do AGDK.
- Código-fonte no AOSP.
Os jogos precisam usar a versão da API Memory Advice recomendada para o ambiente de build deles. Para o Android Studio, recomendamos a versão do Jetpack. Para a Android Game Development Extension (AGDE), recomendamos a versão na página de download do AGDK.
Recursos
Esta seção descreve os recursos da API Memory Advice.
Estado da memória
A API informa os estados de memória abaixo aos apps:
- MEMORYADVICE_STATE_OK
- MEMORYADVICE_STATE_APPROACHING_LIMIT
- MEMORYADVICE_STATE_CRITICAL
Para saber mais, consulte as páginas de referência memoryadvice_memorystate.
Como informar o estado da memória
A API oferece suporte à geração de relatórios do estado da memória por um mecanismo de pesquisa ou de callback:
Pesquisa:
Um app pode chamar a API a qualquer momento para extrair o estado da memória.Callback:
Um app pode registrar uma função de callback com a API Memory Advice. O app especifica a frequência de chamada para o callback. A API usa a frequência para determinar quando executar o callback quando a condição da memória do aplicativo estiver se aproximando do limite seguro ou estiver criticamente baixa. O callback não é invocado se a condição de memória for segura. O callback é executado na própria linha de execução, não em uma que pertença ao app.
Considerações sobre custo e frequência de chamadas
A API Memory Advice usa o tempo computacional para gerar o status da memória. O custo varia de acordo com o dispositivo, mas geralmente fica entre 1 ms e 3 ms por chamada. Considere essa sobrecarga ao determinar a frequência de pesquisa do estado da memória ou qual frequência especificar para o callback do estado da memória.
Requisitos
Requisitos do dispositivo
- Android 4.4 (nível 19 da API) ou versões mais recentes.
Requisitos do app
A API só oferece suporte a apps nativos, escritos principalmente em C/C++.
A API só oferece suporte a dispositivos físicos, não a emuladores.
Requisitos de versão do NDK
A versão da API Memory Advice oferece suporte às versões mais comuns do NDK. Consulte as notas da versão para conferir a lista de NDKs com suporte.
Outros recursos
- Notas da versão da API Memory Advice
- Documentação de referência da API Memory Advice
- Exemplo da API Memory Advice no GitHub (em inglês)
- Código-fonte da API Memory Advice
Problemas e feedback
A API Memory Advice está na versão Beta. Seu feedback é importante. Se você tiver sugestões ou encontrar problemas ao usar a API, crie um problema no IssueTracker.