首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用admob的高内存使用率

使用admob的高内存使用率
EN

Stack Overflow用户
提问于 2018-01-22 15:32:49
回答 6查看 1.2K关注 0票数 6

我试图在我的应用程序中放置广告。根据Admob,我必须初始化Mobile

代码语言:javascript
运行
复制
MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");

这会导致代码中的高内存使用量激增。

但是如果我删除这一行,那么ram的使用率就会下降&这一行代码似乎对应用程序中的服务器广告没有任何影响。

同样,当从admob请求广告时,ram的使用率再次飙升,并导致应用程序启动时出现3-4个GC事件。我相信这是内存泄漏。

下面是我在onCreate方法中请求广告的方式

代码语言:javascript
运行
复制
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事件。如果我不加载ads,GC事件就不会被踢进来。

对于admob来说,这种行为正常吗?我怎么解决这个问题?

EN

Stack Overflow用户

发布于 2022-07-22 19:07:28

你说的完全正确。可以删除MobileAds.initilize(),应用程序就可以工作了,但是。当您请求第一个ads加载时,initilize()方法将被调用。我建议您尽快调用此方法。例如,在应用程序类中。另外,从版本Ad暴21.0.0开始,您可以优化初始化过程。只需将下列行添加到清单中

代码语言:javascript
运行
复制
 <meta-data
        android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION"
        android:value="true"/>
    <meta-data
        android:name="com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING"
        android:value="true"/>
票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48385087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档