Thiết bị Android ảo Cuttlefish

Cuttlefish là một thiết bị Android ảo có thể định cấu hình, có thể chạy từ xa (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 với trọng tâm là độ chân thực cao bằng cách duy trì sự phù hợp chặt chẽ với khung cốt lõi.
  • Hỗ trợ tất cả cá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:

    • Cho phép chạy song song nhiều thiết bị.
    • Cho phép thực thi kiểm thử đồng thời với độ chân thực cao ở mức chi phí 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 kiểu dáng, RAM, CPU, v.v.

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 đảm bảo độ chân thực đầy đủ 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 kỳ vọng Cuttlefish sẽ phản hồi các 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 xây dựng bằng cùng một nguồn hệ điều hành Android thuần tuý hoặc tuỳ chỉnh.

Trình mô phỏng Android được xây dựng dựa trên trường hợp sử dụng giúp phát triển ứng dụng dễ dàng và chứa 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 thách thức nếu bạn muốn xây dựng 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/khung tuỳ chỉnh hoặc Android đầu cây, thì Cuttlefish là một lựa chọn ảo lý tưởng. Đây là thiết bị chính tắc để đại diện cho 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 cách triển khai dành riêng cho phần cứng, bạn nên kỳ vọng hành vi tương đương về mặt chức năng giữa Cuttlefish và một thiết bị thực.

Cuttlefish có thể giúp gì?

Bạn có thể tương tác với Cuttlefish giống như với bất kỳ thiết bị Android nào khác mà bạn có thể sử dụng để gỡ lỗi. Thiết bị này sẽ tự đăng ký dưới dạng một thiết bị thông thường thông qua 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 thông qua 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à nhiều trường hợp khác.

Vì Cuttlefish cố gắng đạt được độ trung thực đầy đủ của khung, nên bạn có thể sử dụng thiết bị này để kiểm tra về mặt hoạt động của khung hoặc ứng dụng mà không có các phần phụ thuộc vào phần cứng thực không thể mô phỏng.

Ngày nay, Cuttlefish thường được dùng để kiểm thử như thế nào?

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

  • CTS (Bộ kiểm tra tính tương thích)
  • Tuân thủ khung
  • Kiểm thử tích hợp liên tục
  • Bộ kiểm thử tuỳ chỉnh

Tôi có thể lưu trữ Cuttlefish trên đám mây không?

Có, Cuttlefish hỗ trợ Google Cloud một cách tự nhiên và chúng tôi dự định hỗ trợ các nền tảng đám mây khác.

Bắt đầu

Để được hướng dẫn về cách tạo một thực thể Cuttlefish dựa trên AOSP, hãy xem bài viết Sử dụng Cuttlefish.