相关疑难解决方法(0)

在Android中检测应用程序堆大小

如何以编程方式检测Android应用程序可用的应用程序堆大小?

我听说有一个功能可以在SDK的更高版本中执行此操作.无论如何,我正在寻找适合1.5及以上的解决方案.

memory heap android heap-memory

143
推荐指数
5
解决办法
10万
查看次数

确定Activity的可用堆空间(防止OutOfMemoryException)

我已经阅读了如何在Android中发现我的应用程序的内存使用情况?和一堆其他答案,但不能完全指出这个...

我有一个Activity,它将一个文件从外部存储器加载到内存中,并在内存中进行一些解析/操作/等操作.在我加载它之前,我想猜测这样做是否会导致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 total_bytes_used using mi...

long available_bytes = activityManager.getMemoryClass()*1024*1024 - total_bytes_used;
Run Code Online (Sandbox Code Playgroud)

所以,问题:

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

像这样的答案:关于android中最大堆大小和可用内存的两个问题似乎暗示没有比这更好的方法?

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

谢谢!

android

7
推荐指数
1
解决办法
3603
查看次数

标签 统计

android ×2

heap ×1

heap-memory ×1

memory ×1