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ışı
- 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 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.
- OEM alt sınıfları,
- 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 sahipinteraction-helpers-prefix
adlı bir meta veri özelliği bildirmelidir. - Uygulama
cts-helpers-core
,cts-helpers-interfaces
vecom.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.aosp
isteğe bağlıdır.
- 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. - 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. - İ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, 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
ö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 birdevice-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çı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. 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.