Kamera HAL testi kontrol listesi

Bu sayfada, Android kamerayı değerlendirmek için kullanılabilecek tüm testler listelenmektedir donanım soyutlama katmanı (HAL) Orijinal ekipmanlara yöneliktir üreticiler (OEM'ler) ve uygulama kameranın doğru şekilde uygulanmasını sağlamaları için işlemci (AP) tedarikçi firmaları Minimum kusurlu HAL. Bu, Android'e yapılan gönüllü bir ekleme olsa da Uyumluluk Test Paketi (CTS) ile birlikte kamera testi kapsamını büyük ölçüde potansiyel hataları belirler.

OEM'ler bu testleri geçerek Android'i düzgün bir şekilde entegre edip etmedikleri kamera donanımı soyutlama katmanı (HAL) 3 arayüzleri Projenizdeki tüm öğelere kontrol listesinde olması durumunda, cihaz uygulaması tam olarak içine girelim. Bu durumda, cihaz doğru şekilde desteklemek android.hardware.camera2 paketi geliştirmenizi sağlar.

Kamera HAL3 özellikleri

Android Kamera HAL3 spesifikasyonu proje yöneticisinin cihazların karşılaması gereken koşullarla ilgili bilgi; bu sayfada bir özete yer veriliyor kontrol listesi olarak kullanılabilecek tüm testlerden oluşur. Kamera HAL uygulamaları (ör. AP tedarikçileri) Kamera HAL3 spesifikasyonlarını satır satır incelemeli ve ve cihazlar buna uygun.

Geçerli HAL spesifikasyonu Android içinden bu dosyalarda tanımlanmıştır 5.0 ve sonraki sürümler için genel Android Platformu Geliştirme Kiti (PDK):

Kamera test türleri

En son Android kamera için sunulan birincil test türleri aşağıda verilmiştir ve aşağıda, ilgili talimatlara referanslar verilmiştir:

Bu test türlerinin tümü aşağıda ayrıntılı olarak açıklanmaktadır. Bu testler, OEM'lerin yürütmesinin beklendiği kronolojik sırada sunulur gerekir.

Örneğin, bir cihaz yerel testlerde başarısız olursa Uyumluluk Test Paketi (CTS) testlerinin sonuçlarını içerir. Bir cihaz CTS'de başarısız olursa Görüntü Test Paketi'ne (ITS) geçmenin pek bir faydası yoktur. Önerilerimiz: sonraki test türüne geçmeden önce her bir test türündeki hataları giderme testler.

Tedarikçi Firma Test Paketi (VTS) testleri

Android Vendor Test Suite (VTS), HIDL arayüz düzeyi. VTS'yi kullanma hakkında daha fazla bilgi için bkz. Tedarikçi Firma Test Paketi.

Uyumluluk Test Paketi (CTS) testleri

Kamera Android Compatibility Test Suite (CTS) testlerinin cihaza odaklanılması uyumluluk. Test ortamı kurma hakkında bilgi için CTS'yi ayarlama konusuna bakın.

Kamera CTS testlerinin başlangıç yolu: platform/cts.

Harici kameraları destekleyen cihazlarda (ör. USB web kameraları) kullanıyorsanız CTS'yi veya testleri çalıştırırken bir cihaz takılı olmalıdır. otomatik olarak başarısız olur. Harici kameralara örnek olarak şunlar verilebilir: Logitech HD Pro Web Kamera C920 ve Microsoft LifeCam HD-3000.

CTS'yi inceleyin CTS'yi çalıştırmaya ilişkin genel talimatlar için ve alt sayfalarında yer alan makaleyi inceleyin.

CTS testleri android.hardware.Camera API

cts/tests/tests/ kapsamında şu kamera testlerini bulabilirsiniz:

  • hardware/src/android/hardware/cts/CameraTest.java
  • hardware/src/android/hardware/cts/CameraGLTest.java
  • hardware/src/android/hardware/cts/Camera_SizeTest.java
  • permission/src/android/permission/cts/CameraPermissionTest.java

CTS testleri android.hardware.camera2 API

cts/tests/tests/ kapsamında şu kamera testlerini bulabilirsiniz:

  • hardware/src/android/hardware/camera2/cts/*
  • permission/src/android/permission/cts/Camera2PermissionTest.java

CTS Doğrulayıcı kamera testleri

Bu kamera testlerini şu başlıklar altında bulabilirsiniz: cts/apps/CtsVerifier/src/com/android/cts/verifier/camera/*.

Görüntü Test Paketi (ITS) testleri

Kamera Görüntüsü Test Paketi (ITS) testleri görüntü doğruluğuna odaklanır. Testleri gerçekleştirmek için Python komut dosyalarını Android cihaz USB üzerinden bağlandı.

Kamera BTS altyapısı ve testleri, cts/apps/CameraITS dizini. Her test, bir tests/scene# alt dizininde bulunur.

Testleri ayarlama ve çalıştırma hakkında daha fazla bilgi için bkz. Kamera ITS.

Sahne ve test açıklamaları için Kamera ITS Testleri'ne bakın.

ITS testleri geçer ya da başarısız olur. Her sahne klasöründeki tüm zorunlu testler başarılı olmalıdır. Zorunlu olmayan testler başarısız olabilir ve yine de başarılı olarak sayılır. CtsVerifier

ITS, CTS'de test edilmemiş ve önemli bir test senaryosu olan test planının bir bileşenidir.

Media Framework testleri

MediaFrameworkTest'te kamerayla ilgili tüm medya testlerini geçin. Lütfen bu testlerin, Android sisteme mediaframeworktest.apk uygulamasının yüklenmesini gerektirdiğini olanak tanır. make mediaframeworktest ve ardından adb kullanmanız gerekir yükleyin. Örnek komutlar aşağıda verilmiştir.

Kamera ile ilgili medya çerçevesi testlerinin başlangıç yolu şu şekildedir: platform/frameworks/base.

Testlerin kaynak kodunu burada bulabilirsiniz: frameworks/base/media/tests/MediaFrameworkTest.

Bu testleri ayarlamak için:

make mediaframeworktest
adb install out/target/product/name/data/app/mediaframeworktest.apk

Burada name değişkeni satıcının ürününü içeren dizin

Aşağıdaki dizinde veya alt dizinlerinde bulunan tüm testleri bulun:

frameworks/base/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest

Her alt dizin bir test sınıfını temsil eder:

  • functional/
  • integration/
  • performance/
  • power/
  • stress/
  • unit/

Media Framework testlerini çalıştırma

Mevcut tüm testleri görmek için:

adb shell pm list instrumentation

Bu, şuna benzer sonuçlar verir:

instrumentation:com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
(target=com.android.mediaframeworktest)
instrumentation:com.android.mediaframeworktest/.MediaRecorderStressTestRunner
(target=com.android.mediaframeworktest)
instrumentation:com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner
(target=com.android.mediaframeworktest)
instrumentation:com.android.mediaframeworktest/.MediaFrameworkPowerTestRunner
(target=com.android.mediaframeworktest)

Bileşeni tanımlayın ve çıkarın (instrumentation: arasında) ve (target=com.android.mediaframeworktest) tuşlarına basın. Bileşen, hedef paket adından oluşur (com.android.mediaframeworktest) ve test çalıştırıcısının adı (MediaFrameworkTestRunner).

Örneğin:

com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
com.android.mediaframeworktest/.MediaRecorderStressTestRunner
com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner
com.android.mediaframeworktest/.MediaFrameworkPowerTestRunner

Daha sonra her bir bileşeni adb shell am instrument gibi dolayısıyla:

adb shell am instrument -w component.name

Burada component.name, ayıklanan değere eşittir bölümünü ziyaret edin. Örneğin, örnek:

adb shell am instrument -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner

Sınıf yolunun Java paket + sınıf adı olsa da, enstrümantasyon paketinin, Java paketiyle aynı olması gerekmez. Marka bileşeni birleştirirken AndroidManifest.xml paketini kullandığınızdan emin olun paket adını girin.

Tek bir test sınıfı çalıştırmak için -e sınıfı bağımsız değişkenini şu şekilde geçirin: dolayısıyla:

adb shell am instrument -e class com.android.mediaframeworktest.integration.CameraBinderTest -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner

Bir test sınıfında yalnızca tek bir yöntemi çalıştırmak için kare (#) işareti ve yöntem adını (bu örnekte testConnectPro) sınıf adına ekleyin. Örneğin:

adb shell am instrument -e class 'com.android.mediaframeworktest.integration.CameraBinderTest#testConnectPro' -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner

Medya ayarları işlev testleri

Aşağıda, örnek bir işlevsel test çalıştırılmıştır. Bu test, kombinasyonlarını birleştiriyor. (ör. Flash, pozlama, WB, sahne, resim boyutu ve coğrafi etiket)

Test komutunu çalıştırın:

adb shell am instrument -w -r  -e delay_msec 15 -e log true -e class com.android.mediaframeworktest.functional.camera.CameraPairwiseTest com.android.mediaframeworktest/com.android.mediaframeworktest.CameraStressTestRunner

Medya entegrasyon testleri

Aşağıda, örnek bir entegrasyon testi verilmiştir. Bu örnekte mediaframeworktest/integration/KameraBinderTest.java ve mediaframeworktest/KameraStressTestRunner.java:

adb  shell am instrument -e class \ 'com.android.mediaframeworktest.integration.CameraBinderTest' -w \ 'com.android.mediaframeworktest/.CameraStressTestRunner'

Başarılı olursa şuna benzer bir çıkış elde edersiniz:

-----

com.android.mediaframeworktest.integration.CameraBinderTest:...........
Test results for CameraStressTestRunner=...........
Time: 3.328

OK (11 tests)

-----

Medya performans testleri

Bu önizleme bellek testi, 200° kamera önizlemesi açılır ve kez. Her 20 yinelemede, ps mediaserver'ın anlık görüntüsü kaydedilir 200 yinelemeden sonraki bellek kullanımını karşılaştırır. Testin amacı başarısız olur.

Test komutunu çalıştırın:

adb shell am instrument -w -r  -e class com.android.mediaframeworktest.performance.MediaPlayerPerformance#testCameraPreviewMemoryUsage com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner

Daha ayrıntılı çıkış şurada bulunabilir: /sdcard/mediaMemOutput.txt.

Medya birimi testleri

Birim testlerini çalıştırmak için kullanılan komutların tümü benzerdir. Örneğin, CameraMetadataTest.java için komut şöyle olur:

adb shell am instrument -e class 'com.android.mediaframeworktest.unit.CameraMetadataTest' -w 'com.android.mediaframeworktest/.CameraStressTestRunner'

Medya stres testleri

Bu testin amacı, kamera görüntüsü yakalama ve video kaydını öne çıkarmaktır.

Test komutunu çalıştırın:

adb shell am instrument -w com.google.android.camera.tests/com.android.camera.stress.CameraStressTestRunner

Tüm testler başarılı olacaktır.

Manuel Test Kamerası testleri

TestingCam uygulaması, aşağıdaki kontroller uygulanarak manuel olarak çalıştırılmalıdır. TestingCam'in kaynağı şurada: pdk/apps/TestingCamera/

Kamera yatırma özelliğiyle sonsuz odak noktası

TestCam'i başlatın, önizlemeyi açın ve otomatik odaklama modunun sonsuzluk. Fotoğraf çek düğmesini kullanarak, çektiğiniz fotoğrafların kamera yatay yönde, uzaktaki özneler (en az 10 metre uzakta) yukarı (dikeye yakın) ve aşağı (dikeye yakın); şöyle bir örnek: yukarı doğru çekim, aşağıdan yüksek yapraklar/ağaç dalları ve üst örnek olarak bir binanın çatısından görünen sokak gösterilebilir. yapı. Her durumda, uzaktaki özne net ve net olmalıdır. Kaydet ve görüntüleri galeri görünümünde görüntüleyin, böylece yakınlaştırıp daha kolay hale getirir.

VCM aktüatörü bulunan bir kameranın bu testi geçebilmesi için kapalı döngülü atriyal AF kontrol sistemi ya da bir tür yazılım kamera yönünü belirlemek için ivme ölçer verilerinden yararlanarak düzeltme Lensin sonsuzluk pozisyonunun güvenilir fabrika kalibrasyonuna da ihtiyaç duyulur.

Manuel TestCam2 testleri

TestCam2 uygulaması, aşağıdaki kontrollerle manuel olarak çalıştırılmalıdır gerçekleştirildi. TestingCam2'nin kaynağı şurada: pdk/apps/TestingCamera2/

JPEG yakalama

TestingCam2'yi başlatın ve JPEG düğmesine basın. Resim görünen vizörün sağında görünen vizörün görüntüsü aynı yöne sahip vizör de dahil olmak üzere farklı cihazlarda vizör.