2017-11-03 20 views
-2

기기에서 항상 활성화되어있는 앱 (고객 별 앱)을 개발 중입니다. 응용 프로그램은 크지 않고 많은 자원을 사용하지 않지만 스케줄링 (핸들러, 타이머, AlarmService)과 함께 작동합니다.앱을 사용하는 동안 휴대 전화가 자동으로 다시 시작됩니다.

고객이 때때로 기기를 재부팅한다고보고합니다 (하루에 한 번 또는 그 이상). 나는 그 이유를 모른다. 안타깝게도 장치를 종료하는 것과 관련된 로그가 없습니다.

"onCreate"방법에서는 logcat 프로세스를 시작하고 모든 로그를 파일에 기록하지만 아무 것도 유용하지 않습니다. 예, 알고 있습니다. 그들 없이는 이유를 찾기가 어렵습니다. 할 수있는 한 많은 정보를 수집하려고합니다.

또한 ± 1 시간마다 실행되는 2 개의 서비스가 있습니다. 하나는 git (JGit lib)에서 데이터를 가져오고 다른 하나는 서버에 일부 메시지를 보냅니다. 우리는 또한 개발자를위한 로깅 (파일에 쓰기)을 가지고 있으며 우리는 하나의 FileWriter 인스턴스 만 사용하므로 (닫지는 않습니다). 재부팅의 원인은 무엇입니까? 그런 앱에 흔히있는 실수는 무엇입니까? 재부팅 이유를 어떻게 알 수 있습니까?

예, 알고 있습니다. 충분한 정보를 제공하지 못했지만 조언이 도움이 될 것입니다.

+0

어떤 Android 버전입니까? 충돌 전 공통된 시간이나 일련의 행동이 있습니까? 안드로이드 8.0 이후 Pixel XL을 리셋하면 내 장치에서 모든 일이 발생합니다 (웃지 마세요, 화장실에서 사용하면 이상합니다). –

+0

버전 5 및 5.1 나는 충돌에 대한 더 일반적인 상황을 찾을 수 없다 –

답변

0

닫지 않은 File 및 FileWriter를 사용하는 응용 프로그램부터. File Descriptor [FD] 수를 확인하십시오. FD 카운트가 1024에 도달하면 시스템은 카운트를 재설정하기 위해 APP를 자동으로 재시작합니다.

+0

그것은합니까? 이것은 거의 보이지 않을 것입니다. 추가 파일 설명자를 만들려고했지만 실패했지만 앱을 다시 시작하지는 않습니다. 그리고 그랬더라도 장치가 재부팅 중이라고 그는 말했다. –

+0

예 .... 앱은 다시 시작할 수 있지만 전화는 다시 시작할 수 없습니다. –

0

때때로 Android는 할당 된 메모리가 많은 경우 다시 시작되는 것 같습니다. 이는 앱과 관련이있을뿐만 아니라 전체 시스템 및 환경과 관련이 있습니다. 저장소에서 모든 캐시를 삭제하고 여유 공간을 절약하려고하면 디스크의 R/W 속도가 향상 될 수 있습니다.