美好的一天, 我有一个非常大的项目,目前已经本地化为21种语言,其中一种语言有大约9000个单词!这不是那么有趣,但
使用所有这些资源编译并启动应用程序,在内存中开始执行 11 MB (仅由Debug.getNativeHeapSize()
测量)
当我删除20种语言并且仅保留默认语言时,它仅在 7.5 MB
因为我的应用程序的最大问题是单个进程可用的内存较少的设备(主要是具有2.X android的旧设备),这对我来说是非常严重的问题。
所以这里有两个问题,希望有人会有任何有用的建议
我希望Android只加载所需的资源,所以这些附加语言如何产生如此巨大的差异,在内存中应该是最坏情况下的可用资源列表
如果对第1点没有任何解释,有没有办法将资源预编译到单独的包中并根据请求下载?例如,在一些用户选择他想要使用的语言的起始活动中?
任何建议都欢迎。感谢
答案 0 :(得分:0)
Android上的记忆测量让人想起Zork的一部分:一个曲折的小段落的迷宫,都是一样的。
如果您的问题是虚拟机中的内容,尝试获得答案(IMHO)的最佳方法是使用MAT。特别是在Android 3.0及更高版本上,如果你在SDK中分配内存,它应该显示在这里。
有关非MAT方法测量内存使用情况及其缺陷的更全面讨论,我建议Dianne Hackborn's epic answer on the subject。