회사에 개발자는 나 혼자 인지라 서버 개발 외적으로도 해야 할 일이 생긴다. 오늘은 안드로이드 폰에서 특정 동작 제어를 하는 방법이 필요했다. 일반적으로 루팅을 하는 방법이 있지만 폰을 루팅하면 위험성도 있고(내가 안드로이드 개발자가 아니라서 이 쪽으로는 좀 약한 것 같다. ) 다시 폰을 사용하려면 언루팅 하기도 힘들어서 안 하는 하는 방법을 찾아 보았다.
첫번째로 생각한 것은 에뮬레이터로 동작 시키는 것이었는데, 이것도 뭔가 하려면 루팅이 필요한 것 같아서 패스 했다. 두번째로 생각한 방법은 실제 폰을 제어 하는 것인데 이 기술의 대부분은 원격제어을 이용하는 것이다. 보통 폰에서 PC를 제어하는 remote desktop이 많은데 역방향으로 제어 하는 원격제어도 찾으면 찾을 수 있다. (PC에서 폰 제어) 근데 다만 대부분 유료이다. 그리고 이게 된다고 해도 뭔가 PC 스크립트를 만드는 방법이 딱히 생각나지 않았다.
그래서 검색을 더 해보고 찾은 것이 openstf (https://github.com/openstf/stf ) 이다. 이게 내가 생각한 것에 아주 가깝다. 우선 폰을 USB에 연결해 두고, Node 서버를 띄우면 웹브라우저에서 그 폰 화면 그대로 보인다. 그리고 마우스로 터치하면서 제어 할 수 있다.
설치 방법은 https://dejavuqa.tistory.com/342 이 블로그에 너무 잘 나와서 패스한다.
여기서 더 발전하면 nodejs 를 이용한 프로그램을 만들어 특정 이벤트(홈 버튼을 누른다든지, 특정 화면을 터치한다든지)를 발생 시킬 수 있다. 이 부분은 https://github.com/openstf/adbkit 과 https://github.com/openstf/adbkit-monkey 를 잘 이용하면 될 것 같다.
내 경우 home 버튼 누르는 예제를 실행시켜 보았는데 잘 동작했다.
서비스가 안정적으로 동작 시키기 위해서는 뭔가 node 대몬 관리 프로그램을 잘 이용해 줘야 할 것 같긴 한다. nodejs 가 자주 다루는 플랫폼이 아닌지라 좀 연구가 필요 할 것 같다.