AdMob原生广告时滞

时间:2018-10-31 14:50:16

标签: android performance admob

我在NativeContentAdView项目中有一个ListView。当我在其上调用setNativeAd(NativeAd)时,会出现明显的延迟。所有AdMob类和方法的名称都经过修饰(zzdtzzalpzzow等),因此我省略了它们。

AdMob在View#onAttachedToWindow回调中执行的操作:

  • 注册多个BroadcastReceiver(每个都需要进行Binder事务)(总和为10毫秒)

AdMob在OnScrollChangedListener#onScrollChanged中执行的操作:

  • 数十次DP到PX转换,调用Display#getMetrics并为每次转换触发Binder事务(总计〜7毫秒)

  • 生成一些JSON(〜8 ms)

  • 评估一些JS(约7毫秒)

  • 创建一个WebView实例(约5.5毫秒),将其设置(约9毫秒),要求它进入loadUrl(约7.5毫秒)

Handler#handleCallback内(即Handler#post):

  • 创建一个WebView,进行设置,添加到Window并评估JS(〜27毫秒)

  • 获取packageInfo(IPC),创建一个WebView,对其进行设置,要求loadUrl,检查权限(IPC),解析JSON,再一次获取packageInfo,通过以下方式内省资源Resources#getIdentifier,获取activityInfo(IPC)(总和约40毫秒)

很明显,所有这些重量级的操作都导致滚动滚动。

我应该怎么做才能避免滞后或我可能做错了什么?为什么AdMob本机AD在我见过的其他应用程序中不那么慢?

使用AdMob / GMS v。10和/或11,但16显示相同的滞后。 所有测量都是使用Nanoscope在其专用仿真器上进行的,但是在真正的旧版Nexus 5上的滞后甚至更糟。

0 个答案:

没有答案