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üyle (UI) nasıl etkileşimde bulunduğunu özelleştirmenize olanak tanır. Bu, Android Uyumluluk Tanım Belgesi (CDD) veya API belgelerinde yer almayan bir kullanıcı arayüzü öğesini değiştirme gibi işlemlerin CTS'yi geçmeye devam ederken yapılabileceğ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ı

CDD veya Mainline modüllerinde kullanıcı arayüzüyle ilgili şartlar olup olmadığını kontrol edin. İstenen kullanıcı arayüzü, CDD veya Mainline modülleri kapsamındaysa bu kullanıcı arayüzü özelleştirilemez.

İstenen kullanıcı arayüzüyle etkileşimde bulunan CTS testlerinde yardımcı çerçeve kullanılmı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 sahibine danışın.

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

Uygulama iş akışı

  1. Kullanıcı arayüzünü, belirli ü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 testi modüllerinin alt sınıfları olarak belirleyin. Gerekli etkileşimleri özelleştirilmiş kullanıcı arayüzüne uygun şekilde değiştirin. Değişiklik türüne bağlı olarak farklı öğeler değiştirilir.
    • OEM alt sınıfları, com.[oem].cts.helpers gibi bir OEM paketindedir.
    • Her OEM alt sınıfı, AOSP uygulamasından ayıran ortak bir ön ekle adlandırılır. AOSP uygulamasının ön eki Default'dır.
  3. Aşağıdaki test çalıştırıcı kurallarına uyarak yardımcıları bir APK'ya yerleştirin.
    • Android.bp, android_test_helper_app öğesini, içerilen paketle aynı adla bildirmelidir.
    • APK için AndroidManifest.xml, önceki madde işaretinde seçilen sınıf önek değerine sahip interaction-helpers-prefix adlı bir meta veri özelliği bildirmelidir.
    • Uygulama cts-helpers-core, cts-helpers-interfaces ve com.android.cts.helpers.aosp'ye bağlı olmalıdır. OEM yardımcıları ilgili tüm arayüzleri tam olarak uyguluyorsa com.android.cts.helpers.aosp isteğe bağlıdır.
  4. APK'nın adını içerecek şekilde cihaz resmindeki ro.vendor.cts_interaction_helper_packages özelliğini ayarlayın. Yardımcı uygulamalarınızı birden fazla APK'ya ayırmanız gerekiyorsa bu özellik, iki nokta üst üste ile ayrılmış bir paket listesi içerebilir.
  5. CTS için Tradefed çalıştırılı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 doğrulayın.
  6. İsteğe bağlı olsa da kesinlikle önerilir: Yardımcı uygulamanızı AOSP'ye gönderin veya üçüncü taraf testlerine sunun.

Örnek yardımcı uygulaması

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

Yazdırma kullanıcı arayüzünü özelleştirirseniz DefaultCtsPrintHelper sınıfının alt sınıfı olan com.oem.cts.helpers.OemCtsPrintHelper oluşturabilirsiniz. android_test_helper_app in Android.bp is named com.oem.cts.helpers, which produces com.oem.cts.helpers.apk, and declares interaction-helpers-prefix as Oem in AndroidManifest.xml.

ro.vendor.cts_interaction_helper_packages cihaz özelliği com.oem.cts.helpers olarak ayarlanmış olmalıdır.

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 içinde belgelenmiştir.

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

Çerçeveyi kullanan her CTS modülü ve beklenen yardımcı davranışı, 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 özellik dışında, yardımcılar olmadan test etme seçeneği cihazda çalışma zamanında mevcut değildir ancak CTS testlerinin cihazla etkileşimini isteğe bağlı olarak 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 özelliğini 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, APK testcases'ya geri yüklenene kadar yardımcıların herhangi bir çalıştırmada kullanılmasını engeller.

Varsayılan ayarları Tradefed bağımsız değişkenleriyle ve yardımcı APK'nın yüklendiği yer olan ro.vendor.cts_interaction_helper_packages özellik kontrolüyle değiştirebilirsiniz.

Kullanılabilir ayarların her biri için beklenen değerleri veya aralıkları aşağıda bulabilirsiniz.

  • ro.vendor.cts_interaction_helper_packages, paket adlarını içeren iki nokta üst üste işaretiyle ayrılmış bir dizedir. OEM'in yardımcı uygulaması için geçerli bir paket seçeneği 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şkenini kabul eder. Örneğin, --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'. Özellik adının değeri, cihazda ayarladığınız herhangi bir özellik olabilir. Özelliğin değeri, yukarıda açıklanan ro.vendor.cts_interaction_helper_packages özelliğiyle aynı kısıtlamalara tabidir.

Özelleştirmelerle test etme

Varsayılan olarak, referans uygulamalar stok Android'de CTS'yi geçer. İş ortağı uygulamalarının, kullanıcı arayüzü özelleştirmeleriyle CTS'yi geçtiğini doğrulayın. Özelleştirdiğiniz kullanıcı arayüzünü veya özellikleri kapsayan CTS modüllerini çalıştırın.

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

  • Özelleştirmek istediğiniz kullanıcı arayüzüyle etkileşimde bulunan bir CTS modülü, yardımcı çerçeveyi kullanmıyor olabilir. CTS modüllerinin, talep ve test sahibinin önceliklerine göre yardımcı çerçeveye dönüştürülmesi beklenir. Dönüşümün planlanmasını sağlamak için işlemde erken aşamada dönüşüm isteğinde bulunun. Bu, planlanan özelliklerinizi desteklemek için CTS değişiklikleri istemeye benzer.
  • 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ını soyutlamalıdır. Yardımcı işlev dolaylı olarak kullanıcı arayüzü bağımlılığına sahipse bu durum, CTS'deki hatalara benzer şekilde ele alınabilir.