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şim kurduğunu özelleştirmenize olanak tanır. Bu, Android Uyumluluk Tanımlama 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ı
Kullanıcı arayüzüyle ilgili gereksinimler için CDD veya Mainline modüllerini kontrol edin. İstenen kullanıcı arayüzü, CDD veya Mainline modülleri tarafından kapsanıyorsa 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ışı
- Kullanıcı arayüzünü, belirli ürününüz için gerektiği şekilde özelleştirin.
- Mevcut AOSP yardımcı modüllerini, kullanıcı arayüzüyle etkileşime girmesi 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.helpersgibi 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.
- OEM alt sınıfları,
- Bu test çalıştırıcı kurallarına uyarak yardımcıları bir APK'ya yerleştirin.
Android.bp,android_test_helper_appöğesini, içerdiği paketle aynı adla bildirmelidir.- APK için
AndroidManifest.xml, önceki madde işaretinde seçilen sınıf önek değerine sahipinteraction-helpers-prefixadlı bir meta veri özelliği bildirmelidir. - Uygulama
cts-helpers-core,cts-helpers-interfacesvecom.android.cts.helpers.aosp'ye bağlı olmalıdır. OEM yardımcıları, ilgili tüm arayüzleri tam olarak uyguluyorsacom.android.cts.helpers.aospisteğe bağlıdır.
- APK'nın adını içerecek şekilde cihaz resminde
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. - CTS için Tradefed'i çalıştırırken APK'nın
testcasesdizininde bulunduğundan emin olun. Gerekirse logcat mesajlarını inceleyerek beklenen yardımcı uygulama sınıfının seçildiğini doğrulayın. - İsteğe bağlıdır ancak 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 com.oem.cts.helpers.OemCtsPrintHelper alt sınıfı olan DefaultCtsPrintHelper 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ış.
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 (belgelenen tanım) bölümünde açıklanan 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ı
testcasesdizininden kaldırın. Bu, APKtestcases'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 özelliği kontrolüyle değiştirebilirsiniz.
Mevcut 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 birdevice-interaction-helper:property-namebağımsız değişkenini (ör.--module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp') kabul eder. Özellik adının değeri, cihazda ayarladığınız herhangi bir özellik olabilir. Özelliğin değeri, yukarıda açıklananro.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. Planlanan özelliklerinizi desteklemek için CTS değişiklikleri istemeye benzer şekilde, dönüşümün programa alınmasını sağlamak için işlemde erken aşamada dönüşüm isteğinde bulunun.
- 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 bir kullanıcı arayüzü bağımlılığına sahipse bu durum, CTS'deki hatalara benzer şekilde ele alınabilir.