6

我有实现 AdMob 广告的 android 应用程序。

我的布局代码非常简单——将 AdView 添加到 LinearLayout 中:

<com.google.ads.AdView
    android:id="@+id/adMob1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="{AdID}" />

在 onCreate() 方法的 MyActivity 中,我正在调用:

    boolean showAdds = true;
    if(this.showAdds) {
        AdView adView = (AdView) findViewById(R.id.adMob1);
        adView.loadAd(new AdRequest());
    }

在 AdMob 实施后,在一些较旧的 Android 设备上(例如在三星 Galaxy S1 上测试过),该应用程序非常缓慢。但是当我将“showAdds”变量设置为“false”时-> MyActivity 的加载要好得多。

有没有可能让admob的应用程序更快?

感谢您的所有评论。

4

4 回答 4

10

我也一直在为 AdView 增加应用程序加载时间而苦苦挣扎。我的解决方案是将广告代码移动到延迟处理程序中(在 onCreate 内)……</p>

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
  @Override
  public void run() {
     AdRequest adRequest = new AdRequest.Builder().build();
     adView.loadAd(adRequest);
     adView.bringToFront();
  }
}, 5000);

所以现在应用程序快速启动,然后在 5 秒后加载广告视图。(使用 ps .bringToFront 是因为我的应用布局混合使用了 XML 和代码,因此这会阻止 adView 被隐藏)

于 2014-05-05T15:01:02.933 回答
3

adView 在第一次启动时在内部加载一个 webview。它需要创建 cookie 存储等。这将花费最多 2 秒。如果您在 adView 之前加载 webview,它将从中受益(可能在您的启动屏幕上)。

我在这里找到了这个提示: https ://groups.google.com/forum/#!topic/google-admob-ads-sdk/LdUVIZ2AW6M

于 2016-03-21T19:27:33.733 回答
-1

要提高性能, ads:loadAdOnCreate="true"请在广告的 XML 实现中使用(然后您不需要调用该 java 代码,一切都将通过 XML 完成)

否则,您可以删除布尔显示添加。也许这导致了放缓。

我已经实现了没有此 showadds 代码的代码,它们在显示快速 adview 的较低设备上运行良好。

更多信息在这里

于 2013-05-10T20:53:47.843 回答
-2

将您的 adView 初始化移动到后台线程中。

 onCreate(){
       //..some other stuff

       Runnable runnableAdView = new Runnable() {
          @Override
          public void run() {
              initAdView();
          }
        };
       new Thread(runnableAdView).start();
 }

  private void initAdView() {

    // Create the adView
    adView = new AdView(this, AdSize.BANNER, getResources().getString(
            R.string.admob_id));

    // Lookup your LinearLayout assuming its been given

    LinearLayout layout = (LinearLayout) findViewById(R.id.sound_share_screen_ad_container);

    // Add the adView to it
    layout.addView(adView);

    // Initiate a generic request to load it with an ad
    AdRequest adRequest = new AdRequest();
    //adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
    //...

    adView.loadAd(adRequest);
}
于 2014-05-05T15:51:21.550 回答