Android Camera Image Test Suite (ITS), Android Uyumluluk Test Suite (CTS) Verifier'ın bir parçasıdır ve görüntü içeriğini doğrulayan testler içerir. CTS Verifier, ITS-in-a-box ile ITS test otomasyonunu destekler; manuel testler için destek, tüm Android cihaz form faktörlerini kapsar.
ITS-in-a-box aşağıdaki avantajları içerir:
- Otomasyon. Test sırasında insan müdahalesine gerek yoktur.
- Kolay sorun giderme. Test ortamının tutarlılığı, daha az kurulum hatasına yol açar ve tekrarlanabilirliği artırır.
- Yeterlik. Ayrı kamera/sahne için yeniden deneme yeteneği, test yürütme verimliliğini artırır.
Başlarken
ITS-in-a-box, bilgisayar destekli tasarım (CAD) çizimlerinden lazerle kesilmiş bir plastik kutu, bir grafik tableti ve test edilen bir cihazdan (DUT) oluşur. Hem WFoV (FoV > 90 derece) hem de RFoV (FoV < 90 derece) kameraları veya normal görüş alanını test edebilen geniş görüş alanı (WFoV) ITS-in-a-box'ı kullanabilirsiniz. -görüntüleme (RFoV) ITS-in-a-kutu.
ITS-in-a-box'ı kullanmaya başlamak için:
- Kutuda bir WFoV veya RFoV ITS satın alın veya oluşturun.
- Bir tableti Camera ITS yazılımıyla yapılandırın .
- Testleri çalıştırın .
- DUT sonuçları alın .
Tableti yapılandırma
Bu bölüm, CameraITS
dizininde bulunan Camera ITS testleri ile kullanım için bir tableti kurmak için adım adım talimatlar sağlar. Bu talimatlar, örnek tablet olarak bir Pixel C kullanır. Tablet gereksinimleri ve önerileri hakkında bilgi için bkz. Tablet gereksinimleri .
Not: Camera ITS Python komut dosyaları, tablette aşağıdaki seçenekleri sizin için otomatik olarak ayarlar:
Ayarlar > Ekran > Uyku > 30 dakika işlem yapılmadığında
Uyarlanabilir parlaklık > KAPALI
- Tableti şarj edin ve açın. Bir hesap oluşturmanız istenirse, atlayın (Camera ITS, tabletle eşleştirilmiş herhangi bir hesap gerektirmez).
- Tableti Android 7.0 veya sonraki bir sürüme güncelleyin. Android 6.x ve alt sürümleri Camera ITS'yi desteklemez.
- Geliştirici modunu etkinleştirin.
- Ayarlar'a dönün ve Geliştirici seçenekleri'ni seçin.
Seçenekleri etkinleştir - Açık
- Uyanık kal
- USB hata ayıklama (Bu, ana bilgisayarın tableti hata ayıklama modunda çalıştırmasını sağlar. Tableti ana bilgisayara ilk kez bağladığınızda, tablet, USB hata ayıklamasına izin ver? tablet.)
Seçenekleri devre dışı bırak - Otomatik sistem güncellemeleri
- USB üzerinden uygulamaları doğrulayın
- Kullanılabilir cihazları listelemek için
$ adb devices
çalıştırarak DUT ve grafik kimliklerini belirleyin.device_id
vechart_id
belirlemek için, aygıtları takıp çıkarın ve bağlanan ve bağlantısını kesen aygıtları gözlemleyin. - Tablet ekranındaki çizelgeleri gizleyebilecek ipuçlarını ve kullanıcı istemlerini bastırmak için üç test çalıştırması gerçekleştirin.
- Tableti yüzü yukarı bakacak şekilde masaya yerleştirin (tableti kutunun arka paneline takmayın).
- Aşağıdaki komutu çalıştırın:
python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
Sahne 2 ve 3, tabletin bir resim görüntülemesini gerektirir, bu nedenle tablet, Drive'ın cihazınızdaki fotoğraflara, medyaya ve dosyalara erişmesine izin verilsin mi? . İzin Ver'e basarak bu istemi temizleyin (ve gelecekteki istemleri önleyin). - Komutu tekrar çalıştırın. Tablet , Bu dosyanın bir kopyası saklansın mı? ve Google Drive'ı önerir. Sürücü simgesine ve ardından sürücüye yüklemek için İptal'e basarak bu istemi temizleyin (ve gelecekteki istemleri önleyin).
- Son olarak,
tools/run_all_tests.py
çalıştırın ve komut dosyası farklı sahneler arasında geçiş yaparken sahnelerin otomatik olarak değiştiğini onaylayın. Çoğu test başarısız olsa da (kamera tabloya doğrultulmadığı için), ekranda herhangi bir istem veya başka açılır pencere görüntülemeden tabletin sahneler arasında doğru bir şekilde geçiş yaptığını doğrulayabilirsiniz.
Koşu testleri
ITS-in-a-box'ı çalıştırmadan önce, test kurulumunuzun aşağıdaki donanım ve yazılımları içerdiğinden emin olun:
- Bir (1) kutuda ITS
- Sahneleri görüntülemek için bir (1) yüksek çözünürlüklü 10" tablet, S/N: 5811000011
- CTS Verifier 7.0_8+ uygulamasının yüklü olduğu bir (1) DUT. Örnek DUT:
- Arka kamera (0) testi için bir (1) Pixel NOF26W, S/N: FA6BM0305016. CTS Verifier uygulamasını yüklemek için
android-cts-verifier.zip
açın ve ardındanadb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
çalıştırın.
- Arka kamera (0) testi için bir (1) Pixel NOF26W, S/N: FA6BM0305016. CTS Verifier uygulamasını yüklemek için
Tablet tabanlı sahneleri çalıştırma
0'dan 4'e, 6'ya kadar olan sahneleri ve sahne_değişimi'ni arka kamerada çalıştırmak için:
cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0
Örnek:

Sahneleri yeniden deneme
Tek bir kamera için sahneleri yeniden deneyebilirsiniz:
- Sahneleri tek bir kamerada yeniden denemek için:
python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
Koşu sahnesi 5
Sahne 5, özel aydınlatma ile özel kurulum gerektirir (ayrıntılar için, Uyumluluk Testi Paketi İndirmeleri'nden indirebileceğiniz CTS Verifier'daki CameraITS.pdf
bakın). Sahne 5'i ayrı olarak çalıştırmalısınız (kutunun dışında).

Sahne 5'i ön ve arka kameralar için tek bir cihazda çalıştırmak için:
python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5
Sonuç alma
Test sırasında sonuçları görüntüleyebilir ve tamamlanan sonuçları rapor olarak kaydedebilirsiniz.
- Sonuçları Görüntüle. Kamera ITS sonuçlarını bir rapor olarak kaydetmek için:
- Geç'e basın ve raporu kaydedin.
Şekil 3. Kamera ITS raporu - Cihazdan raporları çekin:
adb -s FA6BM0305016 pull /sdcard/verifierReports
- Rapor dosyasını açın ve
test_result.xml
dosyasını görüntüleyin.
Şekil 4. Kamera ITS raporları
- Geç'e basın ve raporu kaydedin.
Tablet gereksinimleri
Tabletler, 1920 x 1200 pikselden daha büyük bir ekran çözünürlüğüne sahip yaklaşık 10 inç ekran boyutuna sahip olmalıdır. brightness
değeri, tablet modeline göre config.yml
ayarlanmalıdır. Aşağıdaki tablo, tabletlerin birlikte çalıştığı DUT için Android yayın sürümleriyle birlikte ITS testi için önerilen tabletleri listeler.
Cihaz | Ekran boyutu (inç) | Ekran boyutu (piksel) | Tablet boyutları (inç) | Görüntülemek parlaklık | Desteklenen DUT işletim sistemi |
---|---|---|---|---|---|
Samsung Galaxy Tab A8 | 10.5 | 1920 x 1200 | 9,72 x 6,37 x 0,27 | 192 | Android 13+ |
Xiaomi Ped 5 | 11 | 2560 x 1600 | 10,03 x 6,55 x 0,27 | 192 | Android 12+ |
Lenovo Tab M10 Artı | 10.3 | 1920 x 1200 | 9,61 x 6,03 x 0,32 | 192 | Android 12+ |
Samsung Galaxy Tab A7 | 10.4 | 2000 x 1200 | 9,75 x 6,2 x 0,28 | 192 | Android 12+ |
Chuwi Hi9 Hava 10.1 | 10.1 | 2560 x 1600 | 9,52 x 6,77 x 0,31 | 192 | Android 7+ |
Asus ZenPad3 | 9.7 | 2048 x 1536 | 9,47 x 6,44 x 0,28 | 192 | Android 7+ |
Huawei MediaPad m5 | 10.8 | 2560 x 1600 | 10,18 x 6,76 x 0,29 | 192 | Android 7+ |
Piksel C | 10.2 | 2560 x 1800 | 9,53 x 7,05 x 0,28 | 96 | Android 7+ |
Sony Xperia Z4 | 10.1 | 2560 x 1600 | 10x6.57x0.24 | 192 | Android 7+ |
Sık sorulan sorular (SSS)
S1: Cihazım için hangi test donanımlarına ihtiyacım olduğunu nasıl belirleyebilirim?
RFoV ITS-in-a-box revizyon 1 , CameraITS/tests
dizininde sahne 0 ila sahne 4 testleri için RFoV kameralarını test eder. RFoV, 60° < FoV < 90° olarak tanımlanır. Daha büyük FoV kameralar için, görüntülerde ışıklar görünebilir veya grafikler FoV'de çok küçük bir alanı kaplayarak test sonuçlarını etkileyebilir.
WFoV ITS-in-a-box revizyon 2 , CameraITS/tests
dizininde sahne 0 ila sahne 4 testleri için WFoV kameralarını test eder. WFoV, FoV >= 90° olarak tanımlanır. İşlevsel olarak revizyon 1 ile aynıdır, ancak daha büyüktür. Revizyon 2 test donanımı, Android 9 ve sonraki sürümlerde hem RFoV hem de WFoV kameraları test edebilir.
Sensör füzyon kutusu , kamera/jiroskop zamanlama ofsetini ve çok kameralı sistemlerin kare senkronizasyonunu scenes=sensor_fusion
içindeki testlerle test eder. REALTIME
özellik bayrağı ve VR/AR uygulamaları için 1 ms'den daha az bir kamera/jiroskop zamanlama ofseti gereklidir.
Çok kameralı cihazlar, statik ITS testleri için tek bir teçhizat ve kameranın REALTIME
özellik bayrağına sahip olması halinde bir sensör füzyon teçhizatı ile test edilebilir.
Aşağıdaki tabloda bir dizi örnek konfigürasyon sağlanmıştır.
Örnek | Kamera FoV'leri | GERÇEK ZAMANLI? | Önerilen kuleler | Notlar |
---|---|---|---|---|
1 | 75 ° | Numara | Rev 1 | Android 7.0 veya üzeri |
2 | 75 ° | Evet | Rev 1 + sensör füzyonu | Android 9 veya üstü |
3 | 75 ° + 95 ° | Evet | Rev 2 + sensör füzyonu | Android 9 veya üstü |
S2: Hangi test donanımının kullanımda olduğunu nasıl belirleyebilirim?
Doğru test teçhizatını belirlemek için çizelge mesafesi parametresinin doğru olduğundan emin olun. rev1 test teçhizatı (RFoV) 31 cm'lik bir çizelge mesafesine sahiptir ve rev2 teçhizatı (WFoV) 22 cm'lik bir çizelge mesafesine sahiptir. Varsayılan olarak harita mesafesi 31 cm'ye ayarlanmıştır.
Android 10'dan Android 11'e
Android 10'dan 11'e kadar olan sürümlerde doğru test donanımını belirlemek için komut satırınadist
bayrağını ekleyin. dist
için varsayılan değer 31
. chart_distance
parametresini değiştirmek için aşağıdaki komutu çalıştırın.python tools/run_all_tests.py ... chart=# dist=22
Android 12
Android 12'de doğru test donanımını belirlemek içinchart_distance
parametresini değiştirmek üzere config.yml dosyasını düzenleyebilirsiniz.edit config.yml chart_distance: 31.0 → chart_distance: 22.0
Q3: Tablet parlaklığını nasıl kontrol edebilirim?
Varsayılan olarak, tablet parlaklığı 96'ya ayarlanmıştır.
Android 7.0 ile Android 9 arasında çalışan tabletlerde parlaklığı değiştirmek için şunu çalıştırın:
edit tools/wake_up_screen.py DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192
Android 10 ile 11 arasında çalışan tabletlerde parlaklığı değiştirmek için, brightness
bayrağı eklenerek değer komut satırında değiştirilebilir:
python tools/run_all_tests.py device=# camera=# chart=# brightness=192
Android 12 çalıştıran tabletlerde parlaklığı değiştirmek için şunu çalıştırın:
edit config.yml brightness: 96 → brightness: 192
S4: Tek bir testte nasıl hata ayıklayabilirim?
Testler, hata ayıklama amacıyla ayrı ayrı çalıştırılabilir, ancak tüm sahne çalıştırılmadıkça sonuçlar CtsVerifier.apk
bildirilmez.
Android 11 ve önceki sürümlerde tek bir sahneyi çalıştırmak için:
-
tools/run_all_tests.py
:python tools/run_all_tests.py device=# camera=# chart=# scenes=#
scenes
bayrağını ekleyerek bir sahne yükleyin Sahne
stdout
yüklenmiş olarak günlüğe kaydedildikten sonra testleri durdurmak için Control+C tuşlarına basın.Ekranda zaten doğru sahne varsa, ekranı uyandırın:
python tools/wake_up_screen.py screen=#
Bireysel bir test çalıştırın.
python tests/scene#/test_*.py device=# camera=#
Daha sonra yerel dizinde çizimler oluşturulur ve
stdout
vestderr
ekrana yazdırılır.Hata ayıklama için daha fazla bilgi almak için komut dosyasına
print
deyimleri ekleyin. Hata ayıklama için test çıktısını artırmak içindebug=True
bayrağını ekleyin.python tests/scene#/test_*.py device=# camera=# debug=True
tools/run_all_tests.py
çalıştırılırken sonuçlar yerel ekrana yazdırılır ve görüntüler oluşturulan /tmp/tmp###
dizini yerine yerel dizine kaydedilir.
Android 12'de tek bir sahneyi çalıştırmak için:
config.yml
dosyasını düzenleyin.edit config.yml camera: <camera-id> → camera: 0 scene: <scene-name> → scene: scene1_1
Bireysel testi çalıştırın.
python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
Sonuçlar, çalışma zamanına göre sıralanmış olarak /tmp/logs/mobly/TEST_BED_TABLET_SCENES/
dizininde yazdırılır.
S5: Testleri tek tek yeniden çalıştırmak yerine neden başarısız testleri tüm sahne olarak çalıştırmam gerekiyor?
Testler, hata ayıklama amacıyla ayrı ayrı çalıştırılabilir, ancak tüm sahne çalıştırılmadıkça sonuçlar CtsVerifier.apk
bildirilmez.
Camera ITS, üçüncü taraf uygulamaların uyumlu bir kamera arayüzüne sahip olmasını sağlar. Birim testine benzer şekilde, her test kameradaki tek bir özelliği vurgular. Güvenilmez davranışları yakalamak için, bu testlerin bir sahnenin tamamı için bir grup olarak geçmesi beklenir. Örneğin, tek bir güvenilmez test tüm bir sahnenin tekrarını geçebilse de, birden fazla güvenilmez testin geçmesi zordur.
Uç bir örnek olarak, bir sahnede her birinin PASS
döndürme olasılığı %50 olan 10 testin olduğu durumu düşünün. Her testi ayrı ayrı çalıştırarak, bir operatörün kameranın Kamera ITS'sini geçmesini sağlama olasılığı yüksektir. Bununla birlikte, testler toplu olarak bir sahne olarak çalıştırılırsa, sahnenin geçme olasılığı yalnızca %0,1'dir.
S6: Tek bir sahneyi nasıl çalıştırırım veya çalıştırma sahnelerini nasıl yeniden sıralarım?
Varsayılan olarak, tools/run_all_tests.py
komut dosyası tüm sahneleri sırayla çalıştırır. Ancak sahneler tek tek veya belirli bir sırayla çalıştırılabilir ve CtsVerifier.apk
rapor edilebilir.
Android 11 veya önceki sürümlerde tek bir sahneyi (örneğin, sahne 2) veya belirli bir sırada birden fazla sahneyi çalıştırmak için:
python tools/run_all_tests.py device=# camera=# chart=# scenes=2tutucu18 l10n-yer
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2
Android 12'de tek bir sahneyi çalıştırmak veya belirli bir sırayla birden fazla sahneyi çalıştırmak için:
python tools/run_all_tests.py scenes=2tutucu20 l10n-yer
python tools/run_all_tests.py scenes=3,2
Ek parametreler config.yml
dosyasında ayarlanır.
S7: Bir dizi sahne 1 testi, tablet kurulumunda başarısız oluyor, ancak bir kağıt grafikle başarılı oluyor. Sorun nedir?
Tabletin ve test ortamının aşağıdaki özellikleri karşıladığından emin olun.
Tablet özellikleri
Tabletin aşağıdaki özellikleri karşıladığından emin olun:
- Ekran boyutu (inç): 10 inç
- Ekran boyutu (piksel): 1920 x 1200 pikselden büyük
Daha fazla ayrıntı için bkz. Tablet gereksinimleri .
Tablet parlaklığı
Tablet ekran parlaklığı çok düşükse testler doğru sonuçlar vermeyebilir.
Daha fazla ayrıntı için bkz . Tablet parlaklığını nasıl kontrol ederim?
Kutu aydınlatma seviyesi (lüks metre gerektirir)
Tablet açılışında hedef lüks değerinin 100 ile 300 arasında olduğundan emin olun.
Lüks seviyesi çok yüksekse, scene1/test_param_flash_mode.py
FAIL
döndürür. Lüks seviyesi çok düşükse, birden fazla test başarısız olur.
S8: Sensör füzyon testlerinde nasıl hata ayıklayabilirim?
Bir
dialout
grubunda olduğunuzdan emin olun.groups | egrep ‘dialout'
Mikroçip Teknolojisinin USB bağlantı noktasına bağlı olup olmadığını belirleyerek sensör füzyon denetleyicisinin bağlı olduğundan emin olun.
lsusb … Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc. …
Aşağıdaki komutlarla test denemelerinin dağılımını almak için testi birden çok kez çalıştırın.
Android 11 veya önceki sürümlerde:
python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
Android 12'de:
python tools/run_sensor_fusion_box.py num_runs=10
Ek parametreler
config.yml
dosyasında ayarlanır.Çalıştırma çıktıları,
sensor_fusion_#
klasörleri altında oluşturulan/tmp/tmp###
klasöründedir; burada#
çalıştırma numarasıdır. Başarısızlığın yaygın nedenleri şunlardır:- Telefon düzgün merkezlenmemiş.
- Görüntüde yeterli özellik bulunmuyor (genellikle bir FoV veya aydınlatma sorunu).
- Döndürülen
FAIL
geçerlidir ve kamera ile jiroskop arasındaki zamanlama ofseti düzeltilmelidir.
S9: Bir test hatasını bildirirken hangi bilgileri dahil etmeliyim?
Bir test hatasını bildirirken, test için oluşturulan dosyaları ve görüntüleri ekleyin.
- Testi
tools/run_all_tests.py
üzerinden çalıştırdıysanız, hataya sıkıştırılmış bir/tmp/
dizini ekleyin. - Testi kendi başınıza çalıştırdıysanız, tüm ekran çıktılarını ve oluşturulan görüntüleri hataya ekleyin.
Ayrıca bir hata raporu ekleyin. Söz konusu test başarısız olduktan sonra, bir hata raporu oluşturmak ve oluşturulan zip dosyasını hataya eklemek için aşağıdaki komutu kullanın.
adb -s device_id bugreport
S10: Sahneyi engelleyen 16:10 tabletlerdeki gezinme çubuklarını nasıl kaldırırım?
16:10 (veya daha büyük) en boy oranlarına sahip tabletler için, gezinme çubuğu sahnenin bir kısmını gizleyebilir. Gezinme çubuğunu gizlemek için tablet için aşağıdaki adb komutunu kullanın.
adb -s device_id shell settings put global policy_control immersive.full=*