2013-05-10 10 views
5

私はAdMob広告を実装アンドロイドアプリケーションを持っています。AdMobの - アンドロイドの活動で優れた性能

マイレイアウトコードは非常に簡単です - のLinearLayoutにAdViewを追加しました:一部の古いAndroidデバイス上で

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

(例えばテスト:のonCreate()内MyActivityで

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

方法私は呼び出していますが

Samsung Galaxy S1)では、AdMobの実装後にアプリが非常に遅いです。私は「showAdds」変数を「false」に設定した場合でも、 - > MyActivityのロードがはるかに優れています。

速いのAdMobを使用してアプリケーションを作るためにあらゆる可能性はありますか?

は、すべてのコメントをいただき、ありがとうございます。パフォーマンスを向上させるために

答えて

-1

、広告のXML実装にads:loadAdOnCreate="true"のいずれかを使用します(その後、あなたは文句を言わないというJavaコードを呼び出す必要があり、すべてがXMLから行われます)

エルス

あなたはブールshowaddsを削除することができます。多分それが減速の原因となっているでしょう。

私はこのshowaddsコードせずにコードを実装していると、彼らは示し速いadviewと低いデバイスで正常に動作。

詳細Here

7

私はあまりにもアプリのロード時間を増やすAdViewで苦労されています。私のソリューションは、

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秒後にadviewがロードされている...(のonCreate内)遅延ハンドラに広告コードを移動することでした。

-2

は、バックグラウンドスレッドにあなたのadViewのinitalizationを移動します(P.S. .bringToFrontは私のアプリのレイアウトは、XMLとコードの混合物を使用するため、使用するので、これが隠れているから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); 
} 
+2

を。これは、広告をベースにした新しいプレイサービスでクラッシュし、彼らはUIスレッド上で実行する必要があります。 – mbwasi

+1

コード例の更新をお待ちしております – longilong

1

adViewは最初の起動時に内部的にwebviewを読み込みます。クッキーストアなどを作成する必要があります。これには最大2秒かかる場合があります。 adViewの前にwebviewを読み込むと、それが恩恵を受けるでしょう(あなたの起動画面上にあるかもしれません)。私はここに、このヒントを見つけ

https://groups.google.com/forum/#!topic/google-admob-ads-sdk/LdUVIZ2AW6M

関連する問題