Ứng dụng tức thì là một tính năng chính của 10 tính năng, vì vậy, các ứng dụng tức thì 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ộ tính năng bị hạn chế và chạy trong hộp cát bảo mật có nhiều hạn chế hơn. Do tính chất lan rộng của các hạn chế này, bất kỳ phần nào 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 sự tăng trưởng kích thước của CTS bằng cách tách biệt tập hợp kiểm thử tối thiểu với cổng. 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ử.
Các quy định hạn chế đối với Ứng dụng tức thì
Ứng dụng tức thì không do người dùng cài đặt, vì vậy, ứng dụng này chạy trong một hộp cát bị hạn chế với các hạn chế sau:
- Chỉ có thể chứa một số quyền nhất định.
- Không thể xem các ứng dụng khác trừ phi các ứng dụng đó được đánh dấu là hiển thị 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ị dịch vụ/nhà cung cấp.
- Có thể nhận và gửi kèm các quy tắc đặc biệt liên quan đến thông báo truyền tin.
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. Nhiều hành vi đặc biệt này liên quan đến Ứng dụng tức thì trên toàn bộ nền tảng, vì vậy, cần có 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ả thiết bị trong hệ sinh thái.
Các kiểm thử chạy ở chế độ Ứng dụng tức thì
Không phải mô-đun CTS nào cũng có các bài kiểm thử áp dụng cho Ứng dụng tức thì. Nếu chức năng mà mô-đun kiểm thử có tương tác với máy chủ hệ thống, thì các chương trình kiểm thử này phải được chạy ở chế độ Ứng dụng tức thì. Ví dụ: các chương trình kiểm thử OpenGL không tương tác với máy chủ hệ thống, vì vậy, bạn không cần chạy các chương trình kiểm thử này ở chế độ Ứng dụng tức thì. Trong khi đó, các chương trình kiểm thử hỗ trợ tiếp cận tương tác với máy chủ hệ thống và bạn cần chạy các chương trình kiểm thử này ở chế độ Ứng dụng tức thì.
Ngoài việc xác định mô-đun nào có thể áp dụng, người dùng cần xác định kiểm thử nào trong các mô-đun này có liên quan. Ví dụ: việc kiểm thử hành vi dành riêng cho dịch vụ cho 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 (bao gồm cả nền tảng) trong khi các kiểm thử xác thực hành vi phía ứng dụng lại áp dụng cho chế độ Ứng dụng tức thì. Một ví dụ khác là kiểm thử xác thực các hành vi sau một quyền mà Ứng dụng tức thì không thể giữ là không phù hợp ở 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ị dịch vụ hoặc không xem các ứng dụng khác. Thông thường, các mã này đã được ghi và không cần phải chuyển.
Các lỗi kiểm thử ở chế độ Ứng dụng tức thì
Nếu quá trình kiểm thử không thành công do xác thực chức năng mà Ứng dụng tức thì không thể truy cập, thì quy trình kiểm thử này sẽ không áp dụng ở 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ú giải này cho cấp lớp để loại trừ tất cả các hoạt động 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 gửi lỗi.
Khắc phục sự cố
Nếu kiểm thử không thành công với thông báo Failed to install MyCtsModule.apk on DEVICE (Không cài đặt được MyCtsModule.apk trên DEVICE). Lý do: "-116", tìm thông báo PackageManager trên logcat. Ví dụ: nếu thông báo cho biết Can't replace Full App with Instant App: your_app (Không thể thay thế Ứng dụng đầy đủ bằng Ứng dụng tức thì: your_app), thì trước tiên, adb sẽ gỡ cài đặt ứng dụng của bạn.