71 votes

Taille du tas d'Android sur différents téléphones/appareils et versions d'OS

Quelqu'un sait-il si la taille du tas sur les téléphones Android est une valeur constante en fonction de ce qui est défini dans la version du système d'exploitation ou si c'est un paramètre que les fabricants de téléphones peuvent décider ?

La taille du tas est-elle proportionnelle à la quantité de RAM du téléphone ?

Je n'ai trouvé que des articles où les gens disent que la taille du tas d'une application est de 16M. Cependant, ces articles sont un peu anciens. D'après ce que je vois, à titre d'exemple, la taille du tas varie d'environ 20M à 24M sur un modèle spécifique. Ce téléphone a 768M de RAM.

122voto

spatialist Points 1232

Quelques informations supplémentaires sur les périphériques extraites des fichiers build.prop (adb -d pull /system/build.prop) :

Téléphones (version Android) :

  • HTC Wildfire (2.2.1) = 16MB
  • HTC Wildfire S (2.3.5) = 20MB
  • HTC Salsa (2.3.3) = 20MB
  • HTC Desire (2.3.3) = 32MB
  • HTC Desire S (2.3.5) = 32MB
  • Sprd - Richview - S111 (2.3.5) = 32MB
  • Samsung Galaxy S GT-I9000 (2.2) = 48MB
  • Samsung Galaxy R GT-I9103 (2.3.5) = 64MB
  • Samsung Galaxy Y GT-S5360 (2.3.5) = 64MB
  • Samsung Galaxy Note N7000 (4.1.2) = heapstartsize=8m, heapgrowthlimit=64m, heapsize=256m
  • Samsung Galaxy S3 GT-I9300 (4.3, xhpdi) = 8/64/256MB
  • Samsung Galaxy S4 GT-I9505 (4.4, xxhpdi) = 8/128/512MB
  • Google Galaxy Nexus (4.3) = 8/96/256MB
  • Google Nexus 4 (4.4, xhdpi) = 8/192/512MB
  • Google Nexus 5 (4.4, xxhdpi) = 8/192/512MB
  • Samsung Galaxy S6 SM-G920W8 (7.0) = 8/256/512MB

Tablettes (version Android) :

  • Samsung Galaxy Tab GT-P1000 (2.2) = 48MB
  • Samsung Galaxy Tab 8.9 GT-P7300 (3.2) = 5/64/288MB
  • Samsung Galaxy Tab 10.1 GT-P7500 (3.2) = 5/64/288MB
  • Samsung Galaxy Tab 3 10.1 GT-P5200 (4.2, mdpi) = 8/96/256MB
  • Acer Iconia A500 (3.2.1) = 5/48/256MB
  • Kindle Fire HD 7" (4.0.3) = 5/48/256MB
  • Asus Transformer Prime TF201 (4.1.1) = 5/48/256MB
  • Nexus 10 (4.4.3) 16/192/512 Mo

51voto

CommonsWare Points 402670

Quelqu'un sait-il si la taille du tas sur les téléphones Android est une valeur constante en fonction de ce qui est défini dans la version du système d'exploitation ou si c'est un paramètre que les fabricants de téléphones peuvent décider ?

Techniquement, il s'agit d'un paramètre que les fabricants de téléphones peuvent décider. Android est open source. Je ne me souviens pas que le document de définition de la compatibilité définisse des exigences en matière de taille de tas, mais je n'ai pas regardé récemment.

La taille du tas est-elle proportionnelle à la quantité de RAM du téléphone ?

Non, elle est plutôt basée sur la résolution de l'écran, car les écrans à haute résolution ont tendance à vouloir manipuler des bitmaps plus grands. Google fait donc des recommandations sur la taille du tas que, espérons-le, les fabricants de périphériques respecteront.

Je n'ai trouvé que des articles où les gens disent que la taille du tas d'une application est de 16M.

Recherche de StackOverflow sur [android] "heap size" se retourne cette réponse .

20voto

Carl Points 5553

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

11voto

NoBugs Points 2258

Vous devriez être en mesure de vérifier la taille maximale de l'espace mémoire du vm en utilisant :

getprop dalvik.vm.heapsize

dans un terminal Android (connectbot ou adb shell etc). Il est possible de remonter en lecture-écriture et de définir la taille du tas dans le fichier build.prop également. (Assurez-vous que vous avez installé le système de récupération afin de pouvoir le redéfinir si vous le rendez accidentellement trop petit, il ne démarrera pas).

9voto

dustmachine Points 4069

Le "budget VM" qu'une application est autorisée à utiliser varie d'un appareil à l'autre. Les tablettes autorisent généralement un budget plus important que les téléphones.

Voici quelques tailles budgétaires VM que j'ai trouvées pour différents appareils.

  • G1 = 16 Mb
  • Droïde = 24 Mo
  • Nexus One = 32 Mb
  • Xoom = 48 Mb
  • GalaxyTab = 64 Mb.

(Note : si vous avez trouvé autre chose, faites-le moi savoir)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X