Mediaserver usando tempo excessivo de CPU e bateria
Eu tenho um Nexus 4 no OS versão 4.2.1 que de repente começou a esgotar sua bateria muito rapidamente. Ao examinar o uso da bateria, vejo "Mediaserver" consumindo 60% da bateria ao longo do tempo, com vários minutos de tempo de CPU registrados e várias horas de tempo de manutenção. Normalmente, a tela, o telefone inativo ou outros serviços consomem a maior parte da duração da bateria.
Tentei fechar todos os aplicativos e carregá-lo e, com certeza, durante a noite ainda consumia uma bateria significativa, novamente o Mediaserver foi o culpado, conforme relatado na tabela de uso da bateria; Ele manteve o dispositivo acordado a noite toda e gastou 10% da minha bateria, apesar do uso zero. Eu não adicionei um grande número de arquivos e não estou tocando música / etc, portanto o Mediaserver não deve estar fazendo muito na unidade.
Como posso impedir que o Mediaserver consuma minha bateria assim?
Matar todos os aplicativos em execução não resolveu o problema, nem desativou a sincronização automática de itens da conta do Google, como vídeos / fotos (que eu ouvi sugerir por um problema semelhante na bateria).
O que funcionou foi simplesmente reiniciar o dispositivo pressionando o botão liga / desliga e desligando. Após a reinicialização, o Mediaserver não parece mais usar muito da minha bateria na tabela de uso e minha carga dura como sempre. Portanto, se você receber o mesmo problema, basta reiniciar.
Engraçado - era exatamente o que eu só queria recomendar. É a única maneira de se livrar de "aderência de wakelocks" que conheço (esses casos acontecem quando os aplicativos solicitam uma wakelock e esquecem de liberá-la posteriormente).
@ Izzy, deve ter sido o que aconteceu. Tecnicamente, não tenho certeza do que aconteceu, mas queria compartilhar a solução, caso seja um problema comum no 4.2.1 ou algo assim.
Isso é algo comum à maioria / todas as versões do Android (não especialmente com o mediaserver, mas com muitos serviços). Além disso, aplicativos mal projetados aumentam isso. Para obter detalhes, você pode pesquisar a pergunta Como lidar com os WakeLocks (órfãos)? e suas respostas.
Reinicie, reinicie, reinicie. Existe uma maneira menos irritante de resolver isso? Eu odeio reiniciar. Não posso simplesmente matar esse servidor de mídia?
— neverMind9 23/07
O processo Mediaserver verifica se há arquivos de mídia para adicionar à sua biblioteca. No entanto, a versão 2012/12/12 (talvez mais) do gapps está corrompida e fica presa em um loop infinito em arquivos desconhecidos no seu telefone. Isso se traduz diretamente no consumo de bateria e prejudica a vida útil da bateria e de outros componentes do telefone. Ao executar o telefone pela primeira vez ou ao iniciar aplicativos de mídia, o Mediaserver é chamado e começará o horror.
Reinicie o telefone e não inicie um aplicativo de mídia.
Coloque um .nomediaarquivo na raiz do cartão SD para impedir a pesquisa na biblioteca, impedindo o Mediaserver de ficar preso. Isso significa que não há biblioteca de mídia!
Aguarde o glorioso Google para corrigir esta anomalia.
Faça o downgrade do seu firmware Android + gapps para uma versão que não possui esse bug.
Use um iPhone / Windows Phone
Modifique os gapps (Mediaserver.apk) para suportar todos os tipos de arquivos normalmente. (avançado + demorado)
Votos negativos por recomendar iPhone / Windows Phone. Btw, isso não é uma correção, o bug ainda estará lá.
— Jorge Fuentes González
O arquivo .nomedia na pasta raiz não funciona. Em um Nexus 7 com Android 4.3. Não há cartão SD físico, mas coloquei o arquivo .nomedia na raiz da pasta SDCard e ele não impediu a execução do mediascanner. Estou assumindo que é para ser aplicado recursivamente e não precisa ser colocado em todas as subpastas? Devo colocar um ainda mais alto que o SDCard, como na raiz do sistema, talvez?
Acho que posso ter descoberto a causa e uma solução improvisada para esse bug, pelo menos uma que (finalmente) funciona para mim e que não vi mencionada com frequência em outros lugares.
No meu tablet (Nexus 7 2ª geração), eu tinha visto o bug do mediaserver com muita frequência e praticamente desistido de tentar resolvê-lo.
No entanto, no meu telefone (I9505G, também conhecido como SGS4 GPe), eu não tinha visto o bug nenhuma vez. Ambos os dispositivos estavam executando 100% do estoque do Android 4.3. Então, um dia, notei o bug erguendo sua cabeça feia no meu telefone também. Eu não havia copiado QUALQUER novo arquivo para o dispositivo recentemente, de modo que lançou qualquer teoria sobre "arquivos de mídia corrompidos" pela janela. Eu montei meu cérebro e percebi que a única coisa que havia feito de maneira diferente nas últimas 24 horas era jogar um jogo (Rayman Jungle Run) no telefone, que eu costumo usar apenas para chamadas, e-mails e e-books. No entanto, no meu tablet, jogo Rayman Jungle Run com frequência.
Acabei de executar esta sequência de testes no meu telefone e tablet, com os mesmos resultados.
Carga completa. Bota fresca. Corra por várias horas. RESULTADO: Sem drenagem do mediaserver.
Lançamento Rayman, jogue por 1 minuto. Volte à tela inicial, mas não force o fechamento do aplicativo. Espere um pouco. RESULTADO: O dreno do mediaserver é iniciado.
Force o fechamento do aplicativo Rayman (usei um atalho do Elixir para fazer isso, mas usar o menu de aplicativos deve funcionar bem). Espere algumas horas. RESULTADO: O dreno do Mediaserver parou!
Eu fiz muitas pesquisas na web e só encontrei outra referência a um fenômeno semelhante, e esse post referenciava o jogo Rayman, bem como outro jogo chamado Super Hexagon ou algo assim. A lição aparente aqui é que certos aplicativos têm a capacidade de acionar o bug do servidor de mídia. No meu caso, pelo menos, não tem nada a ver com os arquivos de mídia que tenho no dispositivo ou com os serviços do Google que permito / impeço a execução (essas são as duas coisas que vejo frequentemente citadas como supostas soluções).
Eu também teria a hipótese de que, se você tiver um aplicativo que aciona o dreno do servidor de mídia, e esse aplicativo for executado automaticamente na inicialização ou em intervalos de tempo periódicos, a única solução infalível nesse caso seria desinstalar o aplicativo, infelizmente. Isso pode explicar por que algumas pessoas não acham que a reinicialização ajuda ... se o aplicativo ofensivo for executado na inicialização, é claro que o dreno também começará imediatamente.
Isso aconteceu comigo ontem à noite. O Rayman Fiesta Run, saiu com o botão home, perdeu 40% da bateria da noite para o servidor de mídia. Obrigado por isso!
@RossC Impressionante, feliz por ter ajudado. Acabei de instalar o Fiesta Run também e fiquei desapontado ao ver que eles ainda não corrigiram esse bug (não tenho certeza se o SO ou o aplicativo está com defeito, mas sei que o aplicativo pode corrigi-lo, forçando-se a fechar ou pelo menos incluir um opção). Eu continuo esquecendo de interromper o aplicativo depois de reproduzir uma sessão e me lembro de horas depois quando vejo como minha bateria está ficando fraca.
Eu tive o mesmo problema com o Android 4.1.2. tábua. Tentei de tudo encontrado em vários fóruns, e o resultado foi - nada funcionou. O Mediaserver continuou drenando minha bateria. Intuitivamente, tentei duas coisas: 1. Cartão SD desmontado, onde guardo todos os tipos de arquivos de mídia. 2. Excluídas FOTOS baixadas da pasta "download".
Resultado = problema RESOLVIDO.
Em seguida, remontou o cartão SD - a bateria ainda está normal!
Conclusão: o sangrento servidor de mídia continua digitalizando as imagens baixadas e descarregando a bateria.
A simplicidade é sempre a resposta!
Basta matar o processo do servidor de mídia. Eu criei um atalho que executa uma linha de comando e mata
ou em outros dispositivos,
Para mim, reiniciar o Nexus 4 várias vezes não ajudou. A primeira vez que eu comecei a usar o telefone celular, eu entrei sem a conta do Google. Então, redefinii a fábrica e verifiquei o login com a Conta do Google. Isso parece ter corrigido o problema.