
Atenção, desenvolvedores do Android: atualização sobre o tamanho das páginas de memória de 16 KB
Tempo de leitura: 3 minutos
Introdução
O Google fez alguns anúncios que são muito importantes para os desenvolvedores do Android. Todos os novos aplicativos e atualizações de aplicativos existentes destinados a dispositivos com Android 15 ou superior terão que oferecer suporte a tamanhos de página de memória de 16 KB em dispositivos de 64 bits a partir de 1º de novembro de 2025. Anteriormente, era necessário oferecer suporte apenas a páginas de memória de 4 KB.
Esta publicação não só explicará o que é e por que essa mudança está ocorrendo, mas também orientará você na atualização do seu aplicativo para Android que utiliza o Vonage Client SDK. Além disso, abordará uma correção para a gravação de áudio em dispositivos com Android 14.
Observação: O Client SDK do Vonage Video suporta tamanhos de página de memória de 16 KB a partir da versão 2.30.0.
O quê e por quê
O Android está mudando a forma como gerencia a memória no nível do sistema, e isso pode afetar seu aplicativo. Veja o que você precisa saber:
O que é o tamanho de uma página? Uma página é um bloco fixo de memória que o sistema operacional do seu dispositivo aloca aos aplicativos. Pense nisso como contêineres de tamanho padrão — a memória do seu aplicativo precisa ser compactada nesses contêineres. Atualmente, o Android usa páginas de 4 KB (como contêineres pequenos), mas os dispositivos mais novos usarão páginas de 16 KB (contêineres maiores).
Se seu aplicativo precisar de 20 MB de RAM, o sistema atualmente fornece 5.120 pequenos contêineres (4 KB cada). Com páginas de 16 KB, você teria, em vez disso, 1.280 contêineres maiores.
Por que o Android está fazendo essa mudança? Páginas maiores trazem vários benefícios:
Inicialização mais rápida dos aplicativos com menor consumo de energia
Tempos de inicialização mais rápidos dos dispositivos
Melhor desempenho geral do sistema
Isso afeta meu aplicativo? Essa alteração afeta principalmente os aplicativos que usam código nativo — ou seja:
Aplicativos que utilizam o NDK do Android
Aplicativos com bibliotecas nativas (código em C/C++)
Aplicativos que utilizam SDKs de terceiros que contêm componentes nativos (como o Vonage Client SDK)
Se seu aplicativo for escrito inteiramente em Java/Kotlin, sem dependências nativas, provavelmente não há problema e você pode parar de ler por aqui.
Que problemas podem ocorrer? Aplicativos com código nativo podem apresentar:
Problemas de alinhamento de memória que causam falhas
Problemas de compatibilidade com bibliotecas nativas mais antigas
Comportamento inesperado durante a alocação de memória
O que você deve fazer? O Google Play exigirá que os aplicativos sejam compatíveis com páginas de 16 KB. Para se preparar:
Siga este guia para atualizar sua implementação do Vonage Client SDK
Atualize todas as bibliotecas nativas para versões compatíveis com páginas de 16 KB
Teste seu aplicativo em dispositivos com páginas de 16 KB (ou em emuladores configurados para isso)
Verifique se há suposições sobre o tamanho da página definidas de forma rígida no seu código NDK
Esse requisito garante que seu aplicativo funcione sem problemas quando os primeiros dispositivos com tamanho de página de 16 KB chegarem ao mercado.
Atualizando sua inscrição
Pré-requisitos
Um projeto Android configurado com o Gradle.
Acesso ao Vonage Client SDK.
API mínima do Android 36 como SDK de compilação e de destino.
1. Atualizar a versão do SDK da Vonage para Android
Primeiro, atualize sua configuração do Gradle para usar o novo SDK e definir como alvo a API 36 do Android.
No seu app/build.gradle arquivo:
android {
...
compileSdk 36
defaultConfig {
...
targetSdk 36
...
}
}
dependencies {
...
// Vonage Client SDK
implementation("com.vonage:client-sdk-voice:2.1.0")
} 2. Aplique a correção de áudio para o Android 14+
A partir do nível de API 34 (Android 14), o Android exige um Serviço em Primeiro Plano (FGS) para gravar áudio — mesmo que o aplicativo esteja em primeiro plano.
Para cumprir essa exigência, inicie um FGS sempre que atender uma chamada de saída ou de entrada.
Chamadas de saída
Ao fazer uma chamada:
client.serverCall(context) { err, callId ->
err?.let {
println("Error starting outbound call: $it")
} ?: callId?.let {
println("Start outbound Call success: $it")
requireActivity().getSharedPreferences("legid", Context.MODE_PRIVATE).edit().apply {
putString("legid", it)
apply()
}
activeCallId = it
telecomHelper.startOutgoingCall(it, "SERVER-CALL")
// Required on API 34+: Start FGS for audio recording
startForegroundService(requireContext())
}
} Chamadas recebidas
Ao atender chamadas recebidas:
client.setCallInviteListener { callId, from, type ->
activeCallId = callId
println("Call from: $from, via channel $callId, channelType: $type")
telecomHelper.startIncomingCall(callId, from, type)
// Required on API 34+: Start FGS for audio recording
startForegroundService(requireContext())
} 3. Adicionar um serviço em primeiro plano com notificação
O Android exige que qualquer FGS que grave áudio exiba uma notificação persistente informando ao usuário que a gravação está ativa.
Você precisará implementar um AudioRecorderService. Uma implementação de referência está disponível aqui: AudioRecorderService.kt (GitHub)
Resumo
Para oferecer suporte a tamanhos de página de memória de 16 KB no Android com o Vonage Client SDK:
Atualize o Gradle para a API 36 e inclua a versão mais recente do SDK.
Para Android 14 e versões posteriores:
Inicie um serviço em primeiro plano ao processar chamadas.
Certifique-se de que o serviço publique uma notificação sobre a gravação de áudio.
Isso garante a conformidade com as novas políticas do Android e evita problemas de áudio durante as chamadas.
Agradecimentos a Nathan e Salvatore da equipe do Client SDK por sua expertise técnica na elaboração deste passo a passo. Você já atualizou ou criou um novo aplicativo compatível com páginas de memória de 16 KB? Como foi sua experiência? Conte para a gente na nossa Comunidade de Desenvolvedores no Slack.