【发布时间】:2018-07-01 06:59:12
【问题描述】:
我正在尝试在我的应用中放置广告。根据 Admob Documentation 我必须初始化移动广告 SDK
MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");
这会导致代码中的高内存使用率飙升。
但是,如果我删除此行,则内存使用率会下降,并且这行代码似乎对应用内的服务器广告没有任何影响。
此外,当从 admob 请求广告时,内存使用率再次飙升并在应用启动时导致 3-4 次 GC 事件。我相信这是内存泄漏。
这是我在
onCreate方法中请求广告的方式
AdRequest request = null;
if (BuildConfig.DEBUG) {
//Facebook Audience Network
List<String> testDeviceId = new ArrayList<>();
testDeviceId.add("TESTID");//Redmi Note 3
testDeviceId.add("TESTID");//Moto G 1st Gen
AdSettings.addTestDevices(testDeviceId);
//Google Ad-mob
request = new AdRequest.Builder()
.addTestDevice("TESTID")//Redmi Note 3
.addTestDevice("TESTID")//Mot G 1st Gen
.build();
} else {
request = new AdRequest.Builder()
.build();
}
AdView mAdView = findViewById(R.id.adView);
mAdView.loadAd(request);
加载此横幅广告时,会启动几个 GC 事件。如果我不加载广告,则永远不会启动 GC 事件。
这种行为对于 admob 是否正常?我该如何解决这个问题?
【问题讨论】:
-
没什么异常
-
@AntonMalyshev 所以这种行为正常吗?
-
是的,我想是的
-
猜这是由于广告sdk使用了
WebViews
标签: android memory-leaks garbage-collection admob google-admob