Android Camera Image Test Suite (ITS), Android Compatibility Test Suite (CTS) Verifier'ın bir parçasıdır ve görüntü içeriğini doğrulayan testler içerir. CTS Verifier, Camera 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. Bireysel 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ş plastik bir kutu, bir grafik tablet 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. -view (RFoV) Kutu içinde.
ITS-in-a-box Kamerayı kullanmaya başlamak için:
- Kutuda bir WFoV veya RFoV ITS satın alın veya oluşturun.
- Camera ITS yazılımı ile bir tablet yapılandırın .
- Testleri çalıştırın .
- DUT sonuçlarını alın .
tableti yapılandırma
Bu bölüm, CameraITS
dizininde bulunan Camera ITS testleriyle kullanım için bir tabletin ayarlanmasına yönelik adım adım yönergeler 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, onu atlayın (Kamera ITS, tabletle herhangi bir hesabın eşlenmesini gerektirmez).
- Tableti Android 7.0 veya üstüne güncelleyin. Android 6.x ve daha düşük sürümler Camera ITS'yi desteklemez.
- Geliştirici modunu etkinleştirin.
- Ayarlar'a dönün ve Geliştirici seçeneklerini 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ına izin verir. Tableti ana bilgisayara ilk kez bağladığınızda, tablet USB hata ayıklamaya izin ver? tablet.)
Seçenekleri devre dışı bırak - Otomatik sistem güncellemeleri
- Uygulamaları USB üzerinden 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 cihazları takıp çıkarın ve bağlanan ve bağlantısını kesen cihazları gözlemleyin. - Tablet ekranındaki grafikleri 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östermesini 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 yeniden ç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 doğrulayın. Testlerin çoğu başarısız olsa da (kamera tabloya doğrultulmadığı için), ekranda herhangi bir bilgi istemi veya başka açılır pencere görüntülemeden tabletin sahneler arasında doğru şekilde dolaştığını doğrulayabilirsiniz.
Koşu testleri
ITS-in-a-box'ı çalıştırmadan önce, test kurulumunuzun aşağıdaki donanım ve yazılımı içerdiğinden emin olun:
- Bir (1) kutuda ITS
- Sahneleri görüntülemek için bir (1) adet 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 Doğrulayıcı uygulamasını yüklemek için
android-cts-verifier.zip
açın, 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 Doğrulayıcı uygulamasını yüklemek için
Tablet tabanlı sahneleri çalıştırma
Arka kamerada 0 ila 4, 6 arasındaki sahneleri ve scene_change'i çalıştırmak için:
cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0
Örnek:

Yeniden denenen sahneler
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, Compatibility Test Suite İndirmeleri sayfasından indirebileceğiniz CTS Verifier'daki CameraITS.pdf
bakın). Sahne 5'i ayrı olarak çalıştırmalısınız (kutunun dışında).

Ön ve arka kameralar için sahne 5'i 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ı bir rapor olarak kaydedebilirsiniz.
- Sonuçları Görüntüle. Camera 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
Tabletlerin ekran boyutu yaklaşık 10 inç ve ekran çözünürlüğü 1920 x 1200 pikselden büyük olmalıdır. config.yml
tablet modeline göre brightness
değeri 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 | Görüntülemek bit | desteklenen DUT işletim sistemi |
---|---|---|---|---|---|---|
SAMSUNG Galaksi Sekmesi A8 | 10.5 | 1920x1200 | 9,72x6,37x0,27 | 192 | 8 | android 13+ |
Xiaomi Ped 5 | 11 | 2560x1600 | 10,03x6,55x0,27 | 1536 | 11 | Android 12+ |
Lenovo Sekme M10 Artı | 10.3 | 1920x1200 | 9,61x6,03x0,32 | 192 | 8 | Android 12+ |
SAMSUNG Galaksi Sekmesi A7 | 10.4 | 2000x1200 | 9,75x6,2x0,28 | 192 | 8 | Android 12+ |
Çuvi Hi9 Hava 10.1 | 10.1 | 2560x1600 | 9,52x6,77x0,31 | 192 | 8 | Android 7+ |
asus ZenPad 3 | 9.7 | 2048x1536 | 9,47x6,44x0,28 | 192 | 8 | Android 7+ |
Huawei MediaPad m5 | 10.8 | 2560x1600 | 10,18x6,76x0,29 | 192 | 8 | Android 7+ |
Google Piksel C | 10.2 | 2560x1800 | 9,53x7,05x0,28 | 96 | 8 | Android 7+ |
sony Xperia Z4 | 10.1 | 2560x1600 | 10x6.57x0.24 | 192 | 8 | 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'dan sahne 4'e kadar RFoV kameraları test eder. RFoV, 60° < FoV < 90° olarak tanımlanır. Daha büyük Görüş Açısı kameraları için, ışıklar görüntülerde görünebilir veya çizelgeler, Görüş Açısında çok küçük bir alanı kapsayarak 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ı 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 , scenes=sensor_fusion
içindeki testlerle kamera/jiroskop zamanlama ofsetini ve çoklu kamera sistemlerinin çerçeve senkronizasyonunu test eder. REALTIME
özelliği bayrağı ve VR/AR uygulamaları için 1 ms'den daha düşük bir kamera/jiroskop zamanlama ofseti gereklidir.
Kamera REALTIME
özellik bayrağına sahipse, çok kameralı cihazlar, statik ITS testleri için tek bir teçhizat ve bir sensör füzyon teçhizatı ile test edilebilir.
Aşağıdaki tabloda bir dizi örnek yapılandırma verilmiştir.
Örnek | Kamera Görüş Açısı | GERÇEK ZAMANLI? | Önerilen donanımlar | notlar |
---|---|---|---|---|
1 | 75° | HAYIR | rev 1 | Android 7.0 veya üstü |
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 harita mesafesine sahiptir ve rev2 teçhizatı (WFoV) 22 cm'lik harita mesafesine sahiptir. Varsayılan olarak harita mesafesi 31 cm olarak 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çin,chart_distance
parametresini değiştirmek üzere config.yml dosyasını düzenleyebilirsiniz.edit config.yml chart_distance: 31.0 → chart_distance: 22.0
S3: Tablet parlaklığını nasıl kontrol ederim?
Varsayılan olarak, tablet parlaklığı 96 olarak 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 ila 11 çalıştıran 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=#
içinescenes
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=#
Grafikler daha sonra yerel dizinde oluşturulur ve
stdout
vestderr
ekrana yazdırılır.Hata ayıklamayla ilgili daha fazla bilgi almak için betiğe
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 süresine göre sıralanmış /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.
Kamera ITS, üçüncü taraf uygulamalarının uyumlu bir kamera arayüzüne sahip olmasını sağlar. Bir birim testine benzer şekilde, her test kameradaki tek bir spesifikasyonu vurgular. Güvenilmez davranışı yakalamak için bu testlerin tüm sahne boyunca grup olarak geçmesi beklenir. Örneğin, güvenilir olmayan tek bir test tüm sahnenin tekrarını geçebilse de, birden fazla güvenilir olmayan testin geçmesi zordur.
Uç bir örnek olarak, bir sahnede her birinin %50 PASS
döndürme olasılığına sahip 10 test olduğu durumu düşünün. Her testi ayrı ayrı çalıştırarak, bir operatörün kameranın Kamera ITS'den geçmesini sağlama olasılığı yüksektir. Ancak, testler toplu olarak bir sahne olarak çalıştırılırsa, sahnenin geçme şansı yalnızca %0,1'dir.
S6: Tek bir sahneyi nasıl çalıştırırım veya çalıştırılan sahneleri nasıl yeniden sıralarım?
Varsayılan olarak, tools/run_all_tests.py
betiği tüm sahneleri sırayla çalıştırır. Ancak, sahneler ayrı ayrı veya belirli bir sırada çalıştırılabilir ve CtsVerifier.apk
bildirilebilir.
Android 11 veya önceki sürümlerde tek bir sahneyi (örneğin, sahne 2) veya birden fazla sahneyi belirli bir sırada ç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 birden fazla sahneyi belirli bir sırayla ç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: Tablet kurulumunda birkaç sahne 1 testi başarısız oldu ancak kağıt grafikle başarılı oldu. 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ışındaki 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
değerini döndürür. Lüks seviyesi çok düşükse birden çok test başarısız olur.
S8: Sensör birleştirme 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ı elde etmek için testi birden çok kez çalıştırın.
Android 11 veya daha düşük 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ı,
#
çalıştırma numarası olmak üzeresensor_fusion_#
klasörleri altında oluşturulan/tmp/tmp###
klasöründedir. Başarısızlığın yaygın nedenleri şunlardır:- Telefon düzgün ortalanmamış.
- Görüntüde yeterli özellik bulunamadı (genellikle bir Görüş Açısı 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 dahil edin.
- Testi
tools/run_all_tests.py
aracılığıyla çalıştırdıysanız, hataya sıkıştırılmış bir/tmp/
dizini ekleyin. - Testi kendi başına ç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 da ekleyin. Söz konusu test başarısız olduktan sonra, bir hata raporu oluşturmak için aşağıdaki komutu kullanın ve oluşturulan zip dosyasını hataya ekleyin.
adb -s device_id bugreport
S10: 16:10 tabletlerdeki sahneyi karartan 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ı karartabilir. 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=*