Thiết bị Android ảo Cuttlefish

Cuttlefish là một thiết bị ảo chạy Android có thể định cấu hình, có thể chạy từ xa (bằng cách sử dụng các dịch vụ đám mây của bên thứ ba như Google Cloud Engine) và cục bộ (trên các máy Linux x86 và ARM64).

Mục tiêu của Cuttlefish

  • Giải phóng nhà phát triển nền tảng và nhà phát triển ứng dụng khỏi việc phụ thuộc vào phần cứng thực để phát triển và xác thực các thay đổi về mã.
  • Sao chép hành vi dựa trên khung của một thiết bị thực tế, tập trung vào độ trung thực cao bằng cách duy trì sự liên kết chặt chẽ với khung cốt lõi.
  • Hỗ trợ tất cả cấp độ API sau 28.
  • Cung cấp mức độ chức năng nhất quán trên các cấp độ API, phù hợp với hành vi trên phần cứng thực.
  • Bật tỷ lệ kích thước:

    • Cung cấp khả năng chạy song song nhiều thiết bị.
    • Cho phép thực thi phiên chạy thử nghiệm đồng thời với độ trung thực cao với chi phí tham gia thấp hơn.
  • Cung cấp một thiết bị có thể định cấu hình với khả năng điều chỉnh những thứ như kiểu dáng, RAM và CPU.

So sánh Cuttlefish với các thiết bị khác

Phần này so sánh Cuttlefish với các thiết bị khác.

Cuttlefish và Trình mô phỏng Android

Có nhiều điểm tương đồng với Trình mô phỏng Android, nhưng Cuttlefish có độ trung thực cao với Khung Android (cho dù đây là AOSP thuần tuý hay một cách triển khai tuỳ chỉnh trong cây của riêng bạn). Trong ứng dụng thực tế, điều này có nghĩa là bạn nên dự kiến Cuttlefish sẽ phản hồi các hoạt động tương tác của bạn ở cấp hệ điều hành giống như một mục tiêu điện thoại thực được tạo bằng cùng một nguồn hệ điều hành Android tuỳ chỉnh hoặc thuần tuý.

Trình mô phỏng Android được xây dựng dựa trên trường hợp sử dụng giúp việc phát triển ứng dụng trở nên dễ dàng và có nhiều hook chức năng để thu hút các trường hợp sử dụng của nhà phát triển ứng dụng Android. Điều này có thể gây ra khó khăn nếu bạn muốn tạo một trình mô phỏng bằng khung Android tuỳ chỉnh. Nếu bạn cần một thiết bị ảo đại diện cho mã nền tảng hoặc khung tuỳ chỉnh hoặc Android mới nhất, thì Cuttlefish là một lựa chọn ảo lý tưởng. Cuttlefish là thiết bị chuẩn tắc để biểu thị trạng thái hiện tại của quá trình phát triển AOSP.

Cuttlefish và thiết bị thực

Sự khác biệt chính giữa thiết bị ảo Cuttlefish và thiết bị thực của bạn là ở cấp độ lớp trừu tượng phần cứng (HAL), cũng như mọi phần mềm tương tác với bất kỳ phần cứng tuỳ chỉnh nào. Ngoại trừ các triển khai dành riêng cho phần cứng, bạn nên dự kiến hành vi tương đương về chức năng giữa Cuttlefish và một thiết bị thực.

Cách Cuttlefish có thể giúp bạn

Bạn có thể tương tác với Cuttlefish giống như cách bạn tương tác với mọi thiết bị Android khác mà bạn có thể dùng để gỡ lỗi. Nó tự đăng ký dưới dạng một thiết bị thông thường với adb và bạn có thể tương tác với thiết bị này như một thiết bị thực bằng máy tính từ xa. Các trường hợp sử dụng rất đa dạng và có thể bao gồm kiểm thử ứng dụng, kiểm thử bản dựng hệ thống tuỳ chỉnh, v.v.

Vì Cuttlefish hướng đến độ trung thực của toàn bộ khung, nên bạn có thể dùng Cuttlefish để kiểm tra về mặt hoạt động của khung hoặc ứng dụng mà không có phần cứng thực tế nào không thể mô phỏng.

Cách Cuttlefish được dùng để kiểm thử hiện nay

Sau đây là một số ứng dụng phổ biến của Cuttlefish để kiểm thử:

  • CTS
  • Tuân thủ quy định
  • Kiểm thử tích hợp liên tục
  • Bộ kiểm thử tuỳ chỉnh

Lưu trữ Cuttlefish trên đám mây

Cuttlefish hỗ trợ Google Cloud một cách tự nhiên và chúng tôi dự kiến sẽ hỗ trợ các nền tảng đám mây khác.

Bắt đầu

Để biết hướng dẫn về cách tạo một thực thể Cuttlefish dựa trên AOSP, hãy xem phần Sử dụng Cuttlefish.