快速检查堆?

发布于 2024-11-11 16:07:22 字数 426 浏览 2 评论 0 原文

我有一台已 root 的 Evo 作为测试设备。现在我一直在上面测试我的应用程序,最近(相对)我不断出现内存泄漏或过度分配。因此,一时兴起,我决定在我工作的平板电脑上进行测试。该应用程序运行良好。甚至没有任何内存问题的迹象。所以我开始怀疑在root我的设备时我的堆大小是否已经被fubared了?当应用程序在我的 Evo 上崩溃时,我的部分怀疑来自于这一行。现在,如果这条线是可信的,那就大错特错了。我认为堆(至少)是 16MB --- 对于我的 2.2 Evo 来说是 24MB。

dalvikvm  E  Out of memory: Heap Size=4803KB, Allocated=2452KB, Bitmap Size=19002KB

所以我的问题是:有没有办法找到手机上实际允许的堆大小?有什么办法可以修改吗?

TFYT ~Aedon

I have a rooted Evo as a test device. Now I have been testing my app on it all the time and lately (relatively) I have had constant memory leaks or over assignment. So on a whim, I decided to test it on a tablet I have at work. The app ran fine. Not even a hint of memory issues. So I begin to wonder if in rooting my device my heap size has been fubared? Part of my suspicion comes from this line when the app crashes on my Evo. Now, if this line can be trusted, this is way off. I thought that the heap (at the very minimum) was 16MB --- 24MB for my 2.2 Evo.

dalvikvm  E  Out of memory: Heap Size=4803KB, Allocated=2452KB, Bitmap Size=19002KB

So my question is: Is there a way to find the actual allowed heap size on my phone? Any way to modify it?

TFYT ~Aedon

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迟月 2024-11-18 16:07:22

要获取手机上实际允许的堆,您可以使用 http://developer .android.com/reference/android/app/ActivityManager.html#getMemoryClass() 将返回一个整数,表示每个应用程序的最大堆的 MB 量。

作为应用程序的开发人员,您无法更改此设置(不过您可以更改您拥有的设备的最大堆)。但是,如果您的目标是 API 级别 11 (Honeycomb),则可以将 android:largeHeap="true" 放入清单文件中,然后调用 http://developer.android.com/reference/android/app/ActivityManager.html#getLargeMemoryClass() 获取每个应用程序的最大堆,该大小可能大于正常堆大小。

To get the actual allowed heap on your phone you can use http://developer.android.com/reference/android/app/ActivityManager.html#getMemoryClass() which will return an integer representing the amount of MB that is the max heap per application.

And you cannot change this as a developer of an app (You can change the max heap for a device you own though). However, if you are targeting API Level 11 (Honeycomb), you can put android:largeHeap="true" in your manifest file, and then call http://developer.android.com/reference/android/app/ActivityManager.html#getLargeMemoryClass() to get the max heap per app, which may be larger than normal heap size.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文