我在應用程序中遇到了一些性能問題(UI渲染會暫時凍結),做了一些挖掘,發現PublisherAdView.loadAd()方法需要大約500-700ms才能在Nexus 5上執行應用程序啓動和100-200ms在後續運行。我預計最壞的情況是10-15毫秒。PublisherAdView在Android上的loadAd性能問題
爲了驗證這一點,我從這裏下載橫幅例子:https://developers.google.com/mobile-ads-sdk/docs/dfp/android/banner和修改MainActivity執行loadAd()在一個單獨的方法方法:
private PublisherAdView mAdView;
private PublisherAdRequest adRequest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
mAdView = (PublisherAdView) findViewById(R.id.ad_view);
adRequest = new PublisherAdRequest.Builder().build();
loadAd();
}
private void loadAd(){
long start = System.currentTimeMillis();
// Start loading the ad in the background.
mAdView.loadAd(adRequest);
long end = System.currentTimeMillis();
Log.d("MyActivity", "loadAd took "+(end - start)+" ms");
}
當有更多的廣告展示的問題變得更加明顯同時(文章開頭處的橫幅,以下介紹的矩形廣告...)以及UI凍結半秒甚至更長時間,直到它們被加載。
在滾動期間顯示RecyclerView中的廣告和UI凍結時,這也是問題,直到加載廣告。
我在這裏丟失了什麼,或者這確實是PublisherAdView問題?