
Attention aux développeurs Android : Mise à jour de la taille des pages de la mémoire de 16 Ko
Temps de lecture : 4 minutes
Introduction
Google a fait quelques annonces qui sont très importantes pour les développeurs Android. Toutes les nouvelles applications et les mises à jour d'applications existantes destinées aux appareils Android 15+ devront prendre en charge la taille de page mémoire de 16 Ko sur les appareils 64 bits à partir du 1er novembre 2025.. Auparavant, seules les tailles de page mémoire de 4 Ko devaient être prises en charge.
Cet article ne se contente pas d'expliquer ce changement et ses raisons, mais vous guidera également dans la mise à jour de votre application Android qui utilise le Vonage Client SDK. Il présentera également un correctif pour l'enregistrement audio sur les appareils Android 14.
Remarque : Le Vonage Video Client SDK prend en charge les pages de mémoire de 16 Ko. à partir de la version 2.30.0.
Quoi et pourquoi ?
Android modifie la façon dont il gère la mémoire au niveau du système, et cela pourrait avoir une incidence sur votre application. Voici ce que vous devez savoir :
Qu'est-ce qu'une taille de page ? Une page est un bloc de mémoire fixe que le système d'exploitation de votre appareil alloue aux applications. Imaginez des conteneurs d'expédition de taille standard : la mémoire de votre application doit être placée dans ces conteneurs. Actuellement, Android utilise des pages de 4 Ko (comme de petits conteneurs), mais les appareils plus récents utiliseront des pages de 16 Ko (des conteneurs plus grands).
Si votre application a besoin de 20 Mo de RAM, le système vous donne actuellement 5 120 petits conteneurs (4 Ko chacun). Avec des pages de 16 Ko, vous obtiendriez 1 280 conteneurs plus grands.
Pourquoi Android apporte-t-il ce changement ? L'augmentation de la taille des pages présente plusieurs avantages :
Démarrage plus rapide des applications et réduction de la consommation d'énergie
Démarrage plus rapide des appareils
Meilleure performance globale du système
Mon application est-elle concernée ? Cette modification concerne principalement les applications qui utilisent du code natif - c'est-à-dire qui utilisent du code natif :
Applications utilisant le NDK Android
Apps avec bibliothèques natives (code C/C++)
Les applications utilisant des SDK tiers qui contiennent des composants natifs (comme le Vonage Client SDK)
Si votre application est purement Java/Kotlin sans dépendances natives, vous êtes probablement bien et vous pouvez arrêter de lire ici.
Quels sont les problèmes susceptibles de se produire ? Les applications avec du code natif peuvent rencontrer des problèmes :
Problèmes d'alignement de la mémoire provoquant des plantages
Problèmes de compatibilité avec les anciennes bibliothèques natives
Comportement inattendu lors de l'allocation de mémoire
Que faire ? Google Play exigera que les applications soient compatibles avec une taille de page de 16 Ko. Pour vous préparer :
Suivez ce guide pour mettre à jour votre implémentation du Client SDK de Vonage.
Mettre à jour toutes les bibliothèques natives pour qu'elles prennent en charge les pages de 16 Ko.
Testez votre application sur des appareils avec des pages de 16 Ko (ou des émulateurs configurés pour cela).
Examinez votre code NDK pour y trouver des hypothèses de taille de page codées en dur.
Cette exigence garantit que votre application fonctionnera sans problème lorsque les premiers appareils avec une taille de page de 16 Ko arriveront sur le marché.
Mise à jour de votre application
Conditions préalables
Un projet Android avec une configuration Gradle.
Accès au Vonage Client SDK.
Minimum Android API 36 comme compilation et SDK cible.
1. Mettre à jour la version du SDK Android de Vonage
Tout d'abord, mettez à jour votre configuration Gradle pour utiliser le nouveau SDK et cibler l'API 36 d'Android.
Dans votre app/build.gradle fichier :
android {
...
compileSdk 36
defaultConfig {
...
targetSdk 36
...
}
}
dependencies {
...
// Vonage Client SDK
implementation("com.vonage:client-sdk-voice:2.1.0")
} 2. Appliquer le correctif audio Android 14+
À partir du niveau 34 de l'API (Android 14), Android exige un service de premier plan (FGS) pour enregistrer de l'audio, même si l'application est au premier plan.
Pour vous mettre en conformité, lancez un FGS chaque fois que vous traitez un appel sortant ou entrant.
Appels sortants
Lors d'un appel sortant :
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())
}
} Appels entrants
Lorsque vous traitez des appels entrants :
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. Ajouter un service d'avant-plan avec notification
Android exige que tout SGF qui enregistre de l'audio affiche une notification persistante informant l'utilisateur que l'enregistrement est actif.
Vous devrez mettre en place un fichier AudioRecorderService. Une implémentation de référence est disponible ici : AudioRecorderService.kt (GitHub)
Résumé
Pour prendre en charge les pages de mémoire Android de 16 Ko avec Vonage Client SDK :
Mettre à jour Gradle pour cibler l'API 36 et inclure la dernière version du SDK.
Pour Android 14+ :
Lancez un service d'avant-plan lorsque vous traitez des appels.
Veillez à ce que le service affiche une notification concernant l'enregistrement audio.
Cela permet de respecter les nouvelles règles d'Android et d'éviter les problèmes audio lors des appels.
Merci à Nathan et à Salvatore de l'équipe Client SDK pour leur expertise technique dans l'élaboration de ce guide. Avez-vous déjà mis à jour ou créé une nouvelle application qui prend en charge les tailles de page mémoire de 16 Ko ? Comment s'est déroulée votre expérience ? Faites-nous en part dans notre Communauté des développeurs sur Slack.