https://a.storyblok.com/f/270183/1368x665/fd3704a54c/25sep_dev-blog_android-memory.jpg

Atenção, desenvolvedores do Android: atualização sobre o tamanho das páginas de memória de 16 KB

Publicado em September 18, 2025

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:

  1. Siga este guia para atualizar sua implementação do Vonage Client SDK

  2. Atualize todas as bibliotecas nativas para versões compatíveis com páginas de 16 KB

  3. Teste seu aplicativo em dispositivos com páginas de 16 KB (ou em emuladores configurados para isso)

  4. 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:

  1. Atualize o Gradle para a API 36 e inclua a versão mais recente do SDK.

  2. 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.

Compartilhar:

https://a.storyblok.com/f/270183/384x384/1a06993970/dwanehemmings.png
Dwane HemmingsPromotor de Desenvolvedores de JavaScript