Bonne journée, J'ai un assez gros projet actuellement localisé à 21 langues où une langue a environ 9000 mots! Ce n'est pas si intéressant, maisLes chaînes localisées (Android) ont pris trop de mémoire
compilé et a commencé l'application avec toutes ces ressources, a pris après le démarrage autour 11 Mo en mémoire (simplement mesurée par
Debug.getNativeHeapSize()
)lorsque je retire 20 langues et ne garder que par défaut, il a commence après seulement 7.5 MB
Parce que le plus grand problème de mon application sont des dispositifs d'esprit h mémoire faible disponible pour un seul processus (principalement les anciens appareils avec Android 2.X), c'est une question très sérieuse pour moi.
Alors vient ici deux questions, l'espoir que quelqu'un aura toute suggestion utile
Je pense que les charges Android uniquement les ressources nécessaires, alors comment il est possible que ces langues fait la différence si énorme, quand en mémoire s'il n'y a pas d'explication pour le point 1., y a-t-il un moyen de précompiler les ressources dans des paquets séparés et de les télécharger sur demande? Par exemple dans une activité de démarrage où l'utilisateur choisit la langue qu'il veut utiliser?
Les suggestions sont les bienvenues. Merci
Utilisez MAT pour déterminer précisément où se situe la différence de mémoire. – CommonsWare
pour ma très grande surprise, les deux versions montrent exactement les mêmes résultats - http://tinypic.com/r/2ptuzxw/5 - semble donc que Debug.getNativeHeapSize() n'est pas la meilleure méthode pour vérifier la quantité de mémoire actuellement occupée. Merci pour le bon point ... comment puis-je vous accepter de répondre si c'est "juste" un commentaire? –