최근 수정 시각 : 2024-12-26 20:13:13

Waydroid

파일:waydroid_logo.svg

공식 사이트 | 소스코드

1. 개요

리눅스에서 안드로이드 앱을 실행할 수 있도록 하는 오픈 소스 컨테이너 기술이다.[1] 이전에는 anbox-halium이라는 이름으로 알려졌었다.

2. 상세

윈도우 11보다도 먼저 제대로 된 안드로이드 앱 지원을 데스크탑 OS에 추가했다.[2] 리눅스 컨테이너 방식으로 풀 안드로이드 시스템을 부팅하며 Wayland에 직접적으로 그래픽 버퍼를 그린다. 덕분에 속도 저하가 거의 없이 매우 빠르고 호환성도 좋은 게 특징이다. 2024년 기준으로 안정화가 되어서 이미 게임을 포함한 많은 앱들을 안정적으로 돌릴 수 있다. 원신, 모바일 배그를 비롯한 여러 고사양 게임들도 잘 호환된다. #

WSL을 사용하면 윈도우에서도 Waydroid로 안드로이드 앱을 실행하는 것이 가능하기는 하다. # 다만 이런 것도 가능하다는 것을 보여준 것일 뿐이고 아직은 써먹을 단계는 아니다. 애초에 리눅스 용으로 개발되었기 때문에 제대로된 호환성과 속도를 바란다면 리눅스에서 써야 한다.

ARM에서만 구동되는 어플리케이션도 x86환경에서 실행되게 만드는 기능도 있다. 다만 이는 Waydroid에 기본적으로 포함된 기능은 아니라서 libhoudini나 libndk같은 추가 라이브러리를 설치해야 하고 속도도 살짝 떨어진다. 공식 홈페이지에서 추천하는 방법은 waydroid_script라는 Python 스크립트를 이용해 libndk를 설치하는 것을 권장한다. libhoudini는 Windows Subsystem for Android에서, libndk는 Chromium OS에서 추출했다고 하는데, 전자가 지원이 종료됨에 따라 점차 libndk 사용이 대세가 되어가고 있다.[3]

3. 단점

위의 속도와 호환성 등의 장점에도 불구하고 Waydroid를 실사용으로 쓰는 사람이 많지는 않은데, 그 이유로 Waydroid의 설치와 업데이트가 어렵다는 단점이 있기 때문이다. 공식 홈페이지의 설명서#에 설치하는 방법이 친절히 정리되어 있어 이대로 하면 되기는 하는데, 그나마 설치가 쉬운 debian 계열과 fedora 계열 리눅스에서는 패키지를 많이 설치해서 귀찮고 오래걸리는 것만 참으면 일단 Waydroid가 되기는 된다. 반면에 arch 계열이나 opensuse 리눅스에서는 여기다 덤으로 커널을 삭제하고 특정 버전으로 새로 설치해야 Waydroid 실행이 가능하다.

여기서 끝난게 아니라 추가적으로 구글 인증, 인터넷 연결, libhoudini 또는 libndk 설치까지 해야한다.[4] 문제는 이런 설치 및 세팅 방법에 대해 친절한 공식 강좌 따위는 없고, 전부 영어로 되어있고 자료도 여기저기 흩어져 있다. 리눅스를 써본적 없고 검색도 알아서 잘하지 못하면 사실상 설치가 불가능한 수준으로 진입장벽이 높은 셈이다. 최근 블루스택같은 가상머신의 경우 설치만 하면 바로 사용할 수 있을 정도로 사용성이 편한 것과 비교해보면, Waydroid의 높은 설치 진입장벽이 꽤 심한 단점이라고 할 수 있다.

또 다른 단점으로는, Waydroid가 돌아가려면 컴퓨터 사양이 어느 정도 되어야 한다. 공식적으로 명시된 컴퓨터 최저 요구 사양은 없지만, ATOM 프로세서 같은 저사양 태블릿 PC나 미니 pc에서 돌리면 느려서 속 터진다(...) Waydroid가 가상머신은 아니고 Docker 비슷한 컨테이너 기술의 일종이라지만, 여전히 앱을 여러개 돌리는 순간 CPU 사용률이 치솟는 모습을 볼 수 있다. 참고로 Waydroid는 본격적인 가상머신인 블루스택이나 Windows Subsystem for Android보다는 원활하게 돌아가는 편이다. 즉 Waydroid가 제대로 못돌아갈만큼 성능이 안좋은 컴퓨터에서는 본격적인 안드로이드 가상머신은 아예 못돌린다고 볼 수 있다.

그렇다고 컴퓨터의 성능만 좋기만 해서는 안되고 부품 종류도 가린다. 엔비디아 GPU를 지원하지 않는 점도 Waydroid의 큰 문제점이다. 정확히 말하자면 Waydroid는 엔비디아 GPU에서 되기는 하는데, 소프트웨어 렌더링 등의 꼼수를 쓰는지라 세팅하는 것이 한층 더 복잡해진다. 게다가 공식적으로는 미지원이고 일종의 꼼수를 써서 되게 하는 것이기 때문에, 이로 인해 생기는 성능 저하 및 호환성 저하도 감수해야 한다.[5]

사소한 단점이지만, Waydroid는 최신 리눅스 환경에서만 작동되는 것을 전제로 개발되었기 때문에 다른 환경에서는 작동되지 않는 경우가 많다. 예를 들어, Waydroid는 그래픽 리눅스 프로토콜 중 Wayland 사용을 전제로 개발되었기에 X11 환경에서는 작동하지 않는다. 이를 반영하듯 기술의 이름부터가 Waydroid다. Wayland 환경만 지원하겠다는 강력한 의지가 보이는 네이밍 센스라고 할 수 있다. 본인이 로그인한 리눅스 환경이 Wayland인지 X11인지 확인하고 사용하도록 하자. 다만, X11 환경에서도 Weston을 이용하면 Waydroid이 되기는 한다고 한다. 실제로 X11 환경인 하모니카 리눅스 등지에서 Waydroid 구동에 성공한 사람도 상당히 많다.

또 Waydroid는 32비트 환경도 지원 한다고 하지만 실질적으로는 64비트 전용이다. 이는 Waydroid의 일부 패키지가 64비트만 있기 때문이다. 이론적으로는 32비트에서 Waydroid를 구동하려면 설치되지 않는 패키지를 일일히 소스 코드를 다운로드한 다음 컴파일 하고 설치하야 되지만 어려운건 둘째치고 버그가 많아서 어렵다.[6] 그리고 더 큰 문제는, 32비트에서는 libhoudini가 지원이 안되어서 ARM 전용 앱이 실행이 안된다.

다만 이런 단점들에도 불구하고 압도적인 호환성과 속도 때문에 Waydroid에 대한 설치 시도는 꾸준히 존재하고 있다. 위에서 언급된 단점들도 컴덕이 좋은 컴퓨터에서 시간과 노력을 들이면 해결되는 문제이기 때문이다. 그나마 세팅이 쉬운 Ubuntu 계열에서 Waydroid 세팅 성공기 및 강좌가 많은 편이다.

4. 여담

Scrcpy를 설치하면 Waydroid의 홈 화면을 띄워준다.

리눅스 기반에서라면 전부 돌아가기 때문에 Steam Deck이나 리눅스 스마트폰에서도 정상적으로 돌아간다. 다만 속도 저하가 있기 때문에 당연히 Android를 설치하는 것보다는 속도가 느리다.

구글 플레이스토어에서만 앱 설치가 되는 것은 아니고, Aurora Store를 설치하면 Waydroid의 Play 스토어에서 설치를 못 하는 애플리케이션도 설치 가능하다. 또한 apk 파일이 있다면 스토어를 거치지 않고 수동으로 앱을 설치하는 기능도 Waydroid에서 지원하고 있다.


[1] 즉 Waydroid는 안드로이드 에뮬레이터가 아니다. Docker와 비슷한 케이스로 컨테이너를 이용한 가상화 프로그램으로 분류된다.[2] 이후 마이크로소프트가 Windows Subsystem for Android 개발에 손을 떼기로 결정함으로써, 윈도우에서의 제대로 된 안드로이드 앱 지원은 물 건너가게 되었다.[3] 일단 아치 리눅스 위키에 따르면 2024년 기준으로 libhoudini가 Intel CPU에서, libnk가 AMD CPU에서 호환성이 좋고 어플리케이션에 따라 하나에서만 되는 경우가 있어서 둘다 시도해야 하는 경우도 있다고 한다.[4] 이런걸 안해도 쓸 수 있기는 한데, 그러면 ARM 앱도 설치 불가이고 인터넷도 안되고 플레이스토어도 못들어간다. 때문에 이런 귀찮은 후작업까지 해야 하는 것.[5] 참고로 엔비디아 GPU는 리눅스 진영에서 고질적인 드라이버 문제가 존재하며, 독점 드라이버를 쓰면 그나마 낫기는 하지만 Waydroid같은 오픈소스 프로젝트에서는 오픈소스 드라이버를 쓸 것을 전제로 프로그램을 만들기 때문에 문제가 해결되지 않는 중이다. 엔비디아에서 오픈소스 드라이버 개발에 적극적이지가 않아서 사용자들이 알아서 개발하고 알아서 세팅해야 하는 상황이기 때문이다. 엔비디아와 리눅스 진영의 싸움의 역사를 보고 싶다면 Wayland 문서와 NVIDIA/논란 및 사건 사고 문서를 참고하자.[6] 덤으로, 이 패키지들을 업데이트하고 싶으면 매번 다시 컴파일하고 디버깅해야 한다.