本地化字符串(Android)占用了太多内存

时间:2013-06-17 16:25:58

标签: android memory localization resources

美好的一天,   我有一个非常大的项目,目前已经本地化为21种语言,其中一种语言有大约9000个单词!这不是那么有趣,但

  • 使用所有这些资源编译并启动应用程序,在内存中开始执行 11 MB (仅由Debug.getNativeHeapSize()测量)

  • 当我删除20种语言并且仅保留默认语言时,它仅在 7.5 MB

  • 之后启动

因为我的应用程序的最大问题是单个进程可用的内存较少的设备(主要是具有2.X android的旧设备),这对我来说是非常严重的问题。

所以这里有两个问题,希望有人会有任何有用的建议

  1. 我希望Android只加载所需的资源,所以这些附加语言如何产生如此巨大的差异,在内存中应该是最坏情况下的可用资源列表

  2. 如果对第1点没有任何解释,有没有办法将资源预编译到单独的包中并根据请求下载?例如,在一些用户选择他想要使用的语言的起始活动中?

  3. 任何建议都欢迎。感谢

1 个答案:

答案 0 :(得分:0)

Android上的记忆测量让人想起Zork的一部分:一个曲折的小段落的迷宫,都是一样的。

如果您的问题是虚拟机中的内容,尝试获得答案(IMHO)的最佳方法是使用MAT。特别是在Android 3.0及更高版本上,如果你在SDK中分配内存,它应该显示在这里。

有关非MAT方法测量内存使用情况及其缺陷的更全面讨论,我建议Dianne Hackborn's epic answer on the subject