问题标签 [android-memory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
210 浏览

android - 如何在不启动该应用程序的情况下将应用程序加载到 RAM

我想将一组应用程序加载到 RAM 中,而不启动它们。当我将该应用程序加载到 RAM 中时,用户应该不知道它们。

我尝试使用以下代码:

上面的代码启动应用程序并将该应用程序置于前面。但我不希望将该应用程序放在首位。

0 投票
3 回答
1120 浏览

android - Android - 活动完成()时位图会自动回收吗?

活动时位图会自动回收finish()吗?

还是我们必须调用recycle()位图onDestroy()

0 投票
3 回答
1440 浏览

android - 本机堆不断增加

首先,我使用的是 API 10。

我有活动 A 和活动 B。

我从 A 启动活动 B。然后我在 B 的 oncreate() 中调用 finish()。然后我再次从 A 启动活动 B,依此类推。当我这样做时,我的本机堆每次都会增加约 0.5 MB。

这是我在活动 B 中拥有的唯一代码。

布局中的位图没有被回收吗?我不明白为什么我的本机堆大小会不断增加。

0 投票
1 回答
1083 浏览

android - 在 View Pager 中优化图像

我有ViewPager大约 10 页。所有页面的图像分辨率超过 1000x2000。对于不同的图像,基本上图像的宽度是不同的。因为我无法放置超过 2048 宽度的图像,所以我使用了 2 个图像(将一个图像分成 2 个图像)。所以每个页面都有 2 个图像和其他视图。

我尝试了许多优化方法,但可以优化很多。我尝试ImageView将其设为 null 甚至将其位图设置为 null 甚至删除所有视图并使它们在销毁时为 null 并 优化 ViewPager中的位图

在这个我Asyntask用来在屏幕上加载图像。甚至尝试将图像存储在缓存中。但仍然面临与内存相关的问题。

需要建议我如何优化更多并避免内存不足。

0 投票
1 回答
2269 浏览

android - Android 新 Intent 内存泄漏/内存不足

我有一个包含 2 个活动的应用程序。第一个在启动时启动,并通过一个按钮使用 Intent 启动第二个活动。

在第二个活动中,我有一个相机和一些内存分配。

当我在第二个活动中按下“关闭”按钮时,我在相机上调用 Close 并完成活动。

当我第一次关闭活动并从第一个活动中调用它时,一切都很好,第二次也是如此 - 但是当我第三次打开它时 - 我在这一行出现内存不足错误:

我得到的错误是:

我可以找出为什么会发生这种情况。

有任何想法吗?

谢谢!

0 投票
1 回答
1672 浏览

android - Android:使用 Bitmap.createBitmap 后内存泄漏

在阅读了很多相关帖子之后,我还没有找到解决这个问题的有效方法。当我的应用程序使用静态方法调整 Bitmap 对象的大小时Bitmap.createBitmap,我认为它会泄漏内存。

我怀疑内存泄漏的方法:

BoardImage 类(部分):

使用调试器,在调用的行之后Bitmap.createBitmap,我在 Logcat 收到此消息: Grow heap (frag case) to 8.169MB for 1818612-byte allocation

当堆大小达到其限制(在我的 AVD 中设置为 32MB)时,程序会崩溃并出现OutOfMemory异常。

如果需要更多代码,请告诉我,谢谢!

0 投票
0 回答
43 浏览

android-memory - 为什么Android不能分配1264字节?

Android ndk 应用程序中的一个经典错误(使用 ffmpeg 库):致命信号 11 (SIGSEGV)

我调试了:它在以下命令中退出:

sizeof(AVFormatContext) = 1264。设备是 Nexus 4。

所以我不相信这是因为尺寸大。必须先发生某些事情才能导致它。

实际上,类似的应用程序(没有音频流的早期版本)运行良好。新版本添加了音频流。所有 c++ 代码在纯 C++ 程序中运行良好。

我怀疑 Android 在遇到导致错误的命令之前设置了一个限制。请问有什么线索吗?

0 投票
0 回答
46 浏览

android - MAT中提到的大小和Android APP的缓存内存

我已经在 Eclipse 中运行了 MAT 来检查内存泄漏。我附上了以下报告。我可以看到大小为 11.1 MB。

  1. 我需要知道这是否是所有普通安卓手机的健康号码?
  2. 在手机中运行应用程序后,我在手机设置->应用程序->运行->显示缓存进程中检查了应用程序缓存内存。它显示为 20 MB。为什么会这样?当我们从APP出来时,通过编程方式删除缓存可以吗?

在此处输入图像描述

0 投票
3 回答
2239 浏览

android - 与可绘制资源目录的配置有关的 Android 内存不足崩溃

原本一切都很好。我一直在使用 5 个可绘制目录

这是我最近创建一个新项目时由 eclipse adt-bundle 为我创建的。因此,当我需要一个新的位图时,我一直将位图的副本放入这 5 个目录中的每一个中。这对我来说总是有点奇怪,所以我很高兴通过阅读Android 文档提供资源发现我可以为所有常见的位图提供一个“可绘制”的单一目录。所以我切换到

原始 5 个目录中剩下的唯一文件是最初创建项目时为我创建的“ic_launcher.png”文件。

但是,可绘制目录的新配置严重失败。加载 36k 位图文件 frame.png,现在由于该行而发生内存不足错误

logcat 显示 Android 现在尝试分配一个 6790156 字节的内存块,结果该行(即 logcat 底部提到的 DrawOnTop.java:95 行)

谁能解释为什么会这样?更重要的是,该 frame.png 文件在我的代码中被缩放和拉伸,所以我真的不需要它的 5 个副本,所以有什么方法可以让我在一个“可绘制”目录中拥有所有常见的 png 位图,而无需这些类型的问题?

更新感谢@sam 的评论和@ken-wolf 的回答,我现在了解到,如果没有正确类型的位图,Android 会进行大量位图缩放。所以当我简单地在所有目录之间复制相同的位图时,我的新理解是这样做的效果是位图将被加载而不缩放。对我来说,在扩展过程中显然出了点问题,但是由于我正在自己进行扩展,所以我也不需要 Android 来做这件事。所以我现在认为重要的问题是:如何设置我的应用程序以便只提供每个位图的一个版本,并指示 Android 不要进行任何位图缩放

0 投票
1 回答
1844 浏览

android - 在 Android 上释放 ListView 的内存

我有一个带有扩展 ArrayAdapter 的自定义适配器的 ListView。ListView 中的每个项目都是一个 ImageView。

ListView 是一个大部分隐藏的菜单,但在启动时加载 - 它需要大量内存。

我希望它仅在显示时填充,并在隐藏时释放(这会影响性能,但我猜会释放内存)。

如何才能做到这一点?让 ListView 更好地使用内存的任何其他想法?

谢谢