【发布时间】:2013-06-17 16:25:58
【问题描述】:
美好的一天, 我有一个相当大的项目,目前已本地化为 21 种语言,其中一种语言大约有 9000 个单词!这不是很有趣,但是
使用所有这些资源编译并启动应用程序,启动后占用大约 11 MB 内存(简单地由
Debug.getNativeHeapSize()测量)当我删除 20 种语言并只保留默认一种时,它在启动后只有 7.5 MB
因为我的应用程序的最大问题是可用于单个进程的内存不足的设备(主要是具有 2.X android 的旧设备),这对我来说是一个非常严重的问题。
所以这里有两个问题,希望有人能给点有用的建议
我希望 Android 只加载所需的资源,那么这些额外的语言怎么可能产生如此巨大的差异,而在最坏的情况下,内存中应该只是可用资源的列表
如果对第 1 点没有任何解释,有没有办法将资源预编译成单独的包并按要求下载?例如,在一些用户选择他想使用的语言的启动活动中?
欢迎提出任何建议。谢谢
【问题讨论】:
-
使用 MAT 精确确定内存差异所在。
-
令我非常惊讶的是,两个版本都显示完全相同的结果 - tinypic.com/r/2ptuzxw/5 - 所以 Debug.getNativeHeapSize() 似乎不是检查当前占用内存量的最佳方法。谢谢你的好点......如果它“只是”一个评论,我怎么能接受你的回答?
标签: android memory localization resources