본문 바로가기
잡(job)기술

원격 접속되는 안드로이드 에뮬레이터 만들기

by 무니이구나 2018. 3. 13.

android-studio를 사용하면 안드로이드 장비나 에뮬레이터를 연결하기 위해서 특별히 신경 쓸 일이 없다. 하지만, android-studio는 너무 무겁다. 업무에 사용하는 컴퓨터가 사양이 떨어지는 것은 아니나, 업무 특성상 visual-studio를 띄우고, chrome 에 20개 이상의 탭을 띄우는 나에게는 어느 하나라도 작업을 다른 컴퓨터에서 할 수 있었으면 하는 바람이 있었다.

다행히, 테스트용으로 사용하는 리눅스 서버가 있었고, 여기에 VNS를 설치해서 내 컴퓨터에서 원격 데스크톱으로 연결하고, android-studio 를 구동하면 어떨까 하는 생각이 있었다. 리눅스 서버에는 centos 7가 설치되어 있었기 때문에 이러한 환경을 만들기는 어렵지 않았고, android-studio 리눅스 버전을 받아 설치까지 무사히 했다.

문제가 발생했다. 바로 에뮬레이터였다. 원격 테스트톱을 이용해서는 실행이 되지 않는 것이었다. 정확히 원인을 알 수는 없었지만 해결도 쉽지 않을 것 같은 감이 왔다. 내 컴퓨터의 부하를 줄여보겠다는 의도로 시작한 일이었으나, 거의 다 왔는데 마지막 단계에서 마무리를 할 수 없으니 무언가를 더 시도해보고 싶은 도전 의식이 발동했다.

에뮬레이터를 원격 데스트 톱을 통해서 실행을 할 수 없으니, 에뮬레이터는 내 컴퓨터에서 실행하면 되지 않겠는가, 그렇다면 에뮬레이터를 이더넷을 이용해서 연결할 수 있겠는가. 그렇다. 가능하다.

adb connect <에뮬레이터 IP>

와 같은 방식으로 연결하면 기존과 동일한 방식으로 에뮬레이터에 앱을 실행하거나 디버깅을 할 수 있다.

그러나, 에뮬레이터에는 어떻게 리눅스 서버에 접속할 수 있는 IP 를 부여할 것인가. android-studio 에서 제공하는 에뮬레이터는 전용 호스트 방식으로 IP가 할당되고 있음을 확인했다. 즉, 10.0.2.15 로 붙는다.

virtualbox 에는 네트워크를 bridge 방식으로 설정하면 내부망에서 IP를 하나 더 할당해야 하는 문제는 있지만, 망 내에 다른 컴퓨터와 쉽게 통신할 수 있게 된다. 이것을 이용하면 될 것 같았다. 그러면, virtualbox 에 android 를 설치하면 될 것 아닌가.

android-x86 이것이 해답이었다. 너무나 쉽게 PC 를 android 장치로 만들어주는 배포판이었다. PC 대신에 virtualbox 에 이것을 설치하면 바로 안드로이드 에뮬레이터가 되는 것이지.

Android-x86 - Porting Android to x86*Android-x86 Open Source Project*www.android-x86.org

android-x86 사이트를 통해서 iso 파일을 받았고, virtualbox 에 이것을 이용해서 안드로이드 에뮬레이터를 하나 만들었다. virtualbox 의 네트워크를 bridge 로 설치하면, 원격에서도 접속해서 디버깅 할 수 있는 에뮬레이터를 하나 갖출 수 있게 되는 것이고, 내 컴퓨터도 android-studio 의 부담감에서 벗어날 수 있게 되는 것이렸다.

설치 중에 사소한 문제가 하나 있다. 마우스가 동작하지 않는 문제인데, 이것은 virtualbox 설정의 포인팅 장치를 PS/2 마우스로 변경해주면 간단히 해결된다.

mouse 설정을 PS/2 로 변경하자.

virtualbox 환경 설정에서, 시스템 > 마더보드 > 포인팅 장치에서 PS/2 마우스로 변경해주면 된다.

하지만, 가장 중요한 혜택은 얻지 못했다. 원격으로 디버깅은 되지 않았다. 무언가 더 설정이 필요한 것인가. 일단 삽질은 여기까지만…