اختبار منصة أندرويد

يوفر AOSP العديد من الأدوات ومجموعات الاختبار لاختبار أجزاء مختلفة من التنفيذ الخاص بك. قبل الاستمرار في هذا القسم، يجب أن تكون على دراية بالمصطلحات التالية:

جهاز متوافق مع أندرويد
جهاز يمكنه تشغيل أي تطبيق تابع لجهة خارجية كتبه مطورو الطرف الثالث باستخدام Android SDK وNDK. يجب أن تلتزم الأجهزة المتوافقة مع Android بمتطلبات مستند تعريف التوافق (CDD) واجتياز مجموعة اختبار التوافق (CTS) . الأجهزة المتوافقة مع Android مؤهلة للمشاركة في نظام Android البيئي، والذي يتضمن الترخيص المحتمل لمتجر Google Play، والترخيص المحتمل لمجموعة تطبيقات Google Mobile Services (GMS) وواجهات برمجة التطبيقات، واستخدام علامة Android التجارية. نرحب بأي شخص لاستخدام كود مصدر Android، ولكن لكي يتم اعتباره جزءًا من نظام Android البيئي، يجب أن يكون الجهاز متوافقًا مع Android.
الأداة
القطع الأثرية هي سجلات ذات صلة بالإنشاء تتيح استكشاف الأخطاء وإصلاحها محليًا.
مستند تعريف التوافق (CDD)
مستند يسرد متطلبات البرامج والأجهزة لجهاز متوافق مع Android.
مجموعة اختبار التوافق (CTS)

مجموعة اختبار مجانية تجارية، متاحة للتنزيل كبرنامج ثنائي أو كمصدر في AOSP. إن CTS عبارة عن مجموعة من اختبارات الوحدات المصممة لدمجها في سير عملك اليومي. الهدف من CTS هو الكشف عن حالات عدم التوافق، والتأكد من بقاء البرنامج متوافقًا طوال عملية التطوير.

اختبارات CTS والمنصة لا تتعارض مع بعضها البعض. وفيما يلي بعض الإرشادات العامة:

  • إذا كان الاختبار يؤكد صحة وظائف أو سلوكيات واجهة برمجة تطبيقات إطار العمل، ويجب فرضه عبر شركاء OEM، فيجب أن يكون في CTS.
  • إذا كان الهدف من الاختبار اكتشاف الانحدارات أثناء تطوير النظام الأساسي، وقد يتطلب إذنًا مميزًا للتنفيذ، وقد يعتمد على تفاصيل التنفيذ (كما تم إصدارها في AOSP)، فيجب أن يكون اختبارًا للنظام الأساسي.
خدمات جوجل للهواتف المحمولة (GMS)

مجموعة من تطبيقات Google وواجهات برمجة التطبيقات التي يمكن تثبيتها مسبقًا على الأجهزة.

اختبار جوجل (GTest)

GTest هو إطار اختبار وسخرية لـ C++. عادةً ما تصل ثنائيات GTest إلى طبقات التجريد ذات المستوى الأدنى أو تقوم بإجراء IPC الأولي مقابل خدمات النظام المختلفة. عادةً ما يكون أسلوب الاختبار الخاص بـ GTest مقترنًا بإحكام بالخدمة التي يتم اختبارها. يحتوي CTS على إطار عمل GTest.

اختبار الأجهزة

يوفر اختبار الأجهزة بيئة تنفيذ اختبار خاصة كما يتم تشغيلها بواسطة أمر am instrument ، حيث يتم إعادة تشغيل عملية التطبيق المستهدفة وتهيئتها باستخدام سياق التطبيق الأساسي، ويتم بدء سلسلة الأجهزة داخل الجهاز الظاهري لعملية التطبيق. يحتوي CTS على اختبارات الأجهزة.

لوجكات

Logcat هي أداة سطر أوامر تقوم بإنشاء سجل لرسائل النظام، بما في ذلك تتبعات المكدس عندما يقوم الجهاز بإلقاء خطأ والرسائل التي كتبتها من تطبيقك باستخدام فئة Log .

تسجيل

يشير التسجيل إلى استخدام سجل لتتبع أحداث نظام الكمبيوتر، مثل الأخطاء. يعد تسجيل الدخول إلى Android أمرًا معقدًا نظرًا لمزيج المعايير المستخدمة والمدمجة في أداة Logcat.

اختبار ما بعد الإرسال

يتم إجراء اختبارات ما بعد الإرسال لنظام Android عندما يتم الالتزام بتصحيح جديد لفرع kernel مشترك. من خلال إدخال aosp_kernel كاسم فرعي جزئي، يمكنك رؤية قائمة بفروع kernel مع النتائج المتاحة. على سبيل المثال، يمكن العثور على نتائج android-mainline على https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid .

تقديم الاختبار مسبقا

تُستخدم اختبارات الإرسال المسبق لمنع ظهور حالات الفشل في النوى الشائعة.

الاتحاد التجاري

الاتحاد التجاري، المعروف أيضًا باسم Tradefed، هو إطار اختبار مستمر مصمم لإجراء الاختبارات على أجهزة Android. على سبيل المثال، يتم استخدام Tradefed لتشغيل اختبارات Compatibility Test Suite وVendor Test Suite.

مجموعة اختبار البائع (VTS)

يوفر Android Vendor Test Suite (VTS) إمكانات واسعة النطاق لاختبار Android، ويعزز عملية التطوير القائمة على الاختبار، ويقوم بأتمتة اختبار HAL وOS kernel.

أنواع اختبار المنصة

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

  • (النوع 1) واجهات برمجة تطبيقات إطار العمل باستخدام إطار عمل Android. يمكن أن تشمل واجهات برمجة التطبيقات المحددة التي يتم ممارستها ما يلي:
    • واجهات برمجة التطبيقات العامة المخصصة لتطبيقات الطرف الثالث
    • واجهات برمجة التطبيقات المخفية المخصصة للتطبيقات ذات الامتيازات، أي واجهات برمجة تطبيقات النظام أو واجهات برمجة التطبيقات الخاصة ( @hide , or protected , package Private`)
  • (النوع 2) استدعاء خدمات نظام Android باستخدام الموثق الخام أو وكلاء IPC مباشرةً.
  • (النوع 3) التفاعل مباشرة مع HALs باستخدام واجهات برمجة التطبيقات (APIs) ذات المستوى المنخفض أو واجهات IPC.

اختبارات النوع 1 و 2 عادة ما تكون اختبارات الأجهزة، في حين أن اختبارات النوع 3 عادة ما تكون اختبارات GT.

ماذا بعد؟

فيما يلي قائمة بالوثائق التالية التي قد تقرأها: