뭐? apk가 윈도우폰에서 돈다고? Project Astoria에 대해

이 글은 마이크로소프트 개발자 행사인 Build 2015의 “PROJECT ASTORIA”: Build Great Windows Apps with Your Android Code를 본 후기입니다.

제가 마이크로소프트를 과소평가했다는 생각이 들더군요.

위의 동영상을 보기 전에 풍문으로만 들리던 “윈도우폰이 안드로이드앱을 돌린다”에 대해서 저는 상식적으로 이렇게 생각했습니다… “apk를 appx로 전환하는게 있을거다”, “gradle 프로젝트를 읽어서 비주얼스튜더오 솔루션(일명 sln파일)으로 바꿔주는 project import 기능을 잘 만들었을거다”, “백버튼, 키보드 등의 이벤트를 interop시키는 wrapper일거다” 등등…

하지만 실체는 아래와 같습니다.

  • apk를 윈도우폰 스토어에 올릴 수 있습니다.
  • Android Studio (또는 IntelliJ)로 코딩합니다.
  • gradle에 추가된 몇 줄의 build 설정만으로 윈도우폰용으로 컴파일이 됩니다.
  • 가장 놀라운거: adb로 윈도우폰 에뮬레이터에 접속되고 앱을 디버깅합니다.
  • 맥에서도 동일한 개발 경험을 가집니다.

가장 궁금했던 점은, Build에서 “android subsystem을 넣었다”고 하는 말이었는데, 영상 마지막에 adb로 윈도우폰의 logcat이 나오는 것을 보면서 정말 짜릿함마저 느껴졌습니다.

“저걸 했단말야?”…입으로야 뭐든 못하겠냐고 농담했던걸 진짜로 하고 있네요.
이제 주요 화면의 영상 캡처와 제가 덧붙인 설명을 나열하겠습니다.

분석을 위한 APK 업로드
분석을 위한 APK 업로드
apk분석이 끝나면 아이콘을 리소스에서 뽑아주고 사용 라이브러리를 분석해서 아래 추가적으로 해 줄 것을 정리해줍니다.
apk분석이 끝나면 아이콘을 리소스에서 뽑아주고 사용 라이브러리를 분석해서 아래 추가적으로 해 줄 것을 정리해줍니다.

아래 정리된 것은 때론 Visual Studio 2008에서 Visual Studio 2012로 마이그레이션하는 것보다 더 수월해보이는 것도 있어보입니다.

gradle에 별도 빌드시스템으로 컴파일시키는데 영특한 어프로치입니다.
gradle에 별도 빌드시스템으로 컴파일시키는데 영특한 어프로치입니다.

이 부분이 참 재미난데, windowsCompile이라고 별도의 빌드툴로 만드는 것으로 아마도 이것은 android SDK의 Build Tool이 향상됨에 따라 같이 버전이 올라갈 것으로 예상됩니다. 역할은 과거 전형적인 COM interop, JNI 등이 하는 것처럼 인터페이스 핸들러를 연결해주는 것으로 예상됩니다. 이런 작업은 MS가 워낙 노하우가 있고 잘하던거라서 뭐 잘했겠거니 싶네요.

맥에서 윈도우폰 에뮬레이터가 동작합니다
맥에서 윈도우폰 에뮬레이터가 동작합니다

VisualStudio를 고집하지 않고 기존 안드로이드IDE를 그대로 활용하기에 맥에서도 그대로 프로그래밍이 가능하고 심지어 데모에서는 맥에서 윈도우폰 에뮬레이터를 동작시켜서 테스트합니다. 에뮬레이터 프로그램 이름이 xda.exe이고 아래 VMWare Fusion 아이콘이 있는거로 봐서 에뮬레이터는 버추얼머쉰으로 돌리나봅니다.

윈도우스토어 업로드도 apk로
윈도우스토어 업로드도 apk로

결과물은 apk로 나오고 윈도우스토어는 이 apk 파일을 그대로 받습니다. 스토어에 업로드가 완료되면 apk 검증 페이지가 나오므로 windowsCompile을 거친게 아닌 아무 apk를 넣는다고 되지는 않을 것 같습니다. 통상 윈도우앱을 올릴 때 WACK(Windows App Certification Kit)이 실행되는데 그것은 스토어 서버에서 수행되는걸로 보입니다.

아키텍처
아키텍처

위의 그림에서 보듯 apk를 Windows App Model인 appx가 콘테이너로 만들어서 처리합니다. appx는 윈도우폰이 받는 메시지, 다른 앱과의 연동, 키보드 등 시스템이벤트 처리 등을 하겠지요. 이렇게 하면 보통 성능이 느릴거라 생각하지만 그건 실제로 나와봐야 알 것 같습니다. 온전한 에뮬레이션은 아닌거 같으니(별도로 컴파일시키는게 성능상의 이유도 있겠죠) 구동속도는 별 차이가 없을 것 같다는 생각도 듭니다.

윈도우 스토어앱은 적다고 맨날 까였지만, 이정도까지 해줬으면 충분히 개발자를 배려했다는 생각이 듭니다. 불과 3년 전이었어도 불과 옛날의 MS였어도 이건 있을 수 없는 일이죠. 윈도우10 폰은 여러모로 기대가 됩니다. 매번 기대했지만 제발 이번만은 쫌…!

뭐? apk가 윈도우폰에서 돈다고? Project Astoria에 대해”에 대한 답글 1개

댓글 남기기