Ich habe festgestellt, dass ich bei der Verwendung von Logcat mit Eclipse mit ADT für Android auch Meldungen von vielen anderen Anwendungen erhalte. Gibt es eine Möglichkeit, dies zu filtern und nur Meldungen von meiner eigenen Anwendung anzuzeigen?
Antworten
Zu viele Anzeigen?Ich habe versucht, die Antwort von Tom Mulcahy zu verwenden, aber leider funktionierte sie nicht für Anwendungen mit mehreren Prozessen, so dass ich sie an meine Bedürfnisse angepasst habe.
#!/bin/bash
if [ "$#" -ne 1 ]; then echo "Illegal number of parameters"; exit 1; fi
echo "Lof for package name: $1"
PROCESSES=`adb shell ps | grep "$1" | cut -c10-15`
NUM_OF_PROCESSES=`echo "$PROCESSES" | wc -l`
if [ $NUM_OF_PROCESSES -eq 0 ]; then echo "The application is not running!"; exit 1; fi
COUNTER=1
for process in $PROCESSES; do
if [ $COUNTER -eq 1 ]; then GREP_TEXT="("; fi
GREP_TEXT+=$process
if [ $COUNTER -eq $NUM_OF_PROCESSES ]; then GREP_TEXT+=")"; else GREP_TEXT+="|"; fi
let COUNTER=COUNTER+1
if [ $COUNTER -gt $NUM_OF_PROCESSES ]; then break; fi
done
adb logcat | grep -E "$GREP_TEXT"
Für Windows können Sie mein PowerShell-Skript verwenden, um Meldungen nur für Ihre Anwendung anzuzeigen: https://github.com/AlShevelev/power_shell_logcat
Windows CMD
Ein Beispiel: Der Name Ihres Anwendungspakets lautet: com.nader.chat
cd C:\Users\[your-username]\AppData\Local\Android\Sdk\platform-tools
adb shell logcat *:E | findstr /c:"at com.nader.chat"
- :E nur Erros aus den Protokollen herausfiltern, können Sie es ersetzen durch V : Ausführlich (niedrigste Priorität) , D : Debuggen , I : Info , W : Warnung , F : Tödlich .
- unter um Fehler nur in Ihrem geschriebenen Quellcode zu finden, nicht aber in anderen verwandten Modulen
Eine weitere Variante von Gavriels applog.sh
mit Unterstützung von mehreren Geräten und Anwendungen mit mehreren Prozessen:
#!/bin/sh
PKG=$1
shift
APPIDS=`adb $@ shell ps | awk -v PKG="$PKG" '
(NR == 1){appcolumn=2; for (i=1; i<=NF; i++) if ($i=="PID") {appcolumn=i}}
index($0,PKG){print $(appcolumn)}' | paste -d \| -s`
echo "PID's: $APPIDS"
adb $@ logcat -v color | awk "(\$3 ~ /$APPIDS/){print \$0}"
Verwendung: applog.sh com.example.my.package [-s <specific device>]