java - Android缓存后台进程不断增加

标签 java android caching memory-management memory-leaks

在我名为“PriceDekho”的 android 应用程序中,缓存后台进程占用了太多空间。 首先,当我启动该应用程序时,该应用程序占用了大约 30MB(我认为还可以),但问题是当我浏览应用程序页面时,这个大小不断增加到(200 MB)。此应用程序“缓存后台进程”也随移动 RAM 大小而变化。如果移动 RAM 大小为 2GB,则此应用程序“缓存后台进程”大小会增加到 500 到 700 MB。

我的应用程序只有 5 到 6 个屏幕。我只需要稳定缓存的背景大小。

如何清除应用程序缓存大小?请帮忙。

enter image description here

enter image description here

最佳答案

这听起来像是垃圾收集器无法清除的内存泄漏。例如,如果您需要从一个从未在那里发布的非上下文类中引用 Context。大多数时候 Android Studio 会指出这些,但您可以尝试使用 LeakCanary并搜索它们。

添加依赖

dependencies {
   debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'
 }

并在您的 Application 类中使用它。如果您还没有,请创建一个。

public class ExampleApplication extends Application {

  @Override public void onCreate() {
    super.onCreate();
    if (LeakCanary.isInAnalyzerProcess(this)) {
      // This process is dedicated to LeakCanary for heap analysis.
      // You should not init your app in this process.
      return;
    }
    LeakCanary.install(this);
    // Normal app init code...
  }
}

关于java - Android缓存后台进程不断增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29193726/

相关文章:

javascript - 为什么 Chrome 会拉取旧的 JS 文件?

java - 如何在maven中使PROVIDED对POM类型依赖

java - 为什么我们需要在数据源中提供密码?

java - 模块中的包可见性

android - 我的可绘制目录中有许多图像文件。不好吗?

javascript - fancybox 确保 fancybox-image 不被缓存

java - 单例公共(public)静态最终

android - 使用应用内计费时出现 NullPointerException?

安卓更改setContentView

c# - 在内存中保存大量文本数据的正确策略是什么? System.Runtime.Caching 或自定义类?