android에서 DDMS를 통한 GPS emulation시 버그

▲ 2009 공개 소프트웨어 공모대전 로고
졸업을 한학기 앞두고 경험삼아 대학 친구들이랑 공개 소프트웨어 공모대전에 참가했다. 지정과제로서 구글에서 새롭게 내놓은 Android(안드로이드)라는 플랫폼을 처음 사용하게 되었는데, 그야말로 시망스러운게 120여개 가까운 참가팀 중 거의 절반이 안드로이드라는 사실;; "구글"이라는 브랜드가 가지는 파워라는게 이정도다...
어쨋든 그렇게 되었는데, 개발자 입장에서 실제 모바일 기기를 가지고 개발을 진행하면 더할나위 없이 좋겠지만, 60만원이 넘는 가격이 부담스럽지 않을 수 없다. 그래서 일단은 함께 제공되는 에뮬레이터를 통해 개발을 진행하고 있는데, 문제가 생겼다.

▲ 에뮬레이터를 구동한 모습
우리 주제가 안드로이드에서 제공하는 GPS 기능을 사용하는데, 당연한 얘기지만 PC에 GPS장치가 있을리 만무하므로 에뮬레이터 상에서 가상으로 GPS신호를 수신하는 것처럼 테스트를 한다. android에서는 DDMS에는 것을 이용해서 이를 테스트하는데, DDMS는 GPS뿐만 아니라 실제 모바일 기기에서만 할 수 있는 전화통화, SMS, SD Card Control과 같은 것들을 PC 에뮬레이터 상에서 테스트 할 수 있게 도와주는 도구이다.
그래서 일단 에뮬레이터를 구동한 뒤 DDMS를 통해 GPS 신호를 보내는데, 이게 어찌된 일인지 첫번째 신호는 제대로 받아들이는데 두번째 부터는 감감 무소식인 것이었다. 로그를 뒤져보니 신호는 제대로 만들어져서 가는데 onLocationChanged() 함수가 불려지지가 않고 있었다. 아무리 생각해도 이유를 알 수 없어 언제나처럼 구글神님께 여쭈어 본 결과...
Google Code Android Project의 Issuetracker에 등록된 Ticket
http://code.google.com/p/android/issues/detail?id=915
http://code.google.com/p/android/issues/detail?id=2545
※ 현재 두 ticket 모두 Review 상태인 것으로 봐서 다음 sdk 버젼에서는 수정이 될 것으로 기대한다.
http://code.google.com/p/android/issues/detail?id=915
http://code.google.com/p/android/issues/detail?id=2545
※ 현재 두 ticket 모두 Review 상태인 것으로 봐서 다음 sdk 버젼에서는 수정이 될 것으로 기대한다.
그렇게 많이 보고되진 않았지만 분명히 존재하는 버그인 것으로 보인다(Android SDK 1.5 r3 현재). 현재 android project 호스팅을 하고 있는 Google Code의 Issuetracker에도 등록이 되어 있고(그것도 2개나), googlecode 이외에도 이러한 문제를 접한 사람들의 글들을 꽤 많이 볼 수 있었다. 심지어는 에뮬레이터가 아니라 실제 기기에서도 이런 현상이 발생한다는 사람까지 있을 정도.
댓글들을 읽어보니 locale 문제이므로 사용언어를 미국(영어)로 바꾸면 된다는 사람도 보이고 실제 해결이 됐다는 사람도 있는것 같긴 한데, 실제 데스크탑의 XP 표시언어를 영어로 바꿔도 안되고, 랩탑은 아예 영문 윈도우임에도 불구하고 같은 현상이 발생하는 것으로 봐서는 locale이 근본적인 문제는 아닐 것 같다.
어찌하랴...어쨋든 개발은 진행해야 하기에 여러모로 대책을 강구해봤는데, 어처구니없게도 리눅스에서 하니까 문제없이 쌩쌩 돌아가는 것이 아닌가;; 혹시 윈도우에서 sdk 설치를 잘못했나 싶어서 싹 지우고 다시 깔아도 마찬가지...아...이상하게 리눅스는 윈도우에 비해 자동완성이나 에뮬레이터 구동/반응속도 같은게 너무 느리게 느껴져서 꺼렸는데...어쩔 수 없이 리눅스 사용시간이 늘어나게 될 것 같다.
데스크탑의 리눅스에선 잘 되는데 랩탑에 깐 리눅스에선 또 안된다...이거 도대체 뭔지;;
09. 8. 19 추가 : 에뮬레이터상에서 Setting 메뉴로 들어가 Time Zone(시차)와 Date & Time(시간 및 날짜)를 정확하게 수정해주니 제대로 돌아간다. 이것때문인지 확신은 못하지만 어쨋든 돌아가니 뭐;; 혹시 동일한 유형의 문제로 고생하는 사람 있으면 시도 한번 해봐주시길.
09. 8. 19 추가#2 : Google android issuetracker에 해당 내용으로 댓글(http://code.google.com/p/android/issues/detail?id=2545#c33)을 남겼는데, 된다는 사람이 몇명 등장. 이유는 알 수 없지만 어쨋든 에뮬레이터 상에서 제대로된 지역/시간을 설정해주면 GPS signal이 제대로 안날라가는 버그는 해결되는 듯 하다.
컴퓨터
2009/08/07 00:56

댓글을 달아 주세요