Android 시스템 로그에는 여러 가지 방법으로 도움이되는 흥미로운 내용이 많이 있습니다.

  • 근본 원인 찾기 문제 수
  • 오작동하는 앱 식별

Android 로그를보고 조사하려면 어떻게해야합니까?

댓글

  • 댓글은 확장 토론을위한 것이 아닙니다. 이 대화는 채팅으로 이동 되었습니다.

답변

Android 4.1 이상

선호하는 방법은 SDK 를 다운로드하고 adb logcat (기기에서 " 개발자 옵션 "을 활성화해야 함)

사용 가능한 앱이 있습니다. 전체 시스템 로그를 볼 수 있지만 루팅 된 기기에서만 작동하거나 작동하도록하려면 adb를 통해 수동 명령을 실행해야합니다. 자세한 내용은 이 질문을 참조하세요.

Android 4.0 이상

SDK 를 사용하고 adb logcat를 사용하거나 Logcat Extrem 을 휴대 전화에 직접 로그를 표시하는 Google Play 스토어

댓글

  • 또는 logcat > /sdcard/log.txt" SD의 파일에 로그를 계속 기록합니다. 카드. 이렇게하면 무작위 재부팅 문제를 파악하는 데 도움이됩니다.
  • 좋은 지적입니다. 일부 휴대 전화는 사소한 정보로 가득 찬 로그를 스팸하는 경향이 있으므로 통과 할 파일 크기와 데이터를 최소화하려면 " 로그 출력 필터링 developer.android.com/guide/developing/tools/adb.html#logcat
  • LogCat 앱은 ' JellyBean에서는 더 이상 작동하지 않습니다. Google은 Android API를 변경했으며, 앱은 ' 자신의 앱이 아닌 다른 앱의 로그를 읽을 수있는 권한이 없습니다.
  • 수집 할 간단한 유틸리티를 만들었습니다. PC의 로그 : gist.github.com/hrj/5983971
  • Logcat Extreme은 로그보기에 좋은 앱입니다.

답변

로그 파일 위치

로그가있는 여러 디렉토리가 있습니다 (충돌로 인한 것 포함). 모두가 표준화 된 것은 아닙니다 (즉, 일부는 ROM에 따라 다를 수 있음).

  • /data/anr : 일부 추적 파일이 여기에있는 것 같습니다. (Dalvik은 여기 ANR에 스택 추적을 작성합니다. 즉, “응용 프로그램이 응답하지 않음”(일명 “강제 종료”), 예를 들어 로그 발췌 여기 참조))
  • /data/dontpanic는 표준 위치 (AOSP)로 보이며 추적을 포함한 일부 오류 로그를 포함합니다 (예 : Forensics를 통해 참조) 및 St ackOverflow )
  • /data/kernelpanics는 다른 위치입니다. Android 기기에서 “커널 패닉”이 발생하지 않았기 때문에 아직 콘텐츠가 표시되지 않았습니다.
  • /data/panic/panic_daemon.config는 구성된 다른 위치를 가리킬 수 있습니다. Droid 2에서는 /sdcard/panic_data/
  • 를 언급합니다.

  • 언급 된 Droid 2에는 /data/panicreports 디렉토리 (여기에 비어 있음)도 있습니다.
  • /data/tombstones에는 여러 tombstone_nn 파일 (nn은 직렬이며 새 파일마다 증가 함). 삭제 표시는 죽은 사람을 위해 배치되기 때문에 여기서 “프로세스가 우연히 죽었습니다”(즉, 충돌)에 대해 수행되며 Linux / Unix 시스템에서 “코어 덤프”라고합니다. 그러나 모든 앱이 삭제 표시를 만드는 것은 아닙니다. 개발자가 명시 적으로 활성화해야합니다 ( Android 코어 덤프 디버깅 참조).

더 많은 위치가있을 수 있습니다. 나를 탈출했다. 그러나 대부분의 로깅은 tmpfs에서 수행되므로 이러한 데이터는 재부팅시 손실되고 OP 질문과 일치하지 않습니다.

터미널에서 사용할 로그 명령 app (또는 adb)

여러 명령을 사용하면 많은 정보를 얻을 수 있습니다. 대부분의 경우 파일 (> filename.ext)로 리디렉션하거나 필터를 통해 파이프 (| grep search-for-this)하는 것이 좋습니다. ) :

커널 로그

다음은 루트없이 작동합니다.

$ 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

여기에서 예를 들어 관심 분야 지정-라디오, 이벤트 …

# 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> 

기기 정보 가져 오기

그리고 그 종류 : 기기 세부 사항, 계정 정보, 서비스 …

$ 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> 

올인원

logcat에서 dumpstate에 이르기까지 모든 것을 하나로 묶어 큰 공을 만드세요.

$ bugreport > /mnt/sdcard/bugreport.txt 

마지막 명령을 리디렉션 하시겠습니까 … xD

권한에 대한 정보

PS : 대부분의 소스가 내부 저장소에 있으므로 이러한 정보에 액세스하려면 루트가 필요할 수 있습니다.

댓글

  • adb logcat 명령에 대한 더 많은 정보를 얻으려면 여기 를 참조하세요.
  • 아니면 로깅 태그 위키 @testing을 확인하세요. 더 많은 참조가 있습니다. 🙂
  • " Android 코어 덤프 디버깅 "이 종료되었습니다. 대안을 얻을 수 있나요?
  • @Spidey there '는 이러한 종류의 문제에 대해 항상 Archive.ORG 를 사용합니다 (링크는 작업 사본으로 이동합니다. 여기).
  • Android를 처음 사용하는 저와 같은 다른 사용자의 경우 위의 명령을 실행하려면 먼저 $ adb shell를 실행하여 기기에 연결해야합니다. 터미널을 통해. (물론 기기가 컴퓨터에 연결되어 있고 USB 디버깅이 켜져 있는지 확인하세요.)

답변

A는 CatLog 가 Android 로그를 aLogcat보다 조금 더 잘 표시한다는 것을 발견했습니다. adb logcat 외에도 그것이 제가 사용하고있는 것입니다.

댓글

  • 위의 내 댓글을 참조하세요. LogCat 앱 관련.
  • 질문을 업데이트했습니다. 상대 위치 정보 (예 : " 위 " )는 시간에 따라 답변 순서가 변경 될 수 있으므로 쉽게 구식이 될 수 있습니다.

답변

A 새 Android 버전에서도 작동하는 루트가없는 방법 :

전제 조건 :

  • Linux, Windows 또는 Mac
  • 기기 용 USB 케이블
  • Android 기기

지침 :

  1. adb를 사용하기위한 기기 드라이버를 설치하세요. 필요한 모든 것을 찾을 수 있습니다. 여기
  2. OS 용 adb 실행 파일을 다운로드합니다. Android SDK의 일부이지만 adb 실행 파일을 개별적으로 찾을 수도 있습니다.
  3. Android 기기를 연결합니다.
  4. 개발자 옵션을 활성화합니다 .
  5. USB 디버깅을 활성화합니다.
  6. 명령 프롬프트 (Windows) 또는 터미널 (Linux / Mac)을 엽니 다. 방법 : Windows : windows + r> “cmd”입력 (따옴표 제외)> Enter 클릭 | Linux : 터미널을 여는 방법을 모르십니까? LOL | Mac : Spotlight에 Terminal를 입력하고여십시오.
  7. CD에서 adb 실행 파일이 있습니다. Windows : adb 실행 파일을 다운로드 한 디렉토리로 이동합니다. Shift + 오른쪽 클릭하고 “콘솔 열기”(또는 유사)를 선택합니다. | Linux / Mac : 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 “여기에서 터미널 열기”를 선택합니다. (또는 단순히 디렉토리에 CD를 넣으십시오)
  8. cmd / 터미널에 adb devices를 입력하여 장치가 제대로 연결되었는지 확인하십시오.
  9. 경우 기기가 올바르게 선택되면 adb logcat를 입력하여 강력하고 마법 같은 logcat 일명 stacktrace를 표시하세요.
  10. 기기에서 오류 (또는 기타)를 재현하세요.
  11. li>

  12. 바로 전체 cmd / 터미널 창을 http://pastebin.com/ 와 같은 붙여 넣기 서비스에 붙여 넣습니다. 저희에게 보내주십시오.

(대부분 Leandros 에서 복사)

An swer

/sdcard/bugreports에 있습니다.

댓글

  • ' 내 휴대 전화에 이러한 폴더가 없었습니다 … 제조업체 또는 기기에만 해당됩니까?

Logcat-CyanogenMod Wiki : 매직 키 조합을 사용하여 / sdcard / bugreports에 버그 신고 파일을 만들 수 있습니다. 그래서 이것은 ) 약간 구체적 (아마 CM에 해당), b) OP가 " 자동으로 생성 된 " 일.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다