Hazır Uygulamalar için CTS

Hazır Uygulamalar, Android 10'un önemli bir özelliğidir. Bu nedenle, düzgün çalışması önemlidir. Hazır Uygulamalar örtülü olarak yüklenir. Bu nedenle, sınırlı sayıda kapasiteye 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 izinlere sahip olabilir.
  • Hazır Uygulamalar tarafından görülebilir 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 gösterilemiyor.
  • Yayınlarla ilgili özel kurallarla yayın alabilir ve gönderebilir.

Ayrıca, Anında Uygulamalar'ın yeni güvenlik korumalı alanının daha fazla kısıtlama eklemesine izin vermesi için bu özelliği etkinleştirmesi 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üllerinin Hazır Uygulamalar için geçerli testleri 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 girmediğinden, erişilebilirlik testleri sistem sunucusuyla etkileşim kurarken Hazır Uygulamalar modunda çalıştırılmasına gerek yoktur ancak bunların Hazır 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, 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 bir Hazır Uygulama'nın sahip olamayacağı bir iznin arkasındaki davranışların alakalı olmadığını doğrulayan bir testtir. Hizmetlerin açığa çıkmaması veya diğer uygulamaları görmeme gibi davranış biçimleriyle ilgili kuralları doğrulayan, yalnızca Hazır Uygulamalar için geçerli olan 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. @AppModeFull ile ek açıklama ekleyerek testi yalnızca Tam Uygulama modunda çalışacak şekilde işaretleyin. Bu ek açıklamayı sınıf düzeyine uygulayarak içindeki 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, Hazır Uygulama ile değiştirilemiyor: uygulamanız yazıyorsa önce adb, uygulamanızı kaldırın.