TopGit
Đánh giá repo GitHub

Docker-Android: Trình giả lập Android trong Docker

budtmo/docker-android
DTopGit review image for budtmo/docker-android
Review by Topgit.dev for budtmo/docker-android, with GitHub repository stats and README context.
Nhận định nhanh

Docker-Android đóng gói trình giả lập Android, quyền truy cập ADB, và giao diện xem qua noVNC vào một container Docker duy nhất, nên bạn dựng máy ảo mà không cần đụng tới Android Studio. Hãy chọn nếu bạn cần trình giả lập dùng-rồi-bỏ để chạy trong pipeline CI hoặc trên server headless. Bỏ qua nếu bạn dùng Windows/macOS mà chưa có máy ảo Ubuntu, hoặc cần Android 15/16 — hai bản đó chỉ có trong Docker-Android-Pro trả phí.

Sao
★ 15.6k
Fork
⑂ 1.7k
Ngôn ngữ
Python
Giấy phép
Xem trong repo
Chủ đề
Mobile
Cập nhật
Aug 2026
Trang chủ
GitHub

Docker-Android là gì?

Docker-Android là một image Docker đóng gói sẵn trình giả lập Android cùng noVNC, nhờ đó bạn xem và điều khiển thiết bị ảo ngay trên trình duyệt thay vì mở Android Studio. Dự án cung cấp tag image cho Android 9.0 đến 14.0 (API 28-34) cùng một bản dựa trên Genymotion, và mở cổng ADB cho công cụ bên ngoài kết nối. Theo README, Docker-Android nhắm tới việc build project Android và chạy UI test hoặc unit test với Appium, Espresso.

Tính năng chính cho phát triển và test Android

  • Nhiều skin thiết bị cho điện thoại và tablet — từ Samsung Galaxy S10 đến Nexus One, cộng thêm tablet Nexus 7 và Pixel C, theo danh sách thiết bị trong README.
  • noVNC ngay trên trình duyệt — kết nối tới http://localhost:6080 để xem và thao tác với trình giả lập mà không cần client VNC riêng.
  • Chia sẻ log qua giao diện web, nên đọc log container mà không cần shell vào bên trong.
  • Kết nối ADB từ host, cho phép gắn các công cụ Android sẵn có vào trình giả lập trong container.
  • Tích hợp Genymotion Cloud trên AWS, GCP và Alibaba Cloud, theo README.
  • Các tag image trải từ Android 9.0 đến 14.0 (API 28-34), mỗi tag còn gắn theo phiên bản release cụ thể nếu bạn cần build tái lập được.
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao

Các trường hợp sử dụng phổ biến của Docker-Android

  • Build project Android ngay trong container thay vì dùng toolchain cục bộ riêng.
  • Chạy UI test với Appium nhắm vào trình giả lập.
  • Điều khiển trình giả lập Android từ máy host qua ADB.
  • Giả lập SMS trên trình giả lập để test luồng ứng dụng.
  • Gắn container vào pipeline Jenkins cho CI.
  • Deploy lên Azure, AWS hoặc GCP, theo tài liệu use case về cloud trong README.

Cài đặt Docker-Android

Cài Docker-Android không cần gì ngoài Docker trên host — đó là yêu cầu duy nhất README liệt kê. Vướng mắc nằm ở hệ điều hành: image chỉ chạy trên Ubuntu, nên người dùng macOS và Windows cần một máy ảo chạy Ubuntu có bật virtualization bên dưới. Kiểm tra máy có hỗ trợ virtualization trước khi pull image: chạy `sudo apt install cpu-checker` rồi `kvm-ok`. Sau đó chọn một tag image trình giả lập, ví dụ `budtmo/docker-android:emulator_11.0`, và chạy với `--device /dev/kvm` để trình giả lập dùng được tăng tốc phần cứng.

Chạy container trình giả lập Android

Lệnh chạy container mẫu từ README trông như thế này: `docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S10" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_11.0`. Sau khi container chạy, mở `http://localhost:6080` trên trình duyệt để xem trình giả lập qua noVNC, và chạy `docker exec -it android-container cat device_status` để kiểm tra thiết bị đã boot xong chưa. Dữ liệu không tồn tại qua lần restart. README nói rõ thiết bị ảo bị xóa khi container restart, trừ khi bạn mount volume vào `/home/androidusr`, ví dụ `docker run -v data:/home/androidusr budtmo/docker-android:emulator_11.0`.

Điểm mạnh

  • Mười hai profile và skin thiết bị, từ Samsung Galaxy S10 đến Nexus One, nên bạn không bị bó vào một chiếc điện thoại ảo duy nhất.
  • noVNC nghĩa là bạn xem trình giả lập chạy từ bất kỳ trình duyệt nào — không cần client VNC, không cần X server trên laptop.
  • ADB được mở ra host, nên bộ test Appium/Espresso sẵn có của bạn trỏ vào container như một thiết bị bình thường.
  • Tag image gắn theo cả phiên bản Android lẫn phiên bản release, nên bạn khóa được pipeline CI vào đúng một bản build đã biết là ổn.

So sánh tính năng bản Normal và bản Pro

  • Bản miễn phí không có headless mode — nó luôn hiển thị desktop đồ họa đầy đủ qua noVNC, tính năng headless chỉ có ở bản Pro theo bảng so sánh trong README.
  • Các bản Android mới hơn như 15 và 16 chỉ dành riêng cho Docker-Android-Pro, nên các tag miễn phí dừng lại ở Android 14.0 (API 34).
  • Bản thường không có lệnh chạy với quyền root hay cấu hình proxy/ngôn ngữ ngay khi chạy — những thứ đó cũng nằm sau Docker-Android-Pro, vốn yêu cầu là active sponsor trên GitHub.
  • Chỉ chạy native trên Ubuntu; người dùng macOS và Windows phải thêm một lớp VM chỉ để bắt đầu.
  • Trạng thái trình giả lập bị xóa sau mỗi lần container restart, trừ khi bạn nhớ mount volume vào /home/androidusr.

Cân nhắc Genymotion và các lựa chọn khác

Genymotion — trình giả lập Android thương mại chạy cloud/desktop mà chính Docker-Android tích hợp trên AWS, GCP và Alibaba Cloud, theo README.AVD tích hợp sẵn của Android Studio — lựa chọn cục bộ mặc định nếu bạn không cần container hay giao diện VNC qua trình duyệt.Firebase Test Lab — dịch vụ device farm trên cloud của Google để chạy cùng bộ test trên cả thiết bị thật lẫn thiết bị ảo.BrowserStack App Automate — lựa chọn cloud trả phí khi bạn muốn cả trình giả lập lẫn thiết bị thật mà không phải tự quản lý hạ tầng.

Câu hỏi thường gặp

Docker-Android hỗ trợ những phiên bản Android nào?

Docker-Android cung cấp sẵn image cho Android 9.0 đến 14.0 (API 28-34), cộng thêm một image riêng dựa trên Genymotion, theo bảng danh sách image trong README.

Docker-Android có dùng được trên Windows hoặc macOS không?

Image của Docker-Android chỉ chạy trên Ubuntu, nên người dùng Windows và macOS cần chạy nó bên trong máy ảo Ubuntu có bật virtualization, theo phần Quick Start của README.

Docker-Android so với Genymotion thì thế nào?

Docker-Android tích hợp trực tiếp với Genymotion Cloud thay vì thay thế nó — README mô tả nó tích hợp với Genymotion trên các dịch vụ như Genymotion SAAS, AWS, GCP và Alibaba Cloud, đồng thời có sẵn tag image genymotion riêng.

Docker-Android khác Docker-Android-Pro ở điểm nào?

Docker-Android-Pro là image riêng, chỉ dành cho sponsor, có những tính năng bản thường không có: cấu hình proxy, đổi ngôn ngữ ngay khi chạy, lệnh chạy quyền root, headless mode, tích hợp Selenium 4.x và hỗ trợ các bản Android mới hơn, theo bảng so sánh trong README.

Docker-Android có hỗ trợ lưu dữ liệu lâu dài cho trình giả lập không?

Mặc định Docker-Android xóa thiết bị ảo mỗi khi container restart; để giữ dữ liệu, bạn cần mount volume vào /home/androidusr, theo phần 'Persisting data' trong README.

Docker-Android có hỗ trợ tăng tốc phần cứng trên WSL2 không?

Docker-Android hỗ trợ tăng tốc phần cứng qua WSL2 chỉ trên Windows 11, bằng cách thêm user vào nhóm kvm và bật flag nestedVirtualization trong .wslconfig, theo hướng dẫn WSL2 trong README.

Vấn đề mà Docker-Android giải quyết

Trình giả lập Android thường thiên về giao diện đồ họa — AVD cần desktop, cần GPU, và cần người ngồi click, điều này không hợp với build server hay một laptop bạn đang SSH vào. Docker-Android giải quyết đúng khoảng trống đó: chạy trình giả lập bên trong container mà vẫn cho bạn cách nhìn màn hình — noVNC qua trình duyệt, cộng với ADB mở ra host để công cụ test sẵn có gắn vào. Đây hẹp hơn nhiều so với việc chỉ nói 'test Android khó' — đây cụ thể là bài toán đóng gói: gộp trình giả lập, phụ thuộc GPU/KVM của nó, và một màn hình từ xa vào một image bạn pull được trên CI runner hay máy cloud.

Nên thử — và nên bỏ qua khi nào

Hãy thử Docker-Android nếu bạn chạy UI test Android trong CI và muốn một trình giả lập dùng-rồi-bỏ mà không cần cài Android Studio — đặc biệt hợp với người dùng Jenkins, vì đó là một use case được ghi rõ trong README. Bỏ qua nếu bạn làm phát triển ứng dụng hàng ngày trên laptop Mac hay Windows mà chưa có sẵn máy ảo Ubuntu, hoặc nếu bạn cần đúng Android 15/16, vì hai bản đó chỉ nằm trong image Docker-Android-Pro dành cho sponsor.

Repo liên quan

Nguồn & ghi công

Tổng hợp từ README và metadata của repository budtmo/docker-android trên GitHub (github.com/budtmo/docker-android).

Dữ liệu GitHub · đồng bộ lần cuối 6 thg 8, 2026Đánh giá bởi Henry
Về TopGit