CTS للتطبيقات الفورية

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

قيود التطبيقات الفورية

لا يُثبِّت المستخدم التطبيقات الفورية، لذا يتم تشغيلها في مساحة محايدة مقيّدة مع القيود التالية:

  • يمكن أن تتضمّن أذونات معيّنة فقط.
  • لا يمكن رؤية التطبيقات الأخرى إلا إذا تم وضع علامة على هذه التطبيقات لتظهر في ميزة "التطبيقات الفورية".
  • يمكن الوصول إلى إعدادات نظام معيّنة فقط.
  • يمكن الوصول إلى خصائص نظام معيّنة فقط.
  • لا يمكن عرض الخدمات أو مقدّمي الخدمات.
  • يمكنه تلقّي الرسائل وإرسالها بقواعد خاصة حول البثّات.

بالإضافة إلى ذلك، يجب أن توافق تطبيقات Instant Apps على السماح لوضع الحماية للأمان الجديد بإضافة المزيد من القيود. تؤثر هذه المجموعة الواسعة من السلوكيات الخاصة بالتطبيقات الفورية في النظام الأساسي بأكمله، لذا يجب أن تتوفّر طريقة للتحقّق من أنّ التطبيقات الفورية تعمل على النحو المتوقّع على جميع الأجهزة في المنظومة المتكاملة.

الاختبارات التي يتم إجراؤها في وضع "التطبيقات الفورية"

لا تتضمّن بعض وحدات CTS اختبارات تنطبق على التطبيقات الفورية. إذا كانت الوظيفة التي تختبرها الوحدة تتفاعل مع خادم النظام، يجب إجراء هذه الاختبارات في وضع "التطبيقات الفورية". على سبيل المثال، لا تتفاعل اختبارات OpenGL مع خادم النظام، وبالتالي لا حاجة إلى تشغيلها في وضع "التطبيقات الفورية"، في حين تتفاعل اختبارات تسهيل الاستخدام مع خادم النظام، ولكن يجب تشغيلها في وضع "التطبيقات الفورية".

بالإضافة إلى تحديد الوحدات التي تنطبق، على المستخدمين تحديد الاختبارات ذات الصلة في هذه الوحدات. على سبيل المثال، لا ينطبق اختبار السلوكيات الخاصة بالخدمة لبنية قابلة للتوصيل (مثل AccessibilityService) على وضع التطبيقات الفورية لأنّ التطبيقات الفورية لا يمكنها عرض الخدمات للتطبيقات الأخرى (بما في ذلك النظام الأساسي)، في حين أنّ اختبارات التحقّق من السلوكيات على جانب التطبيق تنطبق على وضع التطبيقات الفورية. ومن الأمثلة الأخرى الاختبار الذي يقيس صحة السلوكيات المرتبطة بإذن لا يمكن لتطبيق فوري الحصول عليه، ويكون غير ذي صلة في وضع التطبيقات الفورية. هناك مجموعة من الاختبارات التي لا تنطبق إلا على التطبيقات الفورية التي تتحقّق من قواعد سلوكها، على سبيل المثال، عدم عرض الخدمات أو عدم ظهور التطبيقات الأخرى. وعادةً ما يكون هذا النوع من التطبيقات مكتوبة ولا تتطلّب نقلها.

أخطاء الاختبار في وضع "التطبيقات الفورية"

إذا تعذّر اجتياز الاختبار لأنّه يتحقق من وظيفة لا يمكن للتطبيقات الفورية الوصول إليها، يعني ذلك أنّه لا يمكن تطبيقه في وضع التطبيقات الفورية. ضَع علامة على الاختبار لتشغيله في وضع "التطبيق الكامل" فقط من خلال التعليق التوضيحي باستخدام @AppModeFull. يمكنك تطبيق هذا التعليق التوضيحي على مستوى الصف لاستبعاد كل الاختبارات الواردة فيه.

إذا تعذّر إكمال الاختبار بسبب تعطُّل بعض الوظائف التي يمكن للتطبيقات الفورية الوصول إليها، قدِّم بلاغًا عن خطأ.

تحديد المشاكل وحلّها

إذا تعذّر إكمال الاختبار وظهرت الرسالة تعذّر تثبيت MyCtsModule.apk على الجهاز. السبب: ‎'-116'، ابحث عن رسائل PackageManager في logcat. على سبيل المثال، إذا ظهرت الرسالة تعذّر استبدال التطبيق الكامل بتطبيق فوري: your_app، سيؤدي ذلك إلى إلغاء تثبيت تطبيقك أولاً باستخدام adb.