Ứng dụng tức thì là tính năng chính của 10, vì vậy điều quan trọng là chúng phải hoạt động bình thường. Ứng dụng tức thì được cài đặt ngầm nên chúng có một bộ khả năng hạn chế và chạy trong 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, bất kỳ phần nào của hệ thống đều có nguy cơ không hoạt động bình thường với Ứng dụng tức thì. Một tập hợp con thử nghiệm CTS được tạo để đảm bảo rằng các hành vi được Ứ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 bộ thử nghiệm tối thiểu sang cổng. CTS chạy ở chế độ Ứng dụng tức thì có nghĩa là cài đặt APK thử nghiệm dưới dạng Ứng dụng tức thì và chạy thử nghiệm.
Hạn chế của ứng dụng tức thì
Ứng dụng tức thì không được người dùng cài đặt nên chúng chạy trong hộp cát bị hạn chế với các 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ừ khi những ứ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 một số cài đặt hệ thống nhất định.
- Chỉ có thể truy cập một số thuộc tính hệ thống nhất định.
- Không thể tiết lộ dịch vụ/nhà cung cấp.
- Có thể nhận và gửi với các quy tắc đặc biệt xung quanh chương trình phát sóng.
Ngoài ra, Ứng dụng tức thì phải chọn tham gia để cho phép hộp cát bảo mật mới bổ sung thêm nhiều hạn chế. Một loạt các hành vi đặc biệt xung quanh Ứng dụng tức thì xuyên suốt toàn bộ nền tảng, do đó cần có cách xác thực rằng Ứng dụng tức thì hoạt động như mong đợi cho tất cả các thiết bị trong hệ sinh thái.
Các thử nghiệm đang chạy ở chế độ Ứng dụng tức thì
Không phải tất cả các mô-đun CTS đều có thử nghiệm áp dụng cho Ứng dụng tức thì. Nếu chức năng được mô-đun kiểm tra có tương tác với máy chủ hệ thống thì các thử nghiệm này sẽ được chạy ở chế độ Ứng dụng tức thì. Ví dụ: kiểm tra OpenGL không tương tác với máy chủ hệ thống nên không cần chạy chúng ở chế độ Ứng dụng tức thì trong khi kiểm tra khả năng truy cập tương tác với máy chủ hệ thống nhưng cần phải chạy chúng ở 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 thử nghiệm nào trong các mô-đun này có liên quan. Ví dụ: kiểm tra hành vi dành riêng cho dịch vụ cho kiến trúc có thể cắm (ví dụ: AccessibilityService) không áp dụng được cho chế độ Ứng dụng tức thì vì Ứng dụng tức thì không thể hiển thị dịch vụ cho các ứng dụng khác (bao gồm cả nền tảng) trong khi kiểm tra xác thực hành vi phía ứng dụng là áp dụng cho chế độ Ứng dụng tức thì. Một ví dụ khác là 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ữ được và không liên quan trong chế độ Ứng dụng tức thì. Có một bộ thử nghiệm chỉ áp dụng cho Ứng dụng tức thì nhằm xác thực các quy tắc về cách chúng hoạt động, chẳng hạn như không hiển thị các dịch vụ hoặc không nhìn thấy các ứng dụng khác. Thông thường, những thứ này đã được viết sẵn và không yêu cầu chuyển.
Kiểm tra lỗi ở chế độ Ứng dụng tức thì
Nếu thử nghiệm 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ì thử nghiệm đó không áp dụng được ở chế độ Ứng dụng tức thì. Đánh dấu thử nghiệm chỉ chạy ở chế độ Ứng dụng đầy đủ bằng cách chú thích nó 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 bài kiểm tra trong đó.
Nếu quá trình kiểm tra không thành công do một số chức năng có thể truy cập vào Ứng dụng tức thì bị hỏng, hãy gửi lỗi .
Xử lý sự cố
Nếu thử nghiệm của bạn không thành công với lỗi Cài đặt MyCtsModule.apk trên THIẾT BỊ không thành công. Lý do: '-116' , hãy tìm thông báo PackageManager trên logcat. Ví dụ: nếu thông báo 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.