안드로이드 위치기반 GPS관련한 어플을 안드로이드 에뮬레이터로 돌리려면 DDMS 중 "emulator control" 뷰에서 위도, 경도를 manual로 제공하는 방법이 있다. 그러면 LocationManager 인스턴스에 requestLocationUpdates()를 통해 등록된 LocationListener 인스턴스의 onLocationChanged()가 DDMS가 보낸 위도,경도등을 Location타입으로 받아 일을 처리한다.
그런데 emulator control에서 위치를 나타내는 GPX, KML 타입 파일을 로드해 좌악 좌표를 에뮬레이터로 보낼 수 있다고 했는데 잘 되지 않았다. 로드해도 대체 반응이 없다. 여러개의 서로 다른 GPX 파일들을 로드해보아도 에러도 안뜨고 그냥 먹통이다.
http://developer.android.com/guide/developing/tools/ddms.html 에 가보아도 말이 없고. 답답하다.
구글링을 해 보았더니 GPX 파일 버젼이 1.1 이어야지만 DDMS가 로드한단다 (http://code.google.com/p/android/issues/detail?id=2528). 그래서, 파일의 버젼을 1.1로 고쳤더니 잘 로드되어 돈다.
볼 수록 안드로이드 프레임워크와 그 주변 구글 서비스 생태계의 방대함에 인상이 깊어지고 있다. Component 스타일 소프트웨어 개발이 잘 적용되었다. 하긴 Joshua Bloch를 비롯해 많은 자바캠프에 있던 사람들이 구글로 자리를 옮겼으니 원래 안드로이드가 갖고 있던 object/component 맛이 더욱 고도화 된 것이 이상하지 않다. 안드로이드는 다양한 하이레벨 컴포넌트/API가 제공되기에 코드는 간단해 질 수 있으나 한편 사용자의 사용패턴과 내부 자원에 따라 컴포넌트들이 서로 엮이며 asynchronous하게 작동하므로 주의해서 어플 설계가 필요하다. 물론 간단히 몇 개 화면과 주욱 한개의 스레드로 흘러가는 것은 정말 간단히 만들 수 있다. DDMS만 해도 잘 만들었다. 그래도 기왕에 조금 더 신경써서 GPX version 1.1 부터 지원한다고 알려주면 안되나? 욕심이 끝이 없다.
출처 - http://roundhere.tistory.com/69
===================================================================================
Android 폰 없이 에뮬레이터에서 GPS 등의 위치관련 테스트를 하기 위해서는 DDMS를 사용하거나 콘솔에서 "geo" 명령어를 사용하는 방법이 있습니다.
DDMS 에도 개개의 longitude/latitude 좌표를 직접 주는 방법과 GPX 파일을 이용하는 방법, KML 파일을 이용하는 방법까지 3가지 방법이 있습니다. (참고 : 안드로이드 개발자 사이트)
여기에서는 DDMS에서 KML 파일을 이용해 위치정보를 테스트 하는 방법에 대해 얘기하겠습니다.
KML이란 Keyhole Markup Language 의 줄임말으로 구글 어스에 쓰일 목적으로 개발 되었으며 구글 어스, 구글 지도 및 기타 응용 프로그램에 쓰이는 XML 기반의 마크업 언어 스키마 입니다.(참고 : 위키백과)
테스트를 위해 이 KML 파일이 필요한데 구글 지도의 내 지도 기능을 이용하면 우리가 원하는 위치가 들어있는 KML 파일을 손쉽게 만들 수 있습니다.
- 구글 지도에 접속합니다.
- 사이드바에서 내 지도를 선택합니다.
- 새 지도 만들기를 선택 합니다. 여기까지 하면 아래와 같은 화면이 보입니다.
- 내가 표시하고 싶은 위치로 이동한 뒤 "아이콘 추가하기" 버튼을 눌러 표시해 줍니다.
전 롯데월드를 추가했습니다. - 4번을 반복하여 자신이 원하는 위치를 추가합니다.
잠실 근처 놀만한 곳을 추가했습니다. - 원하는 위치를 다 추가했다면 '링크' 버튼을 클립 합니다.
그러면 방금 만든 내 지도에 대한 링크 주소가 두가지 나오는데 이중 '이메일 또는 메신저에 링크 붙여넣기'의 주소를 복사합니다. - 새로운 브라우져를 열고 주소창에 방금 복사한 링크 주소를 붙여 넣기 합니다. 그럼 KML 파일이 다운로드 됩니다. (브라우져마다 동작이 다를 수 있습니다.)
- DDMS > Emulator Control > Location Controls > KML 항목에서 다운로드한 KML 파일을 엽니다.
- 목록을 직접 클릭하여 위치 정보를 보낼 수도 있고 아래 화살표를 눌려 순서대로 또는 역순으로 속도에 따라 하나씩 보낼 수도 있습니다.
계속 반복해서 보내는 방법은 찾지 못했습니다.
출처 - http://ecolemodev.springnote.com/pages/5216185