تعرض هذه الصفحة جميع الاختبارات المتاحة لتقييم أداء كاميرا 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) العامة:
- واجهة تطبيق HAL 3.x للكاميرا ومواصفاته:
hardware/libhardware/include/hardware/camera3.h
،hardware/libhardware/include/hardware/camera_common.h
- مواصفات البيانات الوصفية HAL 3.x للكاميرا:
system/media/camera/docs/docs.html
- واجهة ومواصفات تنسيق وحدات البكسل HAL:
system/core/libsystem/include/system/graphics.h
أنواع اختبارات الكاميرا
في ما يلي الأنواع الأساسية من الاختبارات المتوفّرة لأحدث كاميرا Android. بالإضافة إلى مراجع الإرشادات ذات الصلة أدناه:
- حزمة اختبار المورّد (VTS): هي الاختبارات التي تختبِر مباشرةً واجهة HAL للكاميرا
- مجموعة أدوات اختبار التوافق (CTS): Android عادي وتلقائي للتأكد من توافق الجهاز. لمزيد من التفاصيل، يُرجى مراجعة مجموعة أدوات اختبار التوافق اتحاد تجاري نظرة عامة:
- "حزمة اختبار الصور" (ITS): يتم تشغيلها يدويًا للتأكد من صحة الصور. لمزيد من التفاصيل، يُرجى مراجعة قسم تكنولوجيا المعلومات في الكاميرا
- اختبارات يدوي للاختبار:
التنفيذ من المصدر في
pdk/apps/TestingCamera/
- كاميرا الاختبار اليدوي 2.1
من الاختبارات: يتم إجراؤها من المصدر في
pdk/apps/TestingCamera2/
يتم وصف جميع أنواع الاختبارات هذه بالتفصيل أدناه. وهذه الاختبارات هي يجب أن يتم عرضها بالترتيب الزمني الذي يُتوقّع أن ينفذ به المصنّعون الأصليون للأجهزة معهم.
مثلاً، إذا تعذّر على الجهاز اجتياز الاختبارات الأصلية، سيفشل بالتأكيد في الاختبارات اللاحقة لمجموعة اختبار التوافق (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
) واسم عدّاء الاختبار
(MediaFramework
).
على سبيل المثال:
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. الصورة التي تظهر على يمين صورة عدسة الكاميرا يجب أن تظهر بالشكل نفسه عدسة الكاميرا، بما في ذلك الاتجاه نفسه