안드로이드 프레임워크 프로그래밍(13) [커널이미지 적용후 부팅화면만 나올 때 대처법]

안드로이드/프레임워크 2015. 3. 24. 02:16

 AOSP를 알면 알수록 참으로 심오한 안드로이드의 신비를 몸소 느끼고 있습니다. 아마 이 포스팅을 보시는 여러분들도 안드로이드의 구조에 대해 열심히 공부하고 계시리라 생각합니다. 이번 포스팅에서는 프로그래밍 도중 일어날 수 있는 무한 부팅모드에 대해 이야기를 해보려 합니다.


 안드로이드 기기를 켰을 때 부팅화면이 나오게 되는데 이 상태에서 안드로이드 기기는 설정되어 있는 시스템들을 모두 구동될 때 까지 준비중이라는 의미로 부팅화면을 띄우는데요. 간혹 특정 코드 부분을 코딩하다보면 의도치 않게 보시는 바와 같이 무한 로딩 상태에 빠지는 경우가 있습니다.



 아마 위의 화면처럼 안드로이드의 부팅화면이 반복되는 것을 본다면 혹시 고장은 아닌가 하는 걱정이 들 것입니다. 이는 eclipse를 실행 후 Logcat 화면을 확인해 보시면 분명 기기는 동작중이긴 한데 특정 부분에서 exception이 벌어지고 있는 것을 보실 수 있습니다.


 과연 이 경우는 어떤 경우일까요? 가장 큰 요인은 자신이 수정한 부분에서 문제가 발생하였을 때 이러한 현상이 주로 발생합니다. 비록 단순하지만 다음과 같이 대처하시면 원인을 찾으실 수 있으실 겁니다.


1. 일단 자신의 기기의 전원버튼을 계속 누르셔서 기기를 종료합니다. 어떤 기기의 경우 전원이 꺼지자마자 바로 부팅모드에 진입하는 경우가 있는데 그런 경우 그냥 처음부터 bootloader 모드로 진입하도록 합니다.


2. 커널 이미지를 적용하기 직전 자신이 작성한 소스코드 부분들을 모두 주석처리합니다. 그런 다음 다시 컴파일을 시도하신 후 이미지를 bootloader에 진입한 기기에 적용합니다.


3. 주석처리한 코드를 꼼꼼히 살피면서 주석을 한 줄씩 지워가며 문제가 발생한 부분을 찾습니다. 거의 이 단계에서 무안 부팅모드에 빠지는 코드를 찾아내실 수 있으실 겁니다.

300x250