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ü (UI) ile nasıl etkileşime gireceğini özelleştirmenize olanak tanır. Bu, Android Uyumluluk Tanımlama Dokümanı (CDD) veya API dokümanları kapsamında olmayan bir kullanıcı arayüzü öğesini değiştirme gibi işlemlerin, CTS'yi geçerken de yapılabildiğ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ü koşulları için CDD veya Mainline modüllerini kontrol edin. İstenen kullanıcı arayüzü CDD veya Mainline modüllerini kapsıyorsa bu kullanıcı arayüzü özelleştirilemez.
İstenilen kullanıcı arayüzüyle etkileşime geçen 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ü, özel ü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 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şimler, 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ı,
Default
ön ekiyle başlayan AOSP uygulamasından ayırt edilmesini sağlayan ortak bir ön ek ile adlandırılır.
- OEM alt sınıfları,
- Bu test çalıştırıcı kurallarını uygulayarak yardımcıları bir APK'da oluşturun.
Android.bp
,android_test_helper_app
öğesini, içinde bulunduğu paketle aynı ada sahip olacak şekilde tanımlamalıdır.- APK için
AndroidManifest.xml
öğesi, önceki madde işaretinde seçilen sınıf önekinin değeriyleinteraction-helpers-prefix
adında bir meta veri özelliği beyan etmelidir. - Uygulama,
cts-helpers-core
,cts-helpers-interfaces
vecom.android.cts.helpers.aosp
'e bağlı olmalıdır. OEM yardımcıları ilgili tüm arayüzleri tam olarak uygularsacom.android.cts.helpers.aosp
isteğe bağlıdır.
- Cihaz resmindeki
ro.vendor.cts_interaction_helper_packages
mülkünü, APK'nın adını içerecek şekilde ayarlayın. Yardımcı uygulamalarınızı birden fazla APK'ya ayırmanız gerekiyorsa bu özellik iki nokta işaretiyle ayrılmış bir paket listesi içerebilir. - CTS için Tradefed'i çalıştırı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 onaylayın. - İsteğe bağlı ancak önemle tavsiye edilir: Yardımcı uygulamanızı AOSP'ye gönderin veya üçüncü taraf testine sunun.
Örnek yardımcı uygulama
Örneğin, CtsPrintTestCases
, ICtsPrintHelper
içinde tanımlanan arayüze sahip bir yardımcı bekler. AOSP uygulamasına com.android.cts.helpers.aosp.DefaultCtsPrintHelper
denir.
Baskı kullanıcı arayüzünü özelleştirirseniz DefaultCtsPrintHelper
alt sınıfı olan com.oem.cts.helpers.OemCtsPrintHelper
oluşturabilirsiniz.
Android.bp
içindeki android_test_helper_app
, com.oem.cts.helpers
olarak adlandırılır. Bu, com.oem.cts.helpers.apk
değerini döndürür ve interaction-helpers-prefix
değerini AndroidManifest.xml
içinde Oem
olarak tanımlar.
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
'te açıklanmıştır.
Test sahipleri, CTS testini yardımcılarına bağlamak için @Rule
cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java
'te belirtilen tanımı kullanabilir.
Çerçeveyi ve beklenen yardımcı davranışını kullanan her CTS modülü, 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 mülk dışında, yardımcılar olmadan test etme seçeneği cihazda çalışma zamanında mevcut değildir ancak isteğe bağlı olarak CTS testlerinin cihazla etkileşimini 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
mülkünü 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 sayede, APKtestcases
olarak geri yüklenene kadar yardımcıların hiçbir çalıştırma tarafından kullanılması engellenir.
Varsayılan ayarları, Tradefed bağımsız değişkenleri ve yardımcı APK'nın yüklendiği ro.vendor.cts_interaction_helper_packages
mülk kontrolüyle değiştirebilirsiniz.
Mevcut ayarların her biri için beklenen değerler veya aralıklar aşağıda verilmiştir.
ro.vendor.cts_interaction_helper_packages
, paket adlarını içeren iki nokta üst üste ile ayrılmış bir dizedir. OEM'nin yardımcı uygulaması için geçerli bir paket seçimi 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şkeni kabul eder (ör.--module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'
). Mülk adının değeri, cihazda ayarladığınız herhangi bir mülk olabilir. Özelliğin değeri, yukarıda açıklananro.vendor.cts_interaction_helper_packages
mülküyle aynı kısıtlamalara tabidir.
Özelleştirmelerle test etme
Referans uygulamalar varsayılan olarak stok Android'de CTS'yi geçer. İş ortağı uygulamalarının, kullanıcı arayüzü özelleştirmeleriyle CTS'yi geçip geçmediğini kontrol edin. Özelleştirdiğiniz kullanıcı arayüzünü veya özellikleri kapsayan CTS modüllerini ç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 geçen bir CTS modülü, yardımcı çerçeveyi kullanmayabilir. CTS modüllerinin, talebe ve test sahibi ö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 eklenmesini sağlamak amacıyla sürecin başında dönüşüm istekleri gönderin.
- 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ı için soyutlama sağlamalıdır. Bir yardımcı işlevin dolaylı olarak kullanıcı arayüzü bağımlılığı varsa bu durum, CTS'deki hatalara benzer şekilde ele alınabilir.