Thiết bị Android ảo

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

Mục tiêu về con mực

  • Giúp nhà phát triển ứng dụng và nền tảng không bị phụ thuộc vào phần cứng vật lý để phát triển và xác thực các thay đổi đối với mã.
  • Nhân bản hành vi dựa trên khung của một thiết bị thực, tập trung vào độ chân thực cao bằng cách duy trì căn chỉnh gần với khung cốt lõi.
  • Hỗ trợ mọi cấp độ API sau ngày 28.
  • Cung cấp 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 tế.
  • Bật tỷ lệ:

    • Hỗ trợ chạy song song nhiều thiết bị.
    • Cho phép thực thi kiểm thử đồng thời với độ trung thực cao với chi phí nhập thấp hơn.
  • Cung cấp một thiết bị có thể định cấu hình có khả năng điều chỉnh kiểu dáng, RAM, CPU, v.v.

So sánh mực nang với các thiết bị khác

Mực ống 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 độ trung thực đầy đủ với khung Android (cho dù đây là AOSP thuần tuý hay phương thức 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 phải chờ đợi Cuttlefish phản hồi các tương tác của mình ở 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 thuần tuý hoặc tuỳ chỉnh.

Trình mô phỏng Android được xây dựng xoay quanh trường hợp sử dụng giúp việc phát triển ứng dụng trở nên dễ dàng, đồng thời chứa nhiều hook về 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 nhiều 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 của mì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ị chuẩn để thể hiện trạng thái phát triển AOSP hiện tại.

Mực nang và thiết bị thực

Điểm khác biệt chính giữa thiết bị ảo Cuttlefish và thiết bị thực 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 phần cứng tuỳ chỉnh bất kỳ. Ngoại trừ các cách triển khai dành riêng cho phần cứng, bạn nên dự kiến hành vi chức năng tương đương giữa Cuttlefish và thiết bị thực tế.

Mực ống có thể giúp bạn như thế nào?

Bạn có thể tương tác với Mực ống giống như cách tương tác với mọi thiết bị Android khác mà bạn có thể dùng để gỡ lỗi. Thiết bị này sẽ tự đăng ký làm một thiết bị thông thường qua adb và bạn có thể tương tác với thiết bị đó như một thiết bị thực qua máy tính từ xa. Các trường hợp sử dụng có phạm vi rộ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 cố gắng đạt được độ trung thực khung đầy đủ, nên bạn có thể dùng công cụ này để kiểm thử chức năng của khung hoặc ứng dụng khi không có phần phụ thuộc phần cứng thực tế nào không thể mô phỏng.

Hiện nay, mực nang thường được dùng để kiểm tra như thế nào?

Một số ứng dụng phổ biến của mực nang để thử nghiệm bao gồm:

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

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

Đúng vậy, Mực ống vốn hỗ trợ Google Cloud và đã có kế hoạch 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 thực thể cá chép xanh dựa trên AOSP (Dự án nguồn mở Android), hãy xem bài viết Sử dụng Cuttlefish.