2013-06-13 1 views
1

앱을 작성했으며 일부 기기에서는 앱을 사용하여 시스템을 정지시킵니다. 가장 주요한 문제는 장치가 정지하자마자 로깅이 완전히 멈추고 충돌이 발생한 후 충돌보고가 정상적으로 생성되기 때문에 장치가 정지되어 로그 정보를 얻지 못한다는 것입니다 .장치가 정지되거나 멈 추면 로깅 정보를 얻는 방법?

나는 USB를 통해 adb를 통해 노트북에 장치를 연결하고 모든 것을 logcat했지만 장치가 멈 추면 로깅이 중지됩니다. 또한 가능한 모든 로그 위치를 확인한 결과 (this reference) 아무 것도 찾을 수 없었습니다.

모든 기기의 약 10 %에서만 앱이 다운되기 때문에 (기기가 동일하고 펌웨어가 동일 함) 기기에서 앱을 테스트해야하며 에뮬레이터를 사용할 수 없습니다. 그러나 응용 프로그램이 충돌하는 경우, 나는 adb 원숭이를 사용하여 충돌을 재현 할 수 있습니다. 다른 90 % adb 원숭이는 장치를 파괴하지 않습니다.

로그/테스트/체크가 가능한 다른 제품이 있습니까? 일단 장치가 정지되면 메모리 덤프를 얻을 수있는 방법이 있습니까?

나는 이것이 적절하다고 생각하지 않지만 : 장치는 XORO 9718DR 태블릿이며 장치는 루팅되어 있습니다. 이 앱은 나 자신이 썼으며 시장에는 제공되지 않습니다. 그것은 주로 버튼, TextView, ImageView, HttpClientConnection, 스레드, AsyncTasks 및 기타 "정상적인"안드로이드 물건만을 사용합니다. 그것은 심지어 webview를 사용하지 않습니다.

답변

0

앱을 만드는 거의 모든 기기의 영구 저장 장치에 로그에 기록하여 실행 코드의 각 행을 해당 저장 장치에 표시 할 수 있어야합니다. 이렇게하면 장치가 멈 추면 다시 부팅 할 때 로그를 읽고 마지막 문이 무엇인지 볼 수 있습니다. 로그 파일을 서버에 자동으로 업로드 한 다음 장치에서 삭제하는 기능을 가질 수 있습니다.이 기능은 앱이 시작될 때 실행됩니다. 따라서 어떤 일이 일어나더라도 항상 실행 된 마지막 행에 대한 기록이 있습니다.

+0

[androidlogcatviewer 프로젝트] (https://code.google.com/p/androidlogcatviewer/)의 로그 레코더를 사용했지만 성공하지 못했습니다 (로그 파일은 캡처 한 adb 출력과 같은 위치에서 멈 춥니 다. USB를 통해). –

+0

나는 또한 디버거를 사용하여 성공했다. 아이디어는 장치가 멈 추면 내 앱의 위치를 ​​볼 수 있다는 것이 었습니다. 그러나 장치가 멈 추면 디버거에는 "장치 연결이 끊어졌습니다"라는 메시지 만 표시됩니다. –

관련 문제