Dziennik systemu Android zawiera wiele interesujących informacji, które są pomocne na wiele sposobów.
- znajdź przyczyny źródłowe problemów
- zidentyfikować źle działające aplikacje
Jak mogę wyświetlić i sprawdzić dziennik Androida?
Komentarze
- Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Odpowiedź
Android 4.1 i nowsze
Preferowanym sposobem jest pobranie SDK i użycie adb logcat
(wymaga aktywacji ” opcji programistycznych ” na urządzeniu).
Dostępne są aplikacje dla przeglądanie pełnego dziennika systemowego, jednak działają one tylko na urządzeniach zrootowanych lub wymagają ręcznego polecenia przez adb
, aby działały. Aby uzyskać więcej informacji, zobacz , zobacz to pytanie.
Android 4.0 i starszy
Możesz pobrać SDK i użyj adb logcat
lub pobierz Logcat Extrem z Sklep Google Play, który wyświetla dziennik bezpośrednio w telefonie.
Komentarze
- Alternatywnie możesz użyć emulatora terminala z poleceniem ” logcat > /sdcard/log.txt” do ciągłego zapisywania dziennika do pliku na karcie SD Karta. Może to pomóc w rozwiązaniu problemów z losowymi ponownymi uruchomieniami.
- Słuszna uwaga. Niektóre telefony mają tendencję do spamowania dzienników pełnych trywialnych informacji, więc jeśli chcesz zminimalizować rozmiar pliku i dane do przejrzenia, zapoznaj się z sekcją ” Filtrowanie danych wyjściowych dziennika ” na developer.android.com/guide/developing/tools/adb.html#logcat
- LogCat Apps nie ' nie działa już z JellyBean. Firma Google zmieniła interfejs API systemu Android, aplikacje nie ' nie mają już uprawnień do odczytywania dzienników z innych aplikacji niż ich własne.
- Utworzyłem proste narzędzie do zbierania logi z komputera: gist.github.com/hrj/5983971
- Logcat Extreme to fajna aplikacja do przeglądania logów
Odpowiedź
Lokalizacje plików dziennika
Istnieje kilka katalogów, w których znajdują się dzienniki (w tym te z awarii) może się pojawić – nie wszystkie z nich są ustandaryzowane (tj. niektóre mogą być specyficzne dla ROM).
-
/data/anr
: Niektóre pliki śledzenia wydają się być dostępne tutaj (Dalvik zapisuje ślady stosu tutaj w ANR, tj. „Aplikacja nie odpowiada”, czyli „Wymuś zamknięcie”; zobacz np. Fragmenty dziennika tutaj ) -
/data/dontpanic
wydaje się być standardową lokalizacją (AOSP) i zawiera niektóre dzienniki awarii, w tym ślady (patrz np. viaForensics i St ACKOverflow ) -
/data/kernelpanics
to inna lokalizacja – ponieważ nie miałem żadnej „paniki jądra” na moich urządzeniach z Androidem, nie widziałem tam jeszcze żadnej zawartości. -
/data/panic/panic_daemon.config
może wskazywać na inne skonfigurowane lokalizacje – na moim Droid 2 wspomina o/sdcard/panic_data/
- wspomniany Droid 2 ma również katalog
/data/panicreports
(tutaj pusty) -
/data/tombstones
może pomieścić kilkatombstone_nn
plików (gdzienn
to numer seryjny, zwiększany z każdym nowym plikiem). Ponieważ nagrobki są umieszczane za zmarłych, robi się to tutaj dla „procesów, które umarły przez przypadek” (tj. Uległy awarii) – i jest to tak zwane „zrzuty jądra” w systemach Linux / Unix. Jednak nie wszystkie aplikacje tworzą nagrobki; musi to być wyraźnie włączone przez programistę (patrz Debugowanie zrzutów rdzenia Androida ).
Może być więcej lokalizacji, które uciekł mi; ale ponieważ większość rejestrowania jest wykonywana na tmpfs
, dane te są tracone przy ponownym uruchomieniu i nie pasują do pytania OP.
Zapisuj polecenia do użycia z terminalem app (lub adb)
Kilka poleceń może dostarczyć mnóstwo informacji. W przypadku większości z nich zaleca się przekierowanie ich do pliku (> filename.ext
) lub przepuszczenie ich przez filtr (| grep search-for-this
):
Dziennik jądra
Następujący plik działa bez roota:
$ dmesg <6>[82839.126586] PM: Syncing filesystems ... done. <7>[82839.189056] PM: Preparing system for mem sleep <4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done. <4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done. <snip>
Logcat
Tutaj możesz np określ, jakim obszarem jesteś zainteresowany – radio, wydarzenia …
# logcat -b events I/am_create_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,,3721] I/am_destroy_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,3721] I/notification_cancel( 3457): [nitro.phonestats,4,0] <snip>
Pobieranie informacji o urządzeniu
I mnóstwo tego: Urządzenie szczegóły, informacje o koncie, usługi …
$ dumpsys Currently running services: LocationProxyService SurfaceFlinger accessibility account activity <snip> DUMP OF SERVICE account: Accounts: 1 Account {[email protected], type=com.google} <snip> $ dumpstate ======================================================== == dumpstate: 2012-08-18 23:39:53 ======================================================== Build: Gingerbread GWK74 - CyanogenMilestone2 Bootloader: 0x0000 Radio: unknown <snip> ------ MEMORY INFO (/proc/meminfo) ------ MemTotal: 487344 kB MemFree: 10436 kB <snip>
All-in-One
Zrób wielką kulę ze wszystkim razem, od logcat do dumpstate:
$ bugreport > /mnt/sdcard/bugreport.txt
Jestem prawie pewien, że naprawdę chcesz przekierować ostatnie polecenie … xD
Coś o uprawnieniach
PS: Dostęp do tych informacji może oczywiście wymagać uprawnień administratora, ponieważ większość źródeł znajduje się w pamięci wewnętrznej.
Komentarze
- Aby uzyskać więcej informacji na temat poleceń adb logcat, zobacz tutaj .
- Lub po prostu sprawdź nasze logowanie tag-wiki @testing – które ma jeszcze więcej odniesień 🙂
- Link do ” Debugowanie zrzutów rdzenia Androida ” jest martwy, czy możemy znaleźć alternatywę?
- @Spidey there ' zawsze Archive.ORG w przypadku tego rodzaju problemów (link prowadzi do kopii roboczej t tutaj).
- Dla każdego innego jak ja, który jest nowy w Androidzie, aby uruchomić powyższe polecenia, musisz najpierw uruchomić
$ adb shell
, aby połączyć się z urządzeniem przez terminal. (Oczywiście upewnij się, że urządzenie jest podłączone do komputera i włączono debugowanie USB).
Odpowiedź
Okazało się, że CatLog wyświetla dziennik Androida trochę lepiej niż aLogcat. Poza adb logcat
, właśnie tego używam.
Komentarze
- Zobacz mój komentarz powyżej, dotyczące aplikacji LogCat.
- Zaktualizowałem pytanie. Zwróć uwagę, że informacje o pozycji względnej (np. ” powyżej ” ) mogą łatwo stać się nieaktualne, ponieważ kolejność odpowiedzi może zmieniać się z upływem czasu.
Odpowiedź
A metoda bez rootowania, która działa nawet z nowymi wersjami Androida:
Wymagania wstępne:
- Linux, Windows lub Mac
- Kabel USB do twojego urządzenia
- Urządzenie z Androidem
Instrukcje:
- Zainstaluj sterownik urządzenia do korzystania z adb. Wszystko, czego potrzebujesz, znajdziesz tutaj
- Pobierz plik wykonywalny adb dla swojego systemu operacyjnego. Jest to część pakietu Android SDK, ale możesz znaleźć plik wykonywalny adb indywidualnie.
- Podłącz urządzenie z Androidem.
- Włącz opcje programisty .
- Włącz debugowanie USB.
- Otwórz okno poleceń (windows) lub terminal (linux / mac). Jak to zrobić: W systemie Windows: windows + r> wpisz „cmd” (bez cudzysłowów)> kliknij enter | W systemie Linux: nie wiesz, jak otworzyć terminal? LOL | Na Macu: wpisz
Terminal
w Spotlight i otwórz go - CD do katalogu, w którym Znajduje się plik wykonywalny adb. W systemie Windows: przejdź do katalogu, w którym pobrałeś plik wykonywalny adb, Shift + prawy przycisk myszy i wybierz „Otwórz konsolę” (lub podobną) | W systemie Linux / Mac: kliknij prawym przyciskiem myszy w katalogu i wybierz „Otwórz terminal tutaj” (lub po prostu CD do katalogu)
- Wpisz swój cmd / terminal:
adb devices
, aby sprawdzić, czy urządzenie jest prawidłowo podłączone. - Jeśli Twoje urządzenie jest prawidłowo wybrane, wpisz
adb logcat
, aby wyświetlić potężny i magiczny logcat znany jako stacktrace. - Odtwórz błąd (lub cokolwiek) na swoim urządzeniu.
- Zaraz potem wklej całe okno cmd / terminal do usługi wklejania, takiej jak http://pastebin.com/ i wyślij go do nas.
(Przeważnie skopiowane z Leandros )
An swer
Znajduje się w /sdcard/bugreports
.
Komentarze
- Ja ' nigdy nie miałem takiego folderu na swoim telefonie … czy jest to specyficzne dla producenta lub urządzenia?
- Od Logcat – CyanogenMod Wiki : Możesz użyć magicznej kombinacji klawiszy, aby utworzyć plik raportu o błędzie w / sdcard / bugreports. Więc to wydaje się być ) trochę specyficzne (prawdopodobnie dla CM) oraz b) nie jest odpowiedzią na pytanie, ponieważ OP szuka ” automatycznie wygenerowanego ” jedynki.