我的应用程序的内存使用率如此之高的可能原因是什么?

时间:2018-09-07 07:34:02

标签: android performance memory memory-management

我目前正在编写一个应用,而我主要使用的是一项活动。 This is the component tree.

我在上面两个图像视图中使用两个屏幕宽度和大约300px高的图像,最低的是纯色面板。除此之外,该应用程序还创建了约15个带有矢量背景的按钮,大小约为42dp正方形。这些按钮没有单击侦听器,我已经为它们关闭了stateListAnimator。它们不能用作适当的按钮,但是例如,用textView替换它们并不能解决问题。

我还将48个声音文件加载到SoundPool中,每个文件的单独大小为8,57 KB。我尝试不加载这些文件,但是并没有以任何明显的方式改变RAM的使用情况。

我将minifyEnabled设置为true,这些是我的依赖项:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
    implementation 'com.android.support:customtabs:28.0.0-rc02'
    implementation 'com.android.support:support-v4:28.0.0-rc02'
    implementation 'com.android.support:support-media-compat:28.0.0-rc02'
    implementation 'com.android.support:animated-vector-drawable:28.0.0-rc02'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.android.support:preference-v7:28.0.0-rc02'
    implementation 'com.google.android.gms:play-services-ads:15.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

我现在的问题是,尽管该应用似乎没有泄漏,但从一开始就占用了大量RAM。每个设备的设备不同,但通常在70mb至130mb之间。 Here is a shot of the Android profiler.

不使用广告会产生轻微的影响,但是没有什么太疯狂的了,如here所示。

因此,在这一点上,我尚不完全确定是什么导致了该问题以及可以采取哪些措施来解决此问题。所以我希望这里的任何人都能提供帮助。

如果需要我忘记的任何其他信息,我将提供。谢谢。

1 个答案:

答案 0 :(得分:0)

检查图像的尺寸,也许其中一个尺寸较大 并尝试优化xml代码,这可能是您的应用使用大量RAM的原因。 并检查“ LeakCanary”对RAM有很大帮助