AdMob родной AD лаг - PullRequest
       9

AdMob родной AD лаг

0 голосов
/ 31 октября 2018

У меня есть NativeContentAdView в ListView предмете. Когда я звоню setNativeAd(NativeAd), происходит заметное отставание. Все имена классов и методов AdMob искажены (zzdt, zzalp, zzow и т. Д.), Поэтому я их опускаю.

Вещи, которые AdMob выполняет в View#onAttachedToWindow обратном вызове:

  • регистрирует несколько BroadcastReceiver с (для каждой требуется транзакция Binder) (сумма ~ 10 мс)

Вещи, которые AdMob выполняет в OnScrollChangedListener#onScrollChanged:

  • десятки преобразований DP-в-PX, вызов Display#getMetrics и запуск транзакции Binder для каждого преобразования (сумма ~ 7 мс)

  • генерирует JSON (~ 8 мс)

  • оценивает некоторые 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 мс)

Очевидно, что все эти тяжелые операции приводят к прерывистой прокрутке.

Что мне делать, чтобы избежать лагов или что я, возможно, делаю неправильно? Почему родная AD AdMob не работает так медленно в других приложениях, которые я видел?

Использование AdMob / GMS v. 10 и / или 11, но 16 показывает те же лаги. Все измерения производятся с помощью Nanoscope на их специальном эмуляторе, но отставание от настоящего не очень старого Nexus 5 еще хуже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...