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