1. Problema
Às vezes, quando iniciamos o aplicativo, o aplicativo trava e o log no android studio pode ser liberado, ou o aplicativo instalado no celular da plataforma em nuvem não tem nenhum Android stduio, então qual método podemos usar para saber rapidamente o log de travamento de inicialização?
2. Solução
Primeiro precisamos de um terminal no ambiente Linux. Se for um ambiente Linux, abra o terminal diretamente. Se for um ambiente Windows, baixamos o git e abrimos o git bash para simular o ambiente Linux. Podemos abrir 2 terminais ao mesmo tempo
Um terminal filtra o log completo, ou seja, quando o aplicativo é iniciado, salvamos o log completo do telefone
adb logcat > log.txt
Outro terminal filtra imediatamente o nome do processo do aplicativo atual
adb shell ps | grep packagename
Sabemos que o id do processo é 14312, e então usamos o comando grep para filtrar a palavra-chave 14312
grep 14312 log.txt > keep.log
Em seguida, abrimos o arquivo keep.log, podemos saber que o conteúdo desse arquivo são basicamente os logs impressos pelo aplicativo quando ele é iniciado, e podemos analisar os logs de travamento.
Comparamos a soma do número de linhas antes e depois do log
$ cat log.txt | wc -l
86146
$ cat keep.log | wc -l
7478