Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 确定Activity的可用堆空间(防止OutOfMemoryException)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经阅读了 How do I discover memory usage of my application in Android?和其他一些答案,但不能完全解决这个问题……

我有@L_673_3@Activity,它将@L_673_3@文件从外部存储器加载到内存中,并在内存中进行一些解析/操作/等操作.在我加载它之前,我想猜测这样做是否会导致OutOfMemoryException并使Activity崩溃(我知道确切的答案是不可能的,估计总比没有好.)

从上面提到的答案中,我提出:

Activitymanager activitymanager = (Activitymanager) getApplicationContext().getSystemservice(ACTIVITY_serviCE);
MemoryInfo memoryInfo = new Activitymanager.MemoryInfo();
activitymanager.getMemoryInfo(memoryInfo);

int pid [] = {android.os.process.myPid()};

android.os.Debug.MemoryInfo[] mi = activitymanager.getProcessMemoryInfo(pid);

// calculate @R_156_10586@l_bytes_used using mi...

long available_bytes = activitymanager.getMemoryClass()*1024*1024 - @R_156_10586@l_bytes_used;

所以,问题:@H_616_9@1)我疯了吗?@H_616_9@2)如何从MemoryInfo对象中总计值来估计活动/任务的堆使用情况? (上面的链接给出了pss / private-dirty / shared-dirty的概述,但没有足够的信息来猜测如何进行总计.)@H_616_9@3)Debug是否始终存在或仅在调试时?@H_616_9@4)有更聪明的方法吗?

像这样的答案:Two questions about max heap sizes and available memory in android似乎暗示没有比这更好的方法

我知道使用更少的内存是件好事,我是.我很想知道如何在防守方面进行编码.等待异常知道你的内存不足,似乎很奇怪.

谢谢!

解决方法

可以参链接.对您面临的同一问题进行全面研究. @H_616_9@ OOMRESEACH

大佬总结

以上是大佬教程为你收集整理的android – 确定Activity的可用堆空间(防止OutOfMemoryException)全部内容,希望文章能够帮你解决android – 确定Activity的可用堆空间(防止OutOfMemoryException)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。