Hazır Uygulamalar için CTS

Hazır Uygulamalar, Android 10'un önemli bir özelliğidir. Bu nedenle, düzgün çalışması önemlidir. Anında Uygulamalar, dolaylı olarak yüklenir. Bu nedenle, kısıtlanmış 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 yapısı nedeniyle, sistemin herhangi bir parçası Anında Uygulamalar ile düzgün çalışmama riski altındadır. Hazır Uygulamalar tarafından izin verilen davranışların çalıştığından emin olmak için bir CTS test alt kümesi oluşturulur. Temel fikir, aktarılacak minimum test grubunu ayırarak 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ını ifade eder.

Hazır Uygulama kısıtlamaları

Hazır Uygulamalar kullanıcı tarafından yüklenmediğinden aşağıdaki kısıtlamalarla kısıtlanmış bir korumalı alanda çalışır:

  • Yalnızca belirli izinleri tutabilir.
  • Hazır Uygulamalar tarafından görülebileceği şekilde işaretlenmemiş 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 gösterilemiyor.
  • Yayınlarla ilgili özel kurallarla mesaj gönderip alabilir.

Ayrıca, Anında Uygulamalar'ın yeni güvenlik korumalı alanının daha fazla kısıtlama eklemesine izin vermesi gerekir. Hazır Uygulamalar ile ilgili bu geniş özel davranış yelpazesi platformun tamamını kapsar. Bu nedenle, Hazır Uygulamaların ekosistemdeki tüm cihazlarda 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şlev sistem sunucusuyla etkileşime geçiyorsa bu testler Anında Uygulamalar modunda çalıştırılmalıdır. Örneğin, OpenGL testleri sistem sunucusuyla etkileşime geçmediğinden bunları Anında Uygulamalar modunda çalıştırmanız gerekmez. Erişilebilirlik testleri ise sistem sunucusuyla etkileşime geçtiğinden bunları Anında Uygulamalar modunda çalıştırmanız 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, uygulama tarafı davranışları doğrulayan testler Anında Uygulama modu için geçerliyken Anında Uygulamalar, hizmetleri diğer uygulamalara (platform dahil) gösteremediğinden, takılabilir bir mimari (ör. AccessibilityService) için hizmete özgü davranışları test etmek Anında Uygulama modu için geçerli değildir. Bir diğer örnek ise, Hazır Uygulama modunda Hazır Uygulama'nın sahip olamayacağı bir iznin arkasındaki davranışların geçerli olmadığını doğrulayan bir testtir. Yalnızca Hızlı Uygulamalar için geçerli olan ve bu uygulamaların davranışıyla ilgili kuralları (ör. hizmetleri göstermeme veya diğer uygulamaları görmeme) doğrulayan bir dizi test vardır. Genellikle bu kodlar 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. Testi @AppModeFull ile ekleyerek yalnızca Tam Uygulama modunda çalışacak şekilde işaretleyin. Bu ek açıklamayı sınıf düzeyine uygulayarak sınıftaki tüm testleri hariç tutabilirsiniz.

Hazır uygulamalara erişilebilen bazı işlevler bozuk olduğu için test başarısız olursa hata kaydı gönderin.

Sorun giderme

Testiniz DEVICE cihazına MyCtsModule.apk yüklenemedi. Neden: "-116", logcat'te PackageManager mesajlarını arayın. Örneğin, Tam Uygulama: your_app, Instant Uygulama ile değiştirilemiyor yazıyorsa önce adb ile uygulamanızı kaldırın.