Cuttlefish là một thiết bị Android ảo có thể định cấu hình, có thể chạy cả 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 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ã.
- Sao chép 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ì 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ệ:
- 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í đầu vào 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 độ trung thực đầy đủ với khung Android (cho dù đây là AOSP thuần tuý hay 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 phải chờ đợi Cuttlefish phản hồi các hoạt động 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 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, đồng thời chứa nhiều trình nối 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 tạo 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ị chuẩn để thể hiện trạng thái hiện tại của quá trình phát triển AOSP.
Mực 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 phương thức triển khai dành riêng cho phần cứng, bạn nên mong đợi hành vi tương đương về chức năng giữa Cuttlefish và thiết bị thực.
Cuttlefish có thể trợ giúp bạn bằng cách 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ý 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 tế 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.v.
Vì Cuttlefish luôn nỗ lực để đảm bảo độ trung thực đầy đủ của khung, nên bạn có thể sử dụng công cụ này để kiểm thử chức năng của khung hoặc ứng dụng mà không có phần phụ thuộc phần cứng thực tế không thể mô phỏng.
Hiện nay, mực ống thường được dùng để kiểm tra như thế nào?
Sau đây là một số ứng dụng phổ biến của Cuttlefish để kiểm thử:
- CTS
- 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?
Có, Cuttlefish hỗ trợ Google Cloud ngay từ đầu và chúng tôi dự định 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.