Реклама съедает память устройства

236
25 января 2018, 19:05

Решил я попробовать добавить в одно своё Activity рекламу. Выбор упал на знаменитый AdMob. Всё сделал, реклама работает.

Прошло время, заметил, что приложение стало потреблять больше памяти. Методом поэтапного удаления выяснил, что источник проблем заключается как раз в рекламе, а точнее в нескольких строчках установки рекламы. Вот они сами:

AdView MyBanner = (AdView) findViewById(R.id.MyBanner_id);
MobileAds.initialize(getApplicationContext(), "ca-app-pub-XXX~YYY");
AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice("ZZZ")
                .build();
MyBanner.loadAd(adRequest);

Profiler говорит, что без этих строк MEMORY 35mb , со строками 80mb

Вопрос: как иметь рекламу и не тратить так много памяти?

Answer 1

AdMob использует WebView для загрузки объявлений. Это довольно ресурсоёмкий объект, который использует собственные библиотеки и подвержен сбоям. У вас нет никакого контроля над тем, как работает Admob SDK. Кроме того, использование памяти, вероятно, будет варьироваться в зависимости от типа объявления: тексты HTML и баннеры с изображениями и т.д.

Так же не стоит забывать про то, что нужно управлять жизненным циклом объявлений

 @Override
protected void onPostResume() {
    super.onPostResume();
    mAdView.resume();
}

@Override
protected void onPause() {
    super.onPause();
    mAdView.pause();

}
@Override
protected void onDestroy() {
    super.onDestroy();
    mAdView.destroy();
}

Это должно помочь избежать утечек памяти. С объёмом используемой памяти остаётся только смириться. Можете почитать про AdMob подробнее перейдя по ссылке.

READ ALSO
Вопрос про stream api java 8

Вопрос про stream api java 8

Здравствуйте, имеется 2 стринговых листа List<String> fileList и List<String> arr, требуется вывести сколько слов в fileList содержатся в arr, сделал так:

240
Android, SQLite и REGEXP

Android, SQLite и REGEXP

ЗдравствуйтеПишется Андроид-приложение, в нем требуется использование Базы данных и поиск по ней с использованием регулярных выражений

225
Java pattern mapper

Java pattern mapper

Изучаю некоторые паттерны и вот остановился на паттерне мап

232
Задача про окончание урока [java] [требует правки]

Задача про окончание урока [java] [требует правки]

Подскажите пожалуйста как решать эту задачу на JavaПоявился предмет программирования и сходу на 2 паре дали эту задачу

208