繁体   English   中英

Galaxy Nexus上奇怪的内存泄露。 有已知问题吗?

[英]Weird memory leaking on Galaxy Nexus. Are there known issues?

我与Galaxy Nexus上的应用用户遇到了问题。 这是一个相当图形密集的游戏,基本上发生的是当他从活动切换到活动时,内存逐渐耗尽。

这是一款Galaxy Nexus(据我所知)推出Android 4.0.2。 来自LogCat的摘录:

D/.GameViewActivity( 3203): debug. =================================
D/.GameViewActivity( 3203): debug.heap native: allocated 6.01MB of 8.95MB (0.04MB free) in [.GameViewActivity]
D/.GameViewActivity( 3203): debug.memory: allocated: 54.00MB of 64.00MB (14.00MB free)
D/dalvikvm( 3203): GC_EXPLICIT freed 366K, 28% free 40426K/55623K, paused 4ms+4ms
D/dalvikvm( 3203): GC_EXPLICIT freed 1K, 28% free 40425K/55623K, paused 1ms+4ms

不久之后(几分钟),它看起来像这样:

D/.MainActivity( 3203): debug. =================================
D/.MainActivity( 3203): debug.heap native: allocated 6.92MB of 11.36MB (0.18MB free) in [.MainActivity]
D/.MainActivity( 3203): debug.memory: allocated: 58.00MB of 64.00MB (1.00MB free)
D/dalvikvm( 3203): GC_EXPLICIT freed 297K, 4% free 58119K/60359K, paused 1ms+5ms
D/dalvikvm( 3203): GC_EXPLICIT freed 3K, 4% free 58116K/60359K, paused 1ms+5ms
I/WindowManager(17943): createSurface Window{41fadf88 .MainActivity paused=false}: DRAW NOW PENDING
D/OpenGLRenderer( 3203): Flushing caches (mode 0)
I/ActivityManager(17943): Displayed .MainActivity: +556ms (total +743ms)
D/dalvikvm(17943): GC_FOR_ALLOC freed 823K, 14% free 24118K/27911K, paused 86ms
D/.GameViewActivity( 3203): debug. =================================
D/.GameViewActivity( 3203): debug.heap native: allocated 6.95MB of 11.36MB (0.15MB free) in [.GameViewActivity]
D/.GameViewActivity( 3203): debug.memory: allocated: 58.00MB of 64.00MB (1.00MB free)
D/dalvikvm( 3203): GC_EXPLICIT freed 11K, 4% free 58488K/60359K, paused 2ms+5ms
D/dalvikvm( 3203): GC_EXPLICIT freed <1K, 4% free 58487K/60359K, paused 2ms+4ms

随之而来的是崩溃和内存不足。

现在,我已经习惯了Android无望的内存管理系统,导致我的游戏不可避免地崩溃(这是 - 到目前为止 - Android仪表板中报告最多的错误,并且我在应用程序中切除内存的严格程度并不重要 - 图形+ Android内存管理=强制关闭)。 我只使用Android组件+ SurfaceView,虽然使用自定义图形进行了大量皮肤/样式设置。

然而,引起我注意的奇怪之处在于手机。

现在 - 首先 - 它是一款Galaxy Nexus,几乎是目前最先进的手机,其应用程序的内存最多。 很奇怪,这款手机中的所有手机都应该有这种问题。

其次,我有完全相同的手机 - 也运行4.0.2 - 我用它作为我的主要测试手机。 我的用户可以在几分钟内让游戏崩溃; 当我玩这个游戏时,它可以运行几个小时,并且一直有20-25Mb的内存空闲。

第三,这个应用程序在手机上成千上万的日常运行,所以我100%肯定的是,应用程序具有应引起这种灾难性的内存泄漏的,我的用户正在观看的任何问题。

简而言之 - 我完全彻底地难倒了。

有什么想法吗? 以前有人在这看过这样的东西吗? Galaxy Nexus是否存在我未曾听说过的已知问题? 任何策略/问题/测试我可能会问这个用户可能有助于解决这个问题吗?

如果用户有一些经验,也许他可以转储你的内存配置文件,这样你就可以查看分配。

有关说明,请参见http://android-developers.blogspot.de/2011/03/memory-analysis-for-android.html

您还可以尝试使用Debug#dumpHprofData()从应用程序中转储内存配置文件,并要求用户向您发送该文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM