Hazır Uygulamalar, 10'un temel özelliklerinden biridir. Bu nedenle, düzgün şekilde çalışması gerekir. Anlık uygulamalar örtülü olarak yüklendiğinden, sınırlı bir özellik grubuna sahiptir ve daha kısıtlayıcı bir güvenlik korumalı alanında çalışır. Bu kısıtlamaların yaygın olması nedeniyle, sistemin herhangi bir bölümü Anında Uygulamalar ile düzgün çalışmama riski taşır. Hazır Uygulamalar'ın izin verdiği davranışların çalıştığından emin olmak için bir CTS test alt kümesi oluşturulur. Buradaki temel fikir, taşınacak minimum test grubunu izole ederek CTS'nin boyut artışını en aza indirmektir. CTS'nin hazır uygulamalar modunda çalıştırılması, test APK'sının hazır uygulama olarak yüklenmesi ve testlerin çalıştırılması anlamına gelir.
Hazır Uygulama kısıtlamaları
Hazır Uygulamalar kullanıcı tarafından yüklenmediği için aşağıdaki kısıtlamalarla birlikte kısıtlı bir sanal alanda çalışır:
- Yalnızca belirli izinleri alabilir.
- Bu uygulamalar, hazır uygulamalar tarafından görünür olarak işaretlenmediği sürece diğer uygulamaları göremez.
- Yalnızca belirli sistem ayarlarına erişebilir.
- Yalnızca belirli sistem özelliklerine erişebilir.
- Hizmetler/sağlayıcılar kullanıma sunulamaz.
- Yayınlarla ilgili özel kurallar çerçevesinde mesaj alıp gönderebilir.
Ayrıca, Anında Uygulamalar'ın yeni güvenlik korumalı alanının daha fazla kısıtlama eklemesine izin vermesi gerekir. Hazır Uygulamalarla ilgili bu geniş kapsamlı özel davranışlar tüm platformu etkilediğinden, ekosistemdeki tüm cihazlarda Hazır Uygulamaların beklendiği gibi çalıştığını doğrulamanın bir yolu olmalıdır.
Hazır Uygulamalar modunda çalışan testler
Tüm CTS modüllerinde Anında Uygulamalar için geçerli testler yoktur. Modül tarafından test edilen işlevsellik sistem sunucusuyla etkileşimde bulunuyorsa bu testler Anında Uygulamalar modunda çalıştırılmalıdır. Örneğin, OpenGL testleri sistem sunucusuyla etkileşimde bulunmadığı için bu testlerin Anında Uygulamalar modunda çalıştırılması gerekmez. Erişilebilirlik testleri ise sistem sunucusuyla etkileşimde bulunduğundan bu testlerin Anında Uygulamalar modunda çalıştırılması gerekir.
Kullanıcıların, hangi modüllerin geçerli olduğunu belirlemenin yanı sıra bu modüllerdeki hangi testlerin alakalı olduğunu da belirlemesi gerekir. Örneğin, eklenebilir bir mimari (ör. AccessibilityService) için hizmete özgü davranışları test etmek, anlık uygulamalar hizmetleri diğer uygulamalara (platform dahil) sunamadığından anlık uygulama modu için geçerli değildir. Uygulama tarafındaki davranışları doğrulayan testler ise anlık uygulama modu için geçerlidir. Diğer bir örnek ise hazır uygulamanın sahip olamayacağı bir iznin arkasındaki davranışların, hazır uygulama modunda alakalı olmadığını doğrulayan bir testtir. Yalnızca Anında Uygulamalar için geçerli olan ve nasıl davrandıklarıyla ilgili kuralları (ör. hizmetleri kullanıma sunmama veya diğer uygulamaları görmeme) doğrulayan bir dizi test vardır. Genellikle bunlar zaten yazılmıştır ve taşınması gerekmez.
Hazır uygulamalar modunda test hataları
Test, Hazır Uygulamaların erişemediği işlevleri doğruladığı için başarısız oluyorsa Hazır Uygulamalar modunda geçerli değildir. @AppModeFull
ile açıklama ekleyerek testin yalnızca Tam Uygulama modunda çalışmasını sağlayın. Bu ek açıklamayı sınıf düzeyinde uygulayarak sınıftaki tüm testleri hariç tutabilirsiniz.
Hazır uygulamaların erişebildiği bazı işlevler bozuk olduğundan test başarısız olursa hata bildirin.
Sorun giderme
Testiniz MyCtsModule.apk, DEVICE cihazına yüklenemedi. Neden: "-116", logcat'te PackageManager mesajlarını arayın. Örneğin, Can't replace Full App with Instant App: your_app (Tam Uygulama, Anında Uygulama ile değiştirilemiyor: your_app) mesajı gösteriliyorsa önce uygulamanızın yüklemesini kaldırın.