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

Android 11 veya üzeri için Uyumluluk Testi Paketi (CTS) cihaz etkileşimi yardımcı modülleri, belirli CTS testlerinin belirli bir cihazdaki kullanıcı arayüzü (UI) ile nasıl etkileşimde bulunacağını özelleştirmenize olanak tanır. Bu, Android Uyumluluk Tanımlama Belgesi (CDD) veya API belgeleri kapsamında olmayan bir kullanıcı arayüzü öğesinin değiştirilmesi gibi eylemlerin CTS'yi geçerken gerçekleştirilebileceğ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ülleri uygulayabilir. Varsayılan Android uygulamasını kullanıyorsanız ek çalışmaya gerek yoktur.

Yardımcı modüllerin uygulanması

Kullanıcı arayüzünü özelleştirmek için gereksinimler

Herhangi bir kullanıcı arayüzü gereksinimi için CDD veya Ana Hat modüllerini kontrol edin. İstenilen kullanıcı arayüzü CDD veya Ana Hat modülleri tarafından kapsanıyorsa bu kullanıcı arayüzü özelleştirilemez.

İstenilen kullanıcı arayüzüyle etkileşime giren 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ü belirli ürününüz için gereken şekilde özelleştirin.
  2. Mevcut AOSP yardımcı modüllerini, kullanıcı arayüzü ile etkileşime girmesi 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şiklikler, 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ı, onu Default ön ekine sahip AOSP uygulamasından ayıran ortak bir önekle adlandırılır.
  3. Bu test çalıştırıcı kurallarını izleyerek yardımcıları bir APK'ya oluşturun.
    • Android.bp android_test_helper_app içerilen paketle aynı adla bildirmelidir.
    • APK için AndroidManifest.xml önceki madde işaretinde seçilen sınıf önekinin değeriyle interaction-helpers-prefix adında bir meta veri özelliği bildirmelidir.
    • Uygulama cts-helpers-core , cts-helpers-interfaces ve com.android.cts.helpers.aosp 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ı eklemek için cihaz görüntüsündeki 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 ayraçlı paket listesi içerebilir.
  5. Tradefed for CTS'yi çalıştırırken APK'nın testcases senaryoları dizininde mevcut olduğ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ı ancak önemle tavsiye edilir: Yardımcı uygulamanızı AOSP'ye gönderin veya üçüncü taraf testleri için kullanılabilir hale getirin.

Örnek yardımcı uygulama

Örneğin, CtsPrintTestCases ICtsPrintHelper 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 alt sınıflarını oluşturan com.oem.cts.helpers.OemCtsPrintHelper öğesini oluşturabilirsiniz. Android.bp android_test_helper_app com.oem.cts.helpers olarak adlandırılmıştır; bu, com.oem.cts.helpers.apk üretir ve AndroidManifest.xml dosyasında interaction-helpers-prefix Oem olarak bildirir.

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 dosyasında belgelenmiştir.

CTS testini yardımcılarına bağlamak için test sahipleri, cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java adresinde belgelenen @Rule tanımını 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 belgelenmiştir.

CTS testlerini çalıştırma

Yardımcı olmadan test etme

Tek bir özelliğin dışında, yardımcı olmadan test etme seçeneği cihazda çalışma zamanında mevcut değildir ancak isteğe bağlı olarak CTS testlerinin cihazla nasıl etkileşime girdiğini 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 bu yapı üzerinde tamamen kullanılmasını engeller.
  • CTS'yi çalıştırmadan önce yardımcı APK'yı testcases dizininden kaldırın. Bu, APK testcases geri yüklenene kadar yardımcıların herhangi bir çalıştırma tarafından kullanılmasını engeller.

Yardımcı APK'nın yüklendiği yer olan Tradefed bağımsız değişkenleri ve ro.vendor.cts_interaction_helper_packages özellik kontrolü ile varsayılan ayarları değiştirebilirsiniz.

Mevcut ayarların her birine ilişkin beklenen değerler veya aralıklar için aşağıya bakın.

  • ro.vendor.cts_interaction_helper_packages , paket adlarını içeren, iki nokta üst üste ile ayrılmış bir dizedir. OEM'in yardımcı uygulaması için geçerli bir paket seçimi olan herhangi bir değeri alabilir.
  • cts-tradefed --module-arg 'CtsPrintTestCases device-interaction-helper:property-name --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp' name argümanını kabul eder. --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 uyar.

Özelleştirmelerle test etme

Varsayılan olarak referans uygulamaları stok Android'de CTS'yi geçirir. İş ortağı uygulamalarının kullanıcı arayüzü özelleştirmeleriyle CTS'yi geçip geçmediğini kontrol edin. Hangi CTS modülleri kullanıcı arayüzünü veya özelleştirdiğiniz özellikleri kapsıyorsa onu ç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 giren bir CTS modülü, yardımcı çerçeveyi kullanmayabilir. CTS modüllerinin talebe ve test sahibinin önceliklerine göre yardımcı çerçeveye dönüşmesi bekleniyor. Planlanan özelliklerinizi desteklemek için CTS değişiklikleri talep etmeye benzer şekilde, dönüşümün programa uygun şekilde ilerlemesini sağlamak için dönüşüm isteklerini sürecin başlarında dosyalayın.
  • Mevcut bir yardımcının sağladığı işlevler, yapmak istediğiniz özelleştirmeleri tam olarak karşılayamayabilir. Yardımcı işlevler kullanıcı arayüzü bağımlılıklarını ortadan kaldırmalıdır. Bir yardımcı işlevin dolaylı olarak bir kullanıcı arayüzü bağımlılığı varsa, bu durum CTS'deki hatalara benzer şekilde ele alınabilir.