개발장비에서 안드로이드 에뮬레이터의 웹서버로 접근하기

개발장비에 웹서버를 띄우고 안드로이드에서 해당 웹서버에 접근하는 방법은 매우 쉽다.
안드로이드에서 10.0.2.2 로 접근하면 된다. 이 내용은 https://developer.android.com/studio/run/emulator-commandline.html#networkaddresses 에 잘 설명되어 있다.

반대로 안드로이드에 웹서버(예를 들면 NanoHTTPD)를 띄우고 개발장비에서 접근하는 데 삽질을 좀 했다.
위 링크에 설명된 것처럼, 에뮬레이터의 IP 는 10.0.2.15 로 매핑된다.
안드로이드 웹서버에 접속한 화면. 물론 localhost:8080 로 입력해도 된다.


근데 개발장비에서 아무리 10.0.2.15 로 접속해봐도 안드로이드 웹서버에 접속이 되지 않았다.
왜 안되짐?
몇 번 삽질하다 adb 작동 방식을 처음으로 -_- 확인해 보고 문제점을 알았다. adb 는 android debug bridge 이므로 (이제까지 android DeBuger 로 알고 있었..) adb 에 연결되어 있는 개발 장비와 에뮬레이터를 연결해주어야 하는 거이고, 따라서 포트 포워딩을 해주어야 하는 것이었다.

다음 명령으로 개발장비 8081번 포트를 에뮬레이터의 8080 포트로 연결하자 :
adb -e forward tcp:8081 tcp:8080
이제 로컬호스트의 8081 포트로 접근해보면 된다.
된다!



댓글

이 블로그의 인기 게시물

Confluence 에서 Export PDF 로 내보낼 때 Code Block 에서 한글 깨짐

pandas.read_csv() 에서 왠만하면 컬럼타입을 지정하자

스프링 컨텍스트 설정파일과 URI 경로를 제대로 못찾는 삽질