CTS cho Ứng dụng tức thì

Ứng dụng tức thì là một tính năng chính của Android 10, vì vậy, điều quan trọng là các ứng dụng này phải hoạt động đúng cách. Ứng dụng tức thì được cài đặt ngầm, vì vậy, chúng có một bộ khả năng hạn chế và chạy trong một hộp cát bảo mật hạn chế hơn. Do tính chất phổ biến của những hạn chế này, mọi phần của hệ thống đều có nguy cơ không hoạt động đúng cách với Ứng dụng tức thì. Một tập hợp con kiểm thử CTS được tạo để đảm bảo rằng các hành vi mà Ứng dụng tức thì cho phép đang hoạt động. Ý tưởng chính là giảm thiểu mức tăng kích thước của CTS bằng cách tách biệt bộ kiểm thử tối thiểu cần chuyển. CTS chạy ở chế độ Ứng dụng tức thì có nghĩa là cài đặt APK kiểm thử dưới dạng Ứng dụng tức thì và chạy các bài kiểm thử.

Hạn chế đối với Ứng dụng tức thì

Người dùng không cài đặt Ứng dụng tức thì, nên các ứng dụng này chạy trong một hộp cát bị hạn chế với những hạn chế sau:

  • Chỉ có thể giữ một số quyền nhất định.
  • Không thể xem các ứng dụng khác, trừ phi những ứng dụng đó được đánh dấu là có thể xem được đối với Ứng dụng tức thì.
  • Chỉ có thể truy cập vào một số chế độ cài đặt hệ thống nhất định.
  • Chỉ có thể truy cập vào một số thuộc tính hệ thống nhất định.
  • Không thể hiển thị các dịch vụ/nhà cung cấp.
  • Có thể nhận và gửi tin nhắn theo các quy tắc đặc biệt liên quan đến chương trình phát sóng.

Ngoài ra, Ứng dụng tức thì phải chọn cho phép hộp cát bảo mật mới thêm các hạn chế khác. Hàng loạt hành vi đặc biệt liên quan đến Ứng dụng tức thì này cắt ngang toàn bộ nền tảng, vì vậy, cần có một cách để xác thực rằng Ứng dụng tức thì hoạt động như mong đợi đối với tất cả các thiết bị trong hệ sinh thái.

Các kiểm thử đang chạy ở chế độ Ứng dụng tức thì

Không phải mô-đun CTS nào cũng có các kiểm thử áp dụng cho Ứng dụng tức thì. Nếu chức năng được kiểm thử bằng mô-đun có tương tác với máy chủ hệ thống, thì các kiểm thử này phải được chạy ở chế độ Ứng dụng tức thì. Ví dụ: các kiểm thử OpenGL không tương tác với máy chủ hệ thống nên bạn không cần chạy các kiểm thử này ở chế độ Ứng dụng tức thì, trong khi các kiểm thử khả năng hỗ trợ tương tác với máy chủ hệ thống nên bạn cần chạy các kiểm thử này ở chế độ Ứng dụng tức thì.

Ngoài việc xác định những mô-đun nào có thể áp dụng, người dùng cần xác định những kiểm thử nào trong các mô-đun này là phù hợp. Ví dụ: việc kiểm thử các hành vi dành riêng cho dịch vụ đối với một cấu trúc có thể cắm (ví dụ: AccessibilityService) không áp dụng cho chế độ Ứng dụng tức thì vì Ứng dụng tức thì không thể hiển thị các dịch vụ cho các ứng dụng khác (kể cả nền tảng) trong khi các kiểm thử xác thực hành vi phía ứng dụng có thể áp dụng cho chế độ Ứng dụng tức thì. Một ví dụ khác là một thử nghiệm xác thực các hành vi đằng sau một quyền mà Ứng dụng tức thì không thể giữ không liên quan trong chế độ Ứng dụng tức thì. Có một bộ kiểm thử chỉ áp dụng cho Ứng dụng tức thì để xác thực các quy tắc về cách ứng dụng hoạt động, ví dụ: không hiển thị các dịch vụ hoặc không thấy các ứng dụng khác. Thông thường, các hàm này đã được viết và không yêu cầu chuyển.

Các lần kiểm thử thất bại ở chế độ Ứng dụng tức thì

Nếu kiểm thử không thành công vì xác thực chức năng mà Ứng dụng tức thì không truy cập được, thì kiểm thử đó không áp dụng được ở chế độ Ứng dụng tức thì. Đánh dấu kiểm thử để chỉ chạy ở chế độ Ứng dụng đầy đủ bằng cách chú thích kiểm thử đó bằng @AppModeFull. Bạn có thể áp dụng chú thích này cho cấp lớp để loại trừ tất cả các kiểm thử trong đó.

Nếu kiểm thử không thành công do một số chức năng mà Ứng dụng tức thì có thể truy cập bị hỏng, hãy báo cáo lỗi.

Khắc phục sự cố

Nếu kiểm thử của bạn không thành công với thông báo Failed to install MyCtsModule.apk on DEVICE. Lý do: "-116", hãy tìm thông báo PackageManager trên logcat. Ví dụ: nếu thông báo có nội dung Không thể thay thế Ứng dụng đầy đủ bằng Ứng dụng tức thì: your_app, thì trước tiên, hãy gỡ cài đặt ứng dụng của bạn bằng adb.