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ışı
- Kullanıcı arayüzünü belirli ürününüz için gereken şekilde özelleştirin.
- 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.
- OEM alt sınıfları
- 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ğeriyleinteraction-helpers-prefix
adında bir meta veri özelliği bildirmelidir. - Uygulama
cts-helpers-core
,cts-helpers-interfaces
vecom.android.cts.helpers.aosp
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ı 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. - 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. - İ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, APKtestcases
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 'CtsPrintTestCasesdevice-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çıklananro.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.