التطبيقات الفورية هي ميزة رئيسية في الإصدار 10، لذا من الضروري أن تعمل بشكل صحيح. يتم تثبيت التطبيقات الفورية بشكل ضمني، لذا تتوفّر لها مجموعة محدودة من الإمكانات ويتم تشغيلها في وضع حماية للأمان أكثر تقييدًا. بسبب الطبيعة الواسعة النطاق لهذه القيود، قد لا يعمل أي جزء من النظام بشكل صحيح مع التطبيقات الفورية. يتم إنشاء مجموعة فرعية من اختبارات CTS لضمان أنّ السلوكيات المسموح بها من خلال التطبيقات الفورية تعمل بشكلٍ سليم. تتمثل الفكرة الرئيسية في تقليل حجم CTS من خلال عزل الحد الأدنى من الاختبارات المطلوب نقلها. يعني تشغيل CTS في وضع التطبيقات الفورية تثبيت حزمة APK الاختبارية كتطبيق فوري وإجراء الاختبارات.
قيود التطبيقات الفورية
لا يُثبِّت المستخدم التطبيقات الفورية، لذا يتم تشغيلها في مساحة محايدة مقيّدة بالقيود التالية:
- يمكن أن تتضمّن أذونات معيّنة فقط.
- لن يتمكّن من الاطّلاع على التطبيقات الأخرى ما لم يتم وضع علامة على هذه التطبيقات بأنّها مرئية للتطبيقات الفورية.
- يمكن الوصول إلى إعدادات نظام معيّنة فقط.
- يمكن الوصول إلى خصائص نظام معيّنة فقط.
- لا يمكن عرض الخدمات أو مقدّمي الخدمات.
- يمكن الاستلام والإرسال بموجب قواعد خاصة بشأن عمليات البث.
بالإضافة إلى ذلك، يجب أن توافق تطبيقات Instant Apps على السماح لوضع الحماية للأمان الجديد بإضافة المزيد من القيود. هذه المجموعة الكبيرة من السلوكيات الخاصة بشأن التطبيقات الفورية تتقاطع مع النظام الأساسي بأكمله، لذلك يجب أن تكون هناك طريقة للتحقق من عمل التطبيقات الفورية على النحو المتوقع لجميع الأجهزة في المنظومة المتكاملة.
الاختبارات التي يتم إجراؤها في وضع "التطبيقات الفورية"
لا تشمل جميع وحدات CTS اختبارات سارية على التطبيقات الفورية. إذا كانت الوظيفة التي يتم اختبارها من خلال الوحدة لها تفاعل مع خادم النظام، يجب إجراء هذه الاختبارات في وضع "التطبيقات الفورية". على سبيل المثال، لا تتفاعل اختبارات OpenGL مع خادم النظام، وبالتالي لا حاجة إلى تشغيلها في وضع "التطبيقات الفورية"، في حين تتفاعل اختبارات تسهيل الاستخدام مع خادم النظام، ولكن يجب تشغيلها في وضع "التطبيقات الفورية".
بالإضافة إلى تحديد الوحدات التي تنطبق، على المستخدمين تحديد الاختبارات ذات الصلة في هذه الوحدات. على سبيل المثال، لا ينطبق اختبار السلوكيات الخاصة بالخدمة لبنية قابلة للتوصيل (مثل AccessibilityService) على وضع التطبيقات الفورية لأنّ التطبيقات الفورية لا يمكنها عرض الخدمات للتطبيقات الأخرى (بما في ذلك النظام الأساسي)، في حين أنّ اختبارات التحقّق من السلوكيات على جانب التطبيق تنطبق على وضع التطبيقات الفورية. وهناك مثال آخر وهو الاختبار الذي يتحقق من صحة السلوكيات وراء إذن لا يمكن للتطبيق الفوري الاحتفاظ به غير مناسب في وضع "التطبيق الفوري". هناك مجموعة من الاختبارات التي لا تنطبق إلا على التطبيقات الفورية التي تتحقّق من قواعد سلوكها، على سبيل المثال، عدم عرض الخدمات أو عدم ظهور تطبيقات أخرى. عادةً ما تكون مكتوبة بالفعل ولا تتطلب نقلها.
أخطاء الاختبار في وضع "التطبيقات الفورية"
إذا تعذّر الاختبار لأنه يتحقّق من الوظائف التي يتعذّر على "التطبيقات الفورية" الوصول إليها، لن يسري ذلك في وضع "التطبيقات الفورية". ضَع علامة على الاختبار لتشغيله في وضع "التطبيق الكامل" فقط من خلال التعليق التوضيحي
باستخدام @AppModeFull
. يمكنك تطبيق هذا التعليق التوضيحي على مستوى الصف لاستبعاد كل
الاختبارات الواردة فيه.
إذا تعذّر إجراء الاختبار بسبب تعطُّل بعض الوظائف التي يمكن للتطبيقات الفورية الوصول إليها، قدِّم بلاغًا عن خطأ.
تحديد المشاكل وحلّها
إذا تعذّر إكمال الاختبار وظهرت الرسالة تعذّر تثبيت MyCtsModule.apk على الجهاز. السبب: '-116'، ابحث عن رسائل PackageManager في logcat. على سبيل المثال، إذا ظهرت الرسالة تعذّر استبدال التطبيق الكامل بتطبيق فوري: your_app، سيؤدي ذلك إلى إلغاء تثبيت تطبيقك أولاً باستخدام adb.