【问题标题】:Android memory consumption, how can I improve that?Android内存消耗,我该如何改善?
【发布时间】:2021-11-15 03:05:18
【问题描述】:

我目前正在努力减少应用程序的 RAM 内存消耗,因为该应用程序会引发内存不足错误。

我不知道活动中的方法数量是否会影响内存消耗,但是,如果我的想法是正确的,我该如何改进?,使用更多的静态方法?

或者你还能提出什么其他建议?,我做了内存配置文件、依赖注入(手动,没有来自 Hilt Dagger 或其他库)、减少位图类型变量、更改为 MVVM 设计模式、将图形图像更改为矢量。

任何评论都可以帮助我,谢谢

【问题讨论】:

  • "Using more static methods?"缓存。

标签: android optimization memory-management out-of-memory


【解决方案1】:

如果您的应用程序使用大量高分辨率图像而不缩放它们或使用“插件”来加载它们,例如Glide,它们将导致很多问题一起留在内存中。

有一个解决方案不是所有解决方案中最漂亮的解决方案,但可以让您的应用程序在内存激增期间运行是解锁 android manifest 中的 largeHeap 属性,它应该让您的应用程序消耗它想要的内存,直到您'重新完成您的位图,让垃圾收集器再次声明它们的内存。

<application
        ...
        android:largeHeap="true"
        >
</application>

无论如何,这不是我所说的最漂亮的解决方案,因为如果您的应用程序遇到内存泄漏问题,您将在内存中无限期地引用不必要的数据以防止 GC 收集它们,这样您的应用程序内存消耗将不断增加直到操作系统无法容忍为止。

这里有一个很好的answer,告诉您何时应该使用或不应该使用 largeHeap 以及如何处理内存不足异常,如果您以前没有见过它可能会有所帮助。

【讨论】:

  • 非常感谢您的帮助,不幸的是我无法使用 largeHeap 提示,因为我必须为平均内存不超过 1 GB 的智能手机进行开发,我会检查如果我可以使用 Glade Greetings 进行优化
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
相关资源
最近更新 更多