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

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ć kilka tombstone_nn plików (gdzie nn 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:

  1. Zainstaluj sterownik urządzenia do korzystania z adb. Wszystko, czego potrzebujesz, znajdziesz tutaj
  2. Pobierz plik wykonywalny adb dla swojego systemu operacyjnego. Jest to część pakietu Android SDK, ale możesz znaleźć plik wykonywalny adb indywidualnie.
  3. Podłącz urządzenie z Androidem.
  4. Włącz opcje programisty .
  5. Włącz debugowanie USB.
  6. 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
  7. 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)
  8. Wpisz swój cmd / terminal: adb devices, aby sprawdzić, czy urządzenie jest prawidłowo podłączone.
  9. Jeśli Twoje urządzenie jest prawidłowo wybrane, wpisz adb logcat, aby wyświetlić potężny i magiczny logcat znany jako stacktrace.
  10. Odtwórz błąd (lub cokolwiek) na swoim urządzeniu.
  11. 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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *