CTS cihaz etkileşimi yardımcı modülü

Android 11 veya sonraki sürümlerde, Compatibility Test Suite (CTS) cihaz etkileşimi yardımcı modülleri, belirli CTS testlerinin belirli bir cihazdaki kullanıcı arayüzü (UI) ile nasıl etkileşime gireceğini özelleştirmenize olanak tanır. Bu, Android Uyumluluk Tanımlama Dokümanı (CDD) veya API dokümanları kapsamında olmayan bir kullanıcı arayüzü öğesini değiştirme gibi işlemlerin, CTS'yi geçerken de yapılabildiği anlamına gelir.

Ürün geliştirme sırasında Android kullanıcı arayüzünü özelleştirmek isteyen ve CTS'yi geçmesi gereken OEM'ler yardımcı modüller uygulayabilir. Varsayılan Android uygulamasını kullanıyorsanız ek bir işlem yapmanız gerekmez.

Yardımcı modülleri uygulama

Kullanıcı arayüzünü özelleştirme koşulları

Kullanıcı arayüzü koşulları için CDD veya Mainline modüllerini kontrol edin. İstenen kullanıcı arayüzü CDD veya Mainline modüllerini kapsıyorsa bu kullanıcı arayüzü özelleştirilemez.

İstenilen kullanıcı arayüzüyle etkileşime geçen CTS testleri yardımcı çerçeveyi kullanmıyorsa bu kullanıcı arayüzü özelleştirilemez. Kullanıcı arayüzü değiştirilmeden önce test modülünü dönüştürmek için test sahibiyle birlikte çalışın.

Aksi takdirde kullanıcı arayüzünü özelleştirebilirsiniz.

Uygulama iş akışı

  1. Kullanıcı arayüzünü, özel ürününüz için gerektiği şekilde özelleştirin.
  2. Mevcut AOSP yardımcı modüllerini, kullanıcı arayüzüyle etkileşime geçmesi gereken CTS test modülleri için alt sınıflar olarak atayın. Özelleştirilmiş kullanıcı arayüzü için gerekli etkileşimleri uygun şekilde değiştirin. Değişimler, değişikliklerin türüne bağlı olarak değişir.
    • OEM alt sınıfları, com.[oem].cts.helpers gibi bir OEM paketindedir.
    • Her OEM alt sınıfı, Default ön ekiyle başlayan AOSP uygulamasından ayırt edilmesini sağlayan ortak bir ön ek ile adlandırılır.
  3. Bu test çalıştırıcı kurallarını uygulayarak yardımcıları bir APK'da oluşturun.
    • Android.bp, android_test_helper_app öğesini, içinde bulunduğu paketle aynı ada sahip olacak şekilde tanımlamalıdır.
    • APK için AndroidManifest.xml öğesi, önceki madde işaretinde seçilen sınıf önekinin değeriyle interaction-helpers-prefix adında bir meta veri özelliği beyan etmelidir.
    • Uygulama, cts-helpers-core, cts-helpers-interfaces ve com.android.cts.helpers.aosp'e bağlı olmalıdır. OEM yardımcıları ilgili tüm arayüzleri tam olarak uygularsa com.android.cts.helpers.aosp isteğe bağlıdır.
  4. Cihaz resmindeki ro.vendor.cts_interaction_helper_packages mülkünü, APK'nın adını içerecek şekilde ayarlayın. Yardımcı uygulamalarınızı birden fazla APK'ya ayırmanız gerekiyorsa bu özellik iki nokta işaretiyle ayrılmış bir paket listesi içerebilir.
  5. CTS için Tradefed'i çalıştırırken APK'nın testcases dizininde bulunduğundan emin olun. Gerekirse logcat mesajlarını inceleyerek beklenen yardımcı uygulama sınıfının seçildiğini onaylayın.
  6. İsteğe bağlı ancak önemle tavsiye edilir: Yardımcı uygulamanızı AOSP'ye gönderin veya üçüncü taraf testine sunun.

Örnek yardımcı uygulama

Örneğin, CtsPrintTestCases, ICtsPrintHelper içinde tanımlanan arayüze sahip bir yardımcı bekler. AOSP uygulamasına com.android.cts.helpers.aosp.DefaultCtsPrintHelper denir.

Baskı kullanıcı arayüzünü özelleştirirseniz DefaultCtsPrintHelper alt sınıfı olan com.oem.cts.helpers.OemCtsPrintHelper oluşturabilirsiniz. Android.bp içindeki android_test_helper_app, com.oem.cts.helpers olarak adlandırılır. Bu, com.oem.cts.helpers.apk değerini döndürür ve interaction-helpers-prefix değerini AndroidManifest.xml içinde Oem olarak tanımlar.

ro.vendor.cts_interaction_helper_packages cihaz özelliği com.oem.cts.helpers olarak ayarlandı.

Referans uygulamalar

Referans uygulamalar, cts/libs/helpers altındaki arayüzleri ve cts/helpers altındaki varsayılan AOSP yardımcılarını içerir. Üst düzey arayüz cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java'te açıklanmıştır.

Test sahipleri, CTS testini yardımcılarına bağlamak için @Rule cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java'te belirtilen tanımı kullanabilir.

Çerçeveyi ve beklenen yardımcı davranışını kullanan her CTS modülü, cts/libs/helpers/core/src/com/android/cts/helpers altında tanımlanan bir arayüzde belgelenir.

CTS testlerini çalıştırma

Yardımcı olmadan test etme

Bir mülk dışında, yardımcılar olmadan test etme seçeneği cihazda çalışma zamanında mevcut değildir ancak isteğe bağlı olarak CTS testlerinin cihazla etkileşimini değiştirir. CTS'yi yardımcı uygulamalar olmadan çalıştırmanız gerekiyorsa iki seçeneğiniz vardır:

  • ro.vendor.cts_interaction_helper_packages mülkünü cihazdan kaldırın. Bu, yardımcıların söz konusu derlemede tamamen kullanılmasını engeller.
  • CTS'yi çalıştırmadan önce yardımcı APK'yı testcases dizininden kaldırın. Bu sayede, APK testcases olarak geri yüklenene kadar yardımcıların hiçbir çalıştırma tarafından kullanılması engellenir.

Varsayılan ayarları, Tradefed bağımsız değişkenleri ve yardımcı APK'nın yüklendiği ro.vendor.cts_interaction_helper_packages mülk kontrolüyle değiştirebilirsiniz.

Mevcut ayarların her biri için beklenen değerler veya aralıklar aşağıda verilmiştir.

  • ro.vendor.cts_interaction_helper_packages, paket adlarını içeren iki nokta üst üste ile ayrılmış bir dizedir. OEM'nin yardımcı uygulaması için geçerli bir paket seçimi olan herhangi bir değeri alabilir.
  • cts-tradefed, bir test çalıştırması için beklenen özelliği geçici olarak değiştiren bir device-interaction-helper:property-name bağımsız değişkeni kabul eder (ör. --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'). Mülk adının değeri, cihazda ayarladığınız herhangi bir mülk olabilir. Özelliğin değeri, yukarıda açıklanan ro.vendor.cts_interaction_helper_packages mülküyle aynı kısıtlamalara tabidir.

Özelleştirmelerle test etme

Referans uygulamalar varsayılan olarak stok Android'de CTS'yi geçer. İş ortağı uygulamalarının, kullanıcı arayüzü özelleştirmeleriyle CTS'yi geçip geçmediğini kontrol edin. Özelleştirdiğiniz kullanıcı arayüzünü veya özellikleri kapsayan CTS modüllerini çalıştırın.

Bazı CTS modülleri veya yardımcıları henüz bazı özelleştirmeleri desteklemeyebilir.

  • Özelleştirmek istediğiniz kullanıcı arayüzüyle etkileşime geçen bir CTS modülü, yardımcı çerçeveyi kullanmayabilir. CTS modüllerinin, talebe ve test sahibi önceliklerine göre yardımcı çerçeveye dönüştürülmesi beklenir. Planlanan özelliklerinizi desteklemek için CTS değişiklikleri istemeye benzer şekilde, dönüşümün programa eklenmesini sağlamak amacıyla sürecin başında dönüşüm istekleri gönderin.
  • Mevcut bir yardımcı tarafından sağlanan işlevler, yapmak istediğiniz özelleştirmeleri tam olarak karşılamayabilir. Yardımcı işlevler, kullanıcı arayüzü bağımlılıkları için soyutlama sağlamalıdır. Bir yardımcı işlevin dolaylı olarak kullanıcı arayüzü bağımlılığı varsa bu durum, CTS'deki hatalara benzer şekilde ele alınabilir.