问题标签 [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 投票
2 回答
11258 浏览

android - 在 Android 中写入 ByteArrayOutputStream 时出现内存不足错误

我有一个大问题,我正在从驻留在 Sdcard 中的视频文件中读取 2^21 个字节,但是当我们在 ByteArrayOutputStream 中写入相同内容时,它会抛出一个异常,因为内存不足。我不知道为什么?请为此提出正确的解决方案。

这是堆栈跟踪。

错误堆栈:

代码:

0 投票
2 回答
1379 浏览

android - 使用大量 RAM 的 Android 应用程序

我的 android 应用程序大小在设备上只有 5MB,但是当我运行应用程序时,它会使用大量 RAM,例如大约 12-18 MB(在 ics 设备上更多)。我试图为此找到一个解释,为什么我的应用程序使用大量 RAM,我还使用 parse 的推送服务。我的应用程序是图像密集型的,这可能是一个可能的原因。如何减少我的应用程序的 RAM 消耗。

0 投票
1 回答
1965 浏览

android - 布局内存泄漏?

我是一名初级安卓开发人员。对于 android UI 设计,我认为大多数 android 开发人员会使用 XML 进行布局设计。今天,我的高级开发人员说他不使用 XML 进行布局设计。所有的 UI 设计都使用代码来生成。他说的原因是Android不会自动释放布局资源。使用JNI释放布局资源。他没有详细告诉你,因为他认为我很初级。

我想问他是真是假。我不知道他的观点。但是,我确保他的代码不能重用。另外,Android 在其生命周期中如何释放布局资源。

谢谢。

0 投票
1 回答
196 浏览

android - 循环图像 - 位图大小超过 VM 预算

我有一个 Activity,上面有一个 ImageView,但它会多次交换资源,循环浏览几个不同的高分辨率图像。

我遇到了“位图大小超过 VM 预算”错误。我在这里看到过关于在 onDestroy 方法中手动清理东西的帖子,但活动并不总是那么远。

我该怎么做才能在不耗尽内存的情况下循环浏览大量大图像?

0 投票
1 回答
2781 浏览

android - 制作 Android 应用程序时是否需要注意内存管理技巧?

我最近在一次关于 Android 的采访中被问到了一些问题。我搜索了其中一些,但找不到合适的资源和答案。所以想在这里跟大家分享一下。

  1. 在 Android 中使用的首选布局是什么(为了更好的内存消耗等)?我没有答案,面试官告诉我这是相对布局。这是真的 ?对此有何解释?

  2. 告诉我一些你为了更好的内存消耗而做的练习?我在这里看了看,但似乎还有其他东西。因为面试官提到了一些和静态变量相关的东西比较好。

  3. 如果 Android 需要内存,它会杀死服务或 Activity 吗?一个优先问题。我也没有找到任何人讨论这个。面试官说 Service 的某些事情比活动具有高优先级(??),因此活动是将被杀死的组件。这是真的 ?任何进一步的资源或解释?

请分享您了解的有关此问题的任何知识或资源。

0 投票
1 回答
1718 浏览

android - 图片资源如何回收利用?

通常我总是使用Drawable资源,Imageviews因为我没有手动释放它们。

但在某些情况下,我需要动态创建位图,然后我必须recycle()onDestroy(). 这是我根据其他 StackOverflow 问题找到的最佳解决方案。

我想了解 Android 是如何管理Drawable资源的,以及为什么我没有手动回收它们。并且当了解后,看看是否可以将类似的逻辑应用于手动创建的位图。

0 投票
2 回答
527 浏览

android - 内存泄漏、位图、碎片

我有一个活动,其中包含一个带有画廊的片段。当我开始另一个活动时,基本上,我想释放充满画廊位图的内存。

我的片段是这样动态插入的:

我什至在活动的 onPause 中调用 _promoFragment.onDestroyView,但 MAT 仍然显示有一个 Gallery 对象包含对位图的这些引用。

你有什么建议?

ps 如果更清楚,我可以发布 MAT 报告。

0 投票
1 回答
87 浏览

java - Android活动每次增加2mb

每次我退出我的 Android 应用程序并重新启动时,它会额外消耗 2 Mb,例如,如果我重新启动我的应用程序 3 次,它会多消耗 6 Mb。我使用后退按钮退出并清除 OnDestroy() 中的所有引用。

我浏览了与 Android 中的内存管理和内存泄漏有关的堆栈溢出的所有帖子,我也做了一个 MAT,但我的活动没有办法泄漏内存(持有参考),

我也对其他应用程序进行了同样的尝试,但它们保持 +/- 0.75 Mb 的恒定内存使用量。

我对 Android 内存管理感到困惑。

0 投票
2 回答
3168 浏览

android - 取消绑定可绘制对象 onPause() 导致无响应的后退导航并跳过此步骤会导致内存溢出

我正在使用图像设置为我所有活动的背景,但这会导致内存溢出问题并使应用程序崩溃。现在我在我的活动中的 pause() 和 Destroy() 上取消绑定我的可绘制对象,现在它在按下后退按钮时显示空白屏幕。那么如何在不使用额外内存的情况下避免这种情况。

最初我使用 android:background="@drawable/" 膨胀我的布局,这总是导致内存溢出错误,说 VM 不会让我们分配 10MB(应用程序。)现在我从该可绘制对象中获取位图而无需缩小和绑定它在运行时。现在它说VM不会让我们在不使用unbindDrawables(..)的情况下分配5MB(应用程序)显然显示的背景图像的质量已经降低但我无法理解如果我使用的是13KB 的 png 文件,JVM 如何需要 5 或 10MB 的空间来处理请求?

我已将布局语句从 onCreate() 转移到 onResume() 方法,但应用程序在按下后退按钮时再次耗尽内存。

0 投票
1 回答
318 浏览

android - 具有动态布局数据的 ListView 中的内存使用情况

我正在使用每行嵌套数据的自定义 ListView。我想用每行的复选框显示一个人的姓名,然后动态地将子行添加到 ListView 中,以获取与该人关联的一对多电话号码。

这目前正在工作。但是,对于较大的数据集,由于内存使用量很大,我看到速度变慢和崩溃。有没有更好的方法来完成我想要做的事情?

这是我想看到的一个例子:

这是我当前在 ArrayAdapter 的 getView() 函数中使用的代码。我试图清理它一些,所以如果有任何编译错误,它们很可能是我清理的错字。

}