Non seulement les fabricants de téléphones, mais aussi tous ceux qui créent une version du système d'exploitation Android, peuvent spécifier la taille maximale autorisée du tas, en fonction des exigences spécifiques de leurs appareils. Certaines racines d'Android, comme CyanogenMod, permettent même à l'utilisateur de sélectionner lui-même la taille du tas comme paramètre.
Vous pouvez détecter la taille maximale autorisée du tas en utilisant la méthode
Runtime.getRuntime().maxMemory();
Des informations supplémentaires sur ce sujet sont disponibles aquí .
Si votre application a normalement besoin de plus de 16 Mo de mémoire, une approche suggérée serait de définir un niveau de version minimale du système d'exploitation dans votre manifeste qui garantisse que l'écrasante majorité des personnes téléchargeant votre application disposera au moins de la quantité dont vous avez besoin, puis de trouver un moyen de dégrader gracieusement votre fonctionnalité d'une manière qui réduise vos besoins en mémoire selon les besoins, jusqu'à un niveau de base de 16 Mo, pour le petit nombre d'utilisateurs disposant d'une quantité de mémoire inférieure à votre quantité optimale qui passent à travers ce tamis.
Voici quelques chiffres montrant l'association de la RAM du téléphone avec la version du système d'exploitation (sur la base du système d'exploitation actuel, et non du système d'origine). Je pense qu'un téléphone ayant au moins 1GB de RAM aura presque toujours plus de 16MB de heap. Notez que les pourcentages indiqués ici correspondent au nombre de téléphones. modèles supportant la mémoire indiquée, et non le total des téléphones utilisés, qui peut être très biaisé en faveur de certains modèles. Ces chiffres ont été obtenus en entrant des données dans le moteur de recherche de téléphones suivant (qui inclut 1500 modèles de téléphones Android) et ne sont donc que des chiffres approximatifs : http://www.gsmarena.com/search.php3
Pourcentage de téléphone modèles disposer d'au moins 1 Go de RAM, en fonction de la version actuelle du système d'exploitation (et non de la version de lancement) :
Phones running Percent of models having at least 1GB of RAM Percentage of all models
4.4 and up 100 percent 1.5
4.3 and up 100 percent 2.9
4.2.x and up 74 percent 18.7
4.1.x and up 71 percent 37
4.0 and up 62 percent 60
2.3.x and up 57 percent 71
2.2 and up 44 percent 93
2.1 and up 44 percent 97
ALL OS VERSIONS: 41.5 percent 100