공식 사이트 | 소스코드
1. 개요
리눅스에서 안드로이드 앱을 실행할 수 있도록 하는 오픈 소스 컨테이너 기술이다.[1] 이전에는 anbox-halium이라는 이름으로 알려졌었다.2. 상세
윈도우 11보다도 먼저 제대로 된 안드로이드 앱 지원을 데스크탑 OS에 추가했다.[2] 리눅스 컨테이너 방식으로 풀 안드로이드 시스템을 부팅하며 Wayland에 직접적으로 그래픽 버퍼를 그린다. 이 특징 때문에 속도 저하가 거의 없이 매우 빠르고 호환성도 좋다. 이게 Waydroid의 특징이자 가장 큰 장점이다. 2024년 기준으로 안정화가 되어서 이미 게임을 포함한 많은 앱들을 안정적으로 돌릴 수 있다. 원신, 모바일 배그를 비롯한 여러 고사양 게임들도 잘 호환된다. # 또한 가상머신이 아니라 컨테이너 기술이기 때문에 RAM 및 VRAM 누수도 거의 없다. 블루스택 등의 안드로이드 가상머신, 앱플레이어에서 고질적으로 VRAM 및 RAM이 누수되는 것과 비교하면 이것도 어마어마한 장점.WSL나 Hyper-V 등의 가상머신을 사용하면 윈도우에서도 Waydroid로 안드로이드 앱을 실행하는 것이 가능하기는 하다. # 다만 이런 것도 가능하다는 것을 보여준 것일 뿐이고 아직은 써먹을 단계는 아니다. 애초에 리눅스 용으로 개발되었기 때문에 제대로된 호환성과 속도를 바란다면 리눅스에서 써야 하며, Windows 환경에서 가상머신 위에 Waydroid를 돌릴 시 블루스택 등의 다른 앱플레이어보다도 속도가 느려서 도저히 쓰지 못할 정도다.
Waydroid는 ARM에서만 구동되는 어플리케이션도 x86환경에서 실행되게 만드는 기능도 있는데, 기본 지원 기능은 아니다. 외부 라이브러리인 libhoudini나 libndk 를 사용해야하고, 속도도 살짝 떨어지며, 별도로 설치 및 세팅해야 작동한다. 공식 홈페이지에서 추천하는 방법은 waydroid_script라는 Python 스크립트를 이용해 설치하는 것을 권장한다. libhoudini는 Windows Subsystem for Android에서, libndk는 Chromium OS에서 추출했다고 하는데, 전자가 지원이 종료되기는 했지만 일단 libhoudini도 큰 문제 없이 작동중에 있기는 하다. 아치 리눅스 위키에 따르면 2024년 기준으로 libhoudini가 Intel CPU에서, libnk가 AMD CPU에서 호환성이 좋으며, 어플리케이션에 따라 하나에서만 되는 경우가 있어서 둘다 시도해야 하는 경우도 있다고 한다.
3. 단점
위의 속도와 호환성 등의 장점에도 불구하고 Waydroid를 실사용으로 쓰는 사람이 많지 않다. 가장 큰 이유는 Waydroid가 리눅스 프로그램이라는 점이다. 리눅스를 데스크톱으로 사용하지 않는 많은 사람들이 이를 사용하기 힘든 것은 지극히 당연하다.[3] 또한 Waydroid의 설치와 업데이트가 어렵고 권장사항을 만족시키기 힘들다는 단점도 있기 때문이다.일단 가장 큰 단점으로 Waydroid는 설치와 세팅 과정이 복잡하다. 단순히 Waydroid만 설치해서는 원하는 기능이 모두 작동되지 않기 때문에 반드시 공식 홈페이지의 설명서#를 참고하여 필요한 패키지를 모두 설치하고 올바르게 세팅해야 한다. [4] 또한 필요하다면 추가적으로 구글 인증, 인터넷 연결, ARM 변환 레이어 라이브러리 (libhoudini 또는 libndk) 설치까지 해야 한다. [5] 이런 자세한 세팅 정보는 공식 홈페이지의 설명서와 아치 위키를 보면 되는데, 문제는 두 사이트가 둘다 영어인데다 리눅스를 어느정도 쓸줄 아는 사람을 대상으로 설명서가 씌여져 있다. 영어를 못하고, 리눅스에 익숙하지 않으면 설치가 불가능한 수준으로 진입장벽이 높을 것이다. 블루스택같은 가상머신의 경우 설치만 하면 바로 사용할 수 있을 정도로 사용성이 편한 것과 비교해보면, Waydroid의 높은 설치 진입장벽이 꽤 심한 단점이라고 할 수 있다.
또 다른 단점으로는, Waydroid가 돌아가려면 컴퓨터 사양이 어느 정도 되어야 한다. 공식적으로 명시된 컴퓨터 최저 요구 사양은 없지만, ATOM 프로세서 같은 저사양 태블릿 PC나 미니 pc에서 돌리면 느려서 속 터진다(...) Waydroid가 가상머신은 아니고 Docker 와 같은 컨테이너 기술의 일종이라지만, 여전히 앱을 여러 개 돌리는 순간 CPU 사용률이 치솟는 모습을 볼 수 있다. 다만 그래도 Waydroid는 본격적인 가상머신인 블루스택이나 Windows Subsystem for Android보다는 원활하게 돌아가는 편이다. 즉 Waydroid가 제대로 못돌아갈만큼 성능이 안좋은 컴퓨터에서는 본격적인 안드로이드 가상머신은 아예 못돌린다고 볼 수 있다. 실사용해본 사용자들의 평으로는 최신형 울트라북이나 사무형 노트북에서 Waydroid가 원할하게 돌아갈 정도쯤 되며, 이 정도가 권장사양이라고 생각하면 될듯 하다. RAM 용량이 크거나 GPU가 좋은 것은 별 영향이 없고, CPU가 좋아야 잘돌아간다는 평이 많다.[6]
사소한 단점이지만, Waydroid는 최신 Wayland 환경만 지원하고, X11은 지원하지 않는다. 이를 반영하듯 기술의 이름부터가 'Way'droid다. Wayland 환경만 지원하겠다는 강력한 의지가 보이는 네이밍 센스라고 할 수 있다. 따라서 Waydroid를 설치하고 싶다면 본인의 리눅스 데스크톱 환경이 Wayland인지 X11인지 확인할 필요가 있다. 그렇다고 해서 X11 환경에서 Waydroid의 실행이 불가능한 것은 아니고, X11 환경이라면 Wayland 컴포지터를 X11 위에서 실행해야 한다. 이때 보통 `cage` 같은 프로그램을 사용한다. 이를 이용하여 X11 환경에서도 Waydroid를 사용하는 사람도 상당히 많다.
또한 Wayland 환경만 지원하기에, 엔비디아 GPU가 말썽인 것도 문제이다. NVIDIA의 상용 드라이버는 최근까지 Wayland가 사용하는 buffer API의 사실상 표준인 GBM API를 지원하지 않았으며, 지원하는 현재에도 여러 이슈가 있다. Wayland가 NVIDIA에서 말썽이기 때문에, Waydroid도 NVIDIA에서 말썽이다. 대표적으로 Arch Linux에서 엔비디아 GPU를 쓸 시 그냥 Waydroid 실행을 하면 안되고 "Software rendering"이라는 꼼수를 쓰도록 세팅해야만 정상적으로 실행된다. 아치 위키에서는 오죽하면 가능할 시 GPU를 바꾸라고 추천할 정도이다.[7] AMD 라데온은 그럭저럭 잘 지원하는 편이나 게임마다 호환성 문제가 있고, 인텔 GPU에서 가장 잘 돌아간다.
또 Waydroid는 32비트 환경도 지원 한다고 하지만 실질적으로는 64비트 전용이다. 이는 Waydroid의 일부 패키지가 64비트만 있기 때문이다. 이론적으로는 32비트에서 Waydroid를 구동하려면 설치되지 않는 패키지를 일일히 소스 코드를 다운로드한 다음 컴파일 하고 설치하야 되지만 어려운건 둘째치고 버그가 많아서 어렵다.[8] 그리고 더 큰 문제는, 32비트에서는 libhoudini가 지원이 안되어서 ARM 전용 앱이 실행이 안된다.
다만 이런 단점들에도 불구하고 압도적인 호환성과 속도 때문에 Waydroid에 대한 설치 시도는 꾸준히 존재하고 있다. 위에서 언급된 단점들도 컴덕이 좋은 컴퓨터에서 시간과 노력을 들이면 해결되는 문제이기 때문이다. 그나마 세팅이 쉽고 정보를 구하기 쉬운 Ubuntu 계열에서 Waydroid 세팅 성공기 및 강좌가 많은 편이다.
4. 여담
Scrcpy를 설치하면 Waydroid의 홈 화면을 띄워준다.리눅스 기반에서라면 전부 돌아가기 때문에 Steam Deck이나 리눅스 스마트폰에서도 정상적으로 돌아간다. 다만 속도 저하가 있기 때문에 당연히 Android를 설치하는 것보다는 속도가 느리다. 특히 Steam Deck에서는 설치 스크립트 따위가 Github에서 배포되는게 많은데, 이걸 이용하면 위에서 언급한 복잡한 설치 과정을 상당수 스킵할 수 있다.
구글 플레이스토어에서만 앱 설치가 되는 것은 아니고, Aurora Store를 설치하면 Waydroid의 Play 스토어에서 설치를 못 하는 애플리케이션도 설치 가능하다. 또한 apk 파일이 있다면 스토어를 거치지 않고 수동으로 앱을 설치하는 기능도 Waydroid에서 지원하고 있다.
[1] 즉 Waydroid는 안드로이드 에뮬레이터가 아니다. Docker와 비슷한 케이스로 컨테이너를 이용한 가상화 프로그램으로 분류된다.[2] 이후 마이크로소프트가 Windows Subsystem for Android 개발에 손을 떼기로 결정함으로써, 윈도우에서의 제대로 된 안드로이드 앱 지원은 물 건너가게 되었다.[3] 참고로 2024년 기준 리눅스를 데스크톱에서 쓰는 점유율은 통계에 따라 다르지만 4~5% 이며 국내에서는 1% 정도로 적은 편이다. 그나마 이게 과거보다 높아진 편이고, 과거에는 이것보다도 더 낮았다.[4] 지금은 편해진 편이고, 과거에는 설치 패키지도 훨씬 복잡하고 많은데다, Arch Linux 계열이나 openSUSE 등의 리눅스 배포판에서는 덤으로 '특정 커널 버전을 설치해야 Waydroid 실행이 가능했다. 다행이 지금은 이러지 않아도 되서 상대적으로 쉬워진 편.[5] 이걸 안한다면, ARM 앱이 설치가 안되고, 인터넷도 안되고, 플레이스토어도 못들어간다. 때문에 이런 귀찮은 후작업까지 해야 하는 것.[6] 이건 컨네이너 기술의 공통점인데, 더 유명하고 널리 쓰이는 Docker도 CPU가 좋아야 잘돌아가는 편이다. 다만 Docker 쪽은 GPU 성능도 끌어낼 수 있도록 개발자들이 노력하고 있는데, Waydroid는 아직 그럴 정도 여유는 없고 안정화에 집중하는 것으로 보인다.[7] 엔비디아와 리눅스 진영의 싸움의 역사를 보고 싶다면 Wayland 문서와 NVIDIA/논란 및 사건 사고 문서를 참고하자.[8] 덤으로, 이 패키지들을 업데이트하고 싶으면 매번 다시 컴파일하고 디버깅해야 한다.