2010-07-23 4 views
4

L'équipe de logiciels dans notre projet de remise des diplômes a demandé d'augmenter la taille du tas par processus dans Android. Ils ont dit que la valeur par défaut est "16 Mo", ce qui n'est pas suffisant pour eux. Comment pourrais-je personnaliser la taille?Taille de tas personnalisée dans la plate-forme Android?

J'ai trouvé une ligne commentée dans le fichier: /acme/my_board/BoardConfig.mk dans mon code source Android:

# USE_CUSTOM_RUNTIME_HEAP_MAX := "64M" 

Est-ce ce que je dois modifier ??

+0

Est-ce pour le tas par défaut pour toute application, de sorte que vous voulez changer avec version personnalisée du système d'exploitation ou est le but de changer la taille du tas à l'exécution d'une application particulière? –

+0

Eh bien, l'un d'eux va résoudre mon problème. Cependant, la deuxième option "pour spécifique" est beaucoup mieux. –

+0

Cette question se rapporte un peu à une question que j'ai déjà posée sur cette question, que vous pouvez consulter ici: http://stackoverflow.com/questions/3078301/dalvik-memory-allocation-how-to-change-the-default- limites Selon les réponses, vous devez modifier la construction du système d'exploitation, et les instructions affichées dans les réponses devraient faire l'affaire, même si je n'ai pas pu les essayer moi-même, car je cherchais une solution spécifique à l'application. –

Répondre

1

Je suis arrivé cette réponse par la liste de diffusion android-plateforme

Vous pouvez modifier platform/dalvik/vm/Init.c

Par exemple, pour le rendre 32Mo, vous pouvez le faire ci-dessous

gDvm.heapSizeMax = 32 * 1024 * 1024;

Une autre approche suggérée consiste à date à laquelle votre system.prop

Cordialement, Muthu Subramaniam

3

Dans votre méthode onCreate dans votre activité, ou, si vous le voulez pour toutes vos applications dans un paquet, un onCreate de l'objet application personnalisée, ajoutez

dalvik.system.VMRuntime.getRuntime().setMinimumHeapSize(yournumberhere); 

Edit: Notez également que Android augmentera automatiquement la taille de tas s'il en faut plus. Donc, même si la valeur par défaut peut être 16, si elle en a besoin plus, elle va l'augmenter. Cependant cela pourrait faire un petit hickup dans une situation en temps réel qui est mauvaise. Par conséquent, si vous savez que ça va aller au-delà de 16 ans, c'est bien de le faire à l'avance.

+2

Il est également intéressant de noter que ce n'est pas une méthode durable pour augmenter la taille d'un tas d'application, référez-vous à http://developer.android.com/reference/dalvik/system/VMRuntime.html ... Cette classe est obsolète. Il s'agit d'une classe interne Dalvik qui ne convient pas à un usage général. Il sera supprimé de l'API publique dans une prochaine version. –

Questions connexes