Медиасервер использует слишком много процессорного времени и батареи

У меня есть Nexus 4 с ОС версии 4.2.1, который внезапно начал очень быстро разряжать аккумулятор. При просмотре использования батареи я вижу, что «Медиасервер» потребляет 60% батареи с течением времени, при этом регистрируется несколько минут времени процессора и несколько часов времени бодрствования. Обычно экран, бездействие телефона или другие службы съедают большую часть времени автономной работы.

Я попытался закрыть все приложения и зарядить его, и, конечно же, за ночь он все еще сильно разряжал батарею, опять же, виновником был Mediaserver, как указано в диаграмме использования батареи; это не давало устройству спать всю ночь и разряжало 10% моей батареи, несмотря на нулевое использование. Я не добавлял большое количество файлов и не воспроизводил музыку/и т. д., поэтому Mediaserver не должен много делать на диске.

Как я могу остановить Mediaserver от использования моей батареи, как это?

Ответы (6)

Уничтожение всех запущенных приложений не решило проблему, равно как и отключение автоматической синхронизации для элементов учетной записи Google, таких как видео / фотографии (которые, как я слышал, предлагались для аналогичной проблемы с батареей).

Что действительно сработало, так это просто перезагрузить устройство, удерживая кнопку питания и отключая его. После перезагрузки Mediaserver больше не использует большую часть моей батареи в диаграмме использования, и мой заряд длится, как всегда. Поэтому, если у вас возникнет та же проблема, просто перезагрузите компьютер.

Забавно - это было именно то, что я только что хотел порекомендовать. Это единственный известный мне способ избавиться от «залипания вейклоков» (такие случаи случаются, когда приложения запрашивают вейклок и забывают его отключить позже).
@ Иззи, должно быть, так и произошло. Я не уверен технически, что произошло, но хотел поделиться решением на случай, если это обычная проблема на 4.2.1 или что-то в этом роде.
Это характерно для большинства/всех версий Android (не особенно для медиасервера, но для многих сервисов). Кроме того, к этому добавляются плохо разработанные приложения. Для получения подробной информации вы можете изучить вопрос Как бороться с (осиротевшими) WakeLocks? и его ответы.
Перезагрузка, перезагрузка, перезагрузка. Есть ли менее раздражающий способ решить эту проблему? Я ненавижу перезагрузку. Разве я не могу просто убить этот медиасервер?

Процесс Mediaserver сканирует ваше устройство на наличие медиафайлов для добавления в вашу библиотеку. Однако версия gapps 2012/12/12 (возможно, еще какая-то) сломана и застревает в бесконечном цикле на незнакомых файлах на вашем телефоне. Это напрямую приводит к разрядке аккумулятора и отрицательно сказывается на сроке службы аккумулятора и других компонентов телефона. При первом запуске телефона или при запуске мультимедийных приложений вызывается Медиасервер и начинается ужас.

Как исправить:

  • Перезагрузите телефон и не запускайте мультимедийное приложение.
  • Поместите .nomediaфайл в корень вашей SD-карты, чтобы предотвратить поиск библиотеки, тем самым предотвратив зависание Mediaserver. Это означает отсутствие медиатеки!
  • Подождите, пока славный Google исправит эту аномалию.
  • Понизьте прошивку Android + gapps до версии, в которой отсутствует эта ошибка.
  • Используйте iPhone/Windows Phone
  • Измените gapps (Mediaserver.apk), чтобы нормально поддерживать все виды файлов. (продвинутый + трудоемкий)
Понижение из-за рекомендации iPhone/Windows Phone. Кстати, это не исправление, ошибка останется.
Файл .nomedia в корневой папке не работает. На Nexus 7 с Android 4.3. Физической SD-карты нет, но я поместил файл .nomedia в корень папки SDCard, и это не остановило запуск медиасканера. Я предполагаю, что он должен применяться рекурсивно и его не нужно помещать в каждую подпапку? Должен ли я разместить его даже выше, чем SDCard, например, в корне системы?

Я думаю, что, возможно, выяснил причину и импровизированное решение этой ошибки, по крайней мере, одно, которое (наконец-то) работает для меня, и которое я не часто упоминал в других местах.

На своем планшете (Nexus 7 2-го поколения) я очень часто сталкивался с ошибкой медиасервера и практически перестал пытаться ее решить.

Однако на моем телефоне (I9505G, он же SGS4 GPe) я ни разу не видел бага. Оба устройства работали под управлением 100% Android 4.3. Затем однажды я заметил, что жук поднимает свою уродливую голову и на моем телефоне. В последнее время я не копировал НИКАКИХ новых файлов на устройство, поэтому любые теории о «поврежденных медиафайлах» были отвергнуты. Я напряг мозги и понял, что единственное, что я сделал по-другому за последние 24 часа, это то, что я играл в игру (Rayman Jungle Run) на телефоне, который я обычно использую только для звонков, электронной почты и электронных книг. Однако на своем планшете я часто играю в Rayman Jungle Run.

Итак, я только что провел эту серию тестов на своем телефоне и планшете с одинаковыми результатами.

  • Полный заряд. Свежий ботинок. Бегать несколько часов. РЕЗУЛЬТАТ: Нет утечки медиасервера.
  • Запускаем Rayman, играем 1 минуту. Вернитесь на главный экран, но не закрывайте приложение принудительно. Подождите немного. РЕЗУЛЬТАТ: Начинается слив медиасервера.
  • Принудительно закройте приложение Rayman (для этого я использовал ярлык Elixir, но использование меню приложений должно работать нормально). Подождите пару часов. РЕЗУЛЬТАТ: Слив медиасервера остановлен!

Я много искал в Интернете и нашел только одну ссылку на подобное явление, и в этом посте упоминалась игра Rayman, а также другая игра под названием Super Hexagon или что-то в этом роде. Очевидный урок заключается в том, что некоторые приложения могут вызывать ошибку медиасервера. По крайней мере, в моем случае это не имеет ничего общего с тем, какие медиафайлы у меня есть на устройстве, или с тем, какие службы Google я разрешаю/запрещаю запускать (обе эти вещи я часто цитирую как предполагаемые решения).

Я также предположил бы, что если у вас есть приложение, которое запускает утечку медиасервера, и это приложение автоматически запускается при запуске или через какие-либо периодические промежутки времени, то единственным надежным решением в этом случае будет, к сожалению, удаление приложения. Это может объяснить, почему некоторые люди не считают, что перезагрузка помогает... если приложение-нарушитель запускается при запуске, конечно, утечка также начнется сразу же.

Именно это случилось со мной прошлой ночью. Rayman Fiesta Run, вышедший с помощью кнопки «Домой», потерял 40% заряда батареи за ночь из-за медиасервера. Спасибо за это!
@RossC Круто, рад, что тебе помогло. Я только что установил Fiesta Run и был разочарован, увидев, что они до сих пор не исправили эту ошибку (не уверен, виновата ли ОС или приложение, но я знаю, что приложение может исправить это, заставив себя закрыть или, по крайней мере, включив вариант). Я постоянно забываю закрыть приложение после игры и вспоминаю несколько часов спустя, когда вижу, как разряжается моя батарея.

Просто убейте процесс медиасервера. Я создал ярлык, который запускает командную строку и убивает ее.

kill pidof /system/bin/mediaserver

или на других устройствах,

kill mediaserver 

У меня была такая же проблема с Android 4.1.2. планшет. Перепробовал все, что нашел на нескольких форумах, и результат был - ничего не работает. Медиасервер продолжал разряжать мою батарею. Интуитивно я попробовал две вещи: 1. Размонтированную SD-карту, на которой я храню всевозможные медиафайлы. 2. Удалены загруженные КАРТИНКИ из папки "скачать".

Результат = проблема РЕШЕНА.

Затем переустановил SD-карту - время автономной работы все еще в норме!

Вывод: проклятый медиасервер постоянно сканирует скачанные картинки и жрет батарею.

Простота всегда является ответом!

Мне перезагрузка Nexus 4 несколько раз не помогла. В первый раз, когда я начал пользоваться мобильным телефоном, я вошел в систему без учетной записи Google. Итак, я сделал сброс настроек и убедился, что я вошел в систему с учетной записью Google. Кажется, это решило проблему.