قائمة التحقّق الخاصة باختبار طبقة تجريد الأجهزة (HAL) للكاميرا

تعرض هذه الصفحة جميع الاختبارات المتاحة لتقييم أداء كاميرا Android. طبقة تجريد الأجهزة (HAL). هذا المنتج مخصّص للأجهزة الأصلية. الشركات المصنّعة (OEM) والتطبيقات مورّدو معالج البيانات حتى يتمكّنوا من ضمان التنفيذ الصحيح للكاميرا HAL مع الحدّ الأدنى من العيوب. على الرغم من أنّ هذه إضافة طوعية إلى نظام Android مجموعة أدوات اختبار التوافق (CTS)، فهي تزيد بشكل كبير من تغطية اختبارات الكاميرا سوف تحدد بالتأكيد الأخطاء المحتملة.

من خلال اجتياز هذه الاختبارات، يتحقق المصنِّعون الأصليون للأجهزة (OEM) من صحة ما إذا كانت قد دمجت نظام Android بشكل صحيح جهاز الكاميرا واجهات طبقة التجريد (HAL) 3. عند التوافق مع جميع العناصر في يمكن اعتبار تنفيذ الجهاز كاملاً في ما يتعلق بواجهات HAL لكاميرا Android. وسيؤدي هذا بدوره إلى تمكين الجهاز من يدعم حزمة android.hardware.camera2 التي تطبيقات الكاميرا على أساسها.

مواصفات HAL3 للكاميرا

مواصفات كاميرا HAL3 لكاميرا Android مصدر موثوق به معلومات عن الأجهزة التي يجب أن تستوفيها تقدم هذه الصفحة ملخصًا لجميع الاختبارات التي يمكن استخدامها كقائمة تحقق. أدوات تنفيذ طبقة تجريد الأجهزة (HAL) للكاميرا (مثل AP مراجعة مواصفات HAL3 للكاميرا كل سطر والتأكد من أجهزتها متوافقة معها.

يتم تحديد مواصفات HAL الحالية في هذه الملفات ضمن نظام Android الإصدار 5.0 والإصدارات الأحدث من حزمة تطوير نظام Android الأساسي (PDK) العامة:

أنواع اختبارات الكاميرا

في ما يلي الأنواع الأساسية من الاختبارات المتوفّرة لأحدث كاميرا Android. بالإضافة إلى مراجع الإرشادات ذات الصلة أدناه:

يتم وصف جميع أنواع الاختبارات هذه بالتفصيل أدناه. وهذه الاختبارات هي يجب أن يتم عرضها بالترتيب الزمني الذي يُتوقّع أن ينفذ به المصنّعون الأصليون للأجهزة معهم.

مثلاً، إذا تعذّر على الجهاز اجتياز الاختبارات الأصلية، سيفشل بالتأكيد في الاختبارات اللاحقة لمجموعة اختبار التوافق (CTS). وإذا أخفق أحد الأجهزة في اختبار CTS، لن يتم استخدام "حزمة اختبار الصور" (ITS) إلا بقليل من الاستخدام. ننصحك بما يلي: لمعالجة الأخطاء في كل نوع اختبار قبل الانتقال إلى المجموعة التالية من الاختبار.

اختبارات حزمة اختبار المورّد (VTS)

حزمة اختبار مورّدي Android (VTS) هي مجموعة اختبار تعمل على مستوى واجهة HIDL. لمزيد من المعلومات حول استخدام ميزة VTS، يُرجى الاطّلاع على حزمة اختبار المورّد

اختبارات مجموعة أدوات اختبار التوافق (CTS)

تركيز اختبارات "مجموعة اختبار التوافق مع Android" (CTS) على الكاميرا على الجهاز التوافق. للحصول على معلومات عن إعداد بيئة اختبار، راجِع إعداد CTS.

مسار بدء اختبارات CTS للكاميرا هو: platform/cts.

عند تشغيل CTS للكاميرا للأجهزة التي تدعم الكاميرات الخارجية (مثل كاميرات الويب USB)، يجب أن يكون لديك جهاز متصل عند تشغيل CTS أو الاختبارات سوف تفشل تلقائيًا. تشمل أمثلة الكاميرات الخارجية على: Logitech HD Pro Webcam C920 وMicrosoft LifeCam HD-3000.

عرض CTS المقدمة وصفحاته الفرعية للحصول على تعليمات عامة حول تشغيل CTS.

اختبارات CTS لمجموعة واجهة برمجة تطبيقات android.hardware.Camera

اعثر على اختبارات الكاميرا هذه ضمن "cts/tests/tests/":

  • 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 لمجموعة واجهة برمجة تطبيقات android.hardware.camera2

اعثر على اختبارات الكاميرا هذه ضمن "cts/tests/tests/":

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

اختبارات كاميرا CTS Verifier

يمكنك العثور على اختبارات الكاميرا هذه ضمن: cts/apps/CtsVerifier/src/com/android/cts/verifier/camera/*

اختبارات مجموعة أدوات اختبار الصور (ITS)

تركّز اختبارات "حزمة اختبار صور الكاميرا" (ITS) على صحة الصور. لإجراء الاختبارات، شغِّل نصوص بايثون على أي محطة عمل تحتوي على تم توصيل جهاز Android عبر USB.

تقع البنية الأساسية لتكنولوجيا المعلومات والاتصالات للكاميرا في دليل cts/apps/CameraITS. يتوفّر كل اختبار في دليل فرعي من نوع tests/scene#.

لمزيد من المعلومات عن كيفية إعداد الاختبارات وتنفيذها، يُرجى الاطّلاع على قسم تكنولوجيا المعلومات في الكاميرا

للحصول على أوصاف المشهد والاختبارات، يُرجى الاطّلاع على اختبارات تكنولوجيا المعلومات للكاميرا.

اختبارات تقنية المعلومات إما تجتاز أو تفشل. يجب اجتياز جميع الاختبارات الإلزامية في كل مجلد مشهد. يمكن أن تفشل الاختبارات غير الإلزامية ولا تزال تُحتسب كاجتياز في CtsVerifier

تختبر تكنولوجيا المعلومات سيناريوهات الاختبار التي لا يتم اختبارها في CTS وهي من مكونًا من خطة اختبار HAL 3.2.

اختبارات إطار عمل الوسائط

اجتياز جميع اختبارات الوسائط ذات الصلة بالكاميرا في MediaFrameworkTest. من فضلك ملاحظة، تتطلب هذه الاختبارات تثبيت ملف mediaframeworktest.apk على نظام التشغيل Android الخاص بك. عليك make mediaframeworktest ثم استخدام adb. لتثبيت ملف apk .الناتج. تم تضمين أمثلة على الأوامر أدناه.

في ما يلي مسار بدء اختبارات إطار عمل الوسائط ذات الصلة بالكاميرا: platform/frameworks/base

يمكنك العثور على رمز المصدر للاختبارات هنا: frameworks/base/media/tests/MediaFrameworkTest

لإعداد هذه الاختبارات:

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

حيث يمثل المتغير name الذي يحتوي على منتج البائع.

اعثر على جميع الاختبارات في الدليل التالي أو أدلته الفرعية:

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

يمثل كل دليل فرعي فئة من الاختبارات:

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

إجراء اختبارات إطار عمل الوسائط

للاطّلاع على جميع الاختبارات المتاحة:

adb shell pm list instrumentation

سينتج عن ذلك نتائج تشبه:

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)

تحديد المكوِّن واستخراجه (بين instrumentation:) و(target=com.android.mediaframeworktest) من كل سطر اختبار. يتكون المكوِّن من اسم الحزمة المستهدفة (com.android.mediaframeworktest) واسم عدّاء الاختبار (MediaFrameworkTestRunner).

على سبيل المثال:

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

يمكنك بعد ذلك تمرير كل مكون إلى adb shell am instrument مثل لذلك:

adb shell am instrument -w component.name

عندما تكون component.name مساوية للقيمة المستخرجة أعلاه. بالنسبة مثال:

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

يُرجى ملاحظة أنه في حين أن مسار الفئة هو Java package + اسم الفئة، فإن حزمة الأدوات ليست بالضرورة هي نفسها حزمة Java. الماركة عليك استخدام حزمة AndroidManifest.xml عند إنشاء تسلسل للمكوّن وليس حزمة Java التي توجد فيها فئة عدّاء الاختبار.

لتشغيل فئة واحدة من الاختبارات، مرر الوسيطة -e class ، مثل لذلك:

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

لتشغيل طريقة واحدة فقط في فئة اختبار، ألحق علامة (#) جنيه (في هذه الحالة، testConnectPro) باسم الفئة، كما يلي:

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

اختبارات الوظائف لإعدادات الوسائط

في ما يلي مثال على إجراء اختبار وظيفي. يتحقق هذا الاختبار من القواعد الأساسية وظائف مجموعات مختلفة من إعدادات الكاميرا. (مثل Flash، التعرض للضوء وWB والمشهد وحجم الصورة والعلامة الجغرافية)

نفِّذ الأمر التجريبي:

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

اختبارات دمج الوسائط

في ما يلي مثال على إجراء اختبار تكامل، وهو في هذه الحالة mediaframeworktest/integration/cameraBinderTest.java and mediaframeworktest/cameraStressTestRunner.java:

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

وإذا نجحت في ذلك، فسيؤدي ذلك إلى ناتج يشبه ما يلي:

-----

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

OK (11 tests)

-----

اختبارات أداء الوسائط

سيتم فتح اختبار معاينة الذاكرة هذا وسيتم إطلاق معاينة الكاميرا لعدد 200 شاشة. أوقات. في كل 20 تكرارًا، سيتم تسجيل لقطة خادم وسائط ps. وسيقارن استخدام الذاكرة بشكل مختلف بعد 200 تكرار. إجراء الاختبار تفشل إذا كان الفرق أكبر من 150 كيلو مترًا.

نفِّذ الأمر التجريبي:

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

يمكنك الاطّلاع على نتائج أكثر تفصيلاً في: /sdcard/mediaMemOutput.txt

اختبارات الوحدة الإعلامية

تتشابه أوامر إجراء اختبارات الوحدة جميعها. على سبيل المثال، بالنسبة إلى CameraMetadataTest.java، سيكون الأمر كالتالي:

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

اختبارات الإجهاد على الوسائط

يهدف هذا الاختبار إلى التركيز على عملية التقاط صورة الكاميرا وتسجيل الفيديو.

نفِّذ الأمر التجريبي:

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

يجب اجتياز جميع الاختبارات.

اختبارات كاميرا الاختبار اليدوي

يجب تشغيل تطبيق TestingCam يدويًا عند إجراء عمليات التحقّق التالية. مصدر TestingCam هنا: pdk/apps/TestingCamera/

تركيز لا نهائي مع إمالة الكاميرا

ابدأ أداة TestCam وتفعيل المعاينة والتأكّد من ضبط وضع "التركيز التلقائي" على بلا نهاية. باستخدام الزر التقاط صورة، يمكنك التقاط صور الأجسام البعيدة (على بُعد 10 أمتار على الأقل) مع توجيه الكاميرا أفقيًا لأعلى (بالقرب من رأسي) ولأسفل (بالقرب من الرأس) مثال على فاللقطة الصاعدة يمكن أن تكون أوراقًا/أغصانًا عالية لشجرة من أسفل مثال على اللقطة لأسفل يمكن أن يكون الشارع كما يظهر من سطح المبنى. وفي جميع الحالات، يجب أن يكون الجسم البعيد حادًا ومركزًا. حفظ وعرض اللقطات في "معرض الصور" لتتمكن من تكبيرها وفحص والحدة بسهولة أكبر.

تجدر الإشارة إلى أنّ الكاميرا المزوّدة بمشغّل VCM لاجتياز هذا الاختبار ستتطلب إما نظام تحكم AF ذات حلقة مغلقة، أو أنه سيحتاج إلى نوع من قوة الخدمة يعتمد على استخدام بيانات مقياس التسارع لتحديد اتجاه الكاميرا. وعليك أيضًا إجراء معايرة موثوق بها من المصنع لموضع لامتناهٍ للعدسة.

اختبارات كاميرا الاختبار اليدوي 2

يجب تشغيل تطبيق TestingCam2 يدويًا من خلال عمليات التحقّق التالية تنفيذها. مصدر TestingCam2 متاح الآن: pdk/apps/TestingCamera2/.

التقاط صورة JPEG

ابدأ TestingCam2، ثم اضغط على الزرّ JPEG. الصورة التي تظهر على يمين صورة عدسة الكاميرا يجب أن تظهر بالشكل نفسه عدسة الكاميرا، بما في ذلك الاتجاه نفسه