1. مقدّمة
يذكر هذا المستند المتطلبات التي يجب استيفاؤها من أجل استخدام الأجهزة ليتوافق مع Android 14
إن استخدام "يجب" أو "يجب ألا" أو "مطلوب" أو "SHALL" أو "SHALL NOT" أو "يجب" "SHOULD NOT" و"RECOMMENDED" و"MAY" و"OPTIONAL" وفقًا لمعيار مجموعة مهندسي شبكة الإنترنت (IETF) كما هو محدّد في RFC2119.
وكما هو الحال في هذا المستند، فإن "أداة تنفيذ الجهاز" أو "التنفيذ" هو شخص أو مؤسسة تطوّر حلاً للأجهزة أو البرامج يعمل بنظام التشغيل Android 14- "تنفيذ الجهاز" أو "التنفيذ" هل لحل الأجهزة/البرامج مطور جدًا.
ليتم اعتباره متوافقًا مع Android 14، يجب أن تستوفي عمليات التنفيذ المتطلبات الواردة في معايير التوافق هذه التعريف، بما في ذلك أيّ مستندات مدرَجة كمرجع
تم وصف الأماكن التي يظهر فيها هذا التعريف أو اختبارات البرامج القسم 10 صامت أو غامض أو غير مكتمل، فإن الشخص الذي ينفذه هو المسؤول عن ضمان التوافق مع عمليات التنفيذ الحالية.
ولهذا السبب، يحتوي مشروع مفتوح المصدر لنظام Android هو المرجع والتنفيذ المفضّل لنظام Android. الجهاز موصى به بشدة لجعل عمليات التنفيذ تستند إلى "أكبر قدر ممكن" في مرحلة "البداية" رمز المصدر المتاح من مشروع مفتوح المصدر لنظام Android وفي حين أن بعض المكونات يمكن افتراضيًا بعمليات تنفيذ بديلة، يُنصح بشدة بعدم اتبع هذه الممارسة، حيث سيصبح اجتياز اختبارات البرامج قريبًا أكثر صعوبة. تقع على عاتق القائم بالتنفيذ مسئولية ضمان إكمال ويشمل التوافق السلوكي مع تنفيذ نظام Android العادي، بما في ذلك أو خارج حزمة اختبار التوافق. أخيرًا، لاحظ أن هناك مكونات معينة يحظر هذا المستند صراحةً الاستبدال والتعديلات.
يتم اشتقاق العديد من الموارد المرتبطة بهذا المستند بشكل مباشر أو بشكلٍ غير مباشر من حزمة تطوير البرامج (SDK) لنظام التشغيل Android وستكون مطابقة من الناحية الوظيفية الواردة في مستندات حزمة SDK هذه في أي حالات ينطبق فيها هذا "التوافق" لا يتوافق التعريف أو "حزمة اختبار التوافق" مع حزمة تطوير البرامج (SDK) فإن وثائق حزمة SDK تعتبر موثوقة. أي أسئلة فنية التفاصيل المقدمة في الموارد المرتبطة في هذا المستند التي يتم اعتبارها عند التضمين كجزء من تعريف التوافق هذا.
1.1 بنية المستند
1.1.1. المتطلبات حسب نوع الجهاز
تحتوي القسم 2 على جميع المتطلبات التي تنطبق على لنوع جهاز معين. يعتبر كل قسم فرعي من القسم 2 مخصص لنوع جهاز معين.
جميع المتطلبات الأخرى التي تنطبق بشكل عام على أي جهاز Android والتنفيذ، يتم سردها في الأقسام بعد القسم 2. تتم الإشارة إلى هذه المتطلبات باسم "المتطلبات الأساسية" في هذا المستند.
1.1.2. معرّف المتطلب
يتم تعيين معرّف الطلب لمتطلبات "يجب".
- يتم تعيين المعرّف لمتطلبات "يجب" فقط.
- يتم وضع علامة [SR] على المتطلبات المقترحة بشدة ولكن لم يتم تخصيص المعرّف.
- يتكون رقم التعريف من : رقم تعريف نوع الجهاز - رقم تعريف الحالة - رقم تعريف الطلب. (مثل C-0-1).
يتمّ تحديد كل رقم تعريف على النحو التالي:
- رقم تعريف نوع الجهاز (يمكنك الاطّلاع على مزيد من المعلومات في 2. أنواع الأجهزة)
- ج: الأساسية (المتطلبات التي يتم تطبيقها على جميع عمليات تنفيذ أجهزة Android)
- H: جهاز Android محمول
- T: جهاز تلفزيون Android
- A: تنفيذ نظام التشغيل Android Automotive
- W: استخدام ساعة Android Watch
- علامة التبويب: استخدام جهاز Android لوحي
- معرّف الشرط
- وعندما يكون هذا الشرط غير مشروط، يتم ضبط هذا المعرّف على القيمة 0.
- عندما يكون المطلب مشروطًا، يتم تعيين 1 للأول. الحالة ويزيد العدد بمقدار 1 داخل نفس القسم من نفس نوع الجهاز.
- معرّف المتطلب
- يبدأ هذا المعرّف من 1 ويزداد بمقدار 1 داخل القسم نفسه لنفس الحالة.
1.1.3. معرّف الطلب في القسم 2
تتكون معرفات المتطلبات في القسم 2 من جزأين. الأول مع رقم تعريف القسم كما هو موضح أعلاه. ويحدد الجزء الثاني وشكل الجهاز ومتطلبات شكل الجهاز.
معرّف القسم متبوعًا بمعرّف الطلب الموضّح أعلاه.
- يتكون رقم التعريف في القسم 2 مما يلي : رقم تعريف القسم / رقم تعريف نوع الجهاز: رقم تعريف الشرط: رقم تعريف الطلب (مثل 7.4.3/A-0-1)
2. أنواع الأجهزة
يوفر المشروع المفتوح المصدر لنظام Android حزمة برامج يمكن استخدامها لمجموعة متنوعة من أنواع الأجهزة وأشكال الأجهزة لتعزيز الأمان على الأجهزة، حزمة البرامج، بما في ذلك أي نظام تشغيل بديل أو نواة بديلة من المتوقع أن يتم تنفيذها في بيئة آمنة كما هو موضح الواردة في الفقرة 9 وأي مكان آخر ضمن مستند CDD هذا. تتوفّر بضعة أنواع من الأجهزة. لديها منظومة متكاملة لتوزيع التطبيقات راسخة بشكل أفضل نسبيًا.
يصف هذا القسم أنواع الأجهزة هذه، بالإضافة إلى المتطلبات والتوصيات السارية على كل نوع جهاز.
جميع عمليات تنفيذ أجهزة Android التي لا تنطبق على أي من الإجراءات الموضَّحة أن تستوفي أنواع الأجهزة جميع المتطلبات الواردة في الأقسام الأخرى من هذا تعريف التوافق
2.1 إعدادات الأجهزة
للتعرّف على الاختلافات الرئيسية في ضبط الأجهزة حسب الجهاز نوع الجهاز، فراجع المتطلبات المتعلقة بالجهاز والتي تلي في هذا القسم.
2.2. متطلبات حمل الجهاز باليد
يشير جهاز Android محمول إلى عملية تنفيذ لجهاز Android يتم استخدامها عادةً من خلال حملها في اليد، مثل مشغّل mp3 أو هاتف أو لوحي.
تُصنف عمليات تنفيذ أجهزة Android على أنها أجهزة محمولة باليد إذا استوفت جميع المعايير التالية:
- يجب أن يتوفّر لديك مصدر طاقة يتيح التنقّل، مثل البطارية.
- أن يكون حجم الشاشة قطريًا في نطاق
4 بوصة
3.3 بوصة (أو 2.5 بوصة لعمليات تنفيذ الأجهزة التي تم شحنها إلى المستوى 29 من واجهة برمجة التطبيقات أو سابق)إلى 8 بوصات. - أن تتوفّر لديك واجهة إدخال على الشاشة التي تعمل باللمس
إنّ المتطلبات الإضافية الواردة في باقي هذا القسم خاصة بنظام Android. عمليات تنفيذ الأجهزة المحمولة باليد.
2.2.1. الأجهزة
عمليات تنفيذ الأجهزة المحمولة:
- [7.1.1.1/H-0-1] يجب أن يحتوي على واحد على الأقل
شاشة
متوافقة مع Android وتفي بجميع المتطلبات الموضحة في هذا المستند.شاشة مقاس 2.2 بوصة على الأقل على الحافة القصيرة و3.4 بوصة على الحافة الطويلة. [7.1.1.3/H-SR-1] يُوصى بشدة بـ قدرة المستخدمين على تغيير حجم العرض (كثافة الشاشة).
[7.1.1.1/H-0-2] يجب أن يتوافق مع تركيب وحدة معالجة الرسومات مساحات تخزين مؤقت للرسومات بحجم لا يقل عن أعلى دقة من أي وحدة تخزين مدمجة العرض.
بدء متطلبات جديدة
[7.1.1.1/H-0-3]* يجب تعيين كل
UI_MODE_NORMAL
. إتاحة التطبيقات التابعة لجهات خارجية على منصة غير محجوبة مساحة عرض لا تقل عن 2.2 بوصة على الحافة القصيرة و3.4 بوصة بوصة على الحافة الطويلة.[7.1.1.3/H-0-1]* يجب تحديد قيمة
DENSITY_DEVICE_STABLE
إلى 92% أو أكبر من الكثافة الفيزيائية الفعلية للشاشة المقابلة.
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة تتيح تدوير شاشة البرامج، سيتم إجراء ما يلي:
- [7.1.1.1/H-1-1]* يجب أن تجعل الشاشة المنطقية المتاحة للتطبيقات التابعة للجهات الخارجية بمسافة لا تقل عن بوصتين على الحواف القصيرة و2.7 بوصة في الحواف الطويلة. بالنسبة إلى الأجهزة التي تم شحنها إلى المستوى 29 من واجهة برمجة تطبيقات Android أو الإصدارات الأقدم، قد يتم ذلك إعفاؤها من هذا المطلب.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد لا تتيح تدوير شاشة البرنامج، وهي:
- [7.1.1.1/H-2-1]* يجب أن تجعل الشاشة المنطقية المتوفرة لتطبيقات الجهات الخارجية على الأقل 2.7 بوصة على الحواف القصيرة. بالنسبة إلى الأجهزة التي تم شحنها إلى المستوى 29 من واجهة برمجة تطبيقات Android أو الإصدارات الأقدم، قد يتم ذلك إعفاؤها من هذا المطلب.
بدء متطلبات جديدة
إذا اشتملت عمليات تنفيذ الأجهزة المحمولة على إمكانية استخدام Vulkan، فإنّ:
- يجب أن يستوفي [7.1.4.2/H-1-1] المتطلبات المحدد في ملف Android Baseline 2021 الشخصي.
إنهاء المتطلبات الجديدة
في حال كانت عمليات تنفيذ الأجهزة المحمولة باليد تشترط دعم النطاق العالي الديناميكية
العرض من خلال Configuration.isScreenHdr()
فإنهم:
- [7.1.4.5/H-1-1] يجب أن تعلن عن دعم
EGL_EXT_gl_colorspace_bt2020_pq
،EGL_EXT_surface_SMPTE2086_metadata
،EGL_EXT_surface_CTA861_3_metadata
وVK_EXT_swapchain_colorspace
وVK_EXT_hdr_metadata
إضافات.
عمليات تنفيذ الأجهزة المحمولة:
- [7.1.4.6/H-0-1] يجب أن يبلغ عن ما إذا كان الجهاز
إمكانية تحليل وحدة معالجة الرسومات من خلال إحدى خصائص النظام
graphics.gpu.profiler.support
في حال إعلان عمليات تنفيذ الأجهزة المحمولة عن توفُّر الدعم من خلال موقع نظام
graphics.gpu.profiler.support
، إن:
- [7.1.4.6/H-1-1] يجب أن يتم الإبلاغ عنه باعتباره إخراجًا تتبُّع النماذج الأوّلية التي تتوافق مع مخطط عدّادات وحدة معالجة الرسومات ووحدة معالجة الرسومات أوقات العرض المحدّدة في مستندات Perfetto.
- [7.1.4.6/H-1-2] يجب أن تُبلِغ عن قيم مطابقة. لعدّادات وحدة معالجة الرسومات في الجهاز بعد نموذج تتبع عدّاد وحدة معالجة الرسومات (gpu).
- [7.1.4.6/H-1-3] يجب أن تُبلِغ عن قيم مطابقة. لمراحل عرض وحدة معالجة الرسومات في الجهاز بعد عرض نموذج أوّلي لحزمة تتبُّع المرحلة.
- [7.1.4.6/H-1-4] يجب أن يتم الإبلاغ عن معدّل تكرار وحدة معالجة الرسومات. نقطة التتبع كما هو محدّد بالتنسيق: power/gpu_frequency.
عمليات تنفيذ الأجهزة المحمولة:
- [7.1.5/H-0-1] يجب أن يتضمن دعمًا لنظام التشغيل القديم. وضع توافق التطبيقات كما هو مطبّق من قبل برنامج Android المفتوح رمز المصدر. أي أن عمليات تنفيذ الجهاز يجب ألا تغير المشغلات أو التي يتم عندها تفعيل وضع التوافق، ويجب ألا تؤدي إلى تغيير سلوك وضع التوافق نفسه.
- [7.2.1/H-0-1] يجب أن يتضمن الدعم للجهات الخارجية. محرر أسلوب الإدخال (IME)
- [7.2.3/H-0-2] يجب أن يرسل كل من الضغط العادي والضغط مع الاستمرار
حدث دالة الرجوع (
KEYCODE_BACK
) إلى التطبيق الذي يعمل في المقدّمة. يجب ألا يستخدم النظام هذه الأحداث. ويمكن تشغيلها من خارج جهاز Android (مثل الأجهزة الخارجية) لوحة المفاتيح المتصلة بجهاز Android). - [7.2.3/H-0-3] يجب توفير وظيفة المنزل على جميع الشاشات المتوافقة مع Android والتي توفر الشاشة الرئيسية.
- [7.2.3/H-0-4] يجب توفير وظيفة الرجوع على جميع شاشات العرض المتوافقة مع Android وميزة "Recents" (الأحدث) على واحد على الأقل من الشاشات المتوافقة مع Android.
- [7.2.4/H-0-1] يجب أن يسمح بإدخال الشاشة التي تعمل باللمس.
- [7.2.4/H-SR-1] يُنصَح باستخدامها بشدة لإطلاق
هو التطبيق المساعد الذي يختاره المستخدم، أو بعبارة أخرى التطبيق الذي ينفّذ
VoiceInteractionService أو نشاط يتعامل مع
ACTION_ASSIST
عند الضغط مع الاستمرار علىKEYCODE_MEDIA_PLAY_PAUSE
أوKEYCODE_HEADSETHOOK
إذا كان النشاط الذي تعمل في المقدّمة لا يتعامل مع أحداث الضغط المطوّل هذه - [7.3.1/H-SR-1] يُوصى بشدة بأن تتضمن 3 محور ومقياس التسارع.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن مقياس تسارع ثلاثي المحاور:
- [7.3.1/H-1-1] يجب أن يكون قادرًا على الإبلاغ عن الأحداث بمعدل تكرار يصل إلى ما لا يقل عن 100 هرتز.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن مستقبِل GPS/GNSS وتُبلغ
القدرة على التطبيقات من خلال ميزة android.hardware.location.gps
، فإنها:
- [7.3.3/H-2-1] يجب الإبلاغ عن قياسات GNSS حالما حتى إذا لم يتم الإبلاغ عن موقع تم حسابه من خلال GPS/GNSS بعد.
- [7.3.3/H-2-2] يجب أن يبلغ عن نطاقات GNSS البديلة والنطاق الزائف. في الهواء الطلق بعد تحديد الموقع، في حين أن ثابتًا أو يتحرك بأقل من 0.2 متر في الثانية المربعة والعجلة، وهي كافية لحساب الموقع على بُعد 20 مترًا، والسرعة في نطاق 0.2 متر في الثانية، أي ما لا يقل عن 95% من الوقت.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن جيروسكوبًا ثلاثي المحاور، سيتم:
- [7.3.4/H-3-1] يجب أن يكون قادرًا على الإبلاغ عن الأحداث بمعدل تكرار يصل إلى ما لا يقل عن 100 هرتز.
- [7.3.4/H-3-2] يجب أن تكون قادرة على قياس تغييرات الاتجاه ما يصل إلى 1000 درجة في الثانية.
تطبيقات الأجهزة المحمولة التي يمكن أن تُجري مكالمة صوتية وتوضّح
أي قيمة بخلاف PHONE_TYPE_NONE
في getPhoneType
:
- يجب أن يتضمّن [7.3.8/H] أداة استشعار التقارب.
عمليات تنفيذ الأجهزة المحمولة:
- [7.3.11/H-SR-1] مقترحان بشدة لدعم أداة استشعار الوضعية مع 6 درجات من الحرية.
- [7.4.3/H] يجب أن يتوفر التوافق مع Bluetooth و Bluetooth LE.
إذا كانت الأجهزة تتوافق مع بروتوكول الاتصال بشبكة Wi-Fi المجاورة (NAN)
الإعلان عن PackageManager.FEATURE_WIFI_AWARE
وموقع شبكة Wi-Fi (مستدير Wi-Fi
مدة الرحلة — RTT) من خلال الإعلان عن PackageManager.FEATURE_WIFI_RTT
، وعندئذٍ:
[7.4.2.5/H-1-1] يجب أن يبلغ عن النطاق بدقة في نطاق +/-1 متر عند نطاق ترددي يبلغ 160 ميغاهرتز عند الشريحة المئوية 68 (حسب الاحتساب مع وظيفة التوزيع التراكمي)، +/-2 متر في نطاق ترددي 80 ميغاهرتز عند الشريحة المئوية 68، +/-4 أمتار في نطاق ترددي يبلغ 40 ميغاهرتز عند الشريحة المئوية 68، و+/-8 أمتار بمعدّل نقل بيانات 20 ميغاهرتز عند الشريحة المئوية 68 على مسافات 10 سم، و1، و3 م، و5 م، حسب ما تمت ملاحظته عبر WifiRttManager#startRanging Android API.
[7.4.2.5/H-SR-1] يُنصح بشدة بالإبلاغ عن نطاق بدقة تتراوح بين +/-1 متر عند نطاق ترددي يبلغ 160 ميغاهرتز عند النطاق التسعين النسبة المئوية (كما تم حسابها باستخدام دالة التوزيع التراكمي)، +/-2 متر في نطاق ترددي يبلغ 80 ميغاهرتز عند الشريحة المئوية التسعين، +/-4 أمتار بمعدّل 40 ميغاهرتز النطاق الترددي عند الشريحة المئوية التسعين، و+/-8 أمتار في نطاق ترددي 20 ميغاهرتز في النطاق الشريحة المئوية التسعين على مسافات 10 سم، كما تم رصده عبر WifiRttManager#startRanging Android API.
ننصحك بشدة باتّباع خطوات إعداد القياس المحدّدة في معايرة الحضور:
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى FEATURE_BLUETOOTH_LE
، سيكون:
- [7.4.3/H-1-3] يجب أن يقيس ويعدّل Rx
لضمان أن تكون القيمة المتوسطة لخلاصة RSSI -50 ديسيبل ملي واط +/-15 ديسيبل على مسافة 1 متر من
الجهاز المرجعي الذي يجري الإرسال في
ADVERTISE_TX_POWER_HIGH
. - [7.4.3/H-1-4] يجب أن تقيس Tx وتعوضه
لضمان أن تكون القيمة المتوسطة لخلاصة RSSI - 50 ديسيبل ملي واط +/-15 ديسيبل عند المسح الضوئي من
الجهاز المرجعي على مسافة 1 متر ويرسله في
ADVERTISE_TX_POWER_HIGH
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن جهاز كاميرا منطقيًا يسرد
والإمكانات باستخدام
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
،
وهي:
- [7.5.4/H-1-1] يجب أن يحتوي على مجال رؤية عادي (FOV) تلقائيًا ويجب أن يتراوح بين 50 درجات.
عمليات تنفيذ الأجهزة المحمولة:
- [7.6.1/H-0-1] يجب أن يحتوي على 4 غيغابايت على الأقل من مساحة تخزين غير متطايرة متاحة لبيانات التطبيق الخاصة (يُعرف أيضًا باسم قسم " /data").
- [7.6.1/H-0-2] يجب أن يعرض "صحيح" مع
ActivityManager.isLowRamDevice()
عندما تكون مساحة الذاكرة أقل من 1 غيغابايت المتاحة للنواة ومساحة المستخدم.
في حال كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى توافق واجهة التطبيق الثنائية (ABI) مع 32 بت فقط:
[7.6.1/H-1-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 416 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم المخزن المؤقت لإطارات الصور درجات دقة تصل إلى qHD (مثل FWVGA).
[7.6.1/H-2-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 592 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم المخزن المؤقت للإطارات الدقة تصل إلى HD+ (مثل HD أو WSVGA).
[7.6.1/H-3-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 896 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم المخزن المؤقت للإطارات ودرجات دقة تصل إلى FHD (مثل WSXGA+ ).
[7.6.1/H-4-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 1344 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم درجات دقة المخزن المؤقت للإطار تصل إلى QUD (مثل QWXGA)
في حال كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى توافقها مع أيّ واجهة ABI 64 بت (مع أو بدون أيّ واجهة تطبيق ثنائية (ABI) 32 بت):
[7.6.1/H-5-1] الذاكرة المتاحة للنواة ومساحة المستخدم أن تكون 816 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم درجات دقة المخزن المؤقت للإطارات إلى qHD (مثل FWVGA).
[7.6.1/H-6-1] الذاكرة المتاحة للنواة ويجب أن تكون مساحة المستخدم على الأقل 944 ميغابايت إذا كانت الشاشة التلقائية تستخدم درجات دقة المخزن المؤقت للإطارات تصل إلى HD+ (مثل HD أو WSVGA).
[7.6.1/H-7-1] الذاكرة المتاحة للنواة ويجب أن تكون مساحة المستخدم على الأقل 1280 ميغابايت إذا كانت الشاشة التلقائية تستخدم درجات دقة مخزن مؤقت للإطارات تصل إلى FHD (مثل WSXGA+ ).
[7.6.1/H-8-1] الذاكرة المتاحة للنواة ويجب أن تكون مساحة المستخدم على الأقل 1824 ميغابايت إذا كانت الشاشة التلقائية تستخدم درجات دقة مخزن مؤقت للإطارات تصل إلى QUD (مثل QWXGA).
لاحظ أن "الذاكرة المتاحة للنواة ومساحة المستخدم" أعلاه إلى مساحة الذاكرة التي تم توفيرها بالإضافة إلى أي ذاكرة مخصصة للأجهزة مثل الراديو والفيديو وما إلى ذلك، والتي لا تندرج تحت بنية النواة على عمليات تنفيذ الأجهزة.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن مساحة ذاكرة أقل من 1 غيغابايت أو تساويها متاحة للنواة kernel ومساحة المستخدم، فإنها:
- [7.6.1/H-9-1] يجب أن يفصح عن علامة الميزة.
android.hardware.ram.low
- يجب أن يحتوي [7.6.1/H-9-2] على 1.1 غيغابايت على الأقل من التخزين غير المتطاير للتطبيق بيانات خاصة (أي قسم " /data").
في حال كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمّن ذاكرة متوفّرة بسعة تزيد عن 1 غيغابايت إلى النواة kernel ومساحة المستخدم، فإنهما:
- [7.6.1/H-10-1] يجب أن يحتوي على 4 غيغابايت على الأقل من مساحة التخزين غير المتطايرة متاحة البيانات الخاصة للتطبيق (أي قسم " /data").
- يجب أن تشير إلى علامة الميزة
android.hardware.ram.normal
.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تزيد عن 2 غيغابايت أو تساويها وذاكرة أقل من 4 غيغابايت للنواة ومساحة المستخدم:
- [7.6.1/H-SR-1] يُوصى بها بشدة لدعم مساحة المستخدم 32 بت فقط (كل من التطبيقات ورمز النظام)
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن ذاكرة أقل من 2 غيغابايت النواة kernel ومساحة المستخدم، فإنهما:
- [7.6.1/H-1-1] يجب أن يتوافق مع واجهة ABI واحدة فقط (إما 64 بت فقط أو 32 بت) فقط).
عمليات تنفيذ الأجهزة المحمولة:
- [7.6.2/H-0-1] يجب ألا يتم تقديم طلب. مساحة التخزين المشتركة أصغر من 1 غيبي بايت.
- [7.7.1/H] يجب أن يحتوي على منفذ USB متوافق مع وضع الأجهزة الملحقة.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن منفذًا USB متوافقًا مع الأجهزة الملحقة فإنهم:
- [7.7.1/H-1-1] يجب أن ينفذ ملحق Android المفتوح (AOA) واجهة برمجة التطبيقات.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن منفذًا USB يتوافق مع وضع المضيف، وهي:
- [7.7.2/H-1-1] يجب أن يتم تطبيق فئة صوت USB كما هو موثّق في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android
عمليات تنفيذ الأجهزة المحمولة:
- [7.8.1/H-0-1] يجب أن يتضمن ميكروفون.
- [7.8.2/H-0-1] يجب أن يتضمن إخراجًا صوتيًا وأن يقدِّم بيانًا
android.hardware.audio.output
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد قادرة على تحقيق جميع الإنجازات متطلبات التوافق مع وضع الواقع الافتراضي (VR) وتضمين دعم له، فإنها:
- يجب أن يفصح [7.9.1/H-1-1] عن
علامة ميزة
android.hardware.vr.high_performance
- [7.9.1/H-1-2] يجب أن يتضمن تطبيقًا
جارٍ تنفيذ
android.service.vr.VrListenerService
التي يمكن تفعيلها من خلال الواقع الافتراضي التطبيقات عبرandroid.app.Activity#setVrModeEnabled
.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن منفذًا أو أكثر من منافذ USB-C في المضيف ووضع التنفيذ (فئة صوت USB)، بالإضافة إلى متطلبات الفقرة 7.7.2، فهي:
- [7.8.2.2/H-1-1] يجب أن يوفر تعيين البرامج التالية من رموز HID:
الوظيفة | عمليات التعيين | السياق | السُلوك |
---|---|---|---|
A | صفحة استخدام HID: 0x0C استخدام HID: 0x0CD مفتاح النواة: KEY_PLAYPAUSE مفتاح Android: KEYCODE_MEDIA_PLAY_PAUSE |
تشغيل الوسائط | الإدخال: ضغطة قصيرة الإخراج: تشغيل أو إيقاف مؤقت |
الإدخال: اضغط مع الاستمرار الإخراج: تشغيل الطلب الصوتي عمليات الإرسال: android.speech.action.VOICE_SEARCH_HANDS_FREE إذا كان الجهاز
مقفل أو الشاشة مغلقة. يرسل
android.speech.RecognizerIntent.ACTION_WEB_SEARCH بخلاف ذلك |
|||
مكالمة واردة | الإدخال: ضغطة قصيرة المخرج: قبول المكالمة |
||
الإدخال: اضغط مع الاستمرار الإخراج: رفض المكالمة |
|||
مكالمة جارية | الإدخال: ضغطة قصيرة الناتج: إنهاء المكالمة |
||
الإدخال: اضغط مع الاستمرار الإخراج: كتم صوت الميكروفون أو إعادته |
|||
B | صفحة استخدام HID: 0x0C استخدام HID: 0x0E9 مفتاح النواة: KEY_VOLUMEUP مفتاح Android: VOLUME_UP |
تشغيل الوسائط، مكالمة جارية | الإدخال: ضغطة قصيرة أو طويلة الإخراج: يؤدي إلى رفع مستوى صوت النظام أو سماعة الرأس. |
C | صفحة استخدام HID: 0x0C استخدام HID: 0x0EA مفتاح النواة: KEY_VOLUMEDOWN مفتاح Android: VOLUME_DOWN |
تشغيل الوسائط، مكالمة جارية | الإدخال: ضغطة قصيرة أو طويلة الإخراج: يُخفض مستوى صوت النظام أو سماعة الرأس |
D | صفحة استخدام HID: 0x0C استخدام HID: 0x0CF مفتاح النواة: KEY_VOICECOMMAND مفتاح Android: KEYCODE_VOICE_ASSIST |
الكل. يمكن أن تظهر في أي حالة. | الإدخال: ضغطة قصيرة أو طويلة الإخراج: تشغيل الطلب الصوتي |
- [7.8.2.2/H-1-2] يجب أن يؤدي إلى ACTION_HEADSET_PLUG عند إدخال قابس، ولكن فقط بعد أن تحتوي واجهات USB الصوتية ونقاط النهاية على بشكل صحيح من أجل تحديد نوع الطرف الكهربائي المتصل.
عندما يتم رصد أنواع طرفية صوت USB 0x0302، يتم إجراء ما يلي:
- [7.8.2.2/H-2-1] يجب بث Intent ACTION_HEADSET_PLUG مع "الميكروفون" مجموعة إضافية على 0.
عندما يتم رصد أنواع طرفية صوت USB 0x0402، يتم إجراء ما يلي:
- [7.8.2.2/H-3-1] يجب بث Intent ACTION_HEADSET_PLUG مع "الميكروفون" مجموعة إضافية على 1.
عند استدعاء واجهة برمجة التطبيقات AudioManager.getDevices() أثناء إنشاء جهاز USB الملحق قاموا بربطهم:
[7.8.2.2/H-4-1] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_HEADSET ودور isSink() إذا كان حقل نوع محطة صوت USB هو 0x0302.
[7.8.2.2/H-4-2] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_HEADSET ودور isSink() إذا كنت طرفا توصيل صوت USB حقل النوع هو 0x0402.
[7.8.2.2/H-4-3] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_HEADSET ودور isSource() في حال توصيل طرف توصيل صوت USB حقل النوع هو 0x0402.
[7.8.2.2/H-4-4] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_DEVICE ودور isSink() إذا كان حقل نوع محطة صوت USB هو 0x603.
[7.8.2.2/H-4-5] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_DEVICE ودور isSource() في حال موصّل صوت USB وهو 0x604.
[7.8.2.2/H-4-6] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_DEVICE ودور isSink() إذا كان نوع طرف توصيل صوت USB يبلغ 0x400.
[7.8.2.2/H-4-7] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_DEVICE ودور isSource() في حال موصّل صوت USB حقل النوع هو 0x400.
[7.8.2.2/H-SR-1] يتم التوصية بها بشدة عند الاتصال بـ جهاز صوتي ملحق بمنفذ USB-C، لإجراء تعداد لأدوات وصف USB، يجب تحديد أنواع الوحدات الطرفية وبث Intent ACTION_HEADSET_PLUG بأقل من 1000 مللي ثانية.
في حال كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى android.hardware.audio.output
android.hardware.microphone
، وهي:
[5.6/H-1-1] يجب أن يتضمن متوسط رحلة ذهاب وعودة متواصلة وقت الاستجابة 300 مللي ثانية أو أقل من 5 قياسات، مع متوسط انحراف مطلق أقل من 30 ملي ثانية، أكثر من مسارات البيانات التالية: "مكبّر الصوت إلى الميكروفون" محول استرجاع 3.5 ملم (إذا كان متوافقًا)، استرجاع USB (إذا كان متوافقًا)
[5.6/H-1-2] يجب أن يكون وقت استجابة "النقر للنغمة" متوسطًا 300 مللي ثانية أو أقل من 5 قياسات على الأقل عبر مكبّر الصوت إلى مسار بيانات الميكروفون.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن مشغّلاً حسّيًا واحدًا على الأقل:
- [7.10/H]* يجب عدم استخدام كتلة دوّارة غريبة (ERM) المشغّل باللمس (الهزّاز).
- [7.10/H]* يجب تنفيذ جميع الثوابت العامة اللمسات الواضحة في android.view.HapticFeedbackConstants وهي (CLOCK_TICK، CONTEXT_click، KEYBOARD_PRESS، KEYBOARD_ جدير بالذكر KEYBOARD_TAP، long_PRESS، TEXT_HANDLE_MOVE، VIRTUAL_KEY، VIRTUAL_KEY_Release وCONFIRM وREJECT وGESTURE_START وGESTURE_END).
- [7.10/H]* يجب تنفيذ جميع الثوابت العامة
اللمسات الواضحة
في android.os.VibrationEffect
وهي (مؤثر_TICK، مؤثر_انقر، الأماكن
Effect_DOUBLE_نقرة) وجميع شرائح الجمهور الممكنة
PRIMITIVE_*
ثوابت لمدة الحاسة الحسّية في android.os.VibrationEffect.بأعداد وهي (نقرة، TICK، LOW_TICK، QUICK_FALL، QUICK_RISE, SLOW_RISE, SPIN, THUD). بعض هذه الأساسيات، مثل قد لا يكون LOW_TICK وSPIN ممكنا إلا إذا كان الهزّاز متوافق الترددات المنخفضة نسبيًا. - [7.10/H]* يجب اتّباع الإرشادات المتعلقة برسم الثوابت العامة في android.view.HapticFeedbackConstants إلى ثوابت android.os.VibrationEffect الموصى بها، مع علاقات السعة المقابلة.
- [7.10/H]* يجب أن يتّبع تقييم الجودة في createOneShot() وcreateWaveform() واجهات برمجة التطبيقات.
- [7.10/H]* يجب التحقق من أنّ نتيجة android.os.Vibrator.hasAmplitudeControl() المتاحة للجميع تعكس واجهة برمجة التطبيقات قدرات الهزّاز بشكل صحيح.
- [7.10/H]* يجب أن يتم تحديد موضع المشغّل بالقرب من المكان الذي يتم فيه مسك الجهاز أو لمسه باليدين عادةً.
المشغِّل الخطي (LRA) هو نظام نوابض أحادي الكتلة وله التردد الرنانة السائد حيث تتحول الكتلة في اتجاه والحركة المطلوبة.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمّن غرضًا عامًا واحدًا على الأقل 7.10 المشغِّل الرنّان الخطي، وهو:
بدء متطلبات جديدة
- [7.10/H] يجب أن يكون موضع تشغيل المشغّل بالقرب من موضع إمساك الجهاز أو لمسه باليدين في العادة.
إنهاء المتطلبات الجديدة
- [7.10/H]
يجب تحريك المشغِّل باللمس في المحور "س"
(من اليمين إلى اليسار) الجزء الطبيعي من الجهاز
الاتجاه
رأسي.
إذا كانت عمليات تنفيذ الأجهزة المحمولة لأغراض عامة المشغِّل باللمس، وهو مشغّل رنان خطي على المحور س (LRA)، وهى:
- [7.10/H] يجب أن يكون التردد رنانة لـ LRA على المحور س أقل من 200 هرتز.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتبع عمليات تخطيط الثوابت اللمسية، فإنها:
- [7.10/H]* يجب التحقّق من حالة التنفيذ من خلال تنفيذ android.os.Vibrator.areAllEffectssupported() وandroid.os.Vibrator.arePrimitivesSupported() واجهات برمجة التطبيقات.
[7.10/H]* من المفترض أن يؤدي تقييم الجودة للثوابت اللمسية.
[7.10/H]* يجب التحقّق من الإجراء الاحتياطي وتعديله إذا لزم الأمر الأساسيات غير المتوافقة كما هو موضّح في إرشادات التنفيذ للثوابت.
2.2.2. وسائط متعددة
يجب أن تتوافق تطبيقات الأجهزة المحمولة باليد مع ترميز الصوت فك ترميز التنسيقات وإتاحتها للتطبيقات التابعة لجهات خارجية:
- [5.1/H-0-1] AMR-NB
- [5.1/H-0-2] AMR-WB
- [5.1/H-0-3] ملف MPEG-4 AAC الشخصي (AAC LC)
- [5.1/H-0-4] ملف تعريف MPEG-4 HE AAC (AAC+ )
- [5.1/H-0-5] AAC ELD (معيار AAC منخفض ومحسّن)
يجب أن تتوافق عمليات تنفيذ الأجهزة المحمولة باليد مع ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:
يجب أن تتوافق عمليات تنفيذ الأجهزة المحمولة باليد مع فك ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:
2.2.3. البرامج
عمليات تنفيذ الأجهزة المحمولة:
- [3.2.3.1/H-0-1] يجب أن يحتوي على
الذي يعالج
ACTION_GET_CONTENT
ACTION_OPEN_DOCUMENT
,ACTION_OPEN_DOCUMENT_TREE
, وACTION_CREATE_DOCUMENT
على النحو الموضَّح في مستندات حزمة تطوير البرامج (SDK) وأن تمنح المستخدم القدرة على توفير الدعم للوصول إلى بيانات موفّر المستندات باستخدام واجهة برمجة التطبيقاتDocumentsProvider
. - [3.2.3.1/H-0-2]* يجب تحميل واحد مسبقًا أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، جميع أنماط فلاتر الأهداف العامة المحددة في التطبيق التالي الأهداف المُدرَجة هنا
- [3.2.3.1/H-SR-1] قوية للغاية يُنصح به بالتحميل المُسبق لتطبيق بريد إلكتروني يمكنه التعامل مع ACTION_SENDTO أو ACTION_SEND أو ACTION_SEND_MULTIPLE ينوي إرسال رسالة بريد إلكتروني.
- [3.4.1/H-0-1] يجب أن تقدم صورة كاملة
تنفيذ واجهة برمجة تطبيقات
android.webkit.Webview
. - [3.4.2/H-0-1] يجب أن يتضمن متصفحًا مستقلاً لتصفح الويب للمستخدم العام.
- [3.8.1/H-SR-1] يُوصى به بشدة تنفيذ مشغّل تطبيقات تلقائي يتيح تثبيت الاختصارات داخل التطبيق وWidgets.
- [3.8.1/H-SR-2] يُوصى بها بشدة تنفيذ مشغّل افتراضي يتيح الوصول بسرعة إلى اختصارات توفّرها تطبيقات تابعة لجهات خارجية من خلال ShortcutManager واجهة برمجة التطبيقات.
- [3.8.1/H-SR-3] يُوصى به بشدة لتضمين تطبيق مشغّل تلقائي يعرض شارات لرموز التطبيقات.
- [3.8.2/H-SR-1] يُوصى بها بشدة لإتاحة أدوات التطبيقات التابعة لجهات خارجية
- [3.8.3/H-0-1] يجب أن يسمح باستخدام خدمات الجهات الخارجية
التطبيقات لإعلام المستخدمين بالأحداث المهمة من خلال
Notification
NotificationManager
فئات واجهة برمجة التطبيقات. - [3.8.3/H-0-2] يجب أن يتوافق مع الإشعارات.
- [3.8.3/H-0-3] يجب توفير التنبيهات الإشعارات.
- [3.8.3/H-0-4] يجب أن يتضمن مركز الإشعارات، مما يوفر للمستخدم القدرة على التحكم بشكل مباشر (على سبيل المثال، الرد، أو التأجيل، أو الرفض، أو الحظر) من خلال خصائص المستخدم مثل أزرار الإجراءات أو لوحة التحكم كما هو مُنفذ في AOSP.
- [3.8.3/H-0-5] يجب عرض الخيارات
مقدمة من خلال
RemoteInput.Builder setChoices()
في مركز الإشعارات. - [3.8.3/H-SR-1] يُوصى به بشدة
لعرض الخيار الأول المقدَّم من خلال
RemoteInput.Builder setChoices()
في مركز الإشعارات بدون أي تفاعل إضافي من المستخدم - [3.8.3/H-SR-2] يُوصى بها بشدة
لعرض كل الخيارات المقدّمة من خلال
RemoteInput.Builder setChoices()
في مركز الإشعارات عندما يوسّع المستخدم جميع الإشعارات في مركز الإشعارات - [3.8.3.1/H-SR-1] يُوصى به بشدة
لعرض الإجراءات التي
Notification.Action.Builder.setContextual
يتم ضبطه على أنّهtrue
بما يتوافق مع الردود التي يعرضهاNotification.Remoteinput.Builder.setChoices
- [3.8.4/H-SR-1] يُوصى به بشدة إنشاء مساعد على الجهاز للتعامل مع إجراء المساعدة.
في حال كانت عمليات تنفيذ الأجهزة المحمولة متوافقة مع إشعارات MediaStyle وهي:
- [3.8.3.1/H-SR-2] يُوصى به بشدة
لتوفير خصائص المستخدم (على سبيل المثال، مبدِّل المخرجات) التي يتم الوصول إليها من
واجهة مستخدم خاصة بالنظام تسمح للمستخدمين بالتبديل بين الوسائط المتاحة المناسبة
(على سبيل المثال، أجهزة البلوتوث والمسارات المقدمة إلى
MediaRouter2Manager
) عندما ينشر تطبيق إشعارMediaStyle
يتضمّن رمزًا مميّزًا لـMediaSession
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الجهاز تتضمن مفتاح تنقل الوظائف الذي تم إدخاله مؤخرًا تفصيلية في القسم 7.2.3 تغيير الواجهة، حيث:
- [3.8.3/H-1-1] يجب تنفيذ الشاشة تثبيت السلوك وتزويد المستخدم بقائمة إعدادات لتبديل الجديدة.
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة تتيح تنفيذ إجراء داعم، سيحدث ما يلي:
- [3.8.4/H-SR-2] يُوصى بها بشدة
اضغط مع الاستمرار على مفتاح
HOME
كتفاعل مخصص لتشغيل التطبيق المساعد على النحو الموضَّح في الفقرة 7.2.3. يجب إطلاقه التطبيق المساعد الذي يختاره المستخدم، أو بعبارة أخرى التطبيق الذي ينفّذVoiceInteractionService
، أو نشاط يتعامل مع هدفACTION_ASSIST
.
في حال كانت عمليات تنفيذ الأجهزة المحمولة متوافقة مع conversation notifications
وتجميعهم في قسم منفصل من غير المحادثات التنبيهية والصامتة
الإشعارات، فإنها:
- [3.8.4/H-1-1]* يجب عرض إشعارات المحادثات قبل إشعارات غير المحادثات مع باستثناء الإشعارات المستمرة للخدمة التي تعمل في المقدّمة الأهمية:مرتفعة الإشعارات.
إذا كانت عمليات تنفيذ أجهزة Android المحمولة تتوافق مع شاشة القفل، سيتم إجراء ما يلي:
- [3.8.10/H-1-1] يجب عرض القفل وإشعارات الشاشة، بما في ذلك نموذج إشعارات الوسائط.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتيح شاشة قفل آمنة:
- [3.9/H-1-1] يجب أن ينفذ النطاق الكامل من إدارة الجهاز المحددة في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن دعمًا
ControlsProviderService
وControl
واجهات برمجة التطبيقات والسماح لتطبيقات الجهات الخارجية بنشر عناصر التحكم في الأجهزة، وعندئذٍ:
- يجب أن يُعلِن [3.8.16/H-1-1] عن الميزة
الإبلاغ عن
android.software.controls
وضبطه علىtrue
- [3.8.16/H-1-2] يجب أن يوفر مستخدمًا
القدرة على إضافة ملفات تعريف الارتباط الخاصة بالمستخدم وتعديلها وتحديدها وتشغيلها
أدوات التحكم في الأجهزة المفضلة من خلال عناصر التحكم المسجلة بواسطة الجهات الخارجية
التطبيقات من خلال
ControlsProviderService
وControl
واجهات برمجة التطبيقات. - [3.8.16/H-1-3] يجب أن توفر الوصول إلى وأصبح بإمكان هذا المستخدم التعامل معه ضمن ثلاثة تفاعلات من مشغّل التطبيقات التلقائي.
[3.8.16/H-1-4] يجب أن يتم عرضه بدقة يوفر هذا المستخدم اسم ورمز كل تطبيق تابع لجهة خارجية توفّر عناصر التحكّم من خلال
ControlsProviderService
واجهة برمجة التطبيقات وأي حقول محددة يوفرهاControl
واجهات برمجة التطبيقات.[3.8.16/H-1-5] يجب أن يوفر مستخدمًا إمكانية إيقاف عناصر التحكّم في الجهاز البسيطة المخصّصة للمصادقة عناصر التحكم المسجلة بواسطة التطبيقات التابعة للجهات الخارجية من خلال
ControlsProviderService
وControl
واجهة برمجة التطبيقاتControl.isAuthRequired
بدء متطلبات جديدة
- [3.8.16/H-1-6] عمليات تنفيذ الأجهزة
يجب أن يعرض خصائص المستخدم بدقة على النحو التالي:
- إذا ضبط الجهاز
config_supportsMultiWindow=true
وأعلن التطبيق عن البيانات الوصفيةMETA_DATA_PANEL_ACTIVITY
فيControlsProviderService
بما في ذلك ComponentName نشاط صالح (على النحو المحدد في واجهة برمجة التطبيقات)، فينبغي أن يتضمن التطبيق ما يلي: النشاط في قدرة هذا المستخدم. - إذا لم يفصح التطبيق عن البيانات الوصفية
META_DATA_PANEL_ACTIVITY
: فينبغي أن يعرض الحقول المحددة كما هو منصوص عليه فيControlsProviderService
واجهة برمجة التطبيقات وأي حقول محددة يوفرها واجهات برمجة تطبيقات Control.
- إذا ضبط الجهاز
- [3.8.16/H-1-7] إذا أعلن التطبيق عن البيانات الوصفية
META_DATA_PANEL_ACTIVITY
، يجب أن يجتاز قيمة الإعداد المحددة في [3.8.16/H-1-5] باستخدامEXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS
عند تشغيل النشاط المضمّن.
إنهاء المتطلبات الجديدة
وبالعكس، إذا لم تنفذ عمليات تنفيذ الأجهزة المحمولة هذه عناصر التحكم، وهي:
- [3.8.16/H-2-1] يجب أن يتم الإبلاغ عن
null
لما يلي:ControlsProviderService
وControl
واجهات برمجة التطبيقات. - يجب أن يُعلِن [3.8.16/H-2-2] عن الميزة
الإبلاغ عن
android.software.controls
وضبطه علىfalse
إذا كانت عمليات تنفيذ الأجهزة المحمولة غير مفعَّلة في وضع قفل المهمة، عندما يتم نسخ المحتوى إلى الحافظة:
- [3.8.17/H-1-1] يجب أن يتم تقديم تأكيد للمستخدم بأن البيانات تمت تم نسخه إلى الحافظة (على سبيل المثال، صورة مصغّرة أو تنبيه بعنوان "تم نسخ المحتوى"). بالإضافة إلى ذلك، يُرجى تضمين إشارة هنا لمعرفة ما إذا كانت بيانات الحافظة ستتم مزامنتها. على جميع الأجهزة.
عمليات تنفيذ الأجهزة المحمولة:
- [3.10/H-0-1] يجب أن يتيح إمكانية وصول الجهات الخارجية
- [3.10/H-SR-1] يُوصى بشدة بتحميلها مسبقًا خدمات إمكانية الوصول على الجهاز التي يمكن مقارنة وظائفها بوظائف أو تجاوزها الوصول عبر مفتاح تحكُّم وTalkBack (للغات التي تتوفر بها التطبيقات المثبتة مسبقًا محرك تحويل النص إلى كلام) خدمات تسهيل الاستخدام على النحو الوارد في ميزة TalkBack المفتوحة. المصدر للمشروع.
- [3.11/H-0-1] يجب أن يتيح تثبيت ومحركات تحويل النص إلى كلام (TTS) التابعة لجهات خارجية.
- [3.11/H-SR-1] يُوصى بشدة بتضمين محرّك تحويل النص إلى كلام متوافق مع اللغات المتاحة على الجهاز
- [3.13/H-SR-1] يُوصى بشدة بتضمين مكوِّن واجهة مستخدم الإعدادات السريعة
إذا أعلنت عمليات تنفيذ أجهزة Android المحمولة عن FEATURE_BLUETOOTH
أو
فريق الدعم في "FEATURE_WIFI
"، وهي:
- [3.16/H-1-1] يجب أن يتوافق مع إقران الجهاز المصاحب. الجديدة.
إذا تم توفير وظيفة التنقّل كإجراء على الشاشة ومستند إلى الإيماءات:
- [7.2.3/H] منطقة التعرّف على الإيماءات الخاصة بالشاشة الرئيسية يجب ألا يزيد ارتفاع الدالة عن 32 وحدة بكسل مستقلة الكثافة من أسفل الشاشة.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد توفر وظيفة تنقُّل كإيماءة من أي مكان على الحافة اليسرى واليمنى للشاشة:
- [7.2.3/H-0-1] منطقة الإيماءات في وظيفة التنقل يجب أن يقل عرضها عن 40 وحدة بكسل مستقلة الكثافة على كل جانب. ينبغي أن تكون منطقة الإيماءة يبلغ العرض التلقائي 24 بكسل مستقل الكثافة.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تدعم شاشة قفل آمنة من الذاكرة المتوفرة للنواة ومساحة المستخدم تبلغ 2 جيجا بايت، وهي:
- [3.9/H-1-2] يجب أن يعلن عن إتاحة الملفات الشخصية المُدارة من خلال
علامة ميزة واحدة (
android.software.managed_users
)
إذا أعلنت عمليات تنفيذ أجهزة Android المحمولة عن توافقها مع الكاميرا عبر
android.hardware.camera.any
:
- [7.5.4/H-1-1] يجب أن يلتزم بـ
android.media.action.STILL_IMAGE_CAMERA
وandroid.media.action.STILL_IMAGE_CAMERA_SECURE
الرغبة في تشغيل الكاميرا في وضع الصور الثابتة كما هو موضح في حزمة SDK. - [7.5.4/H-1-2] يجب أن يلتزم بـ
android.media.action.VIDEO_CAMERA
تريد تشغيل الكاميرا في وضع الفيديو كما هو موضّح في حزمة تطوير البرامج (SDK).
إذا نفّذ تطبيق إعدادات تنفيذ الجهاز تقسيم الوظائف، باستخدام تضمين الأنشطة، وعندئذٍ:
- [3.2.3.1/ H-1-1] يجب أن يكون له نشاط يعالج
Settings#ACTION_SETTINGS_DOCUMENT_DEEP_LINK_ACTIVITY عند تفعيل وظيفة التقسيم يجب أن يكون النشاط محميًا عن طريق
android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK
ويجب أن يكون بدء نشاط Intent الذي تم تحليله من الإعدادات#EXTRA_SETTINGS_PARAMDED_DEEP_LINK_INTENT_URI.
بدء متطلبات جديدة
إذا كانت تطبيقات الأجهزة تسمح للمستخدمين بإجراء اتصالات من أي نوع،
- [7.4.1.2/H-0-1] يجب أن تعلن عن علامة الميزة
android.software.telecom
. - [7.4.1.2/H-0-2] يجب أن ينفذ إطار عمل الاتصالات.
إنهاء المتطلبات الجديدة
2.2.4. الأداء والقوة
- [8.1/H-0-1] وقت استجابة الإطار بشكل منتظم: يجب ألا يحدث وقت استجابة غير متسق أو تأخير عرض الإطارات أكثر. غالبًا ما يزيد عن 5 إطارات في الثانية، ومن المفترض أن يقل عن لقطة واحدة في الثانية.
- [8.1/H-0-2] وقت استجابة واجهة المستخدم: يجب أن تضمن عمليات تنفيذ الأجهزة انطباع المستخدم بزمن انتقال سريع من خلال تمرير قائمة تضم 10 آلاف إدخال من الإدخالات على النحو المحدّد في "مجموعة أدوات اختبار التوافق مع Android" (CTS) في أقل من 36 ثانية.
- [8.1/H-0-3] تبديل المهام: فعندما إطلاق تطبيقات متعددة، مما يؤدي إلى إعادة تشغيل تطبيق بعد تشغيله أقل من ثانية واحدة.
عمليات تنفيذ الأجهزة المحمولة:
- [8.2/H-0-1] يجب أن يضمن استخدام تسلسل كتابة بيانات لا تقل عن 5 ميغا بايت/ثانية.
- [8.2/H-0-2] يجب أن تضمن الكتابة العشوائية بسرعة لا تقل عن 0.5 ميغابايت/ثانية.
- [8.2/H-0-3] يجب أن يضمن قراءة تسلسلية بسرعة لا تقل عن 15 ميغا بايت/ثانية.
- [8.2/H-0-4] يجب أن تضمن قراءة عشوائية بسرعة لا تقل عن 3.5 ميغابايت/ثانية.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن ميزات لتحسين طاقة الجهاز التي يتم تضمينها في AOSP أو توسيع الميزات المضمنة في AOSP، فإنهم:
- [8.3/H-1-1] يجب أن يوفر المستخدم القدرة على تمكين وتعطيل ميزة توفير شحن البطارية.
- [8.3/H-1-2] يجب أن يوفر المستخدم إمكانية عرض المحتوى جميع التطبيقات المستثناة من وضعَي "تطبيقات الاستعداد" و"القيلولة" لتوفير الطاقة
عمليات تنفيذ الأجهزة المحمولة:
- [8.4/H-0-1] يجب أن يوفر ملف الطاقة لكل مكوّن ويحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
- [8.4/H-0-2] يجب الإبلاغ عن كل الطاقة قيم الاستهلاك بالملي أمبير في الساعة (mAh).
- [8.4/H-0-3] يجب الإبلاغ عن طاقة وحدة المعالجة المركزية
الاستهلاك حسب المُعرّف الفريد لكل عملية. يلبي المشروع المفتوح المصدر لنظام Android
من خلال تنفيذ وحدة النواة
uid_cputime
. - [8.4/H-0-4] يجب استخدام هذا الطاقة
متاح عبر
adb shell dumpsys batterystats
أمر Shell إلى مطور التطبيق. - [8.4/H] يجب أن تُنسَب إلى مكون الجهاز نفسه إذا لم تتمكن من تحديد استخدام الطاقة لمكوّن الجهاز إلى أحد التطبيقات.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن شاشة أو إخراج فيديو، سيتم إجراء ما يلي:
- [8.4/H-1-1] يجب أن يلتزم بـ
android.intent.action.POWER_USAGE_SUMMARY
النية بالشراء وعرض قائمة إعدادات توضح استخدام الطاقة هذا.
عمليات تنفيذ الأجهزة المحمولة:
- [8.5/H-0-1] يجب أن يوفر
المستخدم
في قائمة "الإعدادات"للاطّلاع على جميع التطبيقات التي تحتوي إمّا على الخدمات النشطة التي تعمل في المقدّمة الوظائف التي يبدأها المستخدم، بما في ذلك مدة كل خدمة من هذه الخدمات لأنّه بدأ كما هو موضّح في مستند حزمة تطوير البرامج (SDK).والقدرة على إيقاف تطبيق يشغِّل خدمة تعمل في المقدّمة أو مهمة يبدأها المستخدم.من خلال القدرة على إيقاف تطبيق يشغّل خدمة تعمل في المقدّمة ويعرض جميع التطبيقات التي تحتوي على خدمات نشطة تعمل في المقدّمة ومدة كل منها لهذه الخدمات منذ بدئها كما هو موضح في مستند حزمة SDK- قد تُستثنى بعض التطبيقات من الإيقاف أو الإدراج في المستخدم كما هو موضّح في مستند حزمة تطوير البرامج (SDK).
بدء متطلبات جديدة
- [8.5/H-0-2]يجب أن يوفر المستخدم القدرة على إيقاف تطبيق يشغّل خدمة تعمل في المقدّمة أو وظيفة يبدأها المستخدم
إنهاء المتطلبات الجديدة
2.2.5. نموذج الأمان
عمليات تنفيذ الأجهزة المحمولة:
- [9/H-0-1] يجب أن يعلن عن
android.hardware.security.model.compatible
الجديدة. - [9.1/H-0-1] يجب السماح لتطبيقات الجهات الخارجية بالوصول إلى
إحصاءات الاستخدام عبر إذن
android.permission.PACKAGE_USAGE_STATS
توفير آلية يمكن للمستخدم الوصول إليها لمنح أو إبطال إمكانية الوصول إلى هذه التطبيقات في ردّ علىandroid.settings.ACTION_USAGE_ACCESS_SETTINGS
والنية.
بدء متطلبات جديدة
إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع android.hardware.telephony
،
وهي:
- [9.5/H-1-1] يجب ألا يتم ضبط
UserManager.isHeadlessSystemUserMode
إلىtrue
.
إنهاء المتطلبات الجديدة
عمليات تنفيذ الأجهزة المحمولة:
- [9.11/H-0-2] يجب الاحتفاظ بنسخة احتياطية من تنفيذ ملف تخزين المفاتيح من خلال بيئة تنفيذ معزولة.
- يجب أن يتضمّن [9.11/H-0-3] تطبيقات لترميز RSA وAES. خوارزميات التشفير ECDSA وHMAC، وعائلة MD5 وSHA1 وSHA-2 لتوافق وظائف التجزئة مع توافق نظام تخزين مفاتيح Android بشكل صحيح الخوارزميات في منطقة معزولة بشكل آمن عن التعليمات البرمجية التي تعمل على النواة kernel وما فوقها. يجب أن يحظر العزل الآمن جميع الآليات المحتملة الذي يمكن من خلاله لشفرة kernel أو أو userspace الوصول إلى الحالة الداخلية معزولة، بما في ذلك قانون الأسواق الرقمية. البرامج المفتوحة المصدر لنظام Android يلبي المشروع (AOSP) هذا الشرط من خلال استخدام تنفيذ Trusty، حلّ مستند إلى ARM TrustZone أو حلاً آمنًا تمت مراجعته من قِبل جهة خارجية تنفيذ عزل صحيح مستند إلى برنامج Hypervisor (مراقب الأجهزة الظاهرية) هو بديل الخيارات.
- [9.11/H-0-4] يجب تنفيذ شاشة القفل في بيئة التنفيذ المعزولة وفقط عندما ناجحة، اسمح باستخدام المفاتيح المرتبطة بالمصادقة. شاشة القفل يجب تخزين بيانات الاعتماد بطريقة تسمح فقط بالتنفيذ المعزول لإجراء مصادقة شاشة القفل. أحدث إصدارات Android يوفر المشروع المفتوح المصدر طبقة تجريد أجهزة البوابة (HAL) و Trusty، التي يمكن استخدامها لاستيفاء هذا الشرط.
- [9.11/H-0-5] يجب أن يتوافق مع مصادقة المفتاح حيث مفتاح توقيع المصادقة محمي بواسطة أجهزة آمنة ويتم التوقيع في أجهزة آمنة. يجب مشاركة مفاتيح توقيع المصادقة على عدد كبير بما يكفي من الأجهزة لمنع استخدام المفاتيح كمعرّفات للأجهزة. تتمثل إحدى طرق تلبية هذا المطلب في مشاركة مفتاح المصادقة نفسه ما لم يتم توفير 100,000 وحدة على الأقل من رمز تخزين تعريفي معيّن إنتاجه. إذا تم إنتاج أكثر من 100,000 وحدة من رمز التخزين التعريفي، يجب قد يُستخدم المفتاح لكل 100000 وحدة.
يُرجى ملاحظة أنّه إذا كان قد تمّ تشغيل تنفيذ الجهاز على إصدار Android سابق
يتم إعفاء هذا الجهاز من طلب توفُّر ملف تخزين مفاتيح.
مدعومة ببيئة تنفيذ معزولة وتدعم المصادقة الرئيسية،
ما لم يتم الإعلان عن ميزة android.hardware.fingerprint
التي تتطلّب
ملف تخزين مفاتيح يعتمد على بيئة تنفيذ معزولة.
عندما تتوافق عمليات تنفيذ الأجهزة المحمولة باليد مع شاشة قفل آمنة:
- [9.11/H-1-1] يجب أن يسمح للمستخدم باختيار الأقصر مهلة السكون، وهي وقت انتقال من فتح القفل إلى القفل المقفل إلى 15 ثانية أو أقل.
- [9.11/H-1-2] يجب أن يوفر المستخدم إمكانية الإخفاء وإيقاف جميع أشكال المصادقة باستثناء مصادقة أساسية موضحة في 9.11.1 شاشة القفل الآمنة: يفي AOSP بـ المطلوب كوضع إلغاء التأمين.
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة تتضمّن شاشة قفل آمنة وتتضمن وكيلاً موثوقًا واحدًا أو أكثر يستخدم TrustAgentService
System API، سينفّذ ما يلي:
- [9.11.1/H-1-1] يجب أن يطلب المستخدم من المستخدم تنفيذ إحدى طرق المصادقة الأساسية المقترَحة (مثل رقم التعريف الشخصي أو النقش أو كلمة المرور) أكثر من مرة واحدة كل 72 ساعة.
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن عدة مستخدمين
لا تعلن عن علامة الميزة android.hardware.telephony
، فإنها:
- [9.5/H-2-1] يجب أن يتوافق مع الملفات الشخصية المحظورة، وهي ميزة تسمح لمالكي الأجهزة بإدارة حسابات المستخدمين الإضافيين والإمكانيات الجديدة على الجهاز. من خلال الملفات الشخصية المقيّدة، يمكن لمالكي الأجهزة إعداد بيئات منفصلة بسرعة لكي يعمل فيها مستخدمون إضافيون، مع القدرة على إدارة القيود الأكثر دقة في التطبيقات التي المتوفرة في تلك البيئات.
إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن عدة مستخدمين
الإعلان عن علامة الميزة android.hardware.telephony
، فإنها:
- [9.5/H-3-1] يجب ألا يكون الدعم خاضعًا لقيود ولكن يجب أن تتوافق مع تنفيذ عناصر التحكم في بروتوكول AOSP. لتفعيل /إيقاف المستخدمين الآخرين من الوصول إلى المكالمات الصوتية والرسائل القصيرة SMS.
بدء متطلبات جديدة
في حال ضبط عمليات تنفيذ الأجهزة المحمولة باليد على UserManager.isHeadlessSystemUserMode
إلى true
، تم
- [9.5/H-4-1] يجب ألا يتضمن دعمًا لـ eUICCs، ولا لشرائح eSIM التي توفر إمكانية الاتصال.
- [9.5/H-4-2] يجب ألا تعلن عن دعم لـ
android.hardware.telephony
إنهاء المتطلبات الجديدة
يتيح Android، من خلال واجهة برمجة تطبيقات VoiceInteractionService، آلية رصد الكلمة المفتاح الآمنة قيد التشغيل دائمًا بدون إشارة إلى الوصول إلى الميكروفون وميزة رصد طلبات البحث قيد التشغيل دائمًا، بدون استخدام ميكروفون أو كاميرا مؤشر الوصول
في حال كانت عمليات تنفيذ الأجهزة المحمولة تتوافق مع System API
HotwordDetectionService
أو آلية أخرى لاكتشاف الكلمة المفتاح بدون
مؤشر الوصول إلى الميكروفون، فإنّها:
- [9.8/H-1-1] يجب التأكد من أن خدمة اكتشاف الكلمة المفتاح لا يمكنها إلا الإرسال
إلى النظام،
ContentCaptureService
، أو على الجهاز فقط خدمة التعرف على الكلام التي تم إنشاؤها بواسطةSpeechRecognizer#createOnDeviceSpeechRecognizer()
- [9.8/H-1-2] يجب التأكد من أن خدمة اكتشاف الكلمة المفتاح لا يمكنها إلا الإرسال
البيانات الصوتية للميكروفون أو البيانات المستمدة منها إلى خادم النظام من خلال
HotwordDetectionService
API، أو إلىContentCaptureService
من خلال واجهة برمجة تطبيقاتContentCaptureManager
. - [9.8/H-1-3] يجب ألا يتم توفير صوت ميكروفون تزيد مدته عن 30 ثانية في طلب فردي يتم تشغيله بواسطة الأجهزة إلى خدمة كشف الكلمات المفتاح.
- [9.8/H-1-4] يجب ألا يتم توفير صوت الميكروفون الذي تم تخزينه مؤقتًا لمدة تزيد عن 8 ثوانٍ لمدة طلب فردي إلى خدمة اكتشاف الكلمة المفتاح.
- [9.8/H-1-5] يجب ألا يتم توفير صوت الميكروفون الذي تم تخزينه مؤقتًا وتزيد مدّته عن 30 ثانية في الجهاز. خدمة التفاعل الصوتي أو كيان مشابه.
- [9.8/H-1-6] يجب ألا يسمح بأكثر من 100 بايت من البيانات. أن يتم نقلها خارج خدمة كشف الكلمات المفتاح في كل مرة نتيجة الكلمة المفتاح باستثناء البيانات الصوتية التي تم تمريرها من خلال HotwordAudioStream:
- [9.8/H-1-7] يجب ألا يسمح بنقل أكثر من 5 وحدات بت من البيانات. لخدمة الكشف عن الكلمة المفتاح في كل نتيجة من نتائج الكلمات المفتاح السلبية.
- [9.8/H-1-8] يجب السماح بنقل البيانات خارج الكلمة المفتاح فقط. خدمة كشف عند طلب التحقق من الكلمة المفتاح من خادم النظام.
- [9.8/H-1-9] يجب ألا يسمح لتطبيق قابل للتثبيت من قبل المستخدم بتوفير خدمة اكتشاف الكلمات المفتاح.
- [9.8/H-1-10] يجب ألا تظهر في البيانات الكمية حول استخدام الميكروفون في واجهة المستخدم. خدمة اكتشاف الكلمات المفتاح.
- [9.8/H-1-11] يجب تسجيل عدد وحدات البايت المضمنة في كل عملية إرسال من خدمة الكشف عن الكلمات المفتاح للسماح بفحص الأمان الباحثين.
- [9.8/H-1-12] يجب أن يتوفر وضع تصحيح أخطاء يسجّل المحتوى الأولي لكل الإرسال من خدمة اكتشاف الكلمة المفتاح للسماح بقابلية فحص والباحثين الأمنيين.
- [9.8/H-1-14] يجب عرض مؤشر الميكروفون، كما هو موضح في القسم 9.8.2: عند إرسال نتيجة كلمة تفعيل الإجراء بنجاح إلى الصوت خدمة التفاعل أو كيان مشابه.
بدء متطلبات جديدة
- [9.8/H-1-15] يجب أن يضمن بث المحتوى الصوتي عند استخدام كلمة تفعيل ناجحة. يتم نقل النتائج في اتجاه واحد من خدمة اكتشاف الكلمات المفتاح إلى خدمة التفاعل الصوتي.
إنهاء المتطلبات الجديدة
- [9.8/H-SR-1] يُوصى بها بشدة لإشعار المستخدمين قبل إعداد كمزود لخدمة اكتشاف الكلمات المفتاح.
- [9.8/H-SR-2] يُوصى بها بشدة لمنع نقل البيانات غير المهيكلة خارج خدمة كشف الكلمات المفتاح.
- [9.8/H-SR-3] يُوصى بشدة بإعادة تشغيل العملية التي تستضيف خدمة الكشف عن الكلمات المفتاح مرة واحدة على الأقل كل ساعة أو كل 30 الأحداث الخاصة بتشغيل الأجهزة، أيهما أقرب.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن تطبيقًا يستخدم System API
HotwordDetectionService
، أو آلية مشابهة لاكتشاف الكلمة المفتاح بدون
مؤشر استخدام الميكروفون، التطبيق:
- [9.8/H-2-1] يجب أن يتم تقديم إشعار صريح للمستخدم بخصوص كل عبارة من عبارات البحث المخصص
- [9.8/H-2-2] يجب ألا يحتفظ بالبيانات الصوتية الأولية أو البيانات المستمدة منها، من خلال خدمة الكشف عن الكلمات المفتاح.
- [9.8/H-2-3] يجب ألا يتم الإرسال من خدمة رصد الكلمات المفتاح، الصوت
أو البيانات التي يمكن استخدامها لإعادة إنشاء الصوت (كليًا أو جزئيًا)،
أو المحتوى الصوتي غير ذي الصلة بالكلمة المفتاح، باستثناء
ContentCaptureService
أو الكلام على الجهاز خدمة التعرّف على الكلام.
بدء متطلبات جديدة
في حال كانت عمليات تنفيذ الأجهزة المحمولة تتوافق مع System API
VisualQueryDetectionService
أو آلية أخرى لاكتشاف طلبات البحث
بدون مؤشر الوصول إلى الميكروفون و/أو الكاميرا، فإنّ:
- [9.8/H-3-1] يجب التأكد من أن خدمة اكتشاف طلبات البحث يمكنها فقط الإرسال
البيانات إلى النظام أو
ContentCaptureService
أو الكلام على الجهاز خدمة التعرف على الصوت (تم إنشاؤها بواسطةSpeechRecognizer#createOnDeviceSpeechRecognizer()
). - [9.8/H-3-2] يجب عدم السماح بنقل أي معلومات صوت أو فيديو.
من
VisualQueryDetectionService
، باستثناءContentCaptureService
أو خدمة التعرّف على الكلام على الجهاز فقط. - [9.8/H-3-3] يجب عرض إشعار المستخدم في واجهة مستخدم النظام عند رصد الجهاز لمستخدم النية في التعامل مع تطبيق المساعد الرقمي (على سبيل المثال من خلال اكتشاف تواجد المستخدم عبر الكاميرا).
- [9.8/H-3-4] يجب عرض مؤشر الميكروفون وعرض ما تم اكتشافه طلب بحث المستخدم في واجهة المستخدم مباشرةً بعد رصد طلب بحث المستخدم.
- [9.8/H-3-5] يجب ألا يسمح لتطبيق قابل للتثبيت من قبل المستخدم بتوفير خدمة كشف الاستعلام المرئي.
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى android.hardware.microphone
، سيكون:
- [9.8.2/H-4-1] يجب أن يتم عرض مؤشر الميكروفون عندما
وصول أحد التطبيقات إلى البيانات الصوتية من الميكروفون، ولكن ليس عند
يتم الوصول إلى الميكروفون فقط عن طريق
HotwordDetectionService
،SOURCE_HOTWORD
أوContentCaptureService
أو التطبيقات التي تشغل الأدوار باسم في القسم 9.1 بمعرّف CDD [C-4-X]. - [9.8.2/H-4-2] يجب أن يعرض قائمة حديثة ونشطة
التطبيقات التي تستخدم الميكروفون وفقًا لما يظهر من
PermissionManager.getIndicatorAppOpUsageData()
، إلى جانب أي إحالة الرسائل المرتبطة بها.
إذا كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى android.hardware.camera.any
، سيكون:
- [9.8.2/H-5-1] يجب أن يتم عرض مؤشر الكاميرا عند وصول التطبيق إلى بيانات الكاميرا المباشرة، ولكن ليس عند تشغيل الكاميرا تم الوصول إليها من خلال التطبيقات التي تمتلك الأدوار التي تم ذكرها في الفقرة 9.1 تتضمّن معرّف CDD [C-4-X].
- [9.8.2/H-5-2] يجب عرض التطبيقات الحديثة والنشطة التي تستخدم
الكاميرا على النحو الذي تم إرجاعه من
PermissionManager.getIndicatorAppOpUsageData()
، إلى جانب أي رسائل تحديد مصدر مرتبطة بها.
2.2.6. التوافق بين أدوات المطوّرين وخياراتهم
عمليات التنفيذ على الأجهزة المحمولة (* لا ينطبق على الأجهزة اللوحية):
- [6.1/H-0-1]* يجب أن يتوافق مع أمر الغلاف
cmd testharness
عمليات التنفيذ على الأجهزة المحمولة (* لا ينطبق على الأجهزة اللوحية):
- Perfetto
- [6.1/H-0-2]* يجب أن يكشف عن
/system/bin/perfetto
ثنائي النظام إلى مستخدم واجهة المستخدم الذي يتوافق مع cmdline مستندات العروض الترويجية - [6.1/H-0-3]* يجب أن يقبل البرنامج الثنائي Perfetto إدخال تهيئة Protobuf تتوافق مع المخطط المحدد في مستندات المزايا
- [6.1/H-0-4]* يجب كتابة البرنامج الثنائي للأداء على النحو التالي: إخراج تتبع أولي يتوافق مع المخطط المحدد في مستندات المزايا
- [6.1/H-0-5]* يجب أن يتم توفيره من خلال العرض ثنائيًا، على الأقل مصادر البيانات الموضحة في مستندات Perfetto.
- [6.1/H-0-6]* يجب أن يكون البرنامج الخفي الذي يتم تتبُّعه
يتم تفعيلها تلقائيًا (خاصّية النظام
persist.traced.enable
).
- [6.1/H-0-2]* يجب أن يكشف عن
2.2.7. صف أداء الوسائط المحمولة
راجع القسم 7.11 للاطلاع على تعريف فئة أداء الوسائط.
2.2.7.1. الوسائط
في حال عرض عمليات تنفيذ الجهاز المحمول باليد android.os.Build.VERSION_CODES.T
لـ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
، فسيتم إجراء ما يلي:
- أن يستوفي متطلبات الوسائط الواردة في القسم 2.2.7.1 من نظام التشغيل Android 13 CDD
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأandroid.os.Build.VERSION_CODES.U
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
، وبعد ذلك:
- [5.1/H-1-1] يجب الإعلان عن الحد الأقصى لعدد برامج فك ترميز الفيديو على الجهاز.
التي يمكن تشغيلها بالتزامن في أي مجموعة من برامج الترميز عبر
CodecCapabilities.getMaxSupportedInstances()
وVideoCapabilities.getSupportedPerformancePoints()
طريقة - [5.1/H-1-2] يجب أن يتوافق مع 6 نسخ من برنامج فك ترميز الفيديو للأجهزة بنظام 8 بت (SDR) جلسات (AVC أو HEVC أو VP9 أو AV1 أو أحدث) في أيّ مجموعة برامج ترميز يتم تشغيلها بالتزامن مع 3 جلسات بدقة 1080p بسرعة 30 لقطة في الثانية و3 جلسات بدقة 4K درجة الدقة بسرعة 30 لقطة في الثانية، ما لم يكن AV1. لا يجب استخدام برامج ترميز AV1 إلا لتتوافق مع دقة 1080p، إلا أنّها لا تزال مطلوب لتشغيل 6 مثيلات بدقة 1080p30fps.
- [5.1/H-1-3] يجب الإعلان عن الحد الأقصى المسموح به لعدد برامج ترميز الفيديو على الأجهزة.
التي يمكن تشغيلها بالتزامن في أي مجموعة من برامج الترميز عبر
CodecCapabilities.getMaxSupportedInstances()
وVideoCapabilities.getSupportedPerformancePoints()
طريقة - [5.1/H-1-4] يجب أن يتوافق مع 6 نسخ من برنامج ترميز الفيديو للأجهزة بنظام 8 بت (SDR) جلسات (AVC أو HEVC أو VP9 أو AV1 أو أحدث) في أيّ مجموعة برامج ترميز يتم تشغيلها بالتزامن مع 4 جلسات بدقة 1080p بسرعة 30 لقطة في الثانية وجلستَين بدقة 4K درجة الدقة بسرعة 30 لقطة في الثانية، ما لم يكن AV1. لا يجب استخدام برامج ترميز AV1 إلا لتتوافق مع دقة 1080p، إلا أنّها لا تزال مطلوب لتشغيل 6 مثيلات بدقة 1080p30fps.
- [5.1/H-1-5] يجب الإعلان عن الحد الأقصى المسموح به لعدد أجهزة تشفير الفيديو
برامج فك الترميز التي يمكن تشغيلها بالتزامن في أي مجموعة من برامج الترميز عبر
CodecCapabilities.getMaxSupportedInstances()
وVideoCapabilities.getSupportedPerformancePoints()
طريقة - [5.1/H-1-6] يجب أن يتوافق مع 6 نسخ من برنامج فك ترميز الفيديو للأجهزة بنظام 8 بت (SDR) جلسات برامج ترميز الفيديو على الأجهزة (AVC أو HEVC أو VP9 أو AV1 أو الإصدارات الأحدث) في أي مجموعة برامج الترميز التي تعمل بالتزامن مع 3 جلسات بسرعة 4K بسرعة 30 لقطة في الثانية درجة الدقة (إلا إذا كانت AV1)، من أكثر اثنتين منها جلسات برنامج ترميز و3 الجلسات بدقة 1080p. لا يجب استخدام برامج ترميز AV1 إلا لتتوافق مع دقة 1080p، إلا أنّها لا تزال مطلوب لتشغيل 6 مثيلات بدقة 1080p30fps.
- [5.1/H-1-19] يجب أن تتوافق مع 3 نسخ من برنامج فك ترميز الفيديوهات للأجهزة بنظام 10 بت (HDR) جلسات برامج ترميز الفيديو على الأجهزة (AVC أو HEVC أو VP9 أو AV1 أو الإصدارات الأحدث) في أي تشغيل مجموعة برامج الترميز بالتزامن بدقة 4K بسرعة 30 لقطة في الثانية (ما لم يكن AV1) من بينها جلسة واحدة على الأكثر يمكن إعدادها في برنامج ترميز تنسيق الإدخال RGBA_1010102 من خلال سطح GL. إنشاء البيانات الوصفية ذات تنسيق HDR بواسطة يكون برنامج التشفير غير مطلوب في حالة ما إذا كان التشفير من سطح GL. يجب استخدام جلسات برنامج ترميز AV1 فقط لضمان دقة 1080p حتى في الحالات التي يتطلّب ذلك مشاهدة المحتوى بدقة 4K
- [5.1/H-1-7] يجب أن يصل وقت استجابة إعداد برنامج الترميز إلى 40 ملي ثانية أو أقل جلسة ترميز فيديو تبلغ 1080p أو أقل لجميع برامج ترميز الفيديوهات على الأجهزة قيد التحميل. يتم تحديد التحميل هنا على أنّه فيديو متزامن بين 1080p و720p فقط. لتحويل الترميز باستخدام برامج ترميز الفيديو للأجهزة ودقة 1080p تهيئة تسجيل الصوت والفيديو. وبالنسبة إلى برنامج ترميز Dolby Vision، يجب أن يبلغ وقت استجابة الإعداد 50 ملي ثانية أو أقل.
- [5.1/H-1-8] يجب أن يصل وقت استجابة إعداد برنامج الترميز إلى 30 ملي ثانية أو أقل جلسة ترميز صوت بسرعة 128 كيلوبت في الثانية أو بمعدل نقل بيانات أقل لجميع برامج ترميز الصوت عند قيد التحميل. يتم تحديد التحميل هنا على أنّه فيديو متزامن بين 1080p و720p فقط. لتحويل الترميز باستخدام برامج ترميز الفيديو للأجهزة ودقة 1080p تهيئة تسجيل الصوت والفيديو.
- [5.1/H-1-9] يجب أن يتوافق مع حالتين من برنامج فك ترميز الفيديو بالأجهزة الآمنة جلسات (AVC أو HEVC أو VP9 أو AV1 أو أحدث) في أيّ مجموعة برامج ترميز يتم تشغيلها بالتزامن مع دقة 4k بسرعة 30 لقطة في الثانية (ما لم تستخدم AV1) لكل من نظام التشغيل 8 بت (SDR) محتوى 10 بت بنطاق عالي الديناميكية يجب استخدام جلسات برنامج ترميز AV1 فقط لضمان دقة 1080p حتى في الحالات التي يتطلّب ذلك مشاهدة المحتوى بدقة 4K
- [5.1/H-1-10] يجب أن يتوفر في 3 حالات من برنامج فك ترميز الفيديو للأجهزة غير الآمنة الجلسات مع مثيل واحد من جلسة آمنة لفك ترميز الفيديو على الجهاز (إجمالي 4 مثيلات) (AVC أو HEVC أو VP9 أو AV1 أو أحدث) في أي مجموعة برامج ترميز التشغيل بالتزامن مع 3 جلسات بدقة 4K بسرعة 30 لقطة في الثانية (ما لم AV1) بما في ذلك جلسة واحدة آمنة لفك الترميز وجلسة واحدة آمنة بدقة 1080p segmentation بسرعة 30 لقطة في الثانية حيث يمكن تسجيل جلستَين كحدّ أقصى بتقنية HDR بمعدّل 10 بت يجب استخدام جلسات برنامج ترميز AV1 فقط لضمان دقة 1080p حتى في الحالات التي يتطلّب ذلك مشاهدة المحتوى بدقة 4K
- [5.1/H-1-11] يجب أن يتوافق مع برنامج فك ترميز آمن لكل أجهزة AVC أو HEVC برنامج فك ترميز VP9 أو AV1 على الجهاز.
- [5.1/H-1-12] يجب أن يصل وقت استجابة إعداد برنامج الترميز إلى 40 ملي ثانية أو أقل جلسة فك ترميز فيديو بدقة 1080p أو أصغر لجميع برامج فك ترميز الفيديوهات على الأجهزة عندما تكون قيد التحميل. يتم تحديد التحميل هنا على أنّه فيديو متزامن بين 1080p و720p. الفيديو فقط باستخدام برامج ترميز الفيديو على الأجهزة بالإضافة إلى إعداد تشغيل الصوت والفيديو بدقة 1080p وبالنسبة إلى برنامج ترميز Dolby Vision، يجب أن يبلغ وقت استجابة الإعداد 50 ملي ثانية أو أقل.
- [5.1/H-1-13] يجب أن يصل وقت استجابة إعداد برنامج الترميز إلى 30 ملي ثانية أو أقل جلسة فك ترميز الصوت بمعدل نقل بيانات يبلغ 128 كيلوبت في الثانية أو أقل لجميع برامج فك ترميز الصوت عند قيد التحميل. يتم تحديد التحميل هنا على أنّه فيديو متزامن بين 1080p و720p فقط. لتحويل الترميز باستخدام برامج ترميز الفيديو للأجهزة ودقة 1080p تهيئة تشغيل الصوت والفيديو.
- [5.1/H-1-14] يجب أن يتوافق مع برنامج فك ترميز الأجهزة AV1 الرئيسي 10 والمستوى 4.1 والفيلم حَبَّة
- يجب أن يحتوي [5.1/H-1-15] على برنامج فك ترميز فيديو واحد على الأقل يتوافق مع 4K60.
- يجب أن يتوفّر في الأجهزة [5.1/H-1-16] برنامج ترميز فيديو واحد على الأقل متوافق مع دقة 4K60.
- [5.3/H-1-1] يجب ألا يتم إسقاط أكثر من إطار واحد خلال 10 ثوانٍ (أي أقل من انخفاض بنسبة 0.167 بالمئة في الثانية) لجلسة فيديو بمعدل 60 لقطة في الثانية قيد التحميل.
- [5.3/H-1-2] يجب ألا يتم إسقاط أكثر من إطار واحد خلال 10 ثوانٍ أثناء تشغيل الفيديو. تغيير الدقة في جلسة فيديو بسرعة 60 لقطة في الثانية قيد التحميل لجلسة 4K.
- [5.6/H-1-1] يجب أن يكون وقت استجابة النقر للنغمات 80 مللي ثانية أو أقل باستخدام اختبار النقر للنغمات في CTS Verifier.
- [5.6/H-1-2] يجب أن يكون وقت استجابة الصوت ذهابًا وإيابًا 80 مللي ثانية أو أقل على مسار بيانات متوافق واحد على الأقل.
- [5.6/H-1-3] يجب أن يتوافق مع صوت أكبر من أو يساوي 24 بت لإخراج صوت استيريو أعلى من 3.5 ملم
مقابس إذا كانت موجودة وعلى صوت USB إذا كانت متوافقة مع جميع البيانات
مسار وقت الاستجابة البطيء وإعدادات البث. لوقت الاستجابة البطيء
من الإعدادات، يجب أن يستخدم التطبيق AAudio في وقت استجابة سريع
الحالي. بالنسبة إلى إعدادات البث، يجب استخدام مقطع صوتي Java من خلال:
التطبيق. في كل من وقت الاستجابة البطيء وتهيئات البث، تكون طبقة تجريد الأجهزة (HAL)
يجب أن يقبل حوض الإخراج إما
AUDIO_FORMAT_PCM_24_BIT
AUDIO_FORMAT_PCM_24_BIT_PACKED
أوAUDIO_FORMAT_PCM_32_BIT
أوAUDIO_FORMAT_PCM_FLOAT
لتنسيق الإخراج المستهدف. - [5.6/H-1-4] يجب أن يتوافق مع أكثر من أو يساوي أربع قنوات من أجهزة الصوت USB (يستخدم هذا الإعداد لمنسّقي الموسيقى لمعاينة الأغاني).
- [5.6/H-1-5] يجب أن تتوافق مع أجهزة MIDI المتوافقة مع فئتها وتوضح ما يلي: علامة ميزة MIDI
- [5.6/H-1-9] يجب أن يتوفر فيه 12 قناة مختلطة على الأقل. وهذا يعني أن القدرة على فتح مقطع صوتي مع قناع قناة 7.1.4 الاختزال المكاني أو خفض مزج جميع القنوات إلى صوت الاستيريو.
- [5.6/H-SR] يُنصَح بشدة بدعم 24 قناة من القنوات التي يمزجون على الأقل دعم لأقنعة القنوات بمعيار 9.1.6 و22.2.
- [5.7/H-1-2] يجب أن يتوافق مع
MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL
مع أقل من إمكانات فك تشفير المحتوى.
الحد الأدنى لحجم العينة | 4 مبيبايت |
الحد الأدنى لعدد العيّنات الفرعية: H264 أو HEVC | 32 |
الحد الأدنى لعدد العيّنات الفرعية - VP9 | 9 |
الحدّ الأدنى لعدد العيّنات الفرعية: AV1 | 288 |
الحد الأدنى لحجم ذاكرة التخزين المؤقت للعينة الفرعية | 1 مبيبايت |
الحد الأدنى لحجم المخزن المؤقت العام للعملات المشفّرة | 500 كيبيبايت |
الحد الأدنى لعدد الجلسات المتزامنة | 30 |
الحد الأدنى لعدد المفاتيح في كل جلسة | 20 |
الحد الأدنى لإجمالي عدد المفاتيح (جميع الجلسات) | 80 |
الحد الأدنى لإجمالي عدد مفاتيح DRM (جميع الجلسات) | 6 |
حجم الرسالة | 16 كيبيبايت |
اللقطات غير المشفّرة في الثانية | 60 لقطة في الثانية |
- [5.1/H-1-17] يجب أن يتوفر على الأقل برنامج فك ترميز صور واحد للأجهزة يتوافق مع AVIF الملف الشخصي الأساسي
- [5.1/H-1-18] يجب أن يتوافق مع برنامج ترميز AV1 الذي يمكنه ترميز المحتوى بدقة تصل إلى 480p. بدقة 30 لقطة في الثانية و1 ميغابت في الثانية.
[5.12/H-1-1] يجب[5.12/H-SR] يُنصح بشدة بدعمFeature_HdrEditing
لجميع برامج الترميز AV1 وHEVC المتوفرة على الجهاز.- [5.12/H-1-2] يجب أن يتوافق مع تنسيق الألوان RGBA_1010102 لجميع أجهزة AV1 تتوفّر برامج ترميز HEVC على الجهاز.
- [5.12/H-1-3] يجب الإعلان عن دعم الإضافة EXT_YUV_target إلى عينة من زخارف YUV في كل من 8 و10 بت.
- يجب أن يتضمّن [7.1.4/H-1-1] 6 طبقات على الأجهزة على الأقل في معالجة الشاشة. (DPU)، مع قدرة اثنين منها على الأقل على عرض محتوى فيديو 10 بت.
إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأ android.os.Build.VERSION_CODES.U
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
وتشمل
متوافق مع برنامج ترميز AVC أو HEVC، وهما:
- [5.2/H-2-1] يجب أن تستوفي الحد الأدنى لهدف الجودة المحدد في الفيديو منحنيات تشوّه معدّل الترميز في برنامج الترميز لترميزات AVC وHEVC على الجهاز، على النحو المحدَّد في إجراء اختبارات من فئة الأداء 14 (PC14) - جودة ترميز الفيديو (VEQ)
إنهاء المتطلبات الجديدة
2.2.7.2. الكاميرا
في حال عرض عمليات تنفيذ الجهاز المحمول باليد android.os.Build.VERSION_CODES.T
لـ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
، فسيتم إجراء ما يلي:
- أن يستوفي متطلبات الوسائط الواردة في القسم 2.2.7.2 حول CDD لنظام التشغيل Android 13
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأandroid.os.Build.VERSION_CODES.U
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
، وبعد ذلك:
- [7.5/H-1-1] يجب أن تتوفر به كاميرا خلفية أساسية بدرجة دقة تبلغ 12 ميغابكسل على الأقل تدعم التقاط الفيديو بسرعة 4k بسرعة 30 لقطة في الثانية. الأساسية الكاميرا الخلفية هي الكاميرا الخلفية التي تتضمّن معرّفًا أدنى للكاميرا.
- [7.5/H-1-2] يجب أن تتوفر به كاميرا أمامية أمامية تبلغ درجة دقتها 6 ميغابكسل على الأقل مع دعم التقاط الفيديو بدقة 1080p بسرعة 30 لقطة في الثانية. الأساسية الكاميرا الأمامية هي الكاميرا الأمامية التي لديها معرّف أدنى للكاميرا.
- [7.5/H-1-3] يجب أن يتوافق مع السمة
android.info.supportedHardwareLevel
باعتبارهFULL
أو أفضل للتمرين الأساسي الخلفي وLIMITED
أو أفضل للتمرين الأساسي الأمامي والكاميرا. - [7.5/H-1-4] يجب أن يتوفر
CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
لكلتاهما الأساسيتين الكاميرات. - [7.5/H-1-5] يجب أن يكون وقت استجابة الالتقاط بتنسيق JPEG في الكاميرا2 < 1,000
900ملي ثانية للدقة 1080p كما تم قياسه بواسطة اختبار أداء كاميرا CTS ضمن ظروف الإضاءة في ITS (3000 كيلوبايت) لكلتا الكاميرتين الأساسيتين. - [7.5/H-1-6] يجب أن يكون هناك وقت استجابة لبدء تشغيل الكاميرا 2 (فتح الكاميرا للمعاينة الأولى) إطار) < 500 ملي ثانية وفقًا لقياس أداء كاميرا CTS ضمن تكنولوجيا المعلومات. ظروف الإضاءة (3000 كيلوبايت) لكلتا الكاميرتين الأساسيتين.
- [7.5/H-1-8] يجب أن يتوافق مع
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW
وandroid.graphics.ImageFormat.RAW_SENSOR
للكاميرا الخلفية الأساسية. - [7.5/H-1-9] يجب أن تتوفر فيه كاميرا أساسية خلفية متوافقة مع 720p أو 1080p. 240 لقطة في الثانية.
- [7.5/H-1-10] يجب أن يتضمن الحد الأدنى ZOOM_RATIO < 1.0 للكاميرات الرئيسية إذا كانت هناك هي كاميرا مزوّدة بنموذج أحمر أخضر أزرق (RGB) موسَّعة مواجهة الاتجاه نفسه.
- [7.5/H-1-11] يجب تنفيذ بث مباشر متزامن من جهة الخلف في القناة الأساسية الكاميرات.
- [7.5/H-1-12] يجب أن يتوفر
CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
لكلتاهما الأساسيتين الكاميرا الأمامية والخلفية الأساسية. - [7.5/H-1-13] يجب أن يتوافق مع إمكانات
LOGICAL_MULTI_CAMERA
للكاميرا الخلفية الرئيسية إذا كان هناك أكثر من نموذج أحمر أخضر أزرق واحد الكاميرات الخلفية. - [7.5/H-1-14] يجب أن يتوافق مع إمكانات
STREAM_USE_CASE
لكليهما الأساسي الكاميرا الأمامية والخلفية الأساسية. - [7.5/H-1-15] يجب أن يتوافق مع
Bokeh &إضافات "الوضع الليلي" من خلال إضافتَي CameraX و Camera2 الأساسيين الكاميرات. - [7.5/H-1-16] يجب أن يتوافق مع إمكانات DYNAMIC_RANGE_TEN_BIT للجهاز الأساسي الكاميرات.
- [7.5/H-1-17] يجب أن يتوافق مع Control_SCENE_mode_FACE_PRIORITY والتعرّف على الوجوه (StatISTICS_FACE_DETECT_mode_SIMPLE أو staISTICS_FACE_DETECT_mode_FULL) للكاميرات الرئيسية.
إنهاء المتطلبات الجديدة
2.2.7.3. الأجهزة
إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأ android.os.Build.VERSION_CODES.T
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
، وبعد ذلك:
- أن يستوفي متطلبات الوسائط الواردة في القسم 2.2.7.3 من نظام التشغيل Android 13 CDD
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأandroid.os.Build.VERSION_CODES.U
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
، وبعد ذلك:
- [7.1.1.1/H-2-1] يجب أن تكون دقة الشاشة 1080p على الأقل.
- [7.1.1.3/H-2-1] يجب أن تبلغ كثافة الشاشة 400 نقطة لكل بوصة على الأقلّ.
- [7.1.1.3/H-3-1] يجب أن يحتوي على شاشة HDR متوافقة مع 1,000 وحدة نِت على الأقل المتوسط.
- [7.6.1/H-2-1] يجب أن تتوفّر ذاكرة فعلية بسعة 8 غيغابايت على الأقل.
إنهاء المتطلبات الجديدة
2.2.7.4. الأداء
إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأ android.os.Build.VERSION_CODES.T
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
، وبعد ذلك:
- أن يستوفي متطلبات الأداء الواردة في القسم 2.2.7.4 من نظام التشغيل Android 13 CDD
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأandroid.os.Build.VERSION_CODES.U
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
، وبعد ذلك:
- [8.2/H-1-1] يجب أن يضمن أداء كتابة تسلسلي لا يقل عن 150 ميغابايت/ثانية.
- [8.2/H-1-2] يجب أن يضمن أداء كتابة عشوائي لا يقل عن 10 ميغابايت/ثانية.
- [8.2/H-1-3] يجب أن يضمن أداء قراءة تسلسلي لا يقل عن 250 ميغابايت/ثانية.
- [8.2/H-1-4] يجب أن يضمن أداء قراءة عشوائي لا يقل عن 100 ميغابايت/ثانية.
- [8.2/H-1-5] يجب أن تضمن أداء قراءة وكتابة تسلسلي متوازٍ مع أداء لا يقل عن 50 ميغا بايت/ثانية في القراءة والكتابة بمقدار 2x.
إنهاء المتطلبات الجديدة
2.3. متطلبات التلفزيون
يشير جهاز تلفزيون Android إلى عملية تنفيذ لجهاز Android هي واجهة ترفيه لاستخدام الوسائط الرقمية والأفلام والألعاب والتطبيقات و/أو بث تلفزيوني مباشر للمستخدمين الذين يجلسون على بُعد عشرة أقدام ("استرخاء" أو "10 أقدام" واجهة المستخدم").
تُصنَّف عمليات تنفيذ أجهزة Android كأجهزة تلفزيون في حال استيفاء جميع المعايير التالية:
- توفير آلية للتحكم عن بُعد في واجهة المستخدم المعروضة على الشاشة التي قد تكون على بعد عشرة أقدام من المستخدم.
- أن تحتوي على شاشة مضمّنة يزيد طول قطرها عن 24 بوصة أو تتضمن منفذًا لإخراج الفيديو مثل VGA أو HDMI أو DisplayPort أو منفذ لاسلكي للعرض.
إنّ المتطلبات الإضافية الواردة في باقي هذا القسم خاصة بنظام Android. عمليات تنفيذ أجهزة التلفزيون.
2.3.1. الأجهزة
عمليات تنفيذ أجهزة التلفزيون:
- [7.2.2/T-0-1] يجب أن يتوافق مع D-pad.
- [7.2.3/T-0-1] يجب توفير زر المنزل والرجوع الأخرى.
- [7.2.3/T-0-2] يجب أن يرسل كل من الضغط العادي والضغط مع الاستمرار
حدث دالة الرجوع (
KEYCODE_BACK
) إلى التطبيق الذي يعمل في المقدّمة. - [7.2.6.1/T-0-1] يجب أن يتضمن الدعم للألعاب
وجعلها تُعلن عن علامة الميزة
android.hardware.gamepad
. - [7.2.7/T] يجب أن يتوفر من خلاله وحدة تحكم عن بُعد يمكن للمستخدمين الوصول إلى التنقل الذي لا يعمل باللمس إدخالات مفاتيح التنقُّل الأساسية
إذا كانت عمليات تنفيذ أجهزة التلفزيون تتضمّن جيروسكوبًا ثلاثي المحاور، سيتم تطبيق ما يلي:
- [7.3.4/T-1-1] يجب أن يكون قادرًا على الإبلاغ عن الأحداث حتى تردّد لا يقل عن 100 هرتز.
- [7.3.4/T-1-2] يجب أن تكون قادرة على قياس تغييرات الاتجاه ما يصل إلى 1000 درجة في الثانية.
عمليات تنفيذ أجهزة التلفزيون:
- [7.4.3/T-0-1] يجب أن يتوافق مع Bluetooth Bluetooth LE.
- [7.6.1/T-0-1] يجب أن يحتوي على 4 غيغابايت على الأقل من مساحة تخزين غير متطايرة متاحة لبيانات التطبيق الخاصة (يُعرف أيضًا باسم قسم " /data").
إذا كانت تطبيقات جهاز التلفزيون تشتمل على منفذ USB يتوافق مع وضع المضيف، وهي:
- [7.5.3/T-1-1] يجب أن يتضمن الدعم لكاميرا خارجية يتصل من خلال منفذ USB هذا ولكن ليس بالضرورة أن يتم توصيله دائمًا.
إذا كانت عمليات تنفيذ أجهزة التلفزيون 32 بت:
[7.6.1/T-1-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 896 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:
- 400 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
- xhdpi أو أعلى على الشاشات الكبيرة
- tvdpi أو أعلى على الشاشات الكبيرة جدًا
إذا كانت عمليات تنفيذ أجهزة التلفزيون هي 64 بت:
[7.6.1/T-2-1] الذاكرة المتاحة للنواة يجب أن يبلغ حجم مساحة المستخدم 1280 ميغابايت على الأقل إذا كانت أي من الكثافات التالية مُستعمَل:
- 400 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
- xhdpi أو أعلى على الشاشات الكبيرة
- tvdpi أو أعلى على الشاشات الكبيرة جدًا
لاحظ أن "الذاكرة المتاحة للنواة ومساحة المستخدم" أعلاه إلى يتم توفير مساحة الذاكرة بالإضافة إلى أي ذاكرة المخصصة لمكونات الأجهزة مثل الراديو والفيديو وما إلى ذلك، والتي ليست تحت سيطرة النواة على عمليات تنفيذ الأجهزة.
عمليات تنفيذ أجهزة التلفزيون:
- يجب أن يتضمّن [7.8.1/T] ميكروفون.
- يجب أن يتضمّن [7.8.2/T-0-1] إخراجًا صوتيًا وأن يقدِّم بيانًا
android.hardware.audio.output
2.3.2 وسائط متعددة
يجب أن تتوافق تطبيقات أجهزة التلفزيون مع ترميز الصوت التالي وفك ترميز التنسيقات وإتاحتها للتطبيقات التابعة لجهات خارجية:
- [5.1/T-0-1] ملف MPEG-4 AAC الشخصي (AAC LC)
- [5.1/T-0-2] ملف تعريف MPEG-4 HE AAC (AAC+ )
- [5.1/T-0-3] AAC ELD (معيار AAC منخفض ومحسّن)
يجب أن تتوافق تطبيقات أجهزة التلفزيون مع ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:
عمليات تنفيذ أجهزة التلفزيون:
- [5.2.2/T-SR-1] يُنصح بشدة بدعمها ترميز H.264 للفيديوهات بدقة 720p و1080p بسرعة 30 لقطة في الثانية
يجب أن تتيح عمليات تنفيذ أجهزة التلفزيون فك ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:
- [5.3.3/T-0-1] MPEG-4 SP
- [5.3.4/T-0-2] H.264 AVC
- [5.3.5/T-0-3] H.265 HEVC
- [5.3.6/T-0-4] VP8
- [5.3.7/T-0-5] VP9
- [5.3.1/T-0-6] MPEG-2
يجب أن تدعم عمليات تنفيذ أجهزة التلفزيون فك ترميز MPEG-2، كما هو مفصل في الفقرة 5.3.1، مع معدلات عرض الإطارات ودرجات الدقة القياسية للفيديو حتى بما في ذلك:
- [5.3.1/T-1-1] دقة عالية 1080p بسرعة 29.97 لقطة في الثانية باستخدام الملف الشخصي الرئيسي رفيع المستوى.
- [5.3.1/T-1-2] دقة عالية 1080i بسرعة 59.94 لقطة في الثانية باستخدام الملف الشخصي الرئيسي رفيع المستوى. يجب أن تزيل تداخل فيديو MPEG-2 المتداخل وإتاحتها لتطبيقات الجهات الخارجية.
يجب أن تتيح عمليات تنفيذ أجهزة التلفزيون فك ترميز H.264، على النحو المفصّل في الفقرة 5.3.4، مع معدلات عرض الإطارات ودرجات الدقة القياسية للفيديو حتى بما في ذلك:
- [5.3.4/T-1-1] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع الملف الشخصي للمرجع
- [5.3.4/T-1-2] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع الملف الشخصي الرئيسي
- [5.3.4/T-1-3] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع مستوى الملف الشخصي العالي المستوى 4.2
يجب دعم عمليات تنفيذ أجهزة التلفزيون باستخدام برامج فك ترميز أجهزة H.265 فك ترميز H.265، على النحو المفصّل في الفقرة 5.3.5، عند استخدام المعدّلات العادية لعرض الإطارات في الفيديو والحلول بما في ذلك:
- [5.3.5/T-1-1] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع المستوى 4.1 من الملف الشخصي الرئيسي
في حال تنفيذ أجهزة التلفزيون مع دعم برامج فك ترميز أجهزة H.265 فك ترميز H.265 والملف الشخصي لفك ترميز المحتوى بدقة فائقة:
- [5.3.5/T-2-1] يجب أن يتوافق مع الملف الشخصي لفك ترميز المحتوى بدقة فائقة بمعدل 60 لقطة في الثانية مع الملف الشخصي من المستوى 5 من المستوى الرئيسي Main10
يجب أن تدعم عمليات تنفيذ أجهزة التلفزيون فك ترميز VP8، على النحو المفصّل في الفقرة 5.3.6، مع معدلات عرض الإطارات ودرجات الدقة القياسية للفيديو حتى بما في ذلك:
- [5.3.6/T-1-1] ملف شخصي لفك ترميز المحتوى بدقة عالية وبدقة 1080p بمعدّل 60 لقطة في الثانية
يجب أن تتوافق عمليات تنفيذ أجهزة التلفزيون باستخدام برامج فك ترميز أجهزة VP9 مع VP9. فك التشفير، كما هو مفصل في القسم 5.3.7، بمعدلات عرض إطارات فيديو قياسية حلول تشمل ما يلي:
- [5.3.7/T-1-1] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع الملف الشخصي 0 (عمق لون 8 بت)
إذا كانت عمليات تنفيذ جهاز التلفزيون باستخدام برامج فك ترميز أجهزة VP9 متوافقة مع VP9 فك الترميز وملف فك ترميز المحتوى بدقة فائقة:
- [5.3.7/T-2-1] يجب أن يتوافق مع الملف الشخصي لفك ترميز المحتوى بدقة فائقة على 60 لقطة في الثانية مع الملف الشخصي 0 (عمق ألوان 8 بت).
- [5.3.7/T-SR1] يُنصح بشدة بدعمها ملف تعريف فك ترميز المحتوى بدقة فائقة بسرعة 60 لقطة في الثانية باستخدام الملف الشخصي 2 (بعمق 10 بت)
عمليات تنفيذ أجهزة التلفزيون:
- [5.5/T-0-1] يجب أن يتضمن الدعم للإصدار الرئيسي من النظام مستوى الصوت وتخفيف مستوى إخراج الصوت الرقمي على المخرجات المتوافقة باستثناء مخرجات مرور الصوت المضغوط (التي لا يتم فيها فك ترميز الصوت على الجهاز).
إذا لم تكن تطبيقات أجهزة التلفزيون مزوّدة بشاشة مدمَجة، ولكن بدلاً من ذلك، يتم توفير جهاز عرض خارجي متصل عبر HDMI، حيث:
- [5.8/T-0-1] يجب ضبط HDMI
وضع الإخراج إلى أعلى دقة لتنسيق البكسل المُختار الذي يعمل
مع معدل إعادة تحميل 50 هرتز أو 60 هرتز للشاشة الخارجية، حسب الفيديو
معدّل إعادة التحميل للمنطقة التي يُباع فيها الجهاز
يجب تعيين وضع إخراج HDMI على اختَر درجة الدقة القصوى التي يمكن استخدامها مع 50 هرتز أو 60 هرتز. معدّل إعادة التحميل - [5.8/T-SR-1] يُوصى بشدة بتوفيرها للمستخدم أداة اختيار معدّل تحديث HDMI القابلة للضبط
- [5.8] يجب ضبط معدّل تحديث وضع إخراج HDMI إلى 50 هرتز أو 60 هرتز، اعتمادًا على معدل تحديث الفيديو للمنطقة الجهاز الذي تم بيعه فيه.
إذا لم تكن تطبيقات أجهزة التلفزيون مزوّدة بشاشة مدمَجة، ولكن بدلاً من ذلك، يتم توفير جهاز عرض خارجي متصل عبر HDMI، حيث:
- [5.8/T-1-1] يجب أن يتوافق مع الإصدار 2.2 من HDCP.
إذا كانت عمليات تنفيذ أجهزة التلفزيون لا تتيح فك ترميز المحتوى بدقة فائقة بدلاً من ذلك، يتوافقون مع شاشة خارجية متصلة عبر HDMI، فإنها:
- [5.8/T-2-1] يجب أن يتوافق مع HDCP 1.4
2.3.3. البرامج
عمليات تنفيذ أجهزة التلفزيون:
- [3/T-0-1] يجب أن يفصح عن الميزات.
android.software.leanback
وandroid.hardware.type.television
. - [3.2.3.1/T-0-1] يجب أن يتم تحميل ملف واحد أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، لجميع أنماط فلاتر الأهداف العامة المحدّدة في أهداف التطبيق التالية مدرجة هنا
- [3.4.1/T-0-1] يجب أن تقدم صورة
تنفيذ واجهة برمجة تطبيقات
android.webkit.Webview
.
إذا كانت عمليات تنفيذ أجهزة Android TV تتوافق مع شاشة القفل، سيتم إجراء ما يلي:
- [3.8.10/T-1-1] يجب عرض القفل وإشعارات الشاشة، بما في ذلك نموذج إشعارات الوسائط.
عمليات تنفيذ أجهزة التلفزيون:
- [3.8.14/T-SR-1] يُوصى بها بشدة لإتاحة وضع النوافذ المتعددة في وضع "نافذة ضمن النافذة" (PIP).
- [3.10/T-0-1] يجب أن يتيح إمكانية وصول الجهات الخارجية
- [3.10/T-SR-1] يُوصى بها بشدة التحميل المسبق لخدمات تسهيل الاستخدام على الجهاز التي يمكن مقارنتها مع خدمات تسهيل الاستخدام أو تجاوزها وظيفة "الوصول عبر مفتاح تحكّم" وTalkBack (للغات التي تتوفّر في خدمات إمكانية الوصول المثبتة مسبقًا على محرك تحويل النص إلى كلام) على النحو الوارد في مشروع Talkback مفتوح المصدر.
في حال الإبلاغ عن الميزة في عمليات تنفيذ أجهزة التلفزيون
android.hardware.audio.output
، إن:
- [3.11/T-SR-1] يُوصى بشدة بتضمين محرّك تحويل النص إلى كلام متوافق مع اللغات المتاحة على الجهاز
- [3.11/T-1-1] يجب أن يتيح تثبيت ومحركات تحويل النص إلى كلام (TTS) التابعة لجهات خارجية.
عمليات تنفيذ أجهزة التلفزيون:
- [3.12/T-0-1] يجب أن يتوافق مع "إطار عمل إدخال التلفزيون".
2.3.4 الأداء والقوة
- [8.1/T-0-1] وقت استجابة الإطار بشكل منتظم: يجب ألا يحدث وقت استجابة غير متسق أو تأخير عرض الإطارات أكثر. غالبًا ما يزيد عن 5 إطارات في الثانية، ومن المفترض أن يقل عن لقطة واحدة في الثانية.
- [8.2/T-0-1] يجب أن يضمن استخدام تسلسل كتابة أداء لا يقل عن 5 ميغابايت/ثانية.
- [8.2/T-0-2] يجب أن تضمن الكتابة العشوائية بسرعة لا تقل عن 0.5 ميغابايت/ثانية.
- [8.2/T-0-3] يجب أن يضمن استخدام تسلسل قراءة أداء لا يقل عن 15 ميغابايت/ثانية.
- [8.2/T-0-4] يجب أن تضمن قراءة عشوائية بسرعة لا تقل عن 3.5 ميغابايت/ثانية.
إذا كانت عمليات تنفيذ جهاز التلفزيون تتضمن ميزات لتحسين طاقة الجهاز التي يتم تضمينها في AOSP أو توسيع الميزات المضمنة في AOSP، فإنهم:
- [8.3/T-1-1] يجب أن يوفر المستخدم القدرة على تمكين وتعطيل ميزة توفير شحن البطارية.
إذا كانت أجهزة التلفزيون لا تتضمّن بطارية، يعني هذا ما يلي:
- [8.3/T-1-2] يجب تسجيل الجهاز باعتباره جهاز بدون بطارية على النحو الموضّح في مقالة إتاحة الأجهزة التي لا تعمل ببطارية.
إذا كانت أجهزة التلفزيون تشتمل على بطارية:
- [8.3/T-1-3] يجب أن يوفر المستخدم إمكانية عرض الإعلانات جميع التطبيقات المستثناة من وضعَي "تطبيقات الاستعداد" و"القيلولة" لتوفير الطاقة
عمليات تنفيذ أجهزة التلفزيون:
- [8.4/T-0-1] يجب أن يوفر ملف الطاقة لكل مكوّن ويحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
- [8.4/T-0-2] يجب الإبلاغ عن كل الطاقة قيم الاستهلاك بالملي أمبير في الساعة (mAh).
- [8.4/T-0-3] يجب الإبلاغ عن طاقة وحدة المعالجة المركزية
الاستهلاك حسب المُعرّف الفريد لكل عملية. يلبي المشروع المفتوح المصدر لنظام Android
من خلال تنفيذ وحدة النواة
uid_cputime
. - [8.4/T] يجب أن تُنسَب إلى مكون الجهاز نفسه إذا لم تتمكن من تحديد استخدام الطاقة لمكوّن الجهاز إلى أحد التطبيقات.
- [8.4/T-0-4] يجب استخدام هذا الطاقة
متاح عبر
adb shell dumpsys batterystats
أمر Shell إلى مطور التطبيق.
2.3.5. نموذج الأمان
عمليات تنفيذ أجهزة التلفزيون:
- [9/T-0-1] يجب أن يفصح عن
android.hardware.security.model.compatible
الجديدة. - [9.11/T-0-1] يجب الاحتفاظ بنسخة احتياطية من تنفيذ ملف تخزين المفاتيح من خلال بيئة تنفيذ معزولة.
- [9.11/T-0-2] يجب أن يتم تنفيذ الترميزَين RSA وAES. خوارزميات التشفير ECDSA وHMAC، وعائلة MD5 وSHA1 وSHA-2 لتوافق وظائف التجزئة مع توافق نظام تخزين مفاتيح Android بشكل صحيح الخوارزميات في منطقة معزولة بشكل آمن عن التعليمات البرمجية التي تعمل على النواة kernel وما فوقها. يجب أن يحظر العزل الآمن جميع الآليات المحتملة الذي يمكن من خلاله لشفرة kernel أو أو userspace الوصول إلى الحالة الداخلية معزولة، بما في ذلك قانون الأسواق الرقمية. البرامج المفتوحة المصدر لنظام Android يلبي المشروع (AOSP) هذا الشرط من خلال استخدام تنفيذ Trusty، حلّ مستند إلى ARM TrustZone أو حلاً آمنًا تمت مراجعته من قِبل جهة خارجية تنفيذ عزل صحيح مستند إلى برنامج Hypervisor (مراقب الأجهزة الظاهرية) هو بديل الخيارات.
- [9.11/T-0-3] يجب تنفيذ شاشة القفل في بيئة التنفيذ المعزولة وفقط عندما ناجحة، اسمح باستخدام المفاتيح المرتبطة بالمصادقة. شاشة القفل يجب تخزين بيانات الاعتماد بطريقة تسمح فقط بالتنفيذ المعزول لإجراء مصادقة شاشة القفل. أحدث إصدارات Android يوفر المشروع المفتوح المصدر طبقة تجريد أجهزة البوابة (HAL) و Trusty، التي يمكن استخدامها لاستيفاء هذا الشرط.
- [9.11/T-0-4] يجب أن يتوافق مع مصادقة المفتاح حيث مفتاح توقيع المصادقة محمي بواسطة أجهزة آمنة ويتم التوقيع في أجهزة آمنة. يجب مشاركة مفاتيح توقيع المصادقة على عدد كبير بما يكفي من الأجهزة لمنع استخدام المفاتيح كمعرّفات للأجهزة. تتمثل إحدى طرق تلبية هذا المطلب في مشاركة مفتاح المصادقة نفسه ما لم يتم توفير 100,000 وحدة على الأقل من رمز تخزين تعريفي معيّن إنتاجه. إذا تم إنتاج أكثر من 100,000 وحدة من رمز التخزين التعريفي، يجب قد يُستخدم المفتاح لكل 100000 وحدة.
يُرجى ملاحظة أنّه إذا كان قد تمّ تشغيل تنفيذ الجهاز على إصدار Android سابق
يتم إعفاء هذا الجهاز من طلب توفُّر ملف تخزين مفاتيح.
مدعومة ببيئة تنفيذ معزولة وتدعم المصادقة الرئيسية،
ما لم يتم الإعلان عن ميزة android.hardware.fingerprint
التي تتطلّب
ملف تخزين مفاتيح يعتمد على بيئة تنفيذ معزولة.
إذا كانت تطبيقات أجهزة التلفزيون تتيح استخدام شاشة قفل آمنة:
- [9.11/T-1-1] يجب أن يسمح للمستخدم باختيار وضع السكون المهلة للانتقال من حالة القفل إلى الحالة المُقفَلة، مع الحد الأدنى المسموح به للمهلة يصل إلى 15 ثانية أو أقل.
إذا كانت عمليات تنفيذ جهاز التلفزيون تتضمن عدة مستخدمين
لا تعلن عن علامة الميزة android.hardware.telephony
، فإنها:
- [9.5/T-2-1] يجب أن يتوافق مع الملفات الشخصية المحظورة، وهي ميزة تسمح لمالكي الأجهزة بإدارة حسابات المستخدمين الإضافيين والإمكانيات الجديدة على الجهاز. من خلال الملفات الشخصية المقيّدة، يمكن لمالكي الأجهزة إعداد بيئات منفصلة بسرعة لكي يعمل فيها مستخدمون إضافيون، مع القدرة على إدارة القيود الأكثر دقة في التطبيقات التي المتوفرة في تلك البيئات.
إذا كانت عمليات تنفيذ جهاز التلفزيون تتضمن عدة مستخدمين
الإعلان عن علامة الميزة android.hardware.telephony
، فإنها:
- [9.5/T-3-1] يجب ألا يكون الدعم محظورًا ولكن يجب أن تتوافق مع تنفيذ عناصر التحكم في بروتوكول AOSP. لتفعيل /إيقاف المستخدمين الآخرين من الوصول إلى المكالمات الصوتية والرسائل القصيرة SMS.
إذا كانت عمليات تنفيذ أجهزة التلفزيون تشير إلى android.hardware.microphone
، ينطبق ما يلي:
- [9.8.2/T-4-1] يجب أن يتم عرض مؤشر الميكروفون عندما وصول أحد التطبيقات إلى البيانات الصوتية من الميكروفون، ولكن ليس عند لا يتم الدخول إلى الميكروفون إلا عن طريق HotwordDetectionService، SOURCE_HOTWORD، ContentCaptureService، أو التطبيقات التي تمتلك الأدوار المنصوص عليها في الفقرة 9.1 أذونات بمعرّف CDD C-3-X]
- [9.8.2/T-4-2] يجب ألا يخفي مؤشر الميكروفون في تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم
إذا كانت عمليات تنفيذ أجهزة التلفزيون تشير إلى android.hardware.camera.any
، ينطبق ما يلي:
- [9.8.2/T-5-1] يجب أن يتم عرض مؤشر الكاميرا عند وصول التطبيق إلى بيانات الكاميرا المباشرة، ولكن ليس عندما يتم تشغيل الكاميرا الوصول إليها من خلال التطبيقات التي تمتلك الأدوار المنصوص عليها في الفقرة 9.1 الأذونات التي تحمل معرّف CDD [C-3-X]
- [9.8.2/T-5-2] يجب ألا يخفي مؤشر الكاميرا تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم
2.3.6. التوافق بين أدوات المطوّرين وخياراتهم
عمليات تنفيذ أجهزة التلفزيون:
- Perfetto
- [6.1/T-0-1] يجب أن يكشف عن
/system/bin/perfetto
ثنائي النظام إلى مستخدم واجهة المستخدم الذي يتوافق مع cmdline مستندات العروض الترويجية - [6.1/T-0-2] يجب أن يقبل برنامج Perfetto الثنائي إدخال تهيئة Protobuf تتوافق مع المخطط المحدد في مستندات المزايا
- [6.1/T-0-3] يجب كتابة البرنامج الثنائي للأداء على النحو التالي: إخراج تتبع أولي يتوافق مع المخطط المحدد في مستندات المزايا
- [6.1/T-0-4] يجب أن يتم تقديمه من خلال الأداء ثنائيًا، على الأقل مصادر البيانات الموضحة في مستندات Perfetto.
- [6.1/T-0-1] يجب أن يكشف عن
2.4. متطلبات المشاهدة
يشير جهاز Android Watch إلى عملية تنفيذ لجهاز Android تهدف إلى يتم ارتداؤه على الجسم، ربما في المعصم.
تُصنَّف عمليات تنفيذ أجهزة Android على أنّها ساعة ذكية في حال استيفائها جميع المعايير التالية:
- أن تحتوي على شاشة بطول قطري يتراوح بين 1.1 و2.5 بوصة.
- توفُّر آلية لارتداء الجهاز على الجسم
إنّ المتطلبات الإضافية الواردة في باقي هذا القسم خاصة بنظام Android. ساعات تنفيذ الأجهزة
2.4.1. الأجهزة
طريقة تنفيذ أجهزة الساعة:
يجب أن يشتمل [7.1.1.1/W-0-1] على شاشة بها الحجم القطري الفعلي في نطاق يتراوح بين 1.1 و2.5 بوصة.
[7.2.3/W-0-1] يجب أن تتوفر وظيفة المنزل للمستخدم، ودالة الرجوع ما عدا الحالات التي تكون فيها في
UI_MODE_TYPE_WATCH
.[7.2.4/W-0-1] يجب أن يسمح بإدخال الشاشة التي تعمل باللمس.
[7.3.1/W-SR-1] يُوصى بشدة بأن تتضمن 3 محاور ومقياس التسارع.
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ جهاز الساعة الذكية تتضمّن توافقًا مع Vulkan، سيتم ما يلي:
- يجب أن يستوفي [7.1.4.2/W-1-1] المتطلبات المحدد في ملف Android Baseline 2021 الشخصي.
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ جهاز الساعة تشتمل على جهاز استقبال GPS/GNSS والإبلاغ
القدرة على التطبيقات من خلال ميزة android.hardware.location.gps
، فإنها:
- [7.3.3/W-1-1] يجب الإبلاغ عن قياسات GNSS حالما حتى إذا لم يتم الإبلاغ عن موقع تم حسابه من خلال GPS/GNSS بعد.
- [7.3.3/W-1-2] يجب أن يبلغ عن نطاقات GNSS البديلة والنطاق الزائف. في الهواء الطلق بعد تحديد الموقع، في حين أن ثابتًا أو يتحرك بأقل من 0.2 متر في الثانية المربعة والعجلة، وهي كافية لحساب الموقع على بُعد 20 مترًا، والسرعة في نطاق 0.2 متر في الثانية، أي ما لا يقل عن 95% من الوقت.
إذا كانت عمليات تنفيذ جهاز الساعة الذكية تتضمن جيروسكوبًا ثلاثي المحاور، سيتم إجراء ما يلي:
- [7.3.4/W-2-1] يجب أن تكون قادرة على قياس تغييرات الاتجاه ما يصل إلى 1000 درجة في الثانية.
طريقة تنفيذ أجهزة الساعة:
[7.4.3/W-0-1] يجب أن يتوافق مع البلوتوث.
يجب أن يحتوي [7.6.1/W-0-1] على 1 غيغابايت على الأقل من مساحة تخزين غير متطايرة متاحة للبيانات الخاصة للتطبيق (تُعرف أيضًا باسم قسم " /data").
يجب أن يحتوي [7.6.1/W-0-2] على ذاكرة بسعة 416 ميغابايت على الأقل. المتاحة للنواة ومساحة المستخدم.
[7.8.1/W-0-1] يجب أن يشتمل على ميكروفون.
[7.8.2/W] قد يتم إخراج صوت.
2.4.2 وسائط متعددة
ما مِن متطلّبات إضافية.
2.4.3. البرامج
طريقة تنفيذ أجهزة الساعة:
- [3/W-0-1] يجب أن يفصح عن الميزة.
android.hardware.type.watch
- [3/W-0-2] يجب أن يتوافق مع uiMode = UI_mode_TYPE_watch.
- [3.2.3.1/W-0-1] يجب تحميل واحد مسبقًا أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، جميع أنماط فلاتر الأهداف العامة المحددة في التطبيق التالي الأهداف المُدرَجة هنا
طريقة تنفيذ أجهزة الساعة:
- [3.8.4/W-SR-1] يُوصى بها بشدة إنشاء مساعد على الجهاز للتعامل مع إجراء المساعدة.
تطبيقات الساعة الذكية التي تتضمّن توضيحًا لـ android.hardware.audio.output
علامة الميزة:
- [3.10/W-1-1] يجب توفير إمكانية الوصول التابعة لجهات خارجية
- [3.10/W-SR-1] يُوصى بشدة بتحميلها مسبقًا خدمات إمكانية الوصول على الجهاز التي يمكن مقارنة وظائفها بوظائف أو تجاوزها الوصول عبر مفتاح تحكُّم وTalkBack (للغات التي تتوفر بها التطبيقات المثبتة مسبقًا محرك تحويل النص إلى كلام) خدمات إمكانية الوصول على النحو الوارد في مشروع Talkback مفتوح المصدر.
إذا كانت عمليات تنفيذ جهاز الساعة تعرض الميزة android.hardware.audio.output، وهي:
[3.11/W-SR-1] يُوصى بشدة بتضمينها محرّك تحويل النص إلى كلام متوافق مع اللغات المتاحة على الجهاز
[3.11/W-0-1] يجب أن يتيح تثبيت ومحركات تحويل النص إلى كلام (TTS) التابعة لجهات خارجية.
2.4.4. الأداء والقوة
إذا كانت عمليات تنفيذ جهاز الساعة الذكية تتضمّن ميزات لتحسين طاقة الجهاز التي يتم تضمينها في AOSP أو توسيع الميزات المضمنة في AOSP، فإنهم:
- [8.3/W-SR-1] يُوصى بشدة بتوفيرها احتمالية عرض جميع التطبيقات المستثناة من وضع الاستعداد للتطبيقات أوضاع توفير الطاقة أثناء القيلولة.
- [8.3/W-SR-2] يُوصى بشدة بتوفيرها تكاليف المستخدم لتمكين ميزة توفير شحن البطارية وتعطيلها.
طريقة تنفيذ أجهزة الساعة:
- [8.4/W-0-1] يجب أن يوفر ملف الطاقة لكل مكوّن ويحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
- [8.4/W-0-2] يجب الإبلاغ عن كل الطاقة. قيم الاستهلاك بالملي أمبير في الساعة (mAh).
- [8.4/W-0-3] يجب الإبلاغ عن طاقة وحدة المعالجة المركزية
الاستهلاك حسب المُعرّف الفريد لكل عملية. يلبي المشروع المفتوح المصدر لنظام Android
من خلال تنفيذ وحدة النواة
uid_cputime
. - [8.4/W-0-4] يجب استخدام هذا الطاقة
متاح عبر
adb shell dumpsys batterystats
أمر Shell إلى مطور التطبيق. - [8.4/W] يجب أن تُنسَب إلى مكون الجهاز نفسه إذا لم تتمكن من تحديد استخدام الطاقة لمكوّن الجهاز إلى أحد التطبيقات.
2.4.5. نموذج الأمان
طريقة تنفيذ أجهزة الساعة:
- [9/W-0-1] يجب أن يعلن عن
android.hardware.security.model.compatible
الجديدة.
إذا كانت عمليات تنفيذ جهاز الساعة تتضمن العديد من المستخدمين
لا تعلن عن علامة الميزة android.hardware.telephony
، فإنها:
- [9.5/W-1-1] يجب أن يتوافق مع الملفات الشخصية المحظورة، وهي ميزة تسمح لمالكي الأجهزة بإدارة حسابات المستخدمين الإضافيين والإمكانيات الجديدة على الجهاز. من خلال الملفات الشخصية المقيّدة، يمكن لمالكي الأجهزة إعداد بيئات منفصلة بسرعة لكي يعمل فيها مستخدمون إضافيون، مع القدرة على إدارة القيود الأكثر دقة في التطبيقات التي المتوفرة في تلك البيئات.
إذا كانت عمليات تنفيذ جهاز الساعة تتضمن العديد من المستخدمين
الإعلان عن علامة الميزة android.hardware.telephony
، فإنها:
- [9.5/W-2-1] يجب ألا يتم فرض قيود على ولكن يجب أن تتوافق مع تنفيذ عناصر التحكم في بروتوكول AOSP. لتفعيل /إيقاف المستخدمين الآخرين من الوصول إلى المكالمات الصوتية والرسائل القصيرة SMS.
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة تتضمّن شاشة قفل آمنة وتتضمن وكيلاً موثوقًا واحدًا أو أكثر يستخدم TrustAgentService
System API، سينفّذ ما يلي:
- [9.11.1/W-1-1] يجب أن يطلب المستخدم من المستخدم تنفيذ إحدى طرق المصادقة الأساسية المقترَحة (مثل رقم التعريف الشخصي أو النقش أو كلمة المرور) أكثر من مرة واحدة كل 72 ساعة.
إنهاء المتطلبات الجديدة
2.5. متطلبات السيارات
يشير مصطلح استخدام Android Automotive إلى الوحدة الرئيسية للمركبة التي تعمل. Android كنظام تشغيل لجزء من النظام أو لكله و/أو بوظيفة نظام الترفيه والمعلومات.
تُصنَّف عمليات تنفيذ أجهزة Android على أنّها سيارات في حال أشارت إلى
الميزة android.hardware.type.automotive
أو استيفاء كل ما يلي
المعايير.
- أن تكون مضمَّنة كجزء من مركبة سيارة أو قابلة للتوصيل بها
- استخدام شاشة في صف مقعد السائق باعتبارها شاشة العرض الأساسية
إنّ المتطلبات الإضافية الواردة في باقي هذا القسم خاصة بنظام Android. عمليات تنفيذ الأجهزة في السيارات.
2.5.1. الأجهزة
عمليات تنفيذ أجهزة السيارات:
- [7.1.1.1/A-0-1] يجب أن يشتمل على شاشة لا تقل عن 6 البوصة في الحجم القطري الفعلي.
- [7.1.1.1/A-0-2] يجب أن يتضمن تنسيق حجم الشاشة بما لا يقل عن 750 بكسل مستقل الكثافة × 480 بكسل مستقل الكثافة
- [7.2.3/A-0-1] يجب أن يوفر وظيفة المنزل قد توفّر وظيفتَي "الرجوع" و"الأخيرة".
- [7.2.3/A-0-2] يجب أن يرسل كل من الضغط العادي والضغط مع الاستمرار
حدث دالة الرجوع (
KEYCODE_BACK
) إلى التطبيق الذي يعمل في المقدّمة. - [7.3/A-0-1] يجب تنفيذه والإبلاغ
GEAR_SELECTION
،NIGHT_MODE
,PERF_VEHICLE_SPEED
وPARKING_BRAKE_ON
. - [7.3/A-0-2] قيمة
NIGHT_MODE
أن تكون العلامة متوافقة مع الوضع الليلي/النهاري في لوحة البيانات ويجب أن تستند إلى إدخال أداة استشعار الضوء المحيط قد يكون مستشعر الإضاءة المحيطة الأساسي هو نفسه. باسم Photometer. - [7.3/A-0-3] يجب توفير حقل معلومات إضافي لجهاز الاستشعار
TYPE_SENSOR_PLACEMENT
كجزء من نظام SensorAdditionalInfo لكل جهاز استشعار متوفر. - [7.3/A-SR1] قد يكون الحساب غير مكتمل الموقع عن طريق دمج GPS/GNSS مع أدوات استشعار إضافية. إذا كان الموقع الجغرافي بالمقابل، يُنصح بشدة بتنفيذه والإبلاغ عنه أداة الاستشعار المقابلة الأنواع و/أو أرقام تعريف خصائص المركبات استخدام البيانات المختلفة.
[7.3/A-0-4] الموقع الجغرافي تم الطلب عبر LocationManager#requestLocationUpdates() يجب ألا تتطابق مع الخريطة.
[7.3.1/A-0-4] يجب أن يتوافق مع نظام التشغيل Android نظام إحداثيات أداة استشعار السيارة
[7.3/A-SR-1] يُنصح بإضافتها strongLY_RECOMMENDED لتضمين 3 محور بمقياس التسارع والجيروسكوب ثلاثي المحاور.
[7.3/A-SR-2] يتم اقتراحها بشدّة لتنفيذها والإبلاغ عنها جهاز استشعار
TYPE_HEADING
إذا كانت عمليات تنفيذ أجهزة Automotive متوافقة مع OpenGL ES 3.1، سيتم إجراء ما يلي:
- [7.1.4.1/A-0-1] يجب أن يفصح عن OpenGL ES 3.1 أو إصدار أحدث.
- [7.1.4.1/A-0-2] يجب أن يتوافق مع Vulkan 1.1.
- [7.1.4.1/A-0-3] يجب أن يشتمل على أداة تحميل Vulkan وتصدير جميع الرموز.
بدء متطلبات جديدة
في حال اشتملت عمليات تنفيذ أجهزة Automotive على دعم Vulkan، سيتم ما يلي:
- يجب أن يستوفي [7.1.4.2/A-1-1] المتطلبات المحدد في ملف Android Baseline 2021 الشخصي.
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن مقياس تسارع، سيحدث ما يلي:
- [7.3.1/A-1-1] يجب أن يكون قادرًا على الإبلاغ عن الأحداث بمعدّل تكرار ما لا يقل عن 100 هرتز.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياس تسارع ثلاثي المحاور، سيتم إجراء ما يلي:
- [7.3.1/A-SR-1] يُنصَح باستخدامها بشدة لتنفيذ جهاز استشعار مركب لمقياس تسارع محاور محددة.
إذا كانت عمليات تنفيذ أجهزة السيارات تتضمن مقياس تسارع يقل عن 3 محاور، وهي:
- [7.3.1/A-1-3] يجب تنفيذه والإبلاغ
جهاز استشعار
TYPE_ACCELEROMETER_LIMITED_AXES
- [7.3.1/A-1-4] يجب التنفيذ والإبلاغ
جهاز استشعار
TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
إذا كانت عمليات تنفيذ أجهزة Automotive تتضمن جيروسكوب، سيتم إجراء ما يلي:
- [7.3.4/A-2-1] يجب أن يكون قادرًا على الإبلاغ عن الأحداث بمعدّل تكرار ما لا يقل عن 100 هرتز.
- [7.3.4/A-2-3] يجب أن تكون قادرة على قياس تغييرات الاتجاه ما يصل إلى 250 درجة في الثانية.
- [7.3.4/A-SR-1] يُنصح بشدة بضبط نطاق قياس الجيروسكوب ليكون +/-250 بكسل في الثانية لزيادة الدقة إلى أقصى حد ممكن.
إذا كانت عمليات تنفيذ أجهزة Automotive تشمل جيروسكوبًا ثلاثي المحاور، سيتم إجراء ما يلي:
- [7.3.4/A-SR-2] يُنصَح باستخدامها بشدة لتنفيذ جهاز استشعار مركب جيروسكوب محاور محدودة.
إذا كانت عمليات تنفيذ أجهزة نظام Automotive تشتمل على جيروسكوب يحتوي على أقل من 3 محاور، سيتم إجراء ما يلي:
- [7.3.4/A-4-1] يجب التنفيذ والإبلاغ
جهاز استشعار
TYPE_GYROSCOPE_LIMITED_AXES
- [7.3.4/A-4-2] يجب تنفيذ الإجراء والإبلاغ عنه
جهاز استشعار
TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
إذا كانت عمليات تنفيذ أجهزة السيارات تتضمن جهاز استقبال GPS/GNSS، ولكن لا اتصال البيانات المستندة إلى الشبكة الخلوية، فإنها:
- [7.3.3/A-3-1] يجب أن يتم تحديد الموقع الجغرافي في أول مرة تشغيل جهاز استقبال GPS/GNSS أو بعد 4 أيام أو أكثر خلال 60 ثانية.
- [7.3.3/A-3-2] يجب أن يفي بمعايير تحديد الوقت اللازم للإصلاح الأول كما هو كما هو موضح في 7.3.3/C-1-2 و7.3.3/C-1-6 لجميع طلبات الموقع الجغرافي الأخرى (أي الطلبات التي ليست المرة الأولى على الإطلاق أو بعد 4 أيام أو أكثر). المطلب 7.3.3/C-1-2 هو عادة ما يتم الاجتماع في المركبات التي لا يوجد بها اتصال بيانات مستند إلى الشبكة الخلوية، باستخدام تنبؤات مدار GNSS المحسوبة على المتلقي، أو باستخدام آخر موقع معروف للمركبة إلى جانب إمكانية الحساب في 60 ثانية على الأقل مع دقة موضع مرضية 7.3.3/C-1-3 أو الاثنين معًا.
إذا كانت عمليات تنفيذ الأجهزة الخاصة بالسيارات تتضمّن أداة استشعار TYPE_HEADING
، سيتم ما يلي:
- [7.3.4/A-4-3] يجب أن يكون قادرًا على الإبلاغ عن الأحداث بمعدل تكرار يصل إلى بتردد 1 هرتز على الأقل
- [7.3.4/A-SR-3] strongLY_RECOMMENDED للإبلاغ عن أحداث تصل إلى تردّد لا يقل عن 10 هرتز.
- يجب أن يكون في إشارة إلى الشمال الحقيقي.
- يجب أن تكون متاحة حتى عندما تكون المركبة لا تزال غير ثابتة.
- يجب أن تبلغ درجة الدقة درجة واحدة على الأقل.
عمليات تنفيذ أجهزة السيارات:
- [7.4.3/A-0-1] يجب أن يتوافق مع Bluetooth ويجب تتيح هذه الميزة استخدام Bluetooth LE.
- [7.4.3/A-0-2] عمليات تنفيذ Android Automotive
يجب أن يتوافق مع ملفات البلوتوث التالية:
- إجراء المكالمات الهاتفية من خلال ملف تعريف بدون لمس الجهاز (HFP)
- تشغيل الوسائط باستخدام ملف تعريف توزيع الصوت (A2DP)
- التحكّم في تشغيل الوسائط من خلال ملف تعريف التحكّم عن بُعد (AVRCP).
- مشاركة جهات الاتصال باستخدام الملف الشخصي للدخول إلى دفتر الهاتف (PBAP)
[7.4.3/A-SR-1] يُنصح بشدة بدعمها الملف الشخصي للوصول إلى الرسائل (MAP).
[7.4.5/A] يجب أن تتوفّر إمكانية الاتصال بشبكة الجوّال اتصال البيانات المستند إلى الشبكة.
[7.4.5/A] قد يتم استخدام System API. ثابت
NetworkCapabilities#NET_CAPABILITY_OEM_PAID
لـ الشبكات التي يجب أن تكون متاحة لتطبيقات النظام.
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الجهاز تشمل التوافق مع راديو بث AM/FM وكشف الوظائف لأي تطبيق، فإنها:
- [7.4
.10/A-0-1] يجب أن تعلن عن توافقها معFEATURE_BROADCAST_RADIO
.
إنهاء المتطلبات الجديدة
كاميرا الرؤية الخارجية هي كاميرا تصور مشاهد من خارج الجهاز التنفيذ، مثل كاميرا الرؤية الخلفية.
عمليات تنفيذ أجهزة السيارات:
- يجب أن تشمل كاميرا واحدة أو أكثر للعرض الخارجي.
إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن كاميرا مشاهدة خارجية، مثلاً كاميرا، فإنهم:
- [7.5/A-1-1] يجب ألا تتوفر كاميرات للمشاهدة من الخارج عبر واجهات برمجة تطبيقات كاميرا Android، ما لم تكن متوافقة من خلال المتطلبات الأساسية للكاميرا
[7.5/A-SR-1] يُنصح بشدة بعدم تدويرها أو تعكس معاينة الكاميرا أفقيًا.
[7.5/A-SR-2] يُنصح بشدة بأن يكون لها حل بحد أدنى 1.3 ميغابكسل.
يجب أن يحتوي الجهاز إما على جهاز ذي تركيز ثابت أو EDOF (عمق مجال ممتد).
قد يكون لديك إما التركيز التلقائي للأجهزة أو التركيز التلقائي للبرامج برنامج تشغيل الكاميرا.
إذا كانت عمليات تنفيذ أجهزة السيارات تتضمّن كاميرا واحدة أو أكثر من كاميرات المراقبة الخارجية، وتحميل خدمة نظام الرؤية الخارجية (EVS)، ثم بالنسبة إلى هذه الكاميرا، فإنها:
- [7.5/A-2-1] يجب ألا يتم تدوير أو عكس معاينة الكاميرا.
عمليات تنفيذ أجهزة السيارات:
- قد يحتوي على كاميرا واحدة أو أكثر متاحة لجهات خارجية. التطبيقات.
إذا كانت عمليات تنفيذ أجهزة السيارات تتضمن كاميرا واحدة على الأقل وجعلتها للتطبيقات التابعة لجهات خارجية، فإنها:
- [7.5/A-3-1] يجب الإبلاغ عن علامة الميزة.
android.hardware.camera.any
- [7.5/A-3-2] يجب ألا يتم تعريف الكاميرا على أنّها جهاز كاميرا النظام
- قد تتوافق مع الكاميرات الخارجية الموضّحة في القسم 7.5.3.
- قد يحتوي على ميزات (مثل "التركيز التلقائي" وما إلى ذلك) المتاحة للكاميرا الخلفية. الكاميرات كما هو موضح في القسم 7.5.1.
بدء متطلبات جديدة
الكاميرا الخلفية هي كاميرا مواجهة للعالم يمكن وضعها في أي ومواجهتها للجانب الخارجي من كابينة المركبة. أي، مشاهد الصور في أقصى الجانب من هيكل المركبة، مثل كاميرا الرؤية الخلفية.
الكاميرا الأمامية هي كاميرا مواجهة للمستخدم يمكن وضعها في أي ومواجهتها داخل كابينة السيارة. هذا هو صور المستخدم، مثل مؤتمرات الفيديو والتطبيقات المشابهة.
عمليات تنفيذ أجهزة السيارات:
- [7.5/A-SR-1] يُوصى بشدة بأن تتضمن موقعًا إلكترونيًا واحدًا أو أكثر الكاميرات.
- قد يشتمل على كاميرا واحدة أو أكثر موجَّهة للمستخدمين.
- [7.5/A-SR-2] يُوصى بها بشدة لإتاحة البث المتزامن وكاميرات متعددة.
إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن كاميرا واحدة على الأقل، وهي إلى العالم، ففي مثل هذه الكاميرا:
- [7.5/A-1-1] يجب أن يكون موجهًا بحيث تتم محاذاة البُعد الطويل للكاميرا على مستوى المحور X-Y لمحاور أداة استشعار السيارات في Android.
- [7.5/A-SR-3] يُوصى بشدة بأن يكون لها تركيز ثابت أو EDOF (عمق موسع للحقل).
- [7.5/A-1-2] يجب أن يتضمن الكاميرا الأساسية المواجهة للعالم كالكاميرا المواجهة للعالم الكاميرا ذات معرّف الكاميرا الأدنى.
إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن كاميرا واحدة على الأقل، وهي المستخدم، بالنسبة إلى هذه الكاميرا:
- [7.5/A-2-1] يجب أن تكون الكاميرا الأساسية الموجَّهة للمستخدم هي الكاميرا الموجَّهة للمستخدم. ذات معرّف الكاميرا الأدنى.
- وقد تكون موجّهة بحيث يتوافق بُعد الكاميرا الطويل مع علامة X-Y. مجموعة من محاور أجهزة استشعار نظام Android للسيارات.
إذا كانت تصاميم أجهزة Automotive تتضمن كاميرا يمكن الوصول إليها من خلال
إما android.hardware.Camera
أو android.hardware.camera2
API، فإنهم:
- [7.5/A-3-1] يجب أن يتوافق مع متطلبات الكاميرا الأساسية في الفقرة 7.5.
إذا كانت عمليّات تنفيذ أجهزة Automotive تتضمّن كاميرا لا يمكن الوصول إليها
إما من خلال android.hardware.Camera
أو android.hardware.camera2
API، ثم
وهي:
- [7.5/A-4-1] يجب أن يكون متاحًا من خلال خدمة نظام العرض الممتد.
إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن كاميرا واحدة أو أكثر يمكن الوصول إليها من خلال خدمة نظام العرض الممتد، بالنسبة إلى هذه الكاميرا، فإنها:
- [7.5/A-5-1] يجب ألا يتم تدوير معاينة الكاميرا أو عكسها أفقيًا.
- [7.5/A-SR-4] يُوصى بشدة بأن تكون درجة الدقة 1.3 فيها على الأقل ميغابكسل.
إذا كانت عمليات تنفيذ أجهزة السيارات تتضمن كاميرا واحدة أو أكثر
يمكن الوصول إليه عبر كل من Extended View System Service وandroid.hardware.Camera
أو android.hardware.Camera2
API، فيما يلي بالنسبة إلى هذه الكاميرا:
- [7.5/A-6-1] يجب الإبلاغ عن معرّف الكاميرا نفسه.
إذا كانت عمليات تنفيذ أجهزة Automotive توفِّر واجهة برمجة تطبيقات خاصة بالكاميرا، سيتم إجراء ما يلي:
- [7.5/A-7-1] يجب تنفيذ واجهة برمجة تطبيقات الكاميرا باستخدام
android.hardware.camera2
واجهة برمجة التطبيقات أو واجهة برمجة تطبيقات نظام العرض الممتد
إنهاء المتطلبات الجديدة
عمليات تنفيذ أجهزة السيارات:
[7.6.1/A-0-1] يجب أن يحتوي على 4 غيغابايت على الأقل من مساحة تخزين غير متطايرة متاحة لبيانات التطبيق الخاصة (يُعرف أيضًا باسم قسم " /data").
[7.6.1/A] يجب تنسيق قسم البيانات لتقديم أداء محسّن وعمر أطول على وحدة تخزين الفلاش، على سبيل المثال باستخدام نظام الملفات
f2fs
.
إذا كانت عمليات تنفيذ أجهزة Automotive توفِّر مساحة تخزين خارجية مشتركة عبر من وحدة التخزين الداخلية غير القابلة للإزالة:
- [7.6.1/A-SR-1] يُنصح بشدة بتقليلها
نفقات الإدخال/الإخراج على العمليات التي يتم إجراؤها على وحدة التخزين الخارجية، على سبيل المثال عن طريق
باستخدام
SDCardFS
.
إذا كانت عمليات تنفيذ أجهزة Automotive بنظام 64 بت:
[7.6.1/A-2-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 816 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:
- 280 نقطة لكل بوصة أو أقل على الشاشات الصغيرة أو العادية
- ldpi أو أقل على الشاشات الكبيرة جدًا
- mdpi أو أقل على الشاشات الكبيرة
[7.6.1/A-2-2] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 944 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:
- xhdpi أو أعلى على الشاشات الصغيرة/العادية
- hdpi أو أعلى على الشاشات الكبيرة
- mdpi أو أعلى على الشاشات الكبيرة جدًا
[7.6.1/A-2-3] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 1280 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:
- 400 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
- xhdpi أو أعلى على الشاشات الكبيرة
- tvdpi أو أعلى على الشاشات الكبيرة جدًا
[7.6.1/A-2-4] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 1824 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:
- 560 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
- 400 نقطة لكل بوصة أو أكثر على الشاشات الكبيرة
- xhdpi أو أعلى على الشاشات الكبيرة جدًا
لاحظ أن "الذاكرة المتاحة للنواة ومساحة المستخدم" أعلاه إلى مساحة الذاكرة التي تم توفيرها بالإضافة إلى أي ذاكرة مخصصة للأجهزة مثل الراديو والفيديو وما إلى ذلك، والتي لا تندرج تحت بنية النواة على عمليات تنفيذ الأجهزة.
عمليات تنفيذ أجهزة السيارات:
- [7.7.1/A] يجب أن يحتوي على منفذ USB يتوافق مع وضع الأجهزة الملحقة.
عمليات تنفيذ أجهزة السيارات:
- [7.8.1/A-0-1] يجب أن يتضمن ميكروفون.
عمليات تنفيذ أجهزة السيارات:
- يجب أن يتضمّن [7.8.2/A-0-1] إخراجًا صوتيًا وأن يقدِّم بيانًا
android.hardware.audio.output
2.5.2 وسائط متعددة
يجب أن تدعم عمليات تنفيذ الأجهزة في السيارات الترميز الصوتي التالي وفك ترميز التنسيقات وإتاحتها للتطبيقات التابعة لجهات خارجية:
- [5.1/A-0-1] ملف MPEG-4 AAC الشخصي (AAC LC)
- [5.1/A-0-2] ملف تعريف MPEG-4 HE AAC (AAC+ )
- [5.1/A-0-3] AAC ELD (معيار AAC منخفض ومحسّن)
يجب أن تدعم عمليات تنفيذ أجهزة السيارات ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:
يجب أن تتوافق عمليات تنفيذ أجهزة السيارات مع فك ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:
ننصح بشدة بعمليات تنفيذ أجهزة السيارات لدعم فك ترميز الفيديو التالي:
- [5.3/A-SR-1] H.265 HEVC
2.5.3. البرامج
عمليات تنفيذ أجهزة السيارات:
[3/A-0-1] يجب أن يفصح عن الميزة
android.hardware.type.automotive
[3/A-0-2] يجب أن يتوافق مع uiMode =
UI_MODE_TYPE_CAR
.[3/A-0-3] يجب أن يتوافق مع جميع واجهات برمجة التطبيقات العامة في
android.car.*
مساحة الاسم.
إذا كانت عمليات تنفيذ أجهزة Automotive توفِّر واجهة برمجة تطبيقات خاصة بها
android.car.CarPropertyManager
مع
android.car.VehiclePropertyIds
,
وهي:
- [3/A-1-1] يجب ألا يتم إرفاق امتيازات خاصة بالنظام استخدام هذه الخصائص، أو منع تطبيقات الجهات الخارجية من استخدام هذه الخصائص.
- [3/A-1-2] يجب ألا ينسخ موقع مركبة في حزمة تطوير البرامج (SDK)
عمليات تنفيذ أجهزة السيارات:
[3.2.1/A-0-1] يجب أن تتوافق مع جميع ثوابت الأذونات كما هو موثّق في الصفحة المرجعية لأذونات السيارات.
[3.2.3.1/A-0-1] يجب أن يتم تحميل ملف واحد أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، لجميع أنماط فلاتر الأهداف العامة المحدّدة في أهداف التطبيق التالية مدرجة هنا
[3.4.1/A-0-1] يجب أن يقدم تنفيذ واجهة برمجة تطبيقات
android.webkit.Webview
.
بدء متطلبات جديدة
- [3.8/A-0-1] يجب ألا يتم السماح للمستخدمين الثانويين الكاملة الذين ليسوا مستخدمين حاليين في المقدّمة لتشغيل الأنشطة والوصول إلى واجهة المستخدم على أي شاشات عرض.
إنهاء المتطلبات الجديدة
[3.8.3/A-0-1] يجب أن تعرض التي تستخدم
Notification.CarExtender
واجهة برمجة التطبيقات عندما تطلب تطبيقات تابعة لجهات خارجية[3.8.4/A-SR-1] يُوصى به بشدة إنشاء مساعد على الجهاز للتعامل مع إجراء المساعدة.
إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن زر "الضغط للتحدث"، سيتم ما يلي:
- [3.8.4/A-1-1] يجب أن يستخدم الضغط لفترة قصيرة على
زر الضغط للتحدث كتفاعل مخصص لتشغيل
هو التطبيق المساعد الذي يختاره المستخدم، أو بعبارة أخرى التطبيق الذي ينفّذ
VoiceInteractionService
عمليات تنفيذ أجهزة السيارات:
- [3.8.3.1/A-0-1] يجب أن تكون صحيحة
عرض الموارد على النحو الموضّح في
Notifications on Automotive OS
مستندات حزمة SDK. - [3.8.3.1/A-0-2] يجب أن تعرض
تشغيل وكتم الصوت لإجراءات الإشعارات بدلاً من الإجراءات المقدمة من خلال
Notification.Builder.addAction()
- [3.8.3.1/A] يجب أن يقيّد استخدام مهام الإدارة الغنية بصريًا مثل عناصر التحكم في القناة لكل إشعار. قد تستخدم خصائص واجهة المستخدم لكل تطبيق لتقليل عناصر التحكم.
إذا كانت عمليات تنفيذ أجهزة Automotive تتيح خصائص HAL للمستخدم، سيتم إجراء ما يلي:
- [3.9.3/A-1-1] يجب أن ينفذ جميع
خصائص مراحل نشاط المستخدِم
INITIAL_USER_INFO
،SWITCH_USER
،CREATE_USER
،REMOVE_USER
.
عمليات تنفيذ أجهزة السيارات:
- [3.14/A-0-1] يجب أن يتضمن إطار عمل لواجهة مستخدم من أجل الدعم تطبيقات تابعة لجهات خارجية تستخدم واجهات برمجة تطبيقات الوسائط كما هو موضّح في القسم 3.14:
- [3.14/A-0-2] يجب أن يسمح للمستخدم بالتفاعل بأمان مع تطبيقات الوسائط أثناء القيادة
- [3.14/A-0-3] يجب أن يتوافق مع
CAR_INTENT_ACTION_MEDIA_TEMPLATE
إجراء Intent ضمني معCAR_EXTRA_MEDIA_PACKAGE
المزيد. - [3.14/A-0-4] يجب أن توفر إمكانية الانتقال إلى في تطبيق الوسائط التفضيل نشاطك، ولكن يجب تفعيلها فقط عندما لا تكون "قيود تجربة المستخدم في السيارة" سارية.
- [3.14/A-0-5] يجب أن تعرض
رسائل خطأ
التي تم تعيينها بواسطة تطبيقات الوسائط، ويجب أن تدعم الإضافات الاختيارية
ERROR_RESOLUTION_ACTION_LABEL
وERROR_RESOLUTION_ACTION_INTENT
. - [3.14/A-0-6] يجب أن يدعم تكاليف البحث داخل التطبيق في التطبيقات التي تتيح البحث.
- [3.14/A-0-7] يجب أن يلتزم
CONTENT_STYLE_BROWSABLE_HINT
وCONTENT_STYLE_PLAYABLE_HINT
التعريفات عند عرض MediaBrowser التسلسل الهرمي.
إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن تطبيق مشغّل تطبيقات تلقائيًا، سيتم ما يلي:
- [3.14/A-1-1] يجب أن تتضمن خدمات الوسائط وفتحها
مع
CAR_INTENT_ACTION_MEDIA_TEMPLATE
والنية.
عمليات تنفيذ أجهزة السيارات:
- [3.8/أ] قد تحظر التطبيق
يطلب الدخول إلى وضع ملء الشاشة كما هو موضح في
immersive documentation
. - [3.8/A] قد يتم الإبقاء على شريط الحالة ظهور شريط التنقل في جميع الأوقات
- [3.8/أ] قد تحظر التطبيق طلبات تغيير الألوان خلف عناصر واجهة مستخدم النظام، للتأكد تكون هذه العناصر مرئية بوضوح في جميع الأوقات.
2.5.4. الأداء والقوة
عمليات تنفيذ أجهزة السيارات:
- [8.2/A-0-1] يجب أن يبلغ عدد
وحدات بايت مكتوبة ومكتوبة على وحدة تخزين غير متطايرة لكل معرف UID لكل عملية، ومن ثم
الإحصاءات متاحة للمطوّرين من خلال System API
android.car.storagemonitoring.CarStorageMonitoringManager
مؤتمر Android المفتوح يلبّي مشروع المصدر المتطلبات من خلال وحدة نواةuid_sys_stats
. - [8.3/A-1-3] يجب أن يتوافق مع وضع المرآب.
- [8.3/A] يجب أن يكون في "وضع المرآب" على الأقل
15 دقيقة بعد كل قيادة إلا:
- تم استنزاف البطارية.
- لم تتم جدولة مهام غير نشِطة.
- يخرج السائق من "وضع المرآب".
- [8.4/A-0-1] يجب أن يوفر ملف الطاقة لكل مكوّن ويحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
- [8.4/A-0-2] يجب الإبلاغ عن كل الطاقة قيم الاستهلاك بالملي أمبير في الساعة (mAh).
- [8.4/A-0-3] يجب الإبلاغ عن طاقة وحدة المعالجة المركزية
الاستهلاك حسب المُعرّف الفريد لكل عملية. يلبي المشروع المفتوح المصدر لنظام Android
من خلال تنفيذ وحدة النواة
uid_cputime
. - [8.4/A] يجب أن تُنسَب إلى مكون الجهاز نفسه إذا لم تتمكن من تحديد استخدام الطاقة لمكوّن الجهاز إلى أحد التطبيقات.
- [8.4/A-0-4] يجب أن يتم استخدام الطاقة هذه
متاح عبر
adb shell dumpsys batterystats
أمر Shell إلى مطور التطبيق.
2.5.5. نموذج الأمان
إذا كانت عمليات تنفيذ أجهزة Automotive على أجهزة تتيح تعدد المستخدمين، ينطبق عليهم ما يلي:
- [9.5/A-1-1] يجب ألا يسمح للمستخدمين بالتفاعل مع أو التبديل إلى مستخدم نظام بلا واجهة مستخدم رسومية باستثناء إدارة الأجهزة.
- [9.5/A-1-2] يجب التبديل إلى مستخدم ثانوي
قبل
BOOT_COMPLETED
. - [9.5/A-1-3] يجب أن يتيح إمكانية إنشاء مستخدم ضيف حتى عند الوصول إلى الحد الأقصى لعدد المستخدمين على الجهاز.
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ أجهزة السيارات تشير إلى ما يلي: android.hardware.microphone
،
وهي:
- [9.8.2/A-1-1] يجب أن يتم عرض مؤشر الميكروفون عندما
وصول أحد التطبيقات إلى البيانات الصوتية من الميكروفون، ولكن ليس عند
لا يمكن الوصول إلى الميكروفون إلا من خلال
HotwordDetectionService
وSOURCE_HOTWORD
ContentCaptureService
أو التطبيقات التي تمتلك الأدوار الموضحة في الفقرة 9.1 مع معرّف CDD [C-4-X]. - [9.8.2/A-1-2] يجب ألا يخفي مؤشر الميكروفون في تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم
- [9.8.2/A-1-3] يجب أن يوفر للمستخدم إمكانية تبديل الميكروفون في تطبيق الإعدادات.
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ أجهزة السيارات تشير إلى android.hardware.camera.any
، في هذه الحالة
وهي:
- [9.8.2/A-2-1] يجب أن يتم عرض مؤشر الكاميرا عند
وصول التطبيق إلى بيانات الكاميرا المباشرة، ولكن ليس عند تشغيل الكاميرا
تم الوصول إليها من خلال التطبيقات التي تمتلك الأدوار على النحو المحدَّد
المسمىفي القسم 9.1 الأذونات تتضمّن معرّف CDD [C-4-X][C-3-X] - [9.8.2/A-2-2] يجب ألا يخفي مؤشر الكاميرا تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم
بدء متطلبات جديدة
- [9.8.2/A-2-3] يجب أن تتيح للمستخدم إمكانية تبديل الكاميرا في تطبيق "الإعدادات".
- [9.8.2/A-2-4] يجب أن تعرض "التطبيقات المستخدَمة مؤخرًا" و"التطبيقات النشطة" التي تستخدم الكاميرا على النحو الموضّح.
من
PermissionManager.getIndicatorAppOpUsageData()
، إلى جانب أي رسائل تحديد المصدر المرتبطة بها.
إنهاء المتطلبات الجديدة
عمليات تنفيذ أجهزة السيارات:
- [9/A-0-1] يجب أن يعلن عن
android.hardware.security.model.compatible
الجديدة. - [9.11/A-0-1] يجب الاحتفاظ بنسخة احتياطية من تنفيذ ملف تخزين المفاتيح من خلال بيئة تنفيذ معزولة.
- [9.11/A-0-2] يجب أن يتضمن تطبيق RSA أو AES خوارزميات التشفير ECDSA وHMAC، وعائلة MD5 وSHA1 وSHA-2 لتوافق وظائف التجزئة مع توافق نظام تخزين مفاتيح Android بشكل صحيح الخوارزميات في منطقة معزولة بشكل آمن عن التعليمات البرمجية التي تعمل على النواة kernel وما فوقها. يجب أن يحظر العزل الآمن جميع الآليات المحتملة الذي يمكن من خلاله لشفرة kernel أو أو userspace الوصول إلى الحالة الداخلية معزولة، بما في ذلك قانون الأسواق الرقمية. البرامج المفتوحة المصدر لنظام Android يلبي المشروع (AOSP) هذا الشرط من خلال استخدام تنفيذ Trusty، حلّ مستند إلى ARM TrustZone أو حلاً آمنًا تمت مراجعته من قِبل جهة خارجية تنفيذ عزل صحيح مستند إلى برنامج Hypervisor (مراقب الأجهزة الظاهرية) هو بديل الخيارات.
- [9.11/A-0-3] يجب تنفيذ شاشة القفل في بيئة التنفيذ المعزولة وفقط عندما ناجحة، اسمح باستخدام المفاتيح المرتبطة بالمصادقة. شاشة القفل يجب تخزين بيانات الاعتماد بطريقة تسمح فقط بالتنفيذ المعزول لإجراء مصادقة شاشة القفل. أحدث إصدارات Android يوفر المشروع المفتوح المصدر طبقة تجريد أجهزة البوابة (HAL) و Trusty، التي يمكن استخدامها لاستيفاء هذا الشرط.
- [9.11/A-0-4] يجب أن يتوافق مع مصادقة المفتاح حيث مفتاح توقيع المصادقة محمي بواسطة أجهزة آمنة ويتم التوقيع في أجهزة آمنة. يجب مشاركة مفاتيح توقيع المصادقة على عدد كبير بما يكفي من الأجهزة لمنع استخدام المفاتيح كمعرّفات للأجهزة. تتمثل إحدى طرق تلبية هذا المطلب في مشاركة مفتاح المصادقة نفسه ما لم يتم توفير 100,000 وحدة على الأقل من رمز تخزين تعريفي معيّن إنتاجه. إذا تم إنتاج أكثر من 100,000 وحدة من رمز التخزين التعريفي، يجب قد يُستخدم المفتاح لكل 100000 وحدة.
يُرجى ملاحظة أنّه إذا كان قد تمّ تشغيل تنفيذ الجهاز على إصدار Android سابق
يتم إعفاء هذا الجهاز من طلب توفُّر ملف تخزين مفاتيح.
مدعومة ببيئة تنفيذ معزولة وتدعم المصادقة الرئيسية،
ما لم يتم الإعلان عن ميزة android.hardware.fingerprint
التي تتطلّب
ملف تخزين مفاتيح يعتمد على بيئة تنفيذ معزولة.
عمليات تنفيذ أجهزة السيارات:
- [9.14/A-0-1] يجب أن يتم حفظ الرسائل من الأنظمة الفرعية للمركبات التي تعمل بإطار عمل Android، مثل إضافة الرسائل المسموح بها إلى القائمة المسموح بها ومصادر الرسائل المختلفة.
- [9.14/A-0-2] يجب أن يراقب هجمات الحرمان من الخدمة من إطار عمل Android أو التطبيقات التابعة لجهات خارجية. هذا النمط توفر حماية من البرامج الضارة التي تغمر شبكة المركبات بحركة المرور، مما قد يؤدي إلى خلل في الأنظمة الفرعية للمركبة.
2.5.6. التوافق بين أدوات المطوّرين وخياراتهم
عمليات تنفيذ أجهزة السيارات:
- Perfetto
- [6.1/A-0-1] يجب أن يكشف عن
/system/bin/perfetto
ثنائي النظام إلى مستخدم واجهة المستخدم الذي يتوافق مع cmdline مستندات العروض الترويجية - [6.1/A-0-2] يجب أن يقبل برنامج Perfetto الثنائي إدخال تهيئة Protobuf تتوافق مع المخطط المحدد في مستندات المزايا
- [6.1/A-0-3] يجب كتابة البرنامج الثنائي للأداء على النحو التالي: إخراج تتبع أولي يتوافق مع المخطط المحدد في مستندات المزايا
- [6.1/A-0-4] يجب أن يتم تقديمه من خلال الأداء ثنائيًا، على الأقل مصادر البيانات الموضحة في مستندات Perfetto.
- [6.1/A-0-1] يجب أن يكشف عن
2.6. متطلبات الجهاز اللوحي
يشير جهاز Android لوحي إلى عملية تنفيذ على جهاز Android تستوفي عادةً جميع المعايير التالية:
- يُستخدم عن طريق الإمساك باليدين.
- ليس به إعداد صدفة أو قابل للتحويل.
- عمليات تنفيذ لوحة المفاتيح الخارجية المستخدمة مع الجهاز يتم ربطها من خلال وسيلة الاتصال العادي (مثل USB، البلوتوث).
أن يتوفّر له مصدر طاقة يوفّر إمكانية التنقّل، مثل البطارية
أن يكون حجم عرض الشاشة أكبر من 7 بوصة وأقل من 18 بوصة، ويتم قياسه قطريًا.
إنّ عمليات تنفيذ الأجهزة اللوحية لها متطلبات مشابهة لمتطلبات الأجهزة المحمولة. وعمليات التنفيذ. يتم توضيح الاستثناءات بعلامة * في هذا القسم وتدوينها كمرجع في هذا القسم
2.6.1. الأجهزة
الجيروسكوب
إذا كانت عمليات تنفيذ جهاز الجهاز اللوحي تتضمن جيروسكوبًا ثلاثي المحاور، فسيتم إجراء ما يلي:
- [7.3.4/Tab-1-1] يجب أن تكون قادرة على قياس الاتجاه التغيرات إلى 1000 درجة في الثانية.
الحد الأدنى من الذاكرة وسعة التخزين (القسم 7.6.1)
يشير هذا المصطلح إلى كثافة الشاشة المعروضة للشاشات الصغيرة أو العادية في الجهاز المحمول. متطلبات المنتجات لا تنطبق على الأجهزة اللوحية.
وضع جهاز USB الملحق (القسم 7.7.1)
إذا كانت عمليات تنفيذ الجهاز اللوحي تتضمن منفذًا USB متوافقًا مع الأجهزة الملحقة فإنهم:
- [7.7.1/Tab] قد يتم تنفيذ واجهة برمجة تطبيقات ملحق Android المفتوح (AOA).
وضع الواقع الافتراضي (القسم 7.9.1)
الأداء العالي للواقع الافتراضي (القسم 7.9.2)
متطلبات الواقع الافتراضي لا تنطبق على الأجهزة اللوحية.
2.6.2 نموذج الأمان
المفاتيح وبيانات الاعتماد (القسم 9.11)
راجِع القسم [9.11].
إذا كانت عمليات تنفيذ الجهاز اللوحي تتضمن عدة مستخدمين
لا تعلن عن علامة الميزة android.hardware.telephony
، فإنها:
- [9.5/T-1-1] يجب أن يتوافق مع الملفات الشخصية المحظورة، وهي ميزة تسمح لمالكي الأجهزة بإدارة حسابات المستخدمين الإضافيين والإمكانيات الجديدة على الجهاز. من خلال الملفات الشخصية المقيّدة، يمكن لمالكي الأجهزة إعداد بيئات منفصلة بسرعة لكي يعمل فيها مستخدمون إضافيون، مع القدرة على إدارة القيود الأكثر دقة في التطبيقات التي المتوفرة في تلك البيئات.
إذا كانت عمليات تنفيذ الجهاز اللوحي تتضمن عدة مستخدمين
الإعلان عن علامة الميزة android.hardware.telephony
، فإنها:
- [9.5/T-2-1] يجب ألا يكون الدعم محظورًا ولكن يجب أن تتوافق مع تنفيذ عناصر التحكم في بروتوكول AOSP. لتفعيل /إيقاف المستخدمين الآخرين من الوصول إلى المكالمات الصوتية والرسائل القصيرة SMS.
2.6.2 البرامج
- [3.2.3.1/Tab-0-1] يجب تحميل واحد مسبقًا أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، لجميع أنماط فلاتر الأهداف العامة المحدّدة في أهداف التطبيق التالية مدرجة هنا
3- البرامج
3.1. التوافق مع واجهة برمجة التطبيقات المُدارة
بيئة تنفيذ رمز بايت Dalvik المُدار هي الأداة الأساسية تطبيقات Android. واجهة برمجة تطبيقات Android (API) هي واجهة مجموعة من واجهات نظام Android الأساسية المعروضة للتطبيقات التي يتم تشغيلها في بيئة وقت تشغيل مُدارة.
عمليات تنفيذ الأجهزة:
[C-0-1] يجب أن يوفر عمليات تنفيذ كاملة، بما في ذلك جميع لأي واجهة برمجة تطبيقات موثقة تم الكشف عنها من خلال حزمة تطوير البرامج (SDK) لنظام التشغيل Android أو أي واجهة برمجة تطبيقات مزينة بعلامة " @SystemApi" في إصدار Android الرئيسي رمز المصدر.
[C-0-2] يجب أن يدعم/يحافظ على جميع الفئات والطرق والعناصر المرتبطة مميّزًا بتعليق توضيحي TestApi (@TestApi).
[C-0-3] يجب ألا يتم حذف أي واجهات برمجة تطبيقات مُدارة أو تغيير واجهات أو توقيعات واجهات برمجة التطبيقات، أن تحيد عن السلوك الموثق أو تتضمن عدم العمليات، إلا إذا على وجه التحديد، بموجب تعريف التوافق هذا.
[C-0-4] يجب أن تحافظ على وجود واجهات برمجة التطبيقات وسلوكها بطريقة معقولة، حتى عندما تستخدم بعض ميزات الأجهزة التي تشتمل على حذف واجهات برمجة التطبيقات. راجِع القسم 7. للمتطلبات المحددة لهذا السيناريو.
[C-0-5] يجب عدم السماح للتطبيقات التابعة لجهات خارجية باستخدام واجهات غير متوفرة في حزمة SDK، كطرق وحقول في حزم لغة جافا في مسار فئة التمهيد في AOSP، والتي لا تشكل جزءًا من مسار SDK. يشمل ذلك واجهات برمجة التطبيقات المزيّنة بالتعليق التوضيحي
@hide
وليس مع@SystemAPI
، كما هو موضّح في مستندات حزمة تطوير البرامج (SDK) وأعضاء الفصل الدراسي والخاص والحزمة الخاصة.[C-0-6] يجب أن يتم شحنه مع كل واجهة غير متوفرة في حزمة SDK في النطاق المحظور نفسه كما تم تقديمها من خلال العلامات المؤقتة وقائمة الحظر في
prebuilts/runtime/appcompat/hiddenapi-flags.csv
المسار المناسب لفرع مستوى واجهة برمجة التطبيقات (AOSP) المناسب.يجب أن يتوافق [C-0-7] مع الضبط المُوقَّع. آلية تحديث ديناميكي لإزالة الواجهات غير المتوفرة في حزمة SDK من قائمة محظورة من خلال تضمين الإعدادات الموقَّعة في أي حزمة APK، باستخدام المفاتيح العامة الحالية موجودة في AOSP.
ومع ذلك:
- في حال عدم توفّر واجهة برمجة تطبيقات مخفية أو تنفيذها بشكل مختلف على الجهاز التنفيذ، يمكنك نقل واجهة برمجة التطبيقات المخفية إلى قائمة الحظر أو حذفها من كل القوائم المحظورة.
- إذا لم تكن هناك واجهة برمجة تطبيقات مخفية في AOSP، يمكنك إضافة واجهة واجهة برمجة التطبيقات لأيٍّ من القوائم المحظورة.
بدء متطلبات جديدة
- [C-0-8] يجب ألا يتيح تثبيت التطبيقات التي تستهدف مستوى واجهة برمجة التطبيقات أقل من 23.
إنهاء المتطلبات الجديدة
3.1.1. إضافات Android
يتيح Android توسيع مساحة واجهة برمجة التطبيقات المُدارة لمستوى معيّن من واجهة برمجة التطبيقات من خلال
تحديث إصدار الإضافة لمستوى واجهة برمجة التطبيقات هذا. تشير رسالة الأشكال البيانية
تعرض واجهة برمجة التطبيقات android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel)
الإضافية من نظام التشغيل apiLevel
المقدَّم، إذا كانت هناك إضافات لذلك
مستوى واجهة برمجة التطبيقات.
آليات تنفيذ أجهزة Android:
[C-0-1] يجب تحميل تنفيذ AOSP مسبقًا لكل من المكتبة المشتركة
ExtShared
والخدماتExtServices
بإصدارات أكبر من أو تساوي الحد الأدنى للإصدارات المسموح بها لكل مستوى لواجهة برمجة التطبيقات. على سبيل المثال، Android 7.0 عمليات تنفيذ الأجهزة التي تعمل بالمستوى 24 لواجهة برمجة التطبيقات يجب أن تتضمن على الأقل الإصدار 1.[C-0-2] يجب فقط عرض رقم إصدار الإضافة الصالح الذي تم محددة من قبل AOSP.
[C-0-3] يجب أن يتوافق مع جميع واجهات برمجة التطبيقات المحددة في إصدارات الإضافات تم إرجاعه من قِبل
android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel)
بالطريقة نفسها التي يتم بها دعم واجهات برمجة التطبيقات المُدارة الأخرى، وذلك باتباع المتطلبات الواردة في القسم 3.1.
3.1.2. مكتبة Android
بسبب إيقاف برنامج Apache HTTP، عمليات تنفيذ الأجهزة:
- [C-0-1] يجب ألا يتم وضع مكتبة
org.apache.http.legacy
في Bootclasspath. - [C-0-2] يجب إضافة مكتبة
org.apache.http.legacy
إلى التطبيق. classpath فقط عندما يستوفي التطبيق أحد الشروط التالية:- استهداف المستوى 28 أو أقل لواجهة برمجة التطبيقات
- يعلن في ملف البيان الخاص به أنه بحاجة إلى المكتبة من خلال تعيين
السمة
android:name
من<uses-library>
إلىorg.apache.http.legacy
.
إنّ عملية تنفيذ بروتوكول AOSP تستوفي هذه المتطلّبات.
3.2. التوافق مع Soft API
بالإضافة إلى واجهات برمجة التطبيقات المُدارة من القسم 3.1، يتضمّن Android أيضًا واجهة برمجة تطبيقات "soft" مهمة فقط في وقت التشغيل، على شكل أشياء مثل الأهداف والأذونات والجوانب المماثلة لتطبيقات Android التي لا يمكن فرضها في وقت تجميع التطبيق.
3.2.1. الأذونات
- [C-0-1] يجب أن تتوافق أدوات تنفيذ الأجهزة مع جميع الأذونات وتنفيذها الثوابت كما هو موثّق في الصفحة المرجعية للأذونات. تجدر الإشارة إلى أن القسم 9 يسرد المتطلبات المتعلقة بنموذج أمان Android.
3.2.2. مَعلمات الإصدار
تتضمن واجهات برمجة تطبيقات Android عددًا من الثوابت في فئة android.os.Build المخصّصة لوصف الجهاز الحالي
- [C-0-1] لتوفير قيم متسقة وهادفة عبر الجهاز عمليات التنفيذ، يتضمّن الجدول التالي قيودًا إضافية على أشكال الإعلانات من هذه القيم التي يجب أن تتوافق بها عمليات تنفيذ الأجهزة.
المَعلمة | التفاصيل |
---|---|
الإصدار.إصدار | يشير هذا المصطلح إلى إصدار نظام Android قيد التنفيذ حاليًا ويمكن لشخص عادي قراءته. . يجب أن يحتوي هذا الحقل على إحدى قيم السلسلة المحددة في سلاسل الإصدارات المسموح بها لنظام التشغيل Android 14 |
VERSION.SDK | يشير إلى إصدار نظام Android قيد التنفيذ حاليًا بتنسيق. ويمكن الوصول إليه من خلال رمز تطبيق تابع لجهة خارجية. بالنسبة إلى نظام التشغيل Android 14، يجب أن يحتوي هذا الحقل على القيمة العددية 14_INT. |
VERSION.SDK_INT | يشير إلى إصدار نظام Android قيد التنفيذ حاليًا بتنسيق. ويمكن الوصول إليه من خلال رمز تطبيق تابع لجهة خارجية. بالنسبة إلى نظام التشغيل Android 14، يجب أن يحتوي هذا الحقل على القيمة العددية 14_INT. |
نسخة مكمّلة | يشير هذا المصطلح إلى قيمة يختارها مقدِّم الجهاز الذي يخصِّص الإصدار المحدَّد. لنظام Android قيد التنفيذ حاليًا، بتنسيق يمكن لشخص عادي قراءته هذا النمط ويجب عدم إعادة استخدامه للإصدارات المختلفة المتوفرة للمستخدمين. حاسمة فإن الاستخدام النموذجي لهذا الحقل هو الإشارة إلى رقم الإصدار أو تم استخدام معرّف تغيير التحكّم في المصدر لإنشاء الإصدار. القيمة من هذا الحقل يجب أن يكون قابلاً للطباعة بتنسيق ASCII 7 بت القابل للطباعة وأن يطابق التعبير العادي "^[^ :\/~]+$". |
ألعاب ألواح | يشير هذا المصطلح إلى قيمة يختارها منفذ تنفيذ الجهاز لتحديد العنصر الأجهزة الداخلية التي يستخدمها الجهاز، بتنسيق يمكن لشخص عادي قراءته احتمال استخدام هذا الحقل للإشارة إلى المراجعة المحددة لتوليد الطاقة للوحة الجهاز. يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII 7 بت تتطابق مع التعبير العادي "^[a-zA-Z0-9_-]+$". |
العلامة التجارية | قيمة تعكس اسم العلامة التجارية المرتبطة بالجهاز كما هو معروف المستخدمين النهائيين. يجب أن يكون بتنسيق يمكن لشخص عادي قراءته، كما ينبغي أن يمثل الشركة المصنعة للجهاز أو العلامة التجارية للشركة التي يتم استخدام الجهاز للتسويق. يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII بنظام 7 بت ومتطابقة التعبير العادي "^[a-zA-Z0-9_-]+$". |
مواد العرض المتوافقة | اسم مجموعة التعليمات (نوع وحدة المعالجة المركزية (CPU) + اصطلاح ABI) الأصلية الرمز. راجع القسم 3.3. واجهة برمجة التطبيقات الأصلية التوافق. |
مدعومة_32_BIT_ABIS | اسم مجموعة التعليمات (نوع وحدة المعالجة المركزية (CPU) + اصطلاح ABI) الأصلية الرمز. راجع القسم 3.3. واجهة برمجة التطبيقات الأصلية التوافق. |
SUPPORTED_64_BIT_ABIS | اسم مجموعة التعليمات الثانية (نوع وحدة المعالجة المركزية + اصطلاح واجهة التطبيق الثنائية (ABI)) الرمز الأصلي. راجع القسم 3.3. مدمج مع المحتوى التوافق مع واجهة برمجة التطبيقات: |
وحدة المعالجة المركزية (CPU_ABI) | اسم مجموعة التعليمات (نوع وحدة المعالجة المركزية (CPU) + اصطلاح ABI) الأصلية الرمز. راجع القسم 3.3. واجهة برمجة التطبيقات الأصلية التوافق. |
وحدة معالجة مركزية (CPU_ABI2) | اسم مجموعة التعليمات الثانية (نوع وحدة المعالجة المركزية + اصطلاح واجهة التطبيق الثنائية (ABI)) الرمز الأصلي. راجع القسم 3.3. مدمج مع المحتوى التوافق مع واجهة برمجة التطبيقات: |
الجهاز | قيمة يختارها أداة تنفيذ الجهاز تحتوي على اسم التطوير أو الاسم الرمزي الذي يحدد تكوين ميزات الأجهزة التصميم الصناعي للجهاز. يجب أن تكون قيمة هذا الحقل قابلة للترميز بتنسيق ASCII 7 بت ومطابقة التعبير العادي "^[a-zA-Z0-9_-]+$". يجب ألا يتغير اسم الجهاز هذا أثناء مدى عمر المنتج. |
طباعة الأصابع | سلسلة تعرّف هذا الإصدار بشكل فريد. من المفترض أن يكون معقولاً
يمكن لشخص عادي قراءتها يجب أن يتّبع هذا النموذج:
$(BRAND)/$(PRODUCT)/ مثلاً: acme/myproduct/ يجب ألا يتضمن الملف المرجعي مسافات بيضاء. قيمة يجب أن يكون هذا الحقل قابلاً لترميز ASCII بنظام 7 بت. |
الأجهزة | اسم الجهاز (من سطر أوامر kernel أو /proc). أُنشأها جون هنتر، الذي كان متخصصًا يجب أن تكون اللغة مقروءة بشكل معقول. يجب أن تكون قيمة هذا الحقل يمكن ترميزه بتنسيق ASCII 7 بت ومطابقة التعبير العادي "^[a-zA-Z0-9_-]+$". |
المضيف | يشير ذلك المصطلح إلى سلسلة تعرِّف بشكلٍ فريد المضيف الذي تم إنشاء الإصدار عليه، تنسيق يمكن لشخص عادي قراءته. ليست هناك أي متطلبات للتنسيق المحدد هذا الحقل، باستثناء أنه يجب ألا تكون فارغة أو السلسلة الفارغة (""). |
رقم التعريف | يشير هذا المصطلح إلى معرّف يختاره أداة تنفيذ الجهاز للإشارة إلى معرّف معيّن. إصداره بتنسيق يمكن لشخص عادي قراءته يمكن أن يكون هذا الحقل مماثلاً android.os.Build.VERSION.INCREMENTAL، ولكن يجب أن تكون قيمة كافية مفيدة للمستخدمين النهائيين للتمييز بين إصدارات البرامج. القيمة من هذا الحقل يجب أن يكون قابلاً لترميز ASCII بنظام 7 بت وأن يطابق الإدخال العادي التعبير "^[a-zA-Z0-9._-]+$". |
شركة مصنّعة | الاسم التجاري للمصنّع الأصلي للجهاز (OEM) المنتج. ليست هناك أي متطلبات بشأن التنسيق المحدد لهذا الحقل، باستثناء أنه يجب ألا تكون فارغة أو السلسلة الفارغة (""). هذا الحقل يجب ألا تتغير خلال عمر المنتج. |
شركة SOC_MANUFACTURER | الاسم التجاري للشركة المصنعة للنظام الأساسي في الشريحة (SOC) المستخدمة في المنتج. الأجهزة التي تستخدم الشركة المصنّعة نفسها لمعيار SOC يجب أن يستخدم نفس القيمة الثابتة. يُرجى طلب ذلك من الشركة المصنّعة SOC الثابت الصحيح للاستخدام. يجب أن تكون قيمة هذا الحقل قابلة للترميز مثل ASCII 7 بت، يجب أن يطابق التعبير العادي "^([0-9A-Za-z ]+)"، يجب ألا تبدأ أو تنتهي بمسافة بيضاء، ويجب ألا تكون مساوية لـ "غير معروف". يجب ألا يتغيّر هذا الحقل أثناء مدى عمر المنتج. |
SOC_MODEL | اسم طراز النظام الأساسي على الشريحة (SOC) المستخدمة في المنتج. يجب أن تستخدم الأجهزة التي لها نموذج SOC نفسه قيمة ثابتة واحدة. يُرجى طلب الرقم الثابت الصحيح لاستخدامه. يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII بنظام 7 بت وأن تتطابق مع التعبير العادي “^([0-9A-Za-z ._/+-]+)$”، يجب ألا يبدأ أو تنتهي بمسافة بيضاء، ويجب ألا تكون مساوية لـ "غير معروف". هذا الحقل يجب ألا تتغير خلال عمر المنتج. |
النموذج | يشير هذا المصطلح إلى قيمة يختارها أداة تنفيذ الجهاز وتحتوي على اسم. الجهاز كما هو معروف للمستخدم النهائي. يجب أن يكون هذا هو الاسم ذاته الذي يتم تسويق الجهاز وبيعه للمستخدمين النهائيين. ليست هناك أي متطلبات التنسيق المحدد لهذا الحقل، باستثناء أنه يجب ألا يكون فارغًا أو سلسلة فارغة (""). يجب ألا يتغيّر هذا الحقل أثناء مدى عمر المنتج. |
المنتج | قيمة يختارها أداة تنفيذ الجهاز تحتوي على اسم التطوير أو اسم الرمز البرمجي للمنتج المحدّد (SKU) الذي يجب أن يكون فريدًا داخل العلامة التجارية نفسها. يجب أن تكون سهلة القراءة للمستخدم، ولكنّها ليست بالضرورة مخصَّصة للعرض من قبل المستخدمين النهائيين. يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII 7 بت تتطابق مع التعبير العادي "^[a-zA-Z0-9_-]+$". هذا المنتج الاسم أثناء فترة بقاء المنتج. |
ODM_SKU | قيمة اختيارية يختارها أداة تنفيذ الجهاز وتحتوي على
يُستخدَم رمز التخزين التعريفي (SKU) لتتبُّع تهيئات معيّنة
الجهاز، على سبيل المثال، أي أجهزة ملحقة مرفقة بالجهاز عند بيعها.
يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII بنظام 7 بت وأن تتطابق مع
التعبير العادي ^([0-9A-Za-z.,_-]+)$ . |
الرقم التسلسلي | يجب عرض "UNKNOWN" |
العلامات | يشير هذا المصطلح إلى قائمة بعلامات مفصولة بفواصل يختارها أداة تنفيذ الجهاز. تميز التصميم بشكل أكبر. يجب أن تكون العلامات قابلة لترميز ASCII 7 بت وتطابق التعبير العادي "^[a-zA-Z0-9._-]+" ويجب تمتلك إحدى القيم المقابلة لنظام Android الأساسي الثلاثة إعدادات التوقيع: مفاتيح الإصدار ومفاتيح المطوّرين ومفاتيح الاختبار. |
الوقت | قيمة تمثّل الطابع الزمني لوقت حدوث الإصدار. |
النوع | يشير هذا المصطلح إلى قيمة يختارها أداة تنفيذ الجهاز لتحديد بيئة التشغيل. تهيئة الإصدار. يجب أن يحتوي هذا الحقل على إحدى القيم يتوافق مع عمليات الإعداد الثلاثة النموذجية لوقت تشغيل Android: أو userdebug أو en. |
المستخدم | اسم أو رقم تعريف مستخدم للمستخدم (أو للمستخدم التلقائي) الذي أنشأ ليست هناك أي متطلبات بشأن التنسيق المحدد لهذا الحقل، باستثناء أنه يجب ألا تكون فارغة أو السلسلة الفارغة (""). |
تصحيح_الأمان | قيمة تشير إلى مستوى رمز تصحيح الأمان لإصدار معيّن. يجب أن يعني ذلك أنّ الإصدار ليس معرّضًا بأي شكل من الأشكال لأي من المشاكل الموضّحة عبر نشرة الأمن العام من Android المخصصة. يجب أن يكون في بالتنسيق [YYYY-MM-DD]، مع مطابقة سلسلة محددة موثقة في الأمن العام على Android النشرة أو في تقرير أمان Android، على سبيل المثال "2015-11-01". |
نظام التشغيل BASE_OS | قيمة تمثِّل المعلمة FINGERPrint للإصدار ذي مماثلة بخلاف ذلك لهذا الإصدار باستثناء التصحيحات المتوفرة في نشرة الأمن العام من Android يجب أن يقدم تقريرًا عن القيمة الصحيحة وإذا مثل هذا الإصدار غير موجود، أبلِغ عن سلسلة فارغة (""). |
BOOTLOADER | يشير هذا المصطلح إلى قيمة يختارها منفذ تنفيذ الجهاز لتحديد العنصر إصدار برنامج الإقلاع الداخلي المستخدَم في الجهاز، بتنسيق يمكن للمستخدمين قراءته يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII بنظام 7 بت وأن تتطابق مع التعبير العادي "^[a-zA-Z0-9._-]+$". |
getRadioVersion() | يجب أن يكون (أو يعرض) قيمة يختارها أداة تنفيذ الجهاز تحديد إصدار الراديو/المودم الداخلي المحدد المستخدم في الجهاز، بتنسيق يمكن لشخص عادي قراءته إذا لم يكن هناك أي جهاز داخلي راديو/مودم، يجب أن يعرض "خالٍ". يجب أن تكون قيمة هذا الحقل يمكن ترميزه بتنسيق ASCII 7 بت ومطابقة التعبير العادي "^[a-zA-Z0-9._-,]+$". |
getSerial() | يجب أن يكون رقمًا تسلسليًا للأجهزة (يجب أن يكون أو إرجاعه) والذي يجب أن يكون متاحًا. وفريدة عبر الأجهزة من نفس MODEL وMANUFACTURER. قيمة يجب أن يكون هذا الحقل قابلاً لترميز ASCII بنظام 7 بت وأن يطابق التعبير العادي "^[a-zA-Z0-9]+$". |
3.2.3. التوافق مع الأهداف
3.2.3.1. الأهداف الشائعة للتطبيق
تسمح أغراض Android لمكونات التطبيق بطلب الوظائف من ومكونات Android الأخرى. يتضمن مشروع Android الرئيسي قائمة التطبيقات التي تنفذ العديد من أنماط الأهداف لتنفيذ إجراءات شائعة.
عمليات تنفيذ الأجهزة:
- [C-SR-1] يُوصى بها بشدة بتحميل تطبيق واحد أو أكثر مسبقًا أو مكوّنات الخدمة مع معالج الأهداف، لكل فلتر الأهداف العامة التي تم تحديدها من خلال أهداف تقديم الطلبات التالية المُدرَجة هنا وتوفير التنفيذ، أي تلبية توقعات المطوّر بشأن هذه لأغراض التطبيق كما هو موضح في حزمة SDK.
يُرجى الرجوع إلى القسم 2 لمعرفة الأهداف الإلزامية لتقديم الطلبات. لكل نوع جهاز.
3.2.3.2. دقة الأهداف
[C-0-1] بما أنّ Android نظام أساسي قابل للتوسع، يجب أن يتم السماح بكل نمط من أنماط الأهداف المُشار إليها في القسم 3.2.3.1 ، باستثناء الإعدادات، أن تلغيها تطبيقات الجهات الخارجية. تشير رسالة الأشكال البيانية تسمح عملية التنفيذ المفتوحة المصدر والخاصة بتطبيقات Android الرئيسية بإجراء ذلك تلقائيًا.
[C-0-2] يجب ألا يرفق منفذو تنفيذ الأجهزة امتيازات خاصة بالنظام التطبيقات" استخدام أنماط الأهداف هذه، أو منع تطبيقات الجهات الخارجية من الربط إلى هذه الأنماط وتفترض التحكم فيها. هذا الحظر على وجه التحديد، على سبيل المثال لا الحصر، تعطيل مستخدم "المُختار" تسمح للمستخدم بالاختيار من بين تطبيقات متعددة لا تسمح تتعامل مع نفس نمط النية.
[C-0-3] يجب أن توفر عمليات تنفيذ الأجهزة واجهة مستخدم للمستخدمين تعديل النشاط التلقائي للأغراض.
ومع ذلك، قد توفّر عمليات تنفيذ الأجهزة أنشطة تلقائية لأغراض أنماط معرف الموارد المنتظم (URI) (مثل http://play.google.com) عندما يوفر النشاط الافتراضي أكثر تحديدًا لمعرف الموارد المنتظم (URI) للبيانات. على سبيل المثال، نمط فلتر الأهداف يكون تحديد عنوان URI للبيانات "http://www.android.com" أكثر تحديدًا من نمط النية الأساسي للمتصفِّح في "http:// ".
يشمل Android أيضًا آلية تتيح للتطبيقات التابعة للجهات الخارجية الإفصاح عن سلوك ربط التطبيقات التلقائي والموثوق به لأنواع معينة من أهداف معرف الموارد المنتظم (URI) على الويب. عند تنفيذ هذه التصريحات الموثوقة محددون في أنماط فلاتر الأهداف للتطبيق، وعمليات تنفيذ الأجهزة:
- [C-0-4] يجب أن يحاول التحقق من صحة أي فلاتر أهداف عن طريق تنفيذ خطوات التحقّق المحدّدة في مواصفات روابط مواد العرض الرقمية كما نفّذه "مدير الحزم" في قسم البرامج المفتوحة المصدر لنظام Android المشروع.
- [C-0-5] يجب أن تحاول التحقق من صحة فلاتر الأهداف أثناء تثبيت للتطبيق وتعيين جميع فلاتر الأهداف لمعرف الموارد المنتظم (URI) التي تم التحقق من صحتها بنجاح المعالِجات التلقائية للتطبيقات لمعرّفات الموارد المنتظمة (URI) الخاصة بها.
- يمكنك تعيين فلاتر أهداف عنوان URI محددة كمعالجات تطبيقات افتراضية لمعرّفات الموارد المنتظمة الخاصة بها، إذا تم التحقق منها بنجاح ولكن تفشل فلاتر معرف الموارد المنتظم (URI) المرشح الأخرى التحقق. في حال إجراء ذلك من خلال تطبيق على الجهاز، يجب أن يوفّر إلغاءات الأنماط المناسبة للمستخدم حسب معرّف الموارد المنتظم (URI) في قائمة الإعدادات.
- يجب أن توفِّر للمستخدم عناصر تحكُّم في "روابط التطبيق" لكل تطبيق في "الإعدادات" على النحو التالي:
التالي:
- [C-0-6] يجب أن يكون المستخدم قادرًا على تجاوز التطبيق التلقائي بشكل كلي هو أن يكون التطبيق مفتوحًا دائمًا، أو اسأل دائمًا، أو لا يفتح أبدًا، والذي يجب أن ينطبق على جميع فلاتر الأهداف لمعرف الموارد المنتظم (URI) المرشحة بالتساوي.
- [C-0-7] يجب أن يتمكن المستخدم من الاطّلاع على قائمة بالغرض من معرّف الموارد المنتظم (URI) المرشح والفلاتر.
- قد يوفر تنفيذ الجهاز للمستخدم القدرة على تجاوز فلاتر الأهداف المحدَّدة لمعرّفات الموارد المنتظمة (URI) المرشّحة التي تم إطلاقها بنجاح على أساس كل حسب النية بالشراء.
- [C-0-8] يجب أن يوفر تنفيذ الجهاز للمستخدمين القدرة على عرض وإلغاء فلاتر الأهداف المحدَّدة لمعرّفات الموارد المنتظمة (URI) المرشحة إذا كان الجهاز تطبيق يتيح لبعض فلاتر الأهداف لمعرّفات الموارد المنتظمة (URI) المرشحة النجاح التحقق بينما قد يفشل البعض الآخر.
3.2.3.3. مساحات أسماء الأهداف
- [C-0-1] يجب ألا تتضمن عمليات تنفيذ الأجهزة أي مكون Android تنفيذ أي أنماط جديدة لأهداف أو أهداف بث باستخدام ACTION أو CATEGORY أو سلسلة مفتاح أخرى في مساحة الاسم android.* أو com.android.* .
- [C-0-2] يجب ألا تتضمن أدوات تنفيذ الأجهزة أي مكوّنات من ميزات Android الالتزام بأي أنماط جديدة لنوايا أو أهداف البث باستخدام ACTION أو CATEGORY أو سلسلة مفاتيح أخرى في مساحة حزمة تنتمي إلى مؤسسة أخرى.
- [C-0-3] يجب ألا يغيّر منفّذو الأجهزة أي غرض أو يوسّع نطاقه الأنماط المدرجة في القسم 3.2.3.1.
- قد تتضمن عمليات تنفيذ الأجهزة أنماطًا مقصودة تستخدم مساحات الاسم بوضوح ومرتبطة بوضوح بمؤسستهم الخاصة. هذا الحظر هو مماثلة لتلك المحددة لفئات لغات Java في القسم 3.6.
3.2.3.4. نوايا البث
تعتمد تطبيقات الجهات الخارجية على النظام الأساسي لبث أغراض معينة إلى وإبلاغهم بالتغييرات التي تطرأ على بيئة الأجهزة أو البرامج.
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب بث أهداف البث العلنية المُدرَجة هنا استجابةً لأحداث النظام المناسبة كما هو موضّح في مستندات حزمة تطوير البرامج (SDK). تجدر الإشارة إلى أنّ هذا الشرط لا يتعارض مع الفقرة 3.5 حيث في حزمة SDK، تم أيضًا توضيح القيود المفروضة على تطبيقات الخلفية التوثيق. كذلك، تكون بعض نوايا البث مشروطة على الأجهزة الدعم، إذا كان الجهاز يدعم الأجهزة اللازمة، فيجب عليه بث وتوفير السلوك مضمّنًا مع مستندات حزمة تطوير البرامج (SDK)
3.2.3.5. عناصر Intent للتطبيق المشروطة
يتضمّن Android إعدادات توفّر للمستخدمين طريقة سهلة لاختيار التطبيقات الافتراضية، مثل الشاشة الرئيسية أو الرسائل القصيرة SMS.
يجب توفير إعدادات مشابهة لعمليات تنفيذ الأجهزة، حيثما كان ذلك منطقيًا وأن تكون متوافقة مع نمط فلتر الأهداف وطرق واجهة برمجة التطبيقات الموضحة في مستندات حزمة تطوير البرامج (SDK) على النحو الموضَّح أدناه
في حال أبلغت عمليات تنفيذ الأجهزة عن android.software.home_screen
، سينطبق التالي على:
- [C-1-1] يجب أن يلتزم بـ
android.settings.HOME_SETTINGS
تنوي عرض قائمة إعدادات التطبيق التلقائية للشاشة الرئيسية.
في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.telephony.calling
، سينطبق التالي على:
[C-2-1] يجب تقديم قائمة إعدادات تستدعي
android.provider.Telephony.ACTION_CHANGE_DEFAULT
أريد عرض مربّع حوار لتغيير تطبيق الرسائل القصيرة SMS التلقائي.[C-2-2] يجب أن يلتزم بـ
android.telecom.action.CHANGE_DEFAULT_DIALER
أريد عرض مربّع حوار للسماح للمستخدم بتغيير رقم الهاتف التلقائي. التطبيق.- يجب استخدام واجهة المستخدم التلقائية لتطبيق "الهاتف" التي يختارها المستخدم للرسائل الواردة الصادرة باستثناء مكالمات الطوارئ، والتي قد تستخدم تطبيق الهاتف المثبّت مسبقًا.
[C-2-3] يجب أن يلتزم بـ android.telecom.action.CHANGE_PHONE_ACCOUNTS نية توفير إمكانية قدرة المستخدم على ضبط
ConnectionServices
المرتبطة ببطاقةPhoneAccounts
، باعتبارها بالإضافة إلى حساب PhoneAccount افتراضي يلجأ إليه مقدم خدمة الاتصالات استخدامها لإجراء مكالمات صادرة. ويفي تنفيذ بروتوكول AOSP هذا الشرط من خلال بما في ذلك "خيار حسابات الاتصال" القائمة داخل "المكالمات" قائمة الإعدادات.[C-2-4] يجب أن يسمح
android.telecom.CallRedirectionService
لتطبيق يتضمّنandroid.app.role.CALL_REDIRECTION
الدور.[C-2-5] يجب أن توفر للمستخدم القدرة على اختيار تطبيق يحمل
android.app.role.CALL_REDIRECTION
الدور.[C-2-6] يجب أن يلتزم بـ android.intent.action.SENDTO وandroid.intent.action.VIEW الأهداف وتقديم نشاط لإرسال/عرض الرسائل القصيرة SMS.
[C-SR-1] يُنصح بشدة بالموافقة عليها مع android.intent.action.ANSWER android.intent.action.CALL android.intent.action.CALL_button android.intent.action.VIEW & android.intent.action.DIAL تطبيقات برنامج اتصال محمّلة مسبقًا يمكنها معالجة هذه الأهداف توفير خدمة التنفيذ على النحو الموضَّح في حزمة تطوير البرامج (SDK)
في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.nfc.hce
، سينطبق التالي على:
- [C-3-1] يجب أن يلتزم بـ android.settings.NFC_PAYMENT_SETTINGS نية عرض قائمة إعدادات تطبيق تلقائية للدفع بدون تلامس الأجهزة.
- [C-3-2] يجب أن يلتزم بـ android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT عرض نشاط يفتح مربّع حوار لطلب تغيير خدمة المحاكاة التلقائية للبطاقة لفئة معيَّنة كما هو موضَّح في حزمة تطوير البرامج (SDK).
في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.nfc
، سينطبق التالي على:
- [C-4-1] يجب أن يحترم هذه الأهداف android.nfc.action.NDEF_DISCOVERED. android.nfc.action.TAG_DISCOVERED & android.nfc.action.TECH_DISCOVERED، لإظهار نشاط يلبّي توقعات المطوّرين لهذه الأهداف الموضحة في حزمة SDK.
في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.bluetooth
، سينطبق التالي على:
- [C-5-1] يجب أن يلتزم بـ "android.Bluetooth.adapter.action.REQUEST_ENABLE" النية وإظهار نشاط النظام للسماح للمستخدم بتفعيل البلوتوث.
- [C-5-2] يجب أن يحترم "android.Bluetooth.adapter.action.REQUEST_DISCOVERABLE" intent وإظهار نشاط النظام الذي يطلب وضع قابل للاكتشاف.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع ميزة "عدم الإزعاج"، سيتم:
- [C-6-1] يجب أن ينفذ نشاطًا من شأنه الاستجابة للقصد
ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS
، بالنسبة إلى عمليات التنفيذ باستخدام UI_mode_TYPE_NORMAL، يجب أن يكون نشاطًا يمكن للمستخدم منح التطبيق إذن الوصول إلى إعدادات سياسة DND أو رفضه.
إذا كانت عمليات تنفيذ الأجهزة تسمح للمستخدمين باستخدام طرق إدخال تابعة لجهات خارجية على على الجهاز، فإنها:
- [C-7-1] يجب أن يوفر آلية يمكن للمستخدم الوصول إليها لإضافة المحتوى وإعداده
أساليب إدخال من جهات خارجية استجابةً
android.settings.INPUT_METHOD_SETTINGS
والنية.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع خدمات إمكانية الوصول التابعة لجهات خارجية، سيتم إجراء ما يلي:
- [C-8-1] يجب أن يلتزم بـ
android.settings.ACCESSIBILITY_SETTINGS
توفير آلية يمكن للمستخدمين الوصول إليها لتفعيل وإيقاف خدمات تسهيل الاستخدام التابعة لجهات خارجية إلى جانب ميزات تسهيل الاستخدام المحمَّلة مُسبَقًا
إذا كانت تنفيذات الجهاز تتضمن دعمًا لـ Wi-Fi Easy Connect وكشف الوظائف للتطبيقات التابعة للجهات الخارجية، فإنها:
- [C-9-1] يجب تنفيذ Settings#ACTION_PROCESS_WIFI_EASY_CONNECT_URI واجهات برمجة تطبيقات Intent كما هو موضّح في مستندات حزمة تطوير البرامج (SDK).
إذا كانت عمليات تنفيذ الأجهزة توفر وضع "توفير البيانات"، سيتم ما يلي:
- [C-10-1] يجب أن توفر واجهة مستخدم في الإعدادات، تتعامل مع
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS
نية، بالسماح للمستخدمين بإضافة تطبيقات إلى التطبيقات أو إزالتها منها قائمة السماح.
في حال لم توفِّر عمليات تنفيذ الأجهزة وضع "توفير البيانات"، سيحدث ما يلي:
- [C-11-1] يجب أن يكون لديه نشاط يعالج
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS
النية ولكن يمكن تنفيذها على سبيل المثال.
إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع الكاميرا عبر
android.hardware.camera.any
، إن:
- [C-12-3] يجب أن يتعامل مع تطبيقات Android المثبَّتة مسبقًا ويجب أن يسمح فقط باستخدامها
للتعامل مع الأهداف التالية
MediaStore.ACTION_IMAGE_CAPTURE
،MediaStore.ACTION_IMAGE_CAPTURE_SECURE
, وMediaStore.ACTION_VIDEO_CAPTURE
كما هو موضح في مستند SDK.
في حال أبلغت عمليات تنفيذ الأجهزة عن android.software.device_admin
، سينطبق التالي على:
[C-13-1] يجب أن يلتزم بالهدف
android.app.action.ADD_DEVICE_ADMIN
استدعاء واجهة مستخدم لجلب المستخدم من خلال إضافة مشرف الجهاز إلى النظام (أو السماح لهم برفضه).[C-13-2] يجب أن يحترم الأهداف android.app.action.PROVISION_MANAGED_PROFILE، android.app.action.SET_NEW_PARENT_PROFILE_password، android.app.action.SET_NEW_password & android.app.action.START_ENCRYPTION وأن يكون لديك نشاط لتحقيق هذه الأهداف على النحو الموضَّح في حزمة SDK هنا
في حال كانت عمليات تنفيذ الأجهزة تشير إلى android.software.autofill
عن الميزات، فإنها:
- [C-14-1] يجب أن ينفذ
AutofillService
بالكامل وAutofillManager
واجهات برمجة التطبيقات وتلبية android.settings.REQUEST_SET_AutoFILL_SERVICE عرض قائمة إعدادات تطبيق افتراضية لتفعيل ميزة الملء التلقائي وإيقافها تغيير خدمة الملء التلقائي التلقائية للمستخدم.
إذا كانت عمليات تنفيذ الأجهزة تتضمن تطبيقًا مثبَّتًا مسبقًا أو كنت تريد السماح تطبيقات الجهات الخارجية للوصول إلى إحصاءات الاستخدام، فإنها:
- [C-SR-2] يُوصى بها بشدة لتوفير آلية يمكن للمستخدم الوصول إليها لمنح
أو إبطال الدخول إلى إحصاءات الاستخدام استجابةً
android.settings.ACTION_USAGE_ACCESS_SETTINGS
الغرض من التطبيقات التي تعلن عن
android.permission.PACKAGE_USAGE_STATS
إذن.
ما إذا كانت عمليات تنفيذ الأجهزة تهدف إلى عدم السماح بأي تطبيقات، بما في ذلك التطبيقات المثبَّتة مسبقًا من الوصول إلى إحصاءات الاستخدام، فإنها:
- [C-15-1] يجب أن يبقى لديه نشاط يعالج android.settings.ACTION_USAGE_ACCESS_SETTINGS نمط الغرض، ولكن يجب تنفيذه في حالة بيئة، أي أن يكون له مكافئ كما هو الحال عندما يتم رفض وصول المستخدم.
إذا كانت عمليات تنفيذ الأجهزة تعرض روابط للأنشطة المحددة من خلال AutofillService_passwordsActivity في "الإعدادات" أو الروابط المؤدية إلى كلمات مرور المستخدمين من خلال آلية مشابهة، فإنها:
- [C-16-1] يجب أن تعرض هذه الروابط لجميع خدمات الملء التلقائي المثبَّتة.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع VoiceInteractionService
وتوفّر المزيد من الميزات
يتم تثبيت أكثر من تطبيق واحد باستخدام واجهة برمجة التطبيقات هذه في كل مرة:
- [C-18-1] يجب أن يلتزم بـ
android.settings.ACTION_VOICE_INPUT_SETTINGS
نية عرض قائمة إعدادات التطبيق التلقائية للإدخال الصوتي والمساعدة.
إذا أبلغت عمليات تنفيذ الأجهزة عن الميزة android.hardware.audio.output
،
وهي:
- [C-SR-3] يُوصى بها بشدة للالتزام بـ android.intent.action.TTS_SERVICE، android.speech.tts.engine.INSTALL_TTS_DATA تتضمّن أغراض android.speech.tts.engine.GET_SAMPLE_TEXT أي نشاط لتوفير لتحقيق هذه الأهداف على النحو الموضّح في حزمة تطوير البرامج (SDK) هنا.
يتيح نظام التشغيل Android استخدام شاشات الاستراحة التفاعلية، والتي يُشار إليها سابقًا باسم مثل أحلام. تسمح شاشات التوقف للمستخدمين بالتفاعل مع التطبيقات عندما يكون الجهاز المتصل بمصدر طاقة غير نشِط أو مثبَّت على قاعدة الإرساء في سطح المكتب عمليات تنفيذ الأجهزة:
- يجب أن تتضمن دعم شاشات الاستراحة وتوفر خيار إعدادات
للمستخدمين بتهيئة شاشات التوقف استجابة
هدف واحد (
android.settings.DREAM_SETTINGS
).
بدء متطلبات جديدة
في حال الإبلاغ عن android.hardware.nfc.uicc
أو android.hardware.nfc.ese
لعمليات تنفيذ الأجهزة
وهي:
- [C-19-1] يجب تنفيذ NfcAdapter.ACTION_TRANSACTION_DETECTED واجهة برمجة التطبيقات Intent (كما هو EVT_TRANSACTION" كما هو موضّح في المواصفات الفنية لارتباط GSM TS.26 - متطلبات الهاتف المحمول NFC).
إنهاء المتطلبات الجديدة
3.2.4. الأنشطة على الشاشات الثانوية/المتعددة
إذا كانت عمليات تنفيذ الجهاز تسمح بإطلاق أنشطة Android عادية على أكثر من شاشة واحدة، فإنها:
- [C-1-1] يجب ضبط
android.software.activities_on_secondary_displays
علامة الميزة. - [C-1-2] يجب أن يضمن التوافق مع واجهة برمجة التطبيقات مشابهًا لنشاط يتم تشغيله على الشاشة الأساسية.
- [C-1-3] يجب أن ينقل النشاط الجديد إلى نفس شاشة النشاط الذي
أطلقته، عند إطلاق النشاط الجديد دون تحديد هدف
العرض من خلال
ActivityOptions.setLaunchDisplayId()
واجهة برمجة التطبيقات. - [C-1-4] يجب تدمير جميع الأنشطة، عندما تحتوي شاشة
Display.FLAG_PRIVATE
تمت إزالة العلامة. - [C-1-5] يجب إخفاء المحتوى بأمان على جميع الشاشات عندما يكون الجهاز مقفلاً
باستخدام شاشة قفل آمنة، إلا إذا وافق التطبيق على عرضه في الجزء العلوي من القفل
الشاشة باستخدام
Activity#setShowWhenLocked()
واجهة برمجة التطبيقات. - يجب أن يحتوي على
android.content.res.Configuration
الذي يتوافق مع هذه الشاشة ليتم عرضها، قم بتشغيل بشكل صحيح، والحفاظ على التوافق إذا تم تشغيل نشاط على الشاشة الثانوية.
في حال كانت عمليات تنفيذ الأجهزة تسمح بإطلاق أنشطة Android العادية على الأجهزة الثانوية الشاشة والشاشة الثانوية تتضمّن android.view.Display.FLAG_PRIVATE :
- [C-3-1] فقط مالك الشاشة والنظام والأنشطة على تلك الشاشة أن تتمكن من بدء تشغيلها. يمكن للجميع الإطلاق إلى شاشة تتضمّن android.view.Display.FLAG_PUBLIC .
3.3. التوافق مع واجهة برمجة التطبيقات الأصلية
يُعد التوافق مع الرموز الأصلية أمرًا صعبًا. لهذا السبب، المنفّذون على الأجهزة هم:
- [C-SR-1] يُوصى بشدة باستخدام عمليات تنفيذ المكتبات الواردة أدناه من المشروع المفتوح المصدر لنظام Android
3.3.1. واجهات التطبيق الثنائية
يمكن استدعاء رمز بايت Dalvik المُدار إلى الرمز الأصلي المتوفّر في التطبيق.
.apk
كملف ELF .so
الذي تم تجميعه لأجهزة الجهاز المناسبة
الهندسة المعمارية. يعتمد الترميز الأصلي بدرجة كبيرة على المعالج الأساسي
تكنولوجيا ما، يعرّف Android عددًا من واجهات التطبيق الثنائية (ABI) في
Android NDK.
عمليات تنفيذ الأجهزة:
- يجب أن يكون [C-0-1] متوافقًا مع واجهة برمجة تطبيقات Android NDK محددة أو أكثر.
- [C-0-2] يجب أن يتوافق مع التعليمات البرمجية التي يتم تشغيلها في البيئة المُدارة من أجل إلى رمز أصلي، باستخدام واجهة Java الأصلية (JNI) الدلالة.
- [C-0-3] يجب أن يكون متوافقًا مع المصدر (أي متوافق مع الرأس) توافقًا ثنائيًا (لواجهة ABI) مع كل مكتبة مطلوبة في القائمة أدناه.
- [C-0-5] يجب الإبلاغ بدقة عن واجهة التطبيق الثنائية الأصلية
(ABI) المتوافق مع الجهاز عبر
android.os.Build.SUPPORTED_ABIS
android.os.Build.SUPPORTED_32_BIT_ABIS
وandroid.os.Build.SUPPORTED_64_BIT_ABIS
مَعلمات، مع الفصل بين كلّ منها بفاصلة قائمة من واجهات التطبيق الثنائية (ABI) المرتبة من الأكثر إلى الأقل تفضيلاً. [C-0-6] يجب أن يقدم، من خلال المعلمات أعلاه، مجموعة فرعية مما يلي قائمة بواجهات ABI ويجب ألا تبلّغ عن أي واجهات تطبيقات ثنائية (ABI) غير مدرَجة في القائمة.
armeabi
(لم تعُد متاحة كهدف من قِبل NDK)armeabi-v7a
arm64-v8a
x86
x86-64
[C-0-7] يجب أن ينشئ جميع المكتبات التالية، مع توفير واجهات برمجة التطبيقات الأصلية، متاحة للتطبيقات التي تتضمّن رموزًا برمجية أصلية:
- libaaudio.so (التوافق مع الصوت الأصلي)
- libamedi.so (دعم MIDI الأصلي، إذا كانت الميزة
android.software.midi
كما هو موضح في الفقرة 5.9) - libandroid.so (دعم النشاط على Android)
- libc (مكتبة C)
- libcamera2ndk.so
- libdl (رابط ديناميكي)
- libEGL.so (إدارة مساحة عرض OpenGL الأصلية)
- libGLESv1_CM.so (OpenGL ES 1.x)
- libGLESv2.so (OpenGL ES 2.0)
- libGLESv3.so (OpenGL ES 3.x)
- libicui18n.so
- libicuuc.so
- libjnigraphics.so
- liblog (تسجيل الدخول إلى Android)
- libmediandk.so (دعم واجهات برمجة التطبيقات للوسائط الأصلية)
- libm (مكتبة الرياضيات)
- libneralnetworks.so (واجهة برمجة التطبيقات للشبكات العصبية)
- libOpenMAXAL.so (دعم OpenMAX AL 1.0.1)
- libOpenSLES.so (دعم الصوت OpenSL ES 1.0.1)
- libRS.so
- libstdc++ (الحد الأدنى من التوافق مع C++)
- libvulkan.so (Vulkan)
- libz (ضغط Zlib)
- واجهة JNI
[C-0-8] يجب ألا تتم إضافة الدوال العامة للمكتبات الأصلية أو إزالتها. الواردة أعلاه.
[C-0-9] يجب أن تدرج مكتبات إضافية غير تابعة لـ AOSP تعرض مباشرة إلى تطبيقات تابعة لجهات خارجية في
/vendor/etc/public.libraries.txt
.[C-0-10] يجب ألا تعرض أي مكتبات أصلية أخرى تم تنفيذها المتوفرة في AOSP كمكتبات نظام، إلى تطبيقات الجهات الخارجية التي تستهدف واجهة برمجة التطبيقات من المستوى 24 أو أعلى نظرًا لأنها محجوزة.
[C-0-11] يجب تصدير كل OpenGL ES 3.1 وAndroid Extension Pack رموز الدوال، كما هو موضح في NDK، من خلال مكتبة
libGLESv3.so
. لاحظ أنه بينما يجب أن تكون جميع الرموز موجودة، يصف القسم 7.1.4.1 بمزيد من التفصيل والمتطلبات المتعلقة بوقت التنفيذ الكامل لكل المتوقعة من الدوال المقابلة.[C-0-12] يجب تصدير رموز الوظائف لنظام
Vulkan 1.0الأساسي دالة Vulkan 1.1 والرموز أيضًا، بالإضافة إلىVK_KHR_surface
وVK_KHR_android_surface
VK_KHR_swapchain
وVK_KHR_maintenance1
وVK_KHR_get_physical_device_properties2
من الإضافات من خلالlibvulkan.so
. لاحظ أنه على الرغم من ضرورة وجود جميع الرموز، القسم 7.1.4.2 وتصف بمزيد من التفصيل المتطلبات اللازمة عندما المتوقع تنفيذ كل دالة مقابلة.يجب إنشاؤها باستخدام رمز المصدر وملفات العنوان المتوفرة في مشروع مفتوح المصدر لنظام Android.
وتجدر الإشارة إلى أن الإصدارات المستقبلية من Android قد تتيح دعم المزيد من واجهات التطبيق الثنائية (ABI).
3.3.2 التوافق مع الرموز البرمجية المستندة إلى معالجات ARM 32 بت
في حال أبلغت عمليات تنفيذ الأجهزة عن توافق واجهة التطبيق الثنائية (ABI) مع armeabi
، سيتم إجراء ما يلي:
- [C-3-1] يجب أيضًا أن يتوافق مع
armeabi-v7a
والإبلاغ عن دعمه، باعتباره لا يمكن استخدامarmeabi
إلا للتوافق مع التطبيقات القديمة.
في حال أشارت عمليات تنفيذ الأجهزة إلى توافُق واجهة التطبيق الثنائية (armeabi-v7a
) للتطبيقات مع التطبيقات
باستخدام واجهة التطبيق الثنائية (ABI) هذه، فإنهم:
[C-2-1] يجب أن يحتوي على الأسطر التالية في
/proc/cpuinfo
، ويجب ألا تغيير القيم على الجهاز نفسه، حتى عندما تقرأها واجهات التطبيق الثنائية (ABI) الأخرىFeatures:
، متبوعة بقائمة تضم أي ميزات اختيارية لوحدة المعالجة المركزية (CPU) ARMv7 يتوافق مع الجهاز.CPU architecture:
، متبوعًا بعدد صحيح يصف الجهاز أعلى بنية ARM متوافقة (مثل "8" لأجهزة ARMv8).
[C-2-2] يجب دائمًا الاحتفاظ بالعمليات التالية متاحة، حتى في هي الحالة التي يتم فيها تنفيذ واجهة التطبيق الثنائية (ABI) على بنية ARMv8، سواء من خلال دعم وحدة المعالجة المركزية (CPU) الأصلية أو من خلال محاكاة البرامج:
- تعليمات محو بيانات المستخدم وميزة SWPB
- عمليات حاجز CP15ISB وCP15DSB وCP15DMB.
[C-2-3] يجب أن يشمل التوافق مع شريحة SIM المتقدّمة (المعروف أيضًا باسم NEON).
3.4. التوافق مع الويب
3.4.1. التوافق مع WebView
إذا كانت عمليات تنفيذ الأجهزة توفر تنفيذًا كاملاً
android.webkit.Webview
API، وهي:
- [C-1-1] يجب الإبلاغ عن
android.software.webview
. - [C-1-2] يجب استخدام إصدار مشروع Chromium
من مشروع Android المفتوح المصدر على Android
14 فرعًا لتنفيذ
android.webkit.WebView
واجهة برمجة التطبيقات. [C-1-3] يجب أن تكون سلسلة وكيل المستخدم التي تم الإبلاغ عنها من خلال WebView بالتنسيق التالي:
Mozilla/5.0 (Linux; Android $(VERSION); [$(MODEL)] [Build/$(BUILD)]; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) للأجهزة الجوّالة Safari/537.36
- يجب أن تكون قيمة السلسلة $(VERSION) مماثلة لقيمة android.os.Build.VERSION.VERSION.
- قد تكون السلسلة $(MODEL) فارغة، لكن إذا لم تكن فارغة يجب أن تحتوي نفس القيمة مثل android.os.Build.MODEL.
- "إنشاء/$(BUILD)" قد يتم إغفالها، ولكن في حال توفّر رمز $(BUILD) يجب أن تكون السلسلة مماثلة لقيمة android.os.Build.ID.
- يجب أن تكون قيمة السلسلة $(CHROMIUM_VER) هي إصدار Chromium في مشروع البرامج المفتوحة المصدر لنظام Android
- قد تحذف عمليات تنفيذ الأجهزة الأجهزة الجوّالة في سلسلة وكيل المستخدم.
ينبغي أن يتيح مكوّن WebView دعمًا لأكبر عدد ممكن من ميزات HTML5 قدر الإمكان، وإذا كان يدعم الميزة، يجب أن يتوافق مع مواصفات HTML5.
[C-1-4] يجب أن تعرض المحتوى المقدَّم أو محتوى عنوان URL البعيد قيد المعالجة الذي يختلف عن التطبيق الذي ينشئ مثيلاً لمكوّن WebView. على وجه التحديد يجب أن تحصل عملية العرض المنفصلة على امتياز أقل، كمعرّف مستخدم منفصل، أو لا يمكنها الوصول إلى دليل بيانات التطبيق، ليس لها وصول مباشر إلى الشبكة، بل يمكنها الوصول فقط إلى الحد الأدنى المطلوب خدمات النظام عبر Binder. يتوافق تنفيذ AOSP مع WebView لهذا المطلب.
يُرجى ملاحظة أنّه إذا كانت عمليات تنفيذ الأجهزة 32 بت أو يُرجى الإعلان عن علامة الميزة.
android.hardware.ram.low
، معفى من C-1-3.
3.4.2 توافُق المتصفّح
إذا كانت عمليات تنفيذ الجهاز تتضمن تطبيق متصفح مستقلاً للأغراض العامة لتصفح الويب، وهي:
- [C-1-1] يجب أن يتوافق مع كل واجهة من واجهات برمجة التطبيقات المرتبطة HTML5:
- [C-1-2] يجب أن يتوافق مع HTML5/W3C webstorage API ويجب أن تتوافق مع HTML5/W3C IndexedDB API: لاحظ أنه نظرًا لأن الويب انتقال هيئات معايير التطوير إلى منح الأفضلية لقاعدة البيانات المفهرسة من المتوقع أن تصبح IndexedDB مكونًا مطلوبًا في مساحة تخزين الويب لإصدار Android المستقبلي.
- قد تشحن سلسلة مخصصة لوكيل المستخدم في تطبيق المتصفح المستقل.
- ينبغي أن تقوم بتنفيذ الدعم لأكبر قدر من HTML5 قدر الإمكان في العنصر المستقل تطبيق المتصفح (سواء كان يعتمد على متصفح WebKit الرئيسي) تطبيق أو بديل من جهة خارجية).
ومع ذلك، إذا لم تكن عمليات تنفيذ الجهاز تتضمن متصفّحًا مستقلاً تطبيقك، فإنها:
- [C-2-1] يجب أن تدعم أنماط النية العامة كما هو موضّح في القسم 3.2.3.1.
3.5. التوافق السلوكي لواجهة برمجة التطبيقات
عمليات تنفيذ الأجهزة:
- [C-0-9] يجب أن يضمن تطبيق التوافق السلوكي لواجهة برمجة التطبيقات على جميع التطبيقات المثبّتة إلا إذا كانت مقيّدة كما هو موضّح في القسم 3.5.1.
- [C-0-10] يجب ألا يتم تنفيذ نهج القائمة المسموح بها الذي يضمن واجهة برمجة التطبيقات التوافق السلوكي فقط للتطبيقات التي يحدّدها الجهاز القائمين على التنفيذ.
يجب أن تنطبق سلوكيات كل نوع من أنواع واجهات برمجة التطبيقات (سواء API المُدَارة أو المبسّطة أو الأصلية أو واجهة برمجة التطبيقات على الويب) متسقة مع التنفيذ المفضّل لعملية التنفيذ مشروع مفتوح المصدر لنظام Android: بعض المناطق المحدّدة التوافق هي:
- [C-0-1] يجب ألا تغيّر الأجهزة سلوك النية القياسية.
- [C-0-2] يجب ألا تغيّر الأجهزة دورة الحياة أو دلالات دورة الحياة نوع معين من مكونات النظام (مثل Service وactivity وContentProvider، وما إلى ذلك).
- [C-0-3] يجب ألا تغيّر الأجهزة دلالات الإذن العادي.
- يجب ألا تغيّر الأجهزة القيود المفروضة على تطبيقات الخلفية.
وبشكل أكثر تحديدًا، بالنسبة إلى تطبيقات الخلفية:
- [C-0-4] يجب أن يتوقف عن تنفيذ عمليات معاودة الاتصال التي تم تسجيلها بواسطة
التطبيق لتلقّي النتائج من
GnssMeasurement
وGnssNavigationMessage
- [C-0-5] يجب أن تحد من معدل تكرار التحديثات التي
المقدمة للتطبيق من خلال
LocationManager
فئة واجهة برمجة التطبيقات أوWifiManager.startScan()
. - [C-0-6] إذا كان التطبيق يستهدف المستوى 25 من واجهة برمجة التطبيقات أو مستوى أعلى، يجب ألا
السماح بتسجيل مستقبلات البث لعمليات البث الضمنية
أهداف Android العادية في بيان التطبيق، ما لم يتم البث
تتطلّب intent
"signature"
أو"signatureOrSystem"
.protectionLevel
لديك إذن أو في قائمة الاستثناء - [C-0-7] إذا كان التطبيق يستهدف المستوى 25 من واجهة برمجة التطبيقات أو المستويات الأحدث، يجب أن يتوقف
خدمات الخلفية في التطبيق، تمامًا كما لو أن التطبيق يسمى
خدمات
stopSelf()
ما لم يتم وضع التطبيق في قائمة مسموح بها مؤقتة لمعالجة المهمة التي تظهر للمستخدم. - [C-0-8] إذا كان التطبيق يستهدف المستوى 25 من واجهة برمجة التطبيقات أو مستوى أعلى، يجب أن الإفراج عن عمليات قفل التنشيط التي يحتفظ بها التطبيق.
- [C-0-4] يجب أن يتوقف عن تنفيذ عمليات معاودة الاتصال التي تم تسجيلها بواسطة
التطبيق لتلقّي النتائج من
- [C-0-11] يجب أن تعرض الأجهزة موفري الأمان التاليين كأول
سبع قيم صفيف من
Security.getProviders()
بالترتيب المحدد وبالأسماء المحددة (كما تم إرجاعها بواسطةProvider.getName()
) وفئاتها، إلا إذا عدّل التطبيق القائمة عبرinsertProviderAt()
أوremoveProvider()
. الأجهزة يمكن عرض مقدّمي خدمات إضافيين بعد اختيار القائمة المحدَّدة لمزوّدي الخدمة. أدناه.- AndroidNSSP -
android.security.net.config.NetworkSecurityConfigProvider
- AndroidOpenSSL -
com.android.org.conscrypt.OpenSSLProvider
- CertPathProvider -
sun.security.provider.CertPathProvider
- AndroidKeyStoreBCWorkaround -
android.security.keystore.AndroidKeyStoreBCWorkaroundProvider
- BC -
com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
- HarmonyJSSE -
com.android.org.conscrypt.JSSEProvider
- AndroidKeyStore -
android.security.keystore.AndroidKeyStoreProvider
- AndroidNSSP -
القائمة أعلاه ليست شاملة. اختبارات مجموعة أدوات اختبار التوافق (CTS) أجزاء كبيرة من النظام الأساسي للتوافق السلوكي، ولكن ليس كلها. مسئول التنفيذ هو المسؤول عن ضمان التوافق السلوكي من خلال مشروع مفتوح المصدر لنظام Android لهذا السبب، غالبًا ما يستخدم اختصاصيو تنفيذ الأجهزة يجب استخدام رمز المصدر المتاح عبر "مشروع مفتوح المصدر لنظام Android" حيث بدلاً من إعادة تنفيذ أجزاء مهمة من النظام.
3.5.1. قيود التطبيق
إذا كانت عمليات تنفيذ الأجهزة تنفّذ آلية خاصة بحظر التطبيقات (على سبيل المثال، تغيير أو تقييد سلوكيات واجهة برمجة التطبيقات التي الموضحة في حزمة SDK) تكون هذه الآلية أكثر تقييدًا من حزمة تطبيقات وضع الاستعداد المحدود، فهي:
- [C-1-1] يجب أن يسمح للمستخدم بالاطّلاع على قائمة التطبيقات المحظورة.
- [C-1-2] يجب أن تتوفر للمستخدمين إمكانية تفعيل / إيقاف كل هذه وقيود الملكية المفروضة على كل تطبيق.
[C-1-3] يجب ألا يتم تطبيق قيود الملكية هذه تلقائيًا بدون دليل على سوء سلوك سلامة النظام، ولكن قد يتم تطبيق القيود على التطبيقات عند الكشف عن وجود سلوك ضعيف في الحالة الصحية للنظام مثل عمليات قفل التنشيط المتوقفة والركض لفترات طويلة والخدمات والمعايير الأخرى. قد يتم تحديد المعايير حسب الجهاز. منفّذيها، ولكن يجب أن تكون ذات صلة بتأثير التطبيق على سلامة النظام. مشاكل أخرى والمعايير التي لا تتعلق فقط لسلامة النظام، مثل مستوى نقص الشعبية في السوق، يجب عدم استخدامه كمعايير.
[C-1-4] يجب ألا يتم تطبيق قيود الملكية هذه تلقائيًا على التطبيقات عند إيقاف المستخدِم لقيود التطبيق يدويًا، وقد يقترح ذلك لتطبيق قيود الملكية هذه.
[C-1-5] يجب إبلاغ المستخدمين في حال تطبيق قيود الملكية هذه على التطبيق تلقائيًا. يجب تقديم هذه المعلومات خلال 24 ساعة السابقة لتطبيق قيود الملكية هذه.
[C-1-6] يجب أن تعرض القيمة "صحيح" لـ ActivityManager.isBackgroundRestricted(). لأي طلبات بيانات من واجهة برمجة التطبيقات من أحد التطبيقات.
[C-1-7] يجب ألا يقيّد ظهور التطبيق الذي يعمل في المقدّمة ويستخدمه بشكل صريح المستخدم.
[C-1-8] يجب تعليق قيود الملكية هذه على أحد التطبيقات عندما بدء المستخدم في استخدام التطبيق بشكل واضح، ما يجعله في مقدّمة الجهاز التطبيق.
[C-1-10] يجب أن يقدم مستندًا أو موقعًا إلكترونيًا عامًا وواضحًا يوضح وكيفية تطبيق قيود الملكية. يجب أن يكون هذا المستند أو موقع الويب يمكن الربط به من مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android، ويجب أن يتضمّن ما يلي:
- شروط تشغيل القيود المفروضة على الملكية
- تعريف أحد التطبيقات وطريقة حظره
- كيفية استثناء تطبيق من هذه القيود
- كيفية طلب تطبيق إعفاء من القيود المفروضة على الملكية، إذا كان إتاحة هذا الاستثناء للتطبيقات التي يمكن للمستخدم تثبيتها.
في حال تم تثبيت التطبيق مسبقًا على الجهاز ولم يتم استخدامه بشكل صريح من قِبل المستخدم لأكثر من 30 يومًا، [C-1-3] [C-1-5] معفاة.
في حال تؤدي عمليات تنفيذ الأجهزة إلى تمديد قيود التطبيق التي يتم تنفيذها في AOSP، فإنهم:
- [C-2-1]يجب أن يتّبع طريقة التنفيذ الموضّحة في هذا المستند.
3.5.2 إسبات التطبيق
إذا كانت عمليات تنفيذ الجهاز تتضمّن "إسبات التطبيق" المضمّن في بروتوكول AOSP أو يوسّع الميزة المضمّنة في AOSP، فإنه:
- يجب أن يستوفي [C-1-1] جميع المتطلبات الواردة في الفقرة 3.5.1 باستثناء [C-1-6] و[C-1-3].
- [C-1-2] يجب ألا يطبّق الحظر على التطبيق إلا للمستخدم في حال توفُّر دليل على أنّ المستخدم لم يستخدم التطبيق لفترة زمنية معيّنة هذا النمط يُوصى بشدة بأن تكون المدة شهرًا أو أكثر. يجب أن يكون الاستخدام إما من خلال تفاعل صريح للمستخدم عبر UseStats#getLastTime visible() واجهة برمجة التطبيقات أو أي شيء قد يؤدي إلى ترك التطبيق في حالة فرض الإيقاف، بما في ذلك عمليات ربط الخدمات وعمليات ربط موفّر المحتوى وعمليات البث الصريحة وما إلى ذلك والذي سيتم تتبُّعه باستخدام واجهة برمجة التطبيقات UsageStats#getLastTimeAnyComponentUsed() الجديدة.
- [C-1-3] يجب فقط تطبيق القيود التي تؤثر على جميع مستخدمي الأجهزة عند وجود دليل على أن أي مستخدم لم يستخدم الطرد لفترة من الوقت. يُوصى بشدة بأن تكون هذه المدة شهرًا واحدًا أو أكثر.
- [C-1-4] يجب ألا يعرض التطبيق غير قادر على الاستجابة لأهداف النشاط. أو قيود الخدمة أو طلبات موفّر المحتوى أو عمليات البث الصريحة.
يستوفي وضع "إسبات التطبيق" في بروتوكول AOSP المتطلبات أعلاه.
3.6. مساحات أسماء واجهات برمجة التطبيقات
يتبع Android اصطلاحات مساحة الاسم للحزمة والفئة المحددة في Java الأساسية. لضمان التوافق مع التطبيقات التابعة لأطراف ثالثة، على المستخدمين الذين نفّذوا الجهاز إجراء أي تعديلات محظورة (انظر أدناه) مساحات اسم الحزمة التالية:
java.*
javax.*
sun.*
android.*
androidx.*
com.android.*
أي أنها:
- [C-0-1] يجب ألا يعدّل واجهات برمجة التطبيقات المعروضة بشكل علني على نظام Android الأساسي عن طريق تغيير أي طريقة أو توقيعات فئة، أو عن طريق إزالة فئات أو فئة الحقول.
- [C-0-2] يجب ألا يضيف أي عناصر مكشوفة بشكل عام (مثل الفئات أو الواجهات أو الحقول أو الطرق إلى فئات أو واجهات موجودة) أو اختبار أو System APIs إلى واجهات برمجة التطبيقات في مساحات الاسم المذكورة أعلاه. يحدد العنوان "الكشف بشكل علني العنصر" هو أي بنية غير مزينة بـ "@إخفاء" علامة كـ في رمز المصدر الرئيسي لنظام Android
قد تعدّل جهات تنفيذ الأجهزة عملية التنفيذ الأساسية لواجهات برمجة التطبيقات، ولكن هذه التعديلات:
- [C-0-3] يجب ألا يؤثر على السلوك المعلن وتوقيع لغة Java أي واجهات برمجة تطبيقات مكشوفة بشكل علني.
- [C-0-4] يجب ألّا يتم الإعلان عنه أو عرضه للمطوّرين.
ومع ذلك، قد يضيف القائمون على تنفيذ الأجهزة واجهات برمجة تطبيقات مخصَّصة خارج نطاق نظام التشغيل Android العادي. مساحة الاسم، ولكن واجهات برمجة التطبيقات المخصصة:
- [C-0-5] يجب ألا يكون في مساحة اسم يملكها شخص آخر أو تشير إليه
التنظيم. مثلاً، يجب ألا يضيف القائمون على تنفيذ الأجهزة واجهات برمجة التطبيقات إلى
com.google.*
أو مساحة اسم مشابهة: يجوز لشركة Google فقط إجراء ذلك. وبالمثل، على Google ألا تضيف واجهات برمجة التطبيقات إلى الشركات الأخرى ومساحات الاسم. - يجب تضمين [C-0-6] في مكتبة مشتركة على Android بحيث لا يمكن تضمين سوى التطبيقات التي تستخدمها بشكل صريح (عبر آلية <uses-library>) المتزايد باستخدام الذاكرة لواجهات برمجة التطبيقات هذه.
يمكن للمستخدمين الذين نفّذوا الأجهزة إضافة واجهات برمجة تطبيقات مخصَّصة باللغات الأصلية، خارج NDK. ولكن واجهات برمجة التطبيقات المخصصة:
- [C-1-1] يجب ألا يكون في مكتبة NDK أو مكتبة يملكها شخص آخر المؤسسة كما هو موضح هنا.
إذا اقترح أحد منفّذي الجهاز تحسين إحدى مساحات اسم الحزمة أعلاه (مثل إضافة وظائف جديدة مفيدة إلى واجهة برمجة تطبيقات حالية أو إضافة واجهة برمجة التطبيقات)، يجب على القائم بالتنفيذ الانتقال إلى source.android.com وبدء عملية المساهمة بالتغييرات الرمز، وفقًا للمعلومات على هذا الموقع.
لاحظ أن القيود المذكورة أعلاه تتوافق مع الاصطلاحات القياسية للتسمية واجهات برمجة التطبيقات بلغة برمجة Java؛ يهدف هذا القسم ببساطة إلى تعزيز تلك الاصطلاحات وتجعلها ملزمة من خلال تضمينها في هذا التوافق التعريف
3.7. التوافق مع بيئة التشغيل
عمليات تنفيذ الأجهزة:
[C-0-1] يجب أن يتوافق مع تنسيق Dalvik التنفيذي بالكامل (DEX) ومواصفات رمز بايت Dalvik والدلالات الدلالية.
[C-0-2] يجب ضبط بيئات تشغيل Dalvik لتخصيص الذاكرة فيها وفقًا لنظام Android الأساسي، وكما هو محدّد في الجدول التالي. (راجع القسم 7.1.1 للاطلاع على تعريفات حجم الشاشة وكثافة الشاشة).
"يجب استخدام وقت تشغيل Android" (ART)، المرجع الرئيسي في مسار التشغيل تنفيذ تنسيق Dalvik التنفيذي، والمرجع نظام إدارة حزم التنفيذ.
يجب إجراء اختبارات الإخفاق في ظل أوضاع التنفيذ المختلفة والبُنى الأساسية المستهدفة لضمان ثبات بيئة التشغيل. ارجع إلى JFuzz وDexFuzz في موقع مشروع Android المفتوح المصدر على الويب.
لاحظ أن قيم الذاكرة المحددة أدناه تعد قيمًا دنيا عمليات تنفيذ الأجهزة قد تخصص المزيد من الذاكرة لكل تطبيق.
تنسيق الشاشة | كثافة الشاشة | الحد الأدنى لذاكرة التطبيق |
---|---|---|
ساعة Android | 120 نقطة لكل بوصة (ldpi) | 32 ميغابايت |
140 نقطة لكل بوصة (140 نقطة لكل بوصة) | ||
160 نقطة لكل بوصة (mdpi) | ||
180 نقطة لكل بوصة (180 نقطة لكل بوصة) | ||
200 نقطة لكل بوصة (200 نقطة لكل بوصة) | ||
213 نقطة لكل بوصة (tvdpi) | ||
220 نقطة لكل بوصة (220 نقطة لكل بوصة) | 36 ميغابايت | |
240 نقطة لكل بوصة (hdpi) | ||
280 نقطة لكل بوصة (280 نقطة لكل بوصة) | ||
320 نقطة لكل بوصة (xhdpi) | 48 ميغابايت | |
360 نقطة لكل بوصة (360 نقطة لكل بوصة) | ||
400 نقطة لكل بوصة (400 نقطة لكل بوصة) | 56 ميغابايت | |
420 نقطة لكل بوصة (420 نقطة لكل بوصة) | 64 ميغابايت | |
480 نقطة لكل بوصة (xxhdpi) | 88 ميغابايت | |
560 نقطة لكل بوصة (560 نقطة لكل بوصة) | 112 ميغابايت | |
640 نقطة لكل بوصة (xxxhdpi) | 154 ميغابايت | |
صغيرة/عادية | 120 نقطة لكل بوصة (ldpi) | 32 ميغابايت |
140 نقطة لكل بوصة (140 نقطة لكل بوصة) | ||
160 نقطة لكل بوصة (mdpi) | ||
180 نقطة لكل بوصة (180 نقطة لكل بوصة) | 48 ميغابايت | |
200 نقطة لكل بوصة (200 نقطة لكل بوصة) | ||
213 نقطة لكل بوصة (tvdpi) | ||
220 نقطة لكل بوصة (220 نقطة لكل بوصة) | ||
240 نقطة لكل بوصة (hdpi) | ||
280 نقطة لكل بوصة (280 نقطة لكل بوصة) | ||
320 نقطة لكل بوصة (xhdpi) | 80 ميغابايت | |
360 نقطة لكل بوصة (360 نقطة لكل بوصة) | ||
400 نقطة لكل بوصة (400 نقطة لكل بوصة) | 96 ميغابايت | |
420 نقطة لكل بوصة (420 نقطة لكل بوصة) | 112 ميغابايت | |
480 نقطة لكل بوصة (xxhdpi) | 128 ميغابايت | |
560 نقطة لكل بوصة (560 نقطة لكل بوصة) | 192 ميغابايت | |
640 نقطة لكل بوصة (xxxhdpi) | 256 ميغابايت | |
كبير | 120 نقطة لكل بوصة (ldpi) | 32 ميغابايت |
140 نقطة لكل بوصة (140 نقطة لكل بوصة) | 48 ميغابايت | |
160 نقطة لكل بوصة (mdpi) | ||
180 نقطة لكل بوصة (180 نقطة لكل بوصة) | 80 ميغابايت | |
200 نقطة لكل بوصة (200 نقطة لكل بوصة) | ||
213 نقطة لكل بوصة (tvdpi) | ||
220 نقطة لكل بوصة (220 نقطة لكل بوصة) | ||
240 نقطة لكل بوصة (hdpi) | ||
280 نقطة لكل بوصة (280 نقطة لكل بوصة) | 96 ميغابايت | |
320 نقطة لكل بوصة (xhdpi) | 128 ميغابايت | |
360 نقطة لكل بوصة (360 نقطة لكل بوصة) | 160 ميغابايت | |
400 نقطة لكل بوصة (400 نقطة لكل بوصة) | 192 ميغابايت | |
420 نقطة لكل بوصة (420 نقطة لكل بوصة) | 228 ميغابايت | |
480 نقطة لكل بوصة (xxhdpi) | 256 ميغابايت | |
560 نقطة لكل بوصة (560 نقطة لكل بوصة) | 384 ميغابايت | |
640 نقطة لكل بوصة (xxxhdpi) | 512 ميغابايت | |
كبير جدًا | 120 نقطة لكل بوصة (ldpi) | 48 ميغابايت |
140 نقطة لكل بوصة (140 نقطة لكل بوصة) | 80 ميغابايت | |
160 نقطة لكل بوصة (mdpi) | ||
180 نقطة لكل بوصة (180 نقطة لكل بوصة) | 96 ميغابايت | |
200 نقطة لكل بوصة (200 نقطة لكل بوصة) | ||
213 نقطة لكل بوصة (tvdpi) | ||
220 نقطة لكل بوصة (220 نقطة لكل بوصة) | ||
240 نقطة لكل بوصة (hdpi) | ||
280 نقطة لكل بوصة (280 نقطة لكل بوصة) | 144 ميغابايت | |
320 نقطة لكل بوصة (xhdpi) | 192 ميغابايت | |
360 نقطة لكل بوصة (360 نقطة لكل بوصة) | 240 ميغابايت | |
400 نقطة لكل بوصة (400 نقطة لكل بوصة) | 288 ميغابايت | |
420 نقطة لكل بوصة (420 نقطة لكل بوصة) | 336 ميغابايت | |
480 نقطة لكل بوصة (xxhdpi) | 384 ميغابايت | |
560 نقطة لكل بوصة (560 نقطة لكل بوصة) | 576 ميغابايت | |
640 نقطة لكل بوصة (xxxhdpi) | 768 ميغابايت |
3.8. التوافق مع واجهة المستخدم
3.8.1. مشغّل التطبيقات (الشاشة الرئيسية)
يشتمل Android على تطبيق مشغّل (الشاشة الرئيسية) ودعم لـ تطبيقات الجهات الخارجية لاستبدال مشغّل الجهاز (الشاشة الرئيسية).
إذا كانت عمليات تنفيذ الجهاز تسمح لتطبيقات تابعة لجهات خارجية باستبدال الجهاز الشاشة الرئيسية، فإنهم:
- [C-1-1] يجب أن يعلن عن ميزة المنصة
android.software.home_screen
. - [C-1-2] يجب أن يعرض
AdaptiveIconDrawable
العنصر عندما يستخدم التطبيق التابع لجهة خارجية علامة<adaptive-icon>
لتوفير ورمزها، وPackageManager
لاسترداد الأيقونات.
في حال تضمّنت عمليات تنفيذ الجهاز مشغّل تطبيقات تلقائيًا متوافقًا داخل التطبيق تثبيت الاختصارات، فإنها:
- [C-2-1] يجب الإبلاغ عن
true
لمدةShortcutManager.isRequestPinShortcutSupported()
- [C-2-2] يجب أن يكون لدى المستخدم القدرة على سؤال المستخدم قبل إضافة اختصار مطلوب
حسب التطبيقات عبر
ShortcutManager.requestPinShortcut()
طريقة واجهة برمجة التطبيقات. - [C-2-3] يجب أن يتوافق مع الاختصارات المثبَّتة والديناميكية والثابتة الاختصارات كما هو موثق في صفحة اختصارات التطبيقات.
وبالعكس، إذا لم تكن عمليات تنفيذ الجهاز تتيح تثبيت الاختصارات، فهي:
- [C-3-1] يجب الإبلاغ عن
false
لمدةShortcutManager.isRequestPinShortcutSupported()
إذا كانت عمليات تنفيذ الجهاز تستخدم مشغّلًا تلقائيًا يوفر تجربة سريعة إلى الاختصارات الإضافية التي تقدمها التطبيقات التابعة لجهات خارجية من خلال اختصار Manager واجهة برمجة التطبيقات، وهي:
- [C-4-1] يجب أن تتوافق مع جميع ميزات الاختصارات الموثَّقة (مثل الرموز الثابتة
والاختصارات الديناميكية واختصارات التثبيت) وتنفيذ واجهات برمجة التطبيقات
ShortcutManager
فئة واجهة برمجة التطبيقات.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن تطبيق مشغّل تلقائيًا يعرض شارات أيقونات التطبيق، فهي:
- [C-5-1] يجب أن يلتزم
NotificationChannel.setShowBadge()
طريقة واجهة برمجة التطبيقات. بعبارة أخرى، قم بإظهار عنصر وظيفي مرتبط بأيقونة التطبيق إذا تم ضبط القيمة علىtrue
، ولا تعرض أي مخطط لشارات رموز التطبيق عند من قنوات الإشعارات الخاصة بالتطبيق قد ضبطت القيمة علىfalse
. - قد يتم إلغاء شارات رموز التطبيق باستخدام شارات الملكية الخاصة بها في حال
تشير تطبيقات الجهات الخارجية إلى دعم نظام شارات الملكية
من خلال استخدام واجهات برمجة تطبيقات خاصة، ولكن يجب أن يتم استخدام الموارد والقيم
المقدَّمة من خلال واجهات برمجة التطبيقات لشارات الإشعارات الموضّحة في حزمة تطوير البرامج (SDK)
، مثل
Notification.Builder.setNumber()
وNotification.Builder.setBadgeIconType()
واجهة برمجة التطبيقات.
في حال توفّر إمكانية تنفيذ الأجهزة أحادي اللون الأيقونات التالية:
- [C-6-1] يجب ألا يتم استخدامه إلا عندما يتيحه المستخدم بشكل صريح (على سبيل المثال، من خلال قائمة الإعدادات أو قائمة اختيار الخلفية).
3.8.2 التطبيقات المصغَّرة
يدعم Android أدوات التطبيقات التابعة لجهات خارجية من خلال تحديد نوع المكوِّن واجهة برمجة التطبيقات ودورة الحياة التي تسمح للتطبيقات بعرض "AppWidget" للمستخدم النهائي.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أدوات التطبيقات التابعة لجهات خارجية، سيتم إجراء ما يلي:
- [C-1-1] يجب الإعلان عن توافقه مع ميزة المنصة
android.software.app_widgets
[C-1-2] يجب أن يشتمل على دعم مضمّن لـ AppWidgets وأن يعرض عناصر واجهة المستخدم لإضافة أداة AppWidgets وتهيئتها وعرضها وإزالتها
[C-1-3] يجب أن يكون قادرًا على عرض الأدوات بحجم 4 × 4 في حجم الشبكة القياسي. الاطّلاع على إرشادات تصميم أداة التطبيقات في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android للحصول على التفاصيل.
قد يتوافق مع أدوات التطبيقات على شاشة القفل.
ما إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أدوات التطبيقات التابعة لجهات خارجية وداخل التطبيقات تثبيت الاختصارات، فإنها:
- [C-2-1] يجب الإبلاغ عن
true
لمدةAppWidgetManager.html.isRequestPinAppWidgetSupported()
- [C-2-2] يجب أن يكون لدى المستخدم القدرة على سؤال المستخدم قبل إضافة اختصار مطلوب
حسب التطبيقات عبر
AppWidgetManager.requestPinAppWidget()
طريقة واجهة برمجة التطبيقات.
3.8.3. الإشعارات
يشمل نظام التشغيل Android Notification
NotificationManager
تسمح هذه الواجهات لمطوّري التطبيقات التابعة لجهات خارجية بإشعار المستخدمين بالأحداث
وجذب اهتمام المستخدمين عناية باستخدام مكونات الأجهزة (مثل الصوت والاهتزاز
والضوء) وميزات البرامج (مثل مركز الإشعارات وشريط النظام)
الخاص بك.
3.8.3.1. عرض الإشعارات
إذا كانت عمليات تنفيذ الأجهزة تسمح للتطبيقات التابعة لجهات خارجية بإبلاغ المستخدمين بالأحداث المهمة، سيتم إجراء ما يلي:
- [C-1-1] يجب أن تتيح إرسال الإشعارات التي تستخدم ميزات الأجهزة على النحو الموضَّح في مستندات حزمة SDK، وإلى أقصى حد ممكن مع عمليات تنفيذ الجهاز الأجهزة. على سبيل المثال، إذا كان تنفيذ الجهاز يتضمن هزّازًا، يجب تنفيذ واجهات برمجة تطبيقات الاهتزاز بشكل صحيح. إذا كان تنفيذ الجهاز ينقص يجب تنفيذ واجهات برمجة التطبيقات المقابلة في حالة عدم وجود عمليات. هذا السلوك هو بمزيد من التفصيل في القسم 7.
- [C-1-2] يجب أن يعرض جميع الموارد بشكل صحيح (الرموز وملفات الرسوم المتحركة وما إلى ذلك) المتوفرة في واجهات برمجة التطبيقات أو في دليل نمط رموز شريط الحالة/النظام، على الرغم من أنّها قد توفّر تجربة مستخدم بديلة للإشعارات عن ذلك المقدَّم من خلال مرجع التنفيذ المفتوح المصدر لنظام Android
- [C-1-3] يجب أن يلتزم وينفذ بشكل صحيح السلوكيات الموضحة واجهات برمجة التطبيقات لتعديل الإشعارات وإزالتها وتجميعها.
- [C-1-4] يجب توفير السلوك الكامل لـ NotificationChannel واجهة برمجة التطبيقات الموثَّقة في حزمة تطوير البرامج (SDK)
- [C-1-5] يجب أن تتوفر للمستخدم إمكانية حظر وتعديل محتوى وإشعار تطبيق تابع لجهة خارجية لكل قناة ومستوى حزمة التطبيق.
- [C-1-6] يجب أيضًا توفير إمكانية عرض المستخدم للإشعار المحذوف القنوات.
[C-1-7] يجب أن تعرض كل الموارد بشكل صحيح (الصور والملصقات والرموز وما إلى ذلك) المقدَّمة من خلال Notification.MessagingStyle بجانب نص الإشعار بدون أي تفاعل إضافي من المستخدم. بالنسبة على سبيل المثال، يجب أن تظهر جميع الموارد بما في ذلك الرموز المقدمة من خلال android.app.Person في محادثة جماعية يتم تحديدها من خلال setGroupConversation
[C-SR-1] يُوصى بها بشدة لتوفير إمكانية تشغيل للمستخدم التحكُّم في الإشعارات التي يتم عرضها للتطبيقات التي تم منحها إذن أداة معالجة الإشعارات يجب توفير الدقة حتى يتمكن المستخدم لكل مستمع إلى إشعار مثل أنواع الإشعارات على هذا المستمع. يجب أن تتضمن الأنواع "محادثات"، و"تنبيه"، "صامت" و"مستمر مهم" الإشعارات.
[C-SR-2] موصى بها بشدة وتوفر للمستخدمين إمكانية تحديد التطبيقات التي تريد استبعادها من إشعار أي مستمع إشعار محدد.
[C-SR-3] يُوصى بها بشدة لعرض اهتمامات المستخدم تلقائيًا حظر تلقّي إشعارات من تطبيق معيّن تابع لجهة خارجية لكل قناة وتطبيق مستوى الحزمة بعد أن يرفض المستخدم هذا الإشعار عدة مرات
يجب أن يكون متوافقًا مع الإشعارات الغنية.
يجب تقديم بعض الإشعارات ذات الأولوية الأعلى كإشعارات تنبيهية.
يجب أن يملك المستخدم القدرة على تأجيل الإشعارات.
قد يدير هذا الإعداد مستوى العرض وتوقيت الإشعارات التي يمكن للتطبيقات التابعة لجهات خارجية إرسال الإشعارات فيها فقط. للمستخدمين للأحداث البارزة للتخفيف من مشكلات السلامة مثل تشتيت السائق.
يوفِّر Android 11 إمكانية استخدام إشعارات المحادثات، وهي الإشعارات التي تستخدم MessagingStyle وتوفّر معرّف اختصار الأشخاص المنشور.
عمليات تنفيذ الأجهزة:
- [C-SR-4] يُنصح بشدة بتجميعها وعرضها
conversation notifications
قبل الإشعارات التي لا تتعلّق بالمحادثة باستثناء الإشعارات المستمرة عن الخدمة التي تعمل في المقدّمة وimportance:high
الإشعارات.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع conversation notifications
ويوفر التطبيق البيانات المطلوبة
bubbles
:
- [C-SR-5] يُنصح بشدة بعرض هذه المحادثة كفقاعة. تفي عملية تنفيذ AOSP بهذه المتطلبات من خلال واجهة مستخدم النظام التلقائية الإعدادات ومشغّل التطبيقات
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع الإشعارات المنسّقة، سيتم إجراء ما يلي:
- [C-2-1] يجب أن يستخدم الموارد الدقيقة
المقدّمة من خلال
Notification.Style
فئة واجهة برمجة التطبيقات وفئاتها الفرعية لعناصر الموارد المعروضة. - "ينبغي" تقديم كل عنصر من عناصر الموارد (على سبيل المثال،
الرمز والعنوان ونص الملخّص) المحدّدة في
Notification.Style
فئة واجهة برمجة التطبيقات وفئاتها الفرعية.
إشعارات التنبيه هي إشعارات يتم عرضها على المستخدم عندما تظهر بشكل مستقل عن المساحة التي يظهر عليها مفعَّلة. في حال كانت عمليات تنفيذ الجهاز توفّر التنبيهات الإشعارات، ثم:
- [C-3-1] يجب استخدام الموارد وعرض الإشعارات الرأسية
كما هو موضّح في
Notification.Builder
فئة واجهة برمجة التطبيقات عند عرض إشعارات تنبيهية. - [C-3-2] يجب أن يعرض الإجراءات المقدمة من خلال
Notification.Builder.addAction()
مع محتوى الإشعار بدون تفاعل إضافي من المستخدم كما هو موضّح في حزمة تطوير البرامج (SDK).
3.8.3.2. خدمة تلقّي الإشعارات
يتضمّن Android NotificationListenerService
واجهات برمجة التطبيقات التي تسمح للتطبيقات (بعد أن يفعّلها المستخدم صراحةً) بتلقّي نسخة من
جميع الإشعارات عند نشرها أو تعديلها.
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب تعديل الإشعارات بالكامل بشكل صحيح وفوري بجميع خدمات المستمعين التي ثبّتها أو يفعّلها المستخدم، بما في ذلك كل البيانات الوصفية المرفقة بعنصر الإشعار
- [C-0-2] يجب أن يلتزم
snoozeNotification()
طلب بيانات من واجهة برمجة التطبيقات، وإغلاق الإشعار وإجراء معاودة الاتصال بعد التأجيل يتم تحديدها في طلب بيانات من واجهة برمجة التطبيقات.
إذا كانت عمليات تنفيذ الأجهزة تسمح للمستخدم بتأجيل الإشعارات،:
- [C-1-1] يجب أن يعكس حالة الإشعار المؤجل بشكل صحيح
من خلال واجهات برمجة التطبيقات القياسية مثل
NotificationListenerService.getSnoozedNotifications()
- [C-1-2] يجب أن تجعل ميزات هذا المستخدم متاحة لتأجيل الإشعارات من كل تطبيق مثبت تابع لجهة خارجية، ما لم يكن من الخدمات المستمرة/التي تعمل في المقدّمة.
3.8.3.3. وضع "عدم الإزعاج" / وضع الأولوية "DND"
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع ميزة "عدم الإزعاج" (يُسمى أيضًا وضع الأولوية)، وهي:
- [C-1-1] يجب أن يستخدم هذا الإذن في الحالات التي يوفّر فيها تنفيذ الجهاز وسيلة للمستخدم بمنح التطبيقات التابعة لجهات خارجية أو منعها من الوصول إلى إعدادات سياسة DND عرض قواعد DND التلقائية التطبيقات إلى جانب القواعد التي أنشأها المستخدم والمحددة مسبقًا.
- [C-1-3] يجب أن يلتزم بـ
suppressedVisualEffects
القيم التي تم تمريرها فيNotificationManager.Policy
وإذا كان التطبيق قد ضبط أيًا من SUPPRESSED_مؤثر_SCREEN_OFF أو لعلامات SUPPRESSED_مؤثرات_SCREEN_ON، فيجب أن تشير للمستخدم أن يتم منع التأثيرات المرئية في قائمة إعدادات DND.
3.8.4 واجهات برمجة تطبيقات المساعدة
يتضمَّن Android واجهات برمجة تطبيقات المساعدة للسماح للتطبيقات باختيار مقدار معلومات السياق الحالي تمت مشاركته مع "مساعد Google" على الجهاز.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع إجراء المساعدة، سيتم:
- [C-2-1] يجب أن يشير بوضوح للمستخدم النهائي عند مشاركة السياق عن طريق
إما:
- وفي كل مرة يصل فيها التطبيق المساعد إلى السياق، ويعرض الضوء حول حواف الشاشة التي تلبي أو تتجاوز المدة سطوع تنفيذ "مشروع مفتوح المصدر لنظام Android"
- بالنسبة إلى تطبيق المساعد المثبَّت مسبقًا، فهو يوفر تكلفة أقل من عمليتَي تنقل بعيدًا عن قائمة الإعدادات التلقائية لتطبيق "مساعد Google" والإدخال الصوتي، ولا تتم مشاركة السياق إلا عند استدعاء التطبيق المساعد بشكل صريح من خلال للمستخدم من خلال الكلمة المفتاح أو المساعدة في إدخال مفتاح التنقل.
- [C-2-2] التفاعل المعيّن لتشغيل التطبيق المساعد على النحو الموضَّح
في القسم 7.2.3 يجب أن يُطلق المستخدم
التطبيق المساعد، أو بعبارةٍ أخرى التطبيق الذي ينفّذ
VoiceInteractionService
، أو نشاط يعالج هدفACTION_ASSIST
3.8.5 التنبيهات والإشعارات
يمكن للتطبيقات استخدام Toast
واجهة برمجة التطبيقات لعرض سلاسل قصيرة غير نمطية للمستخدم النهائي التي تختفي بعد
لفترة زمنية قصيرة، واستخدام TYPE_APPLICATION_OVERLAY
window type API لعرض نوافذ التنبيهات كتراكب على التطبيقات الأخرى.
إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:
[C-1-1] يجب أن يوفر للمستخدم إمكانية منع التطبيق من عرض التنبيه النوافذ التي تستخدم
TYPE_APPLICATION_OVERLAY
. ويلبي تنفيذ AOSP هذا الشرط من خلال توفُّر عناصر تحكّم في مركز الإشعارات.[C-1-2] يجب أن يلتزم بـ Toast API وأن يعرض Toasts من التطبيقات إلى المستخدمين النهائيين في بعض بشكل مرئي.
3.8.6. المظاهر
يوفّر Android "المظاهر" كآلية تتيح للتطبيقات تطبيق الأنماط على نشاط أو تطبيق بالكامل.
يتضمن Android "Holo" و"Material" مجموعة الموضوع كمجموعة من الأنماط المحددة إلى أن يستخدمه مطورو التطبيقات إذا أرادوا مطابقة مظهر ومظهر مجسم كما هو محدد في حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:
- [C-1-1] يجب ألا يغير أيًا من سمات مظهر Holo المعروضة التطبيقات.
- [C-1-2] يجب أن تتوافق مع مجموعة المظاهر "Material" (المادة) ويجب ألا تغيّر أيًا من سمات المظهر المتعدد الأبعاد أو أصولها المكشوفة للتطبيقات.
[C-1-3] يجب أن يضبط "sans-serif" مجموعة الخطوط إلى الإصدار 2.x من Roboto للغات التي تدعمها Roboto أو توفر للمستخدم القدرة على تغيير الخط المستخدم "sans-serif" مجموعة الخطوط إلى الإصدار 2.x من Roboto للغات التي تدعمها Roboto.
[C-1-4] يجب إنشاء لوحات ألوان ديناميكية على النحو المحدد في AOSP مستندات
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
(راجِعandroid.theme.customization.system_palette
وandroid.theme.customization.theme_style
).[C-1-5] يجب إنشاء لوحات ألوان ديناميكية باستخدام أنماط مظاهر الألوان تم تعداده في
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
المستندات (راجِعandroid.theme.customization.theme_styles
) وهيTONAL_SPOT
وVIBRANT
وEXPRESSIVE
وSPRITZ
وRAINBOW
FRUIT_SALAD
وMONOCHROMATIC
."لون المصدر" تُستخدم لإنشاء لوحات ألوان ديناميكية عند إرسالها مع
android.theme.customization.system_palette
(كما هو موثّق فيSettings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
).[C-1-6] يجب أن تكون قيمة كثافة اللون
CAM16
5 أو أكبر.يجب أن يتم اشتقاقه من الخلفية عبر
com.android.systemui.monet.ColorScheme#getSeedColors
، التي توفر عدة ألوان مصدر صالحة لاختيار لون منها.يجب استخدام القيمة
0xFF1B6EF3
، إذا لم يتطابق أي من الألوان المقدمة مطلب لون المصدر أعلاه.
يتضمّن Android أيضًا مجموعة المظاهر "التلقائية للجهاز" كمجموعة من الأنماط المحدّدة. استخدام مطوري التطبيقات إذا أرادوا التوافق مع شكل ومضمون مظهر الجهاز كما هو محدد من قِبل أداة تنفيذ الجهاز.
- قد تؤدي عمليات تنفيذ الأجهزة إلى تعديل سمات المظهر التلقائي للجهاز التي تم الكشف عنها التطبيقات.
يتيح Android مظهرًا متفاوتًا مع أشرطة نظام شبه شفافة، ما يتيح مطوري التطبيقات لملء المنطقة خلف شريط الحالة والتنقل مع محتوى التطبيق. لتوفير تجربة متسقة للمطوّرين للغاية، فمن المهم الحفاظ على نمط رمز شريط الحالة عبر عمليات تنفيذ الأجهزة المختلفة.
إذا كانت عمليات تنفيذ الجهاز تتضمّن شريط حالة للنظام، سيؤدّي ذلك إلى ما يلي:
- [C-2-1] يجب استخدام اللون الأبيض لرموز حالة النظام (مثل قوة الإشارة مستوى البطارية) والإشعارات الصادرة عن النظام، ما لم يكن الرمز تشير إلى حالة هناك مشكلة أو أن التطبيق يطلب شريط حالة خفيف باستخدام WindowInsetsController#APPEARANCE_LIGHT_STATUS_BARS .
- [C-2-2] يجب أن تؤدي عمليات تنفيذ أجهزة Android إلى تغيير لون النظام تصبح رموز الحالة باللون الأسود (للحصول على التفاصيل، راجِع R.style) عندما يكون التطبيق يطلب شريط حالة خفيف.
3.8.7. خلفيات متحركة
يحدد Android نوع المكوِّن وواجهة برمجة التطبيقات ودورة النشاط المرتبطة بها التي تسمح التطبيقات لكشف تطبيق واحد أو أكثر "خلفيات متحركة" للمستخدم النهائي. الخلفيات المتحركة هي صور متحركة أو نقوش أو صور مشابهة مع إمكانات إدخال محدودة تظهر كخلفية التطبيقات.
اعتبار الأجهزة قادرة على تشغيل الخلفيات المتحركة بشكل موثوق إذا كان من الممكن تشغيلها كل الخلفيات المتحركة التي لا تُفرض أي قيود على وظائفها وفي إطار معقول بدون أي تأثيرات سلبية على التطبيقات الأخرى. إذا كانت القيود في تتسبب في تعطُّل الخلفيات و/أو التطبيقات أو تعطُّل وظائفها أو استهلاكها وحدة معالجة مركزية (CPU) أو طاقة بطارية زائدة عن الحد، أو تعمل بمعدلات إطارات منخفضة بشكل غير مقبول، الأجهزة غير قادرة على تشغيل خلفية متحركة. على سبيل المثال، قد يفكر بعض قد تستخدم الخلفيات المتحركة سياق OpenGL 2.0 أو 3.x لعرض المحتوى الخاص بها. لن يتم تشغيل الخلفية المتحركة بشكل موثوق على الأجهزة التي لا تتوافق مع العديد من سياقات OpenGL لأنّ استخدام الخلفية المباشرة لسياق OpenGL قد يتعارض مع مع التطبيقات الأخرى التي تستخدم أيضًا سياق OpenGL.
- تطبيقات الأجهزة التي يمكنها تشغيل خلفيات متحركة بشكل موثوق به على النحو الموضَّح "ينبغي" أعلاه استخدام الخلفيات المتحركة.
في حال استخدام خلفيات مباشرة على الجهاز، سيتم إجراء ما يلي:
- [C-1-1] يجب الإبلاغ عن علامة ميزة النظام الأساسي android.software.live_wallpaper.
3.8.8 التبديل بين الأنشطة
تشتمل شفرة المصدر الرئيسية لنظام التشغيل Android على شاشة النظرة العامة واجهة مستخدم على مستوى النظام لتبديل المهام وعرض العناصر التي تم الوصول إليها مؤخرًا الأنشطة والمهام باستخدام صورة مصغّرة للرسم البياني للتطبيق في اللحظة التي غادر فيها المستخدم التطبيق آخر مرة.
عمليات تنفيذ الأجهزة بما في ذلك مفتاح التنقل للوظائف كما هو موضح بالتفصيل في القسم 7.2.3 قد يغيّر الواجهة.
إذا كانت عمليات تنفيذ الجهاز تشمل مفتاح التنقل للوظائف كما هو موضح بالتفصيل في القسم 7.2.3 تغيّر الواجهة، فإنها:
- [C-1-1] يجب أن يتيح ما يصل إلى 7 أنشطة معروضة على الأقل.
- يجب أن تعرض على الأقل عنوان 4 أنشطة في المرة الواحدة.
- [C-1-2] يجب أن ينفذ سلوك تثبيت الشاشة وتزويد المستخدم بقائمة إعدادات لتبديل الميزة.
- "ينبغي" عرض لون التمييز أو الرمز أو عنوان الشاشة في العناصر الأخيرة.
- يجب عرض خاصية الإغلاق ("x") ولكن قد يؤخر ذلك حتى يتفاعل المستخدم مع الشاشات.
- يجب تنفيذ اختصار للتبديل بسهولة إلى النشاط السابق.
- يجب تشغيل إجراء التبديل السريع بين آخر إصدارين تم استخدامهما مؤخرًا التطبيقات، عندما يتم النقر على مفتاح الوظائف الأحدث مرتين.
- "ينبغي" تشغيل وضع تقسيم الشاشة المتعدد، إذا كان ذلك متاحًا، عند الضغط مع الاستمرار على مفتاح الوظائف الأخيرة.
- وقد يعرض آخر العناصر التابعة كمجموعة تتحرك معًا.
- [C-SR-1] يُنصح بشدة باستخدام إصدار Android الرئيسي (أو واجهة مشابهة مستندة إلى الصورة المصغرة) لشاشة النظرة العامة.
3.8.9 إدارة الإدخال
يشتمل نظام Android على دعم إدارة الإدخال ودعم لمحرري أساليب الإدخال من جهات خارجية.
إذا كانت عمليات تنفيذ الأجهزة تسمح للمستخدمين باستخدام طرق إدخال تابعة لجهات خارجية على على الجهاز، فإنها:
- [C-1-1] يجب أن يفصح عن ميزة النظام الأساسي android.software.input_methods تتيح استخدام واجهات برمجة تطبيقات IME كما هو موضح في وثائق Android SDK.
3.8.10. التحكّم في الوسائط على شاشة القفل
تم إيقاف واجهة برمجة التطبيقات Remote Control Client API نهائيًا من Android 5.0 لصالح نموذج إشعار الوسائط تسمح لتطبيقات الوسائط بالتكامل مع عناصر التحكم في التشغيل المعروضة على شاشة القفل.
3.8.11. شاشات الاستراحة (المعروفة سابقًا باسم Dreams)
يُرجى الاطّلاع على القسم 3.2.3.5 لمعرفة الإعدادات. في نية تكوين شاشات الاستراحة.
3.8.12. الموقع الجغرافي
إذا كانت عمليات تنفيذ الجهاز تتضمّن أداة استشعار (مثل نظام تحديد المواقع العالمي (GPS)) قادرة توفير إحداثيات الموقع،
- [C-1-2] يجب أن يعرض الحالة الحالية للموقع الجغرافي في قائمة "الموقع الجغرافي" ضمن "الإعدادات".
- [C-1-3] يجب ألا يعرض أوضاع الموقع الجغرافي في قائمة "الموقع الجغرافي" ضمن "الإعدادات".
3.8.13. يونيكود والخط
يتيح Android استخدام رموز الإيموجي المحددة في Unicode 10.0
إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:
- [C-1-1] يجب أن يكون قادرًا على عرض رموز الإيموجي هذه بأحرف رسومية ملونة.
- [C-1-2] يجب أن يتضمن الدعم لما يلي:
- خط Roboto 2 بأوزان مختلفة —sans-serif-thin، sans-serif-light، sans-serif-medium, sans-serif-blue, sans-serif-condensed" sans-serif-condensed-light للغات المتاحة على الجهاز.
- تغطية Unicode 7.0 كاملة للّغات اللاتينية واليونانية والسيريلية، بما في ذلك النطاقات اللاتينية الموسعة A وB وC وD، وجميع الأحرف الرسومية بالعملة كتلة الرموز لـ Unicode 7.0.
- [C-1-3] يجب ألا يزيل أو يعدل NotoColorEmoji.tff في صورة النظام. (يمكن إضافة خط رموز تعبيرية جديد لإلغاء الرموز التعبيرية في NotoColorEmoji.tff)
- يجب أن يتوافق مع لون البشرة والرموز التعبيرية المتنوعة المناسبة للعائلة على النحو المحدّد في سمة تقرير Unicode الفني رقم 51.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن أداة IME، سيتم إجراء ما يلي:
- يجب أن يتم توفير أسلوب إدخال للمستخدم لهذه الرموز التعبيرية.
يتيح نظام Android عرض خطوط ميانمار. تضم ميانمار العديد من خطوط غير متوافقة مع يونيكود، وتُعرف باسم "زاوجي"، لعرض ميانمار اللغات.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن توافقًا مع البورمية، سيتم إجراء ما يلي:
- [C-2-1] يجب أن يتم عرض نص بخط متوافق مع يونيكود كإعداد تلقائي. يجب عدم تعيين الخط الذي لا يتوافق مع يونيكود كخط تلقائي إلا إذا اختار المستخدم سيختاره من أداة اختيار اللغة
- [C-2-2] يجب استخدام خط Unicode وخط غير متوافق مع Unicode إذا استخدام خط غير متوافق مع يونيكود على الجهاز. بدون يونيكود يجب ألا يزيل الخط المتوافق خط يونيكود أو يستبدله.
- [C-2-3] يجب عرض النص بخط غير متوافق مع يونيكود فقط إذا كان رمز اللغة مع رمز النص البرمجي Qaag (على سبيل المثال، my-Qaag). ما من رموز مناطق أو لغات أخرى وفقًا للمنظمة الدولية للمعايير (ISO) (سواء معيّنة أو غير معيَّنة أو محجوزة) للإشارة إلى ملفات غير يونيكود الخط المتوافق لميانمار. يمكن لمطوّري التطبيقات ومؤلفي صفحات الويب تحديد my-Qaag كرمز لغة محدد كما هو الحال مع أي لغة أخرى.
3.8.14 نوافذ متعددة
إذا كانت لعمليات تنفيذ الأجهزة القدرة على عرض أنشطة متعددة في نفس الوقت، فإنها:
- [C-1-1] يجب تنفيذ أوضاع النوافذ المتعددة هذه وفقًا سلوكيات التطبيقات وواجهات برمجة التطبيقات الموضحة في حزمة تطوير البرامج (SDK) لنظام التشغيل Android مستندات دعم وضع النوافذ المتعددة واجتماع المتطلبات التالية:
- [C-1-2] يجب أن يلتزم بـ
android:resizeableActivity
يتم ضبطه من خلال تطبيق في ملفAndroidManifest.xml
على النحو الموضّح في حزمة SDK هذه - [C-1-3] يجب ألا يتم توفير وضع تقسيم الشاشة أو وضع الشكل الحر إذا ارتفاع الشاشة عن 440 وحدة بكسل مستقلة الكثافة (dp) وعرض الشاشة أقل من 440 بكسل منع فقدان البيانات
- [C-1-4] يجب عدم تغيير حجم النشاط إلى حجم أصغر من 220 بكسل مستقل الكثافة (dp) أوضاع النوافذ المتعددة بخلاف "نافذة ضمن النافذة".
- يجب أن تتوافق عمليات تنفيذ الأجهزة بحجم الشاشة
xlarge
مع التنسيق الحر الحالي.
إذا كانت عمليات تنفيذ الجهاز تتوافق مع أوضاع النوافذ المتعددة، وتقسيم الشاشة فإنهم:
- [C-2-2] يجب اقتصاص نشاط الإرساء لنافذة متعددة في وضع "تقسيم الشاشة" يجب عرض بعض محتوى هذه الصورة، إذا كان تطبيق "مشغّل التطبيقات" هو النافذة التي عليها التركيز.
- [C-2-3] يجب أن يلتزم بـ
AndroidManifestLayout_minWidth
المعلَن عنه وAndroidManifestLayout_minHeight
قيم تطبيق المشغّل من جهة خارجية وعدم تجاوز هذه القيم خلال عرض بعض محتوى النشاط الذي تم إرساؤه
إذا كانت عمليات تنفيذ الجهاز تتيح أوضاع النوافذ المتعددة وميزة "نافذة ضمن النافذة" في وضع النوافذ المتعددة، فإنها:
- [C-3-1] يجب إطلاق الأنشطة في وضع النوافذ المتعددة في وضع "نافذة ضمن النافذة"
عندما يكون التطبيق:
* استهداف المستوى 26 من واجهة برمجة التطبيقات أو المستويات الأعلى ويشير إلى
android:supportsPictureInPicture
* استهداف المستوى 25 أو أقل لواجهة برمجة التطبيقات مع توضيح كليهماandroid:resizeableActivity
وandroid:supportsPictureInPicture
- [C-3-2] يجب أن تعرض الإجراءات في SystemUI على أنها
المحدّدة من خلال نشاط نافذة ضمن النافذة (PIP) الحالي من خلال
setActions()
واجهة برمجة التطبيقات. - [C-3-3] يجب أن يتوافق مع نسب عرض إلى ارتفاع أكبر من أو تساوي
1:2.39 وأقل من أو يساوي 2.39:1، كما هو محدد بواسطة نشاط نافذة ضمن النافذة (PIP) حتى
setAspectRatio()
واجهة برمجة التطبيقات. - [C-3-4] يجب أن يستخدم
KeyEvent.KEYCODE_WINDOW
للتحكم في نافذة نافذة ضمن النافذة (PIP)؛ في حال عدم استخدام وضع "نافذة ضمن النافذة"، يجب أن يكون المفتاح المتاحة للنشاط الذي تعمل في المقدّمة. - [C-3-5] يجب أن يوفر للمستخدم إمكانية حظر عرض التطبيق في وضع نافذة ضمن النافذة (PIP) يستوفي تنفيذ بروتوكول AOSP هذا الشرط من خلال وجود عناصر التحكم في مركز الإشعارات.
[C-3-6] يجب تخصيص الحد الأدنى التالي لعرض وارتفاع PIP عندما لا يعلن التطبيق عن أي قيمة
AndroidManifestLayout_minWidth
وAndroidManifestLayout_minHeight
:- الأجهزة التي تحتوي على Configuration.uiMode والذي تم تعيينه بخلاف
UI_MODE_TYPE_TELEVISION
يجب تخصيص حد أدنى للعرض والارتفاع يبلغ 108 بكسل مستقل الكثافة (dp). - الأجهزة التي تتضمّن Configuration.uiMode والذي تم ضبطه على
UI_MODE_TYPE_TELEVISION
يجب تخصيص حد أدنى للعرض يبلغ 240 بكسل مستقل الكثافة وحد أدنى للارتفاع 135 بكسل مستقل الكثافة (dp).
- الأجهزة التي تحتوي على Configuration.uiMode والذي تم تعيينه بخلاف
3.8.15 الصورة المقطوعة للشاشة
يتوافق Android مع ميزة "صورة مقطوعة للشاشة" كما هو موضّح.
في مستند حزمة SDK. تحدّد واجهة برمجة التطبيقات DisplayCutout
مساحة على حافة الشاشة قد لا تعمل مع أحد التطبيقات
بسبب ظهور شاشة مقتطعة أو مقوّسة عند الحواف
في حال اشتملت عمليات تنفيذ الأجهزة على صور مقطوعة للشاشة، سيتم تطبيق ما يلي:
- [C-1-5] يجب ألا يحتوي على صور مقطوعة إذا كانت نسبة العرض إلى الارتفاع للجهاز 1.0(1:1).
- [C-1-2] يجب ألا يحتوي على أكثر من صورة مقطوعة واحدة لكل حافة.
- [C-1-3] يجب أن يحترم علامات الصورة المقطوعة للشاشة التي حددها التطبيق من خلال
WindowManager.LayoutParams
واجهة برمجة التطبيقات كما هو موضّح في حزمة تطوير البرامج (SDK). - [C-1-4] يجب أن يبلغ عن القيم الصحيحة لجميع مقاييس الاقتصاص المحددة في
DisplayCutout
API.
3.8.16. عناصر التحكم بالأجهزة
يتضمّن نظام Android ControlsProviderService
وControl
واجهات برمجة التطبيقات التي تسمح لتطبيقات الجهات الخارجية بنشر عناصر التحكم في الجهاز بشكل سريع
والحالة والإجراء للمستخدمين.
راجِع القسم 2_2_3 لمعرفة المتطلبات الخاصة بالأجهزة.
3.8.17 الحافظة
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب ألا يتم إرسال بيانات الحافظة إلى أي مكوّن أو نشاط أو خدمة أو عبر أي اتصال بالشبكة، دون إجراء صريح من المستخدم (مثل الضغط على على سطح الصفحة)، باستثناء الخدمات المذكورة في 9.8.6 التقاط المحتوى والبحث في التطبيقات:
إذا كانت عمليات تنفيذ الجهاز تنشئ معاينة مرئية للمستخدم عند نسخ المحتوى
إلى الحافظة لأي عنصر ClipData
حيث
يحتوي ClipData.getDescription().getExtras()
على
android.content.extra.IS_SENSITIVE
، وهي:
- [C-1-1] يجب إخفاء المعاينة المرئية للمستخدم
يفي تنفيذ مرجع AOSP هذه بمتطلبات الحافظة.
3.9. إدارة الجهاز
يتضمّن Android ميزات تتيح للتطبيقات المتوافقة مع الأمان تنفيذ وظائف إدارة الجهاز على مستوى النظام، مثل فرض كلمة المرور البيانات أو إجراء مسح البيانات عن بُعد، من خلال واجهة برمجة التطبيقات لإدارة جهاز Android
في حال كانت عمليات تنفيذ الجهاز تنفِّذ النطاق الكامل لإدارة الجهاز محددة في وثائق حزمة تطوير البرامج (SDK) لنظام التشغيل Android، فإنها:
- [C-1-1] يجب أن يفصح عن
android.software.device_admin
. - [C-1-2] يجب توفير إمكانية إدارة حسابات مالكي الأجهزة على النحو الموضّح في الفقرة 3.9.1 الفقرة 3.9.1.1.
3.9.1 توفير المتطلبات اللازمة للأجهزة
3.9.1.1 توفير المتطلبات اللازمة لمالك الجهاز
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.device_admin
، سيتم ما يلي:
- [C-1-1] يجب أن يتيح تسجيل برنامج Device Policy (DPC) باعتباره
تطبيق مالك الجهاز
كما هو موضح أدناه:
- عندما يكون تنفيذ الجهاز
لا مستخدمين ولا
بيانات المستخدم، فإنها:
- [C-1-5] يجب تسجيل تطبيق وحدة التحكّم بسياسة الجهاز (DPC) كتطبيق مالك الجهاز
أو تفعيل تطبيق وحدة التحكّم بسياسة الجهاز (DPC) لاختيار ما إذا كان
مالكًا للجهاز أو مالكًا لملف شخصي،
إذا ذكر الجهاز توفّر تقنية الاتصال القصير المدى (NFC) عبر
علامة الميزة
android.hardware.nfc
ويتم تلقّي رسالة NFC تحتوي على سجلّ من نوع MIMEMIME_TYPE_PROVISIONING_NFC
- [C-1-8] يجب إرسال ACTION_GET_PROVISIONING_mode
النية بعد تشغيل إدارة حسابات مالك الجهاز حتى
يمكن لتطبيق وحدة التحكّم بسياسة الجهاز (DPC) اختيار ما إذا كنت تريد أن تصبح مالكًا للجهاز أو ملفًا شخصيًا.
المالك، بناءً على قيم
android.app.extra.PROVISIONING_ALLOWED_PROVISIONING_MODES
, ما لم يمكن تحديده من على أنه لا يوجد سوى خيار واحد صالح. - [C-1-9] يجب أن يرسل ACTION_ADMIN_POLICY_COMPLIANCE النية في تطبيق "مالك الجهاز" إذا تم تحديد مالك الجهاز أثناء توفير المتطلبات اللازمة بغض النظر عن طريقة توفير المتطلبات اللازمة. تشير رسالة الأشكال البيانية يجب ألا يكون المستخدم قادرًا على المتابعة في معالج الإعداد حتى سينتهي تثبيت تطبيق "مالك الجهاز".
- [C-1-5] يجب تسجيل تطبيق وحدة التحكّم بسياسة الجهاز (DPC) كتطبيق مالك الجهاز
أو تفعيل تطبيق وحدة التحكّم بسياسة الجهاز (DPC) لاختيار ما إذا كان
مالكًا للجهاز أو مالكًا لملف شخصي،
إذا ذكر الجهاز توفّر تقنية الاتصال القصير المدى (NFC) عبر
علامة الميزة
- عندما يكون تنفيذ الجهاز
المستخدمون أو
بيانات المستخدم، فهي:
- [C-1-7] يجب ألا يتم تسجيل أي تطبيق لوحدة التحكّم بسياسة الجهاز (DPC) كتطبيق مالك الجهاز أكثر من ذلك.
- عندما يكون تنفيذ الجهاز
لا مستخدمين ولا
بيانات المستخدم، فإنها:
[C-1-2] يجب عرض إشعار إفصاح مناسب (كما هو منصوص عليه في AOSP) والحصول على موافقة إيجابية من المستخدم النهائي قبل استخدام التطبيق الضبط كمالك للجهاز، ما لم يتم ضبط الجهاز آليًا في الوضع التجريبي للبيع بالتجزئة قبل تفاعل المستخدم النهائي على الشاشة. في حال كانت عمليات تنفيذ الأجهزة تشير إلى
android.software.device_admin
، ولكنها تشير أيضًا إلى تتضمّن ملكية لإدارة الأجهزة وتوفير آلية للترويج لتطبيق تم تكوينه في الحل الخاص به بصفته "مالك الجهاز مكافئ" إلى "مالك الجهاز" القياسي كما هو موضح من قِبل نظام التشغيل Android القياسي مدير سياسة الجهاز واجهات برمجة التطبيقات، وهي:[C-2-1] يجب أن يتضمّن عملية للتحقّق من أنّ التطبيق المحدّد التي يتم الترويج لها تنتمي إلى إدارة مشروعة لأجهزة المؤسسة الحل وتم إعداده في الحل المملوكة للحصول على ما يعادل "مالك الجهاز" من حقوقك.
[C-2-2] يجب أن يعرض الإفصاح نفسه عن موافقة مالك الجهاز من AOSP كما في تم بدء المسار من خلال
android.app.action.PROVISION_MANAGED_DEVICE
قبل تسجيل تطبيق وحدة التحكّم بسياسة الجهاز (DPC) كـ "مالك الجهاز".[C-2-3] يجب ألا يتم ترميز الموافقة أو منعها استخدام تطبيقات مالك الجهاز الأخرى.
3.9.1.2 توفير المتطلبات اللازمة للملف الشخصي المُدار
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.managed_users
، سيتم ما يلي:
[C-1-1] يجب تنفيذ واجهات برمجة التطبيقات السماح لتطبيق وحدة التحكم بسياسة الجهاز (DPC) بأن يصبح مالك ملف شخصي مُدار جديد
[C-1-2] عملية توفير المتطلبات اللازمة للملف الشخصي المُدار (مسار العملية الذي تبدأه وحدة التحكّم بسياسة الجهاز باستخدام android.app.action.PROVISION_MANAGED_PROFILE). أو من خلال المنصة)، يجب أن تتوافق شاشة طلب الموافقة وتجربة المستخدم مع تنفيذ AOSP.
[C-1-3] يجب أن يوفر خصائص المستخدم التالية ضمن "الإعدادات" من أجل: الإشارة إلى المستخدم عند إيقاف وظيفة نظام معينة من خلال وحدة التحكّم بسياسة الجهاز (DPC):
- رمز متّسق أو عناصر أخرى تجذب المستخدمين (على سبيل المثال، الإعلان الرئيسي رمز معلومات AOSP) للإشارة إلى الحالات التي يتم فيها تقييد إعداد معين من خلال مشرف الجهاز.
- رسالة توضيحية موجزة يقدِّمها "مشرف الجهاز" من خلال
setShortSupportMessage
- رمز تطبيق وحدة التحكّم بسياسة الجهاز (DPC).
[C-1-4] يجب تشغيل معالج ACTION_PROVISIONING_SuccessFUL الغرض من ملف العمل إذا تم تحديد مالك الملف الشخصي عند يتم بدء توفير المتطلبات اللازمة من خلال android.app.action.PROVISION_MANAGED_PROFILE. intent وقد نفّذت وحدة التحكّم بسياسة الجهاز المعالج.
[C-1-5] يجب إرسال ACTION_PROFILE_PROVISIONING_COMPLETE البث إلى وحدة التحكّم بسياسة الجهاز لملف العمل عند بدء توفير المتطلبات اللازمة بواسطة android.app.action.PROVISION_MANAGED_PROFILE. والنية.
[C-1-6] يجب إرسال ACTION_GET_PROVISIONING_mode إجراء نية بعد تفعيل إدارة حسابات مالك الملف الشخصي، لكي يكون تطبيق وحدة التحكّم بسياسة الجهاز (DPC) اختيار ما إذا كنت مالكًا للجهاز أو مالكًا لملف شخصي إلا في حال يتم تفعيل توفير المتطلبات اللازمة من خلال الغرض android.app.action.PROVISION_MANAGED_PROFILE.
[C-1-7] يجب إرسال ACTION_ADMIN_POLICY_COMPLIANCE النية في ملف العمل عند إنشاء مالك الملف الشخصي أثناء لتوفير المتطلبات اللازمة بغض النظر عن طريقة إدارة الحسابات المستخدمة باستثناء عند تفعيل إدارة الحسابات بواسطة الغرض android.app.action.PROVISION_MANAGED_PROFILE. يجب ألا يتمكن المستخدم من المتابعة في معالج الإعداد حتى يتمكن الملف الشخصي ينتهي تطبيق المالك.
[C-1-8] يجب إرسال ACTION_MANAGED_PROFILE_PROVISIONED بثها إلى وحدة التحكم في سياسة الملف الشخصي عند إنشاء مالك الملف الشخصي، بغض النظر عن طريقة توفير المتطلبات اللازمة.
3.9.2 دعم الملفات الشخصية المُدارة
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.managed_users
، سيتم ما يلي:
- [C-1-1] يجب أن يتوافق مع الملفات الشخصية المُدارة عبر
android.app.admin.DevicePolicyManager
. واجهات برمجة التطبيقات. - [C-1-2] يجب أن يتيح إنشاء ملف شخصي مُدار واحد فقط.
- [C-1-3] يجب استخدام شارة رمز (على غرار شارة العمل الرئيسي لدى AOSP) تمثل التطبيقات والأدوات المُدارة، وغير ذلك من عناصر واجهة المستخدم التي تحمل شارة مثل "المحادثات الأخيرة" الإشعارات.
- [C-1-4] يجب عرض رمز إشعار (على نحو يشبه إطلاق مشروع AOSP) شارة) للإشارة إلى الوقت الذي يكون فيه المستخدم داخل تطبيق ملف شخصي مُدار.
- [C-1-5] يجب عرض إشعار منبثق يشير إلى أنّ المستخدم ضِمن الحسابات المُدارة في حال استيقاظ الجهاز (ACTION_USER_PRESENT) ووقت استيقاظه التطبيق الذي يعمل في المقدّمة ضمن الملف الشخصي المُدار.
- [C-1-6] عند وجود ملف شخصي مُدار، يجب أن يُظهر تقاربًا بصريًا في "أداة اختيار الأهداف" للسماح للمستخدم بإعادة توجيه النية من الحساب المُدار إلى المستخدم الأساسي أو العكس، إذا تم تفعيله بواسطة Device Policy وحدة التحكّم
- [C-1-7] عند وجود ملف شخصي مُدار، يجب كشف المستخدم التالي
الخصائص الوظيفية لكل من المستخدم الأساسي والملف الشخصي المُدار:
- فصل البطارية والموقع الجغرافي وبيانات الجوّال واستخدام مساحة التخزين للمستخدم الأساسي والملف الشخصي المُدار.
- الإدارة المستقلة لتطبيقات الشبكة الافتراضية الخاصة (VPN) المثبَّتة ضمن النطاق الأساسي مستخدم أو ملف شخصي مُدار.
- الإدارة المستقلة للتطبيقات المثبّتة من حساب المستخدم الأساسي أو ملف شخصي مُدار.
- الإدارة المستقلة للحسابات ضمن حساب المستخدم الأساسي أو المُدارة بك.
- [C-1-8] يجب التأكّد من أنّ برامج الاتصال وجهات الاتصال والرسائل المثبَّتة مسبقًا يمكن لتطبيقات البحث عن معلومات المتصل والبحث عنها من (إن وجد) إلى جانب تلك الموجودة في الملف الشخصي الأساسي، إذا "وحدة التحكّم بسياسة الجهاز" تسمح بذلك.
- [C-1-9] يجب أن تضمن استيفاء جميع متطلبات الأمان ينطبق على جهاز تم تفعيل ميزة "تعدُّد المستخدمين" عليه (اطّلِع على القسم 9.5)، على الرغم من أنّ الملف الشخصي المُدار لا يتم حسابه كمستخدم آخر إلى جانب المستخدم الأساسي.
بدء متطلبات جديدة
- [C-1-10] يجب التأكّد من حفظ بيانات لقطة الشاشة في ملف العمل.
التخزين عندما يتم التقاط لقطة شاشة
topActivity
نافذة تتضمّن ميزة "التركيز" (الذي تفاعل معه المستخدم في النهاية من بين جميع الأنشطة) وينتمي إليه تطبيق ملف العمل. - [C-1-11] يجب ألا تلتقط أي محتوى آخر على الشاشة (شريط النظام، الإشعارات أو أي محتوى للملف الشخصي) باستثناء ملف العمل نافذة/نوافذ التطبيق عند حفظ لقطة شاشة في ملف العمل (للتأكد من أن لا يتم حفظ بيانات الملف الشخصي في ملف العمل).
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.managed_users
android.software.secure_lock_screen
، وهي:
- [C-2-1] يجب توفير إمكانية تحديد اجتماع منفصل على شاشة القفل
المتطلبات التالية لمنح إمكانية الوصول إلى التطبيقات التي تعمل في حساب
للملف الشخصي فقط.
- يجب أن تفي عمليات تنفيذ الأجهزة بـ
DevicePolicyManager.ACTION_SET_NEW_PASSWORD
intent وإظهار واجهة لضبط شاشة قفل منفصلة بيانات الاعتماد للملف الشخصي المُدار. - يجب أن تستخدم بيانات اعتماد شاشة القفل للملف الشخصي المُدار البيانات نفسها تخزين بيانات الاعتماد وآليات الإدارة كملف تعريف رئيسي، كما هو موثّق على موقع مشروع مفتوح المصدر لنظام Android:
- سياسات كلمات المرور في وحدة التحكّم بسياسة الجهاز
يجب أن تسري على بيانات اعتماد شاشة قفل الملف الشخصي المُدار فقط ما لم
تم استدعاء المثيل
DevicePolicyManager
الذي تم إرجاعه بواسطة getParentProfileInstance
- يجب أن تفي عمليات تنفيذ الأجهزة بـ
- عند عرض جهات الاتصال من الملف الشخصي المُدار في سجلّ المكالمات المثبّت مسبقًا، وواجهة المستخدم أثناء المكالمة، وقيد التقدّم والمكالمة الفائتة الإشعارات وجهات الاتصال وتطبيقات المراسلة التي ينبغي وضع شارات عليها الشارة نفسها المستخدمة للإشارة إلى تطبيقات الملف الشخصي المُدار.
3.9.3 دعم المستخدمين المُدار
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.managed_users
، سيتم ما يلي:
- [C-1-1] يجب أن تتوفر للمستخدم إمكانية تسجيل الخروج من المستخدم الحالي
التبديل مرة أخرى إلى المستخدم الأساسي في جلسة متعددة المستخدمين عندما
isLogoutEnabled
بإرجاعtrue
. يجب أن تتوفر إمكانية الوصول إلى تكاليف المستخدم من شاشة القفل بدون فتح قفل الجهاز.
في حال كانت عمليات تنفيذ الأجهزة تشير إلى android.software.device_admin
وتقديم
إمكانية إضافة مستخدمين ثانويين آخرين على الجهاز فقط، يمكنهم:
- [C-SR-1] يُنصَح باستخدامها بشدة لعرض موافقة مالك جهاز AOSP نفسها الإفصاحات التي تم عرضها في التدفق الذي بدأه android.app.action.PROVISION_MANAGED_DEVICE، قبل السماح بإضافة الحسابات في حساب المستخدم الثانوي الجديد، حتى يدرك المستخدمون أن الجهاز مُدار.
3.9.4 متطلبات دور "إدارة سياسات الأجهزة"
إذا أبلغت عمليات تنفيذ الأجهزة عن android.software.device_admin
أو
android.software.managed_users
، وبعد ذلك:
- [C-1-1] يجب أن تتوافق مع دور إدارة سياسة الجهاز على النحو المحدّد في.
القسم 9.1. التطبيق الذي يتولى دور إدارة سياسة الجهاز
قد يتم تحديدها من خلال ضبط
config_devicePolicyManagement
على اسم الحزمة. يجب أن يتبع اسم الحزمة:
وشهادة التوقيع ما لم يتم تحميل التطبيق مسبقًا.
إذا لم يتم تحديد اسم حزمة لـ config_devicePolicyManagement
على أنّه
الموضحة أعلاه:
- [C-2-1] يجب أن توفِّر عمليات تنفيذ الأجهزة توفير المتطلبات اللازمة بدون استخدام جهاز تطبيقات صاحب دور إدارة السياسات (توفّر AOSP عملية تنفيذ مرجعية).
في حال تحديد اسم حزمة لـ config_devicePolicyManagement
كما هو موضّح
أعلاه:
- [C-3-1] يجب تثبيت التطبيق على جميع الملفات الشخصية بالنسبة إلى المستخدم.
- [C-3-2] من الممكن أن تحدد عمليات تنفيذ الأجهزة تطبيقًا يحدِّث
صاحب دور إدارة سياسة الجهاز قبل توفير المتطلبات اللازمة من خلال الإعداد
config_devicePolicyManagementUpdater
إذا تم تحديد اسم حزمة لـ config_devicePolicyManagementUpdater
باعتباره
الموضحة أعلاه:
- [C-4-1] يجب أن يكون التطبيق مثبتًا مسبقًا على الجهاز.
- [C-4-2] يجب أن ينفذ التطبيق فلتر أهداف يعمل على حل
android.app.action.UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER
بدء متطلبات جديدة
3.9.5 إطار عمل قرار تطبيق سياسات الجهاز
إذا أبلغت عمليات تنفيذ الأجهزة عن android.software.device_admin
أو
android.software.managed_users
، وبعد ذلك:
- [C-1-1] يجب حلّ التعارضات في سياسات الجهاز على النحو الموضَّح في إطار عمل دقة سياسة الجهاز
إنهاء المتطلبات الجديدة
3.10. تسهيل الاستخدام
يوفّر Android طبقة لتسهيل الاستخدام تساعد المستخدمين من ذوي الاحتياجات الخاصة على في التنقل على أجهزتهم بسهولة أكبر. بالإضافة إلى ذلك، يوفّر Android واجهات برمجة التطبيقات للأنظمة الأساسية التي تمكّن عمليات تنفيذ خدمة تسهيل الاستخدام من تلقّي استدعاءات وأحداث النظام وإنشاء آليات تعليقات بديلة، مثل تحويل النص إلى كلام، والتجاوب الحسّي، والتنقل باستخدام كرة التعقب/لوحة التحكّم.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع خدمات إمكانية الوصول التابعة لجهات خارجية، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يوفر تنفيذًا لإمكانية الوصول في Android إطار عمل كما هو موضح في واجهات برمجة تطبيقات Accessibility API مستندات حزمة SDK.
- [C-1-2] إنشاء أحداث لإمكانية الوصول وتقديم
AccessibilityEvent
إلى الكل المسجَّلينAccessibilityService
عمليات التنفيذ كما هو موثّق في حزمة تطوير البرامج (SDK) - [C-1-4] يجب أن يوفر للمستخدم القدرة على التحكم في إمكانية الوصول الخدمات التي تعلن عن AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_Button لاحظ أنه بالنسبة لعمليات تنفيذ الأجهزة باستخدام شريط تنقل النظام، يجب أن تسمح للمستخدم بالحصول على خيار زر في نافذة شريط التنقل للتحكم في هذه الخدمات.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن خدمات إمكانية وصول مثبَّتة مسبقًا، سيحدث ما يلي:
- [C-2-1] يجب تنفيذ خدمات تسهيل الاستخدام هذه المثبَّتة مسبقًا التعرّف على التشغيل المباشر لميزة التشغيل المباشر تطبيقات عند تشفير تخزين البيانات باستخدام التشفير المستند إلى الملف (FBE).
- يجب توفير آلية في مسار الإعداد غير الجاهز لتمكين المستخدمين وخدمات تسهيل الاستخدام ذات الصلة، بالإضافة إلى خيارات ضبط حجم الخط حجم العرض وإيماءات التكبير.
3.11. تحويل النص إلى كلام
يشتمل Android على واجهات برمجة تطبيقات تسمح للتطبيقات باستخدام ميزة تحويل النص إلى كلام. (TTS) ويسمح لمقدمي الخدمات بتوفير تحويل النص إلى كلام (TTS)
إذا كانت عمليات تنفيذ الجهاز تبلغ عن الميزة android.hardware.audio.output، وهي:
- [C-1-1] يجب أن يتيح إطار عمل ميزة "تحويل النص إلى كلام" في Android واجهات برمجة التطبيقات.
إذا كانت عمليات تنفيذ الأجهزة تتيح تثبيت محركات تحويل النص إلى كلام التابعة لجهات خارجية، فإنها:
- [C-2-1] يجب أن يوفر المستخدم القدرة على السماح له باختيار تحويل النص إلى كلام للاستخدام على مستوى النظام.
3.12. إطار عمل إدخال التلفزيون
يبسّط إطار عمل إدخال التلفزيون من Android (TIF) عرض أحداث البث المباشر المحتوى إلى أجهزة تلفزيون Android. ويوفر TIF واجهة برمجة تطبيقات قياسية لإنشاء وحدات الإدخال التي تتحكم في أجهزة تلفزيون Android.
في حال كانت عمليات تنفيذ الأجهزة تتوافق مع TIF، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يعلن عن ميزة المنصة
android.software.live_tv
. - [C-1-2] يجب أن يتوافق مع جميع واجهات برمجة تطبيقات TIF مثل أي تطبيق يستخدم واجهات برمجة التطبيقات هذه والإدخالات المستندة إلى TIF التابعة لجهات خارجية خدمة Google Cloud واستخدامها على الجهاز.
3.13. الإعدادات السريعة
يوفّر Android مكوّنًا في واجهة المستخدم للإعدادات السريعة يتيح الوصول السريع إلى تُستخدم بشكل متكرر أو مطلوبة بشكل عاجل.
إذا كانت عمليات تنفيذ الجهاز تتضمن مكوّنًا لواجهة مستخدم "الإعدادات السريعة" وتتوافق مع تطبيقات جهات خارجية الإعدادات السريعة، وهي:
- [C-1-1] يجب أن يسمح للمستخدم بإضافة أو إزالة الفئات المتوفرة من خلال
quicksettings
واجهات برمجة التطبيقات من تطبيق تابع لجهة خارجية - [C-1-2] يجب عدم إضافة مربّع تلقائيًا من تطبيق تابع لجهة خارجية مباشرةً إلى "الإعدادات السريعة"
- [C-1-3] يجب عرض جميع المربّعات التي يضيفها المستخدم من تطبيقات الجهات الخارجية إلى جانب مربّعات الإعدادات السريعة التي يوفّرها النظام
3.14. واجهة مستخدم الوسائط
إذا كانت عمليات تنفيذ الجهاز تتضمن تطبيقات لا يتم تفعيلها عبر الصوت (التطبيقات) تتفاعل مع
تطبيقات تابعة لجهات خارجية من خلال MediaBrowser
أو MediaSession
،
التطبيقات:
[C-1-2] يجب أن تعرض بوضوح الرموز التي تم الحصول عليها عبر
getIconBitmap()
أوgetIconUri()
والعناوين التي تم الحصول عليها من خلالgetTitle()
كما هو موضّح فيMediaDescription
. ويمكن أيضًا تقصير العناوين للالتزام بلوائح السلامة (مثل تشتيت السائق).[C-1-3] يجب أن يعرض رمز تطبيق الجهة الخارجية عند عرض المحتوى المقدم من هذا التطبيق التابع للجهة الخارجية.
[C-1-4] يجب أن يسمح للمستخدم بالتفاعل مع
MediaBrowser
بالكامل التسلسل الهرمي. قد تحظر إمكانية الوصول إلى جزء من التسلسل الهرمي التزامًا بلوائح السلامة. (مثل تشتيت السائق)، ولكن يجب ألا تعطي معاملة تفضيلية استنادًا إلى المحتوى أو المحتوى.[C-1-5] يجب التفكير في النقر المزدوج
KEYCODE_HEADSETHOOK
أوKEYCODE_MEDIA_PLAY_PAUSE
باسمKEYCODE_MEDIA_NEXT
لـMediaSession.Callback#onMediaButtonEvent
.
3.15. التطبيقات الفورية
إذا كانت عمليات تنفيذ الأجهزة تتيح استخدام التطبيقات الفورية، يجب أن تستوفي المتطلبات التالية المتطلبات:
- [C-1-1] يجب منح التطبيقات الفورية الأذونات التي تتضمن الأذونات
android:protectionLevel
مضبوطة على"instant"
- [C-1-2] يجب ألا تتفاعل التطبيقات الفورية مع التطبيقات المثبَّتة عبر الأهداف الضمنية.
ما لم ينطبق أي مما يلي:
- تم الكشف عن فلتر نمط intent للمكوِّن ويحتوي على CATEGORY_BROWSABLE
- الإجراء هو أحد ACTION_SEND أو ACTION_SENDTO أو ACTION_SEND_MULTIPLE
- يتم عرض الاستهداف بشكل صريح باستخدام android:visibleToInstantApps
- [C-1-3] يجب ألا تتفاعل التطبيقات الفورية بشكل صريح مع التطبيقات المثبَّتة ما لم إظهار المكوِّن من خلال android:visibleToInstantApps.
- [C-1-4] يجب ألا ترى التطبيقات المثبّتة تفاصيل التطبيقات الفورية على ما لم يتصل التطبيق الفوري بشكل صريح تطبيق مثبت.
يجب أن توفر عمليات تنفيذ الأجهزة الخصائص التالية للمستخدم للتفاعل مع التطبيقات الفورية يلبي "الشريك المعتمد من Google للناشرين" (AOSP) المتطلبات مع واجهة مستخدم النظام التلقائية والإعدادات ومشغّل التطبيقات عمليات تنفيذ الأجهزة:
- [C-1-5] يجب أن يوفر للمستخدم إمكانية عرض التطبيقات الفورية وحذفها التخزين المؤقت محليًا لكل حزمة تطبيق فردية.
- [C-1-6] يجب تقديم إشعار دائم للمستخدم يمكن
يتم التصغير أثناء تشغيل تطبيق فوري في المقدّمة. هذا المستخدم
يجب أن يتضمّن الإشعار أنّ التطبيقات الفورية لا تتطلّب التثبيت.
وتوفر قدرة المستخدم التي توجه المستخدم إلى التطبيق
المعلومات في "الإعدادات" بالنسبة إلى التطبيقات الفورية التي يتم إطلاقها من خلال أهداف الويب، بالنسبة إلى
باستخدام هدف مع ضبط إجراء على
Intent.ACTION_VIEW
بمخطط "http" أو "https"، وهي ميزة إضافية للمستخدم "يجب" السماح للمستخدم بعدم تشغيل التطبيق الفوري تشغيل الرابط المرتبط بمتصفح الويب الذي تم إعداده، إذا كان المتصفح متوفّرة على الجهاز - [C-1-7] يجب السماح بتشغيل التطبيقات الفورية للوصول إليها من "العناصر الأخيرة" إذا كانت وظيفة "الأخيرة" متاحة على الجهاز.
[C-1-8] يجب إجراء تحميل مسبق لمكوّن خدمة أو تطبيق واحد أو أكثر إذا كان لديه معالج intent للعناصر المدرَجة في حزمة تطوير البرامج (SDK) هنا وجعل الأهداف مرئية للتطبيقات الفورية.
3.16. إقران الجهاز المصاحب
يتيح Android إمكانية إقران الأجهزة المصاحبة لإدارتها بفعالية أكبر.
الربط بالأجهزة المصاحبة وتوفير CompanionDeviceManager
واجهة برمجة تطبيقات تتيح للتطبيقات إمكانية استخدام هذه الميزة.
إذا كانت عمليات تنفيذ الأجهزة تتيح ميزة إقران الجهاز المصاحب، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يعلن عن علامة الميزة
FEATURE_COMPANION_DEVICE_SETUP
. - [C-1-2] يجب ضمان استخدام واجهات برمجة التطبيقات في
android.companion
تنفيذ الحزمة بالكامل. - [C-1-3] يجب أن يوفر المستخدم الخصائص الوظيفية للمستخدم لاختيار/تأكيد وجود مصاحب أن جهازك موجود وقابل للتشغيل.
3.17. تطبيقات ثقيلة الوزن
إذا كانت عمليات تنفيذ الأجهزة تشير إلى الميزة FEATURE_CANT_SAVE_STATE
،
فإنهم:
- [C-1-1] يجب أن يتضمن تطبيقًا واحدًا مثبّتًا يحدد
cantSaveState
في النظام في كل مرة. إذا كان المستخدم مغادرة هذا التطبيق بدون الخروج منه بشكل صريح (على سبيل المثال، عن طريق الضغط على المنزل مع ترك نشاط نشط للنظام، بدلاً من الضغط على الرجوع بدون أي أنشطة نشطة متبقية في النظام)، يجب أن تعطي عمليات تنفيذ الأجهزة الأولوية لهذا التطبيق في ذاكرة الوصول العشوائي (RAM) كما هو الحال مع الأشياء التي من المتوقع أن تظل قيد التشغيل، مثل الخدمات التي تعمل في المقدّمة. أثناء تشغيل هذا التطبيق في الخلفية، سيظل بإمكان النظام استخدام الطاقة. ميزات الإدارة القصوى لها، مثل تقييد الوصول إلى وحدة المعالجة المركزية (CPU) والشبكة. - [C-1-2] يجب أن توفر ميزة واجهة المستخدم لاختيار التطبيق الذي لن يكون
المشاركة في آلية الحفظ/الاستعادة بالحالة العادية بمجرد أن ينقر المستخدم
تعمل على تشغيل تطبيق ثانٍ تم الإعلان عنه باستخدام
cantSaveState
. - [C-1-3] يجب ألا يتم تطبيق تغييرات أخرى في السياسة على التطبيقات التي تحدد
cantSaveState
، مثل تغيير أداء وحدة المعالجة المركزية أو تغيير أولويات الجدولة.
في حال لم تكن عمليات تنفيذ الأجهزة تشير إلى الميزة
FEATURE_CANT_SAVE_STATE
،
فإنهم:
- [C-1-1] يجب أن يتجاهل
cantSaveState
التي تحددها التطبيقات ويجب ألا تغيّر سلوك التطبيق استنادًا إلى ذلك .
3.18. جهات اتصال Google
يتضمن Android
Contacts Provider
تسمح واجهات برمجة التطبيقات للتطبيقات بإدارة معلومات جهات الاتصال المخزَّنة على الجهاز.
عادةً ما تتم مزامنة بيانات جهات الاتصال التي يتم إدخالها مباشرةً في الجهاز
بخدمة ويب، ولكن قد تكون البيانات أيضًا محليًا على الجهاز فقط.
ويُشار إلى جهات الاتصال المخزَّنة على الجهاز فقط باسم المحلية.
جهات الاتصال
RawContacts
"مرتبطة بـ" أو "مخزنة في" CANNOT TRANSLATE
الحساب
عندما
ACCOUNT_NAME
,
أو
ACCOUNT_TYPE
،
تتطابق الأعمدة مع جهات الاتصال الأولية مع
اسم الحساب
أو
نوع الحساب
حقول الحساب.
حساب محلي تلقائي: حساب لجهات الاتصال الأولية التي يتم تخزينها على
الجهاز وغير مرتبط بحساب في
مدير الحساب،
والتي يتم إنشاؤها باستخدام القيم null
ACCOUNT_NAME
,
أو
ACCOUNT_TYPE
,
والأعمدة.
حساب محلي مخصص: حساب لجهات الاتصال الأولية المخزنة على
ولا يكون مرتبطًا بحساب في مدير الحساب، وهي
تم إنشاؤه باستخدام قيمة واحدة غير فارغة على الأقل
ACCOUNT_NAME
,
أو
ACCOUNT_TYPE
،
والأعمدة.
عمليات تنفيذ الأجهزة:
- [C-SR-1] يُنصح بشدة بعدم إنشاء حسابات محلية مخصّصة.
إذا كانت عمليات تنفيذ الأجهزة تستخدم حسابًا محليًا مخصّصًا:
- [C-1-1]
ACCOUNT_NAME
، من الحساب المحلي المخصص يجب إرجاعه من خلالContactsContract.RawContacts.getLocalAccountName
- [ج-1-2]
ACCOUNT_TYPE
، من الحساب المحلي المخصص يجب إرجاعه من خلالContactsContract.RawContacts.getLocalAccountType
- [C-1-3] جهات الاتصال الأولية التي يتم إدراجها بواسطة تطبيقات الجهات الخارجية باستخدام
الحساب المحلي التلقائي (أي من خلال ضبط قيم فارغة
ACCOUNT_NAME
وACCOUNT_TYPE
) يجب إدراجهما في المُحلي المخصص الحساب. - [C-1-4] يجب عدم إدراج جهات الاتصال الأولية المدرجة في الحساب المحلي المخصص إزالتها عند إضافة حسابات أو إزالتها.
- [C-1-5] حذف العمليات التي تم إجراؤها في الحساب المحلي المخصّص
يجب أن تتم إزالة جهات الاتصال الأولية فورًا (كما لو كانت
CALLER_IS_SYNCADAPTER
تم ضبط المعلمة على "صحيح")، حتى إذا تم ضبط المعلمة "CALLER\_IS\_SYNCADAPTER
" إلى false أو غير محدد.
4. توافق حزمة التطبيقات
عمليات تنفيذ الأجهزة:
يجب أن يتمكن [C-0-1] من تثبيت " .apk" على نظام التشغيل Android وتشغيله. الملفات باسم التي تم إنشاؤها بواسطة "aapt" الأداة المضمنة في قسم حزمة SDK الرسمية لنظام التشغيل Android
- ونظرًا لأن المطلب أعلاه قد يمثل تحديًا، فإن عمليات تنفيذ الأجهزة يُنصَح باستخدام إدارة الحزمة الخاصة بتنفيذ مرجع AOSP. .
[C-0-2] يجب أن يتيح التحقق من " .apk" الملفات باستخدام الإصدار 3.1 من مخطّط توقيع حزمة APK الإصدار 3 من مخطّط توقيع حِزم APK الإصدار 2 من مخطّط توقيع حِزم APK وتوقيع JAR
[C-0-3] يجب ألا يوسع أيًا من .apk بيان Android، رمز بايت دالفيك تنسيقات رمز البايت RenderScript بطريقة تمنع هذه الملفات من تثبيته وتشغيله بشكل صحيح على الأجهزة المتوافقة الأخرى.
[C-0-4] يجب ألا يسمح بتطبيقات أخرى غير التطبيقات الحالية "أداة تثبيت مساحة التخزين" أن تلغي الحزمة التطبيق تلقائيًا بدون أي تأكيد المستخدم، كما هو موثق في حزمة تطوير البرامج (SDK)
DELETE_PACKAGE
إذن. الاستثناءات الوحيدة هي معالجة تطبيق أداة التحقّق من حزمة النظام. PACKAGE_NEEDS_VERIFICATION النية بالشراء ومعالجة تطبيق "مدير مساحة التخزين" ACTION_MANAGE_STORAGE والنية.[C-0-5] يجب أن يكون له نشاط يعالج
android.settings.MANAGE_UNKNOWN_APP_SOURCES
والنية.[C-0-6] يجب ألا يتم تثبيت حزم التطبيقات من شبكة غير معروفة المصادر، ما لم يكن التطبيق الذي يطلب التثبيت تستوفي جميع المتطلبات التالية:
- يجب أن يفصح عن
REQUEST_INSTALL_PACKAGES
أو ضبطandroid:targetSdkVersion
على 24 أو أقل. - يجب أن يحصل المستخدم على إذن لتثبيت التطبيقات من المصادر غير المعروفة.
- يجب أن يفصح عن
ينبغي أن تمنح المستخدم القدرة على منح/إبطال الإذن إلى تثبيت تطبيقات من مصادر غير معروفة لكل تطبيق، ولكن قد يختار تنفيذها عدم اتخاذ إجراء، وإرجاع "
RESULT_CANCELED
"startActivityForResult()
, إذا كان تنفيذ الجهاز لا يريد السماح للمستخدمين بالحصول على هذا الخيار. ومع ذلك، حتى في مثل هذه الحالات، يجب أن توضح للمستخدم سبب عدم وجود تم تقديم هذا الخيار.[C-0-7] يجب عرض مربع حوار تحذيري مع سلسلة التحذير المقدّمة من خلال واجهة برمجة تطبيقات النظام
PackageManager.setHarmfulAppWarning
إلى المستخدم قبل تشغيل نشاط في أحد التطبيقات التي تم تمييزها بعلامة باستخدام واجهة برمجة تطبيقات النظامPackageManager.setHarmfulAppWarning
نفسها كما هو وارد ضارة.توفير إمكانية اختيار إلغاء تثبيت تطبيق أو تشغيله للمستخدم التطبيق في مربع حوار التحذير.
[C-0-8] يجب أن تنفيذ الدعم لنظام الملفات التزايدي كما هو موثق هنا.
يجب أن يتيح [C-0-9] إثبات ملكية ملفات .apk باستخدام الإصدار 4 من مخطّط توقيع حِزم APK. الإصدار 4.1 من مخطّط توقيع حزمة APK
5. توافق الوسائط المتعددة
عمليات تنفيذ الأجهزة:
- يجب أن يتيح [C-0-1] استخدام تنسيقات الوسائط وبرامج الترميز وبرامج فك الترميز وأنواع الملفات.
بتنسيقات الحاويات المحدّدة في القسم 5.1
لكل برنامج ترميز تم تحديده في
MediaCodecList
. - [C-0-2] يجب الإعلان عن دعم برامج الترميز وفك الترميز المتوفرة والإبلاغ عنها.
إلى تطبيقات تابعة لجهات خارجية عبر
MediaCodecList
- [C-0-3] يجب أن يكون قادرًا على فك ترميز المحتوى بشكل صحيح وإتاحتها للجهات الخارجية
التطبيقات بجميع التنسيقات التي يمكنها ترميزها. ويشمل ذلك كل مجموعات البث التي
تُنشئه برامج الترميز والملفات الشخصية المذكورة في
CamcorderProfile
عمليات تنفيذ الأجهزة:
- ينبغي أن تهدف إلى الحد الأدنى لوقت استجابة برنامج الترميز، أو بعبارةٍ أخرى،
- يجب عدم استهلاك المخازن المؤقتة للإدخال وتخزينها وإرجاع المخازن المؤقتة للإدخال فقط بمجرد معالجتها.
- "ينبغي ألا" يتم الاحتفاظ بالمخازن المؤقتة التي تم فك ترميزها لفترة أطول مما هو محدد بواسطة (مثل SPS).
- يجب ألا يتم الاحتفاظ بالموردين الاحتياطية المشفَّرة لفترة أطول مما تطلبه مجموعة GOP. البنية.
يتم توفير جميع برامج الترميز المدرجة في القسم أدناه كبرامج في التنفيذ المفضّل لنظام Android من واجهة Android Open المشروع المصدر:
يُرجى ملاحظة أنّه لا تتولى Google أو تحالف Open Handset Alliance أي أن برامج الترميز هذه مجانية من براءات الاختراع التابعة لجهات خارجية. تلك يُنصَح باستخدام رمز المصدر هذا في منتجات الأجهزة أو البرامج أن تنفيذ هذه التعليمة البرمجية، بما في ذلك البرامج المفتوحة المصدر أو برامج تجريبية، أو قد تتطلب تراخيص براءات الاختراع من مالكي براءات الاختراع المعنيين.
5.1. برامج ترميز الوسائط
5.1.1. ترميز الصوت
يمكنك الاطّلاع على مزيد من التفاصيل في 5.1.3. تفاصيل برامج ترميز الصوت
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone
،
يجب أن تدعم ترميز تنسيقات الصوت التالية وإتاحتها
إلى تطبيقات تابعة لجهات خارجية:
- [C-1-1] PCM/WAVE
- [C-1-2] FLAC
- [C-1-3] Opus
يجب أن تتوافق كل برامج ترميز الصوت مع:
- [C-3-1] إطارات صوت PCM ذات ترتيب 16 بت أصلية عبر
android.media.MediaCodec
واجهة برمجة التطبيقات.
5.1.2. فك ترميز الصوت
يمكنك الاطّلاع على مزيد من التفاصيل في 5.1.3. تفاصيل برامج ترميز الصوت
إذا كانت عمليات تنفيذ الأجهزة تشير إلى توافقها مع
android.hardware.audio.output
، يجب أن توفّر هذه الميزة فك ترميز
التنسيقات الصوتية التالية:
- [C-1-1] ملف تعريف MPEG-4 AAC (AAC LC)
- [C-1-2] ملف تعريف MPEG-4 HE AAC (AAC+ )
- [C-1-3] ملف MPEG-4 HE AACv2 الشخصي (الإصدار AAC+ المحسّن)
- [C-1-4] AAC ELD (معيار AAC منخفض ومحسّن)
- [C-1-11] xHE-AAC (وفقًا لمعيار ISO/IEC 23003-3 Extended HE AAC Profile، والذي يتضمّن الملف التعريفي الأساسي في USAC، والنطاق الديناميكي ISO/IEC 23003-4 الملف الشخصي للتحكم)
- [C-1-5] FLAC
- [C-1-6] MP3
- [C-1-7] MIDI
- [C-1-8] Vorbis
- [C-1-9] PCM/WAVE تشمل صوتًا عالي الدقة بتنسيقات تصل إلى 24 بت، ومعدل بيانات 192 كيلوهرتز، و8 قنوات. تجدر الإشارة إلى أنّ هذا الشرط خاص بفك الترميز فقط، وأنّ الجهاز يُسمح بتقليل العينات وتقليلها أثناء مرحلة التشغيل.
- [C-1-10] Opus
إذا كانت تطبيقات الأجهزة تدعم فك ترميز المخازن المؤقتة لإدخالات AAC
مجموعات بث متعددة القنوات (أي أكثر من قناتين) إلى PCM من خلال الإعداد التلقائي
برنامج فك ترميز الصوت AAC في واجهة برمجة تطبيقات android.media.MediaCodec
، يجب أن يكون ما يلي:
مدعوم:
- [C-2-1] يجب تنفيذ فك الترميز بدون تقليل الاختزال (مثلاً، 5.0 AAC يجب فك ترميز مجموعة البث إلى خمس قنوات من PCM، ويجب فك ترميز مجموعة البث بتنسيق 5.1 AAC. إلى ست قنوات من PCM).
- [C-2-2] يجب أن تكون البيانات الوصفية للنطاق الديناميكي على النحو المحدّد في "التحكّم في النطاق الديناميكي".
(جمهورية الكونغو الديمقراطية)" في ISO/IEC 14496-3 ومفاتيح DRC لـ
android.media.MediaFormat
إعداد السلوكيات ذات الصلة بالنطاق الديناميكي في برنامج فك ترميز الصوت. تشير رسالة الأشكال البيانية تم تقديم مفاتيح AAC DRC في واجهة برمجة التطبيقات 21، وهي:KEY_AAC_DRC_ATTENUATION_FACTOR
،KEY_AAC_DRC_BOOST_FACTOR
،KEY_AAC_DRC_HEAVY_COMPRESSION
وKEY_AAC_DRC_TARGET_REFERENCE_LEVEL
وKEY_AAC_ENCODED_TARGET_LEVEL
- [C-SR-1] يُوصى بشدة بأن تكون المتطلبات C-2-1 وC-2-2 المذكورة أعلاه عن طريق كل برامج فك ترميز الصوت AAC
عند فك ترميز صوت USAC، تنسيق MPEG-D (ISO/IEC 23003-4):
- [C-3-1] يجب تفسير البيانات الوصفية لارتفاع الصوت وجمهورية الكونغو الديمقراطية وتطبيقها وفقًا للمستوى 1 من ملف تعريف التحكم في النطاق الديناميكي في MPEG-D DRC.
- [C-3-2] يجب أن تعمل أداة فك الترميز وفقًا للإعدادات.
باستخدام مفاتيح
android.media.MediaFormat
التالية:KEY_AAC_DRC_TARGET_REFERENCE_LEVEL
وKEY_AAC_DRC_EFFECT_TYPE
برامج فك ترميز الملف الشخصي MPEG-4 AAC وHE AAC وHE AACv2:
- قد تتوفّر إمكانية التحكّم في مستوى ارتفاع الصوت والنطاق الديناميكي باستخدام ISO/IEC 23003-4. ملف تعريف التحكم في النطاق الديناميكي.
في حال اعتماد ISO/IEC 23003-4 وإذا كان كل من ISO/IEC 23003-4 تتوفّر البيانات الوصفية وفقًا لمعيار ISO/IEC 14496-3 في بث بت مباشر تم فك ترميزه، وعندئذٍ:
- ستكون الأولوية للبيانات الوصفية ISO/IEC 23003-4.
يجب أن تتيح جميع برامج فك ترميز الصوت إخراج:
- [C-6-1] إطارات صوت PCM ذات ترتيب 16 بت أصلية عبر
android.media.MediaCodec
واجهة برمجة التطبيقات.
إذا كانت تطبيقات الأجهزة تدعم فك ترميز المخازن المؤقتة لإدخالات AAC
مجموعات بث متعددة القنوات (أي أكثر من قناتين) إلى PCM من خلال الإعداد التلقائي
برنامج فك ترميز الصوت AAC في واجهة برمجة تطبيقات android.media.MediaCodec
، يجب عندها ما يلي:
:
- [C-7-1] يجب أن يتمكن التطبيق من إعداده باستخدام فك الترميز
بالمفتاح
KEY_MAX_OUTPUT_CHANNEL_COUNT
للتحكّم في تقليل مزج المحتوى إلى صوت استيريو (عند استخدام القيمة 2) أو الناتج باستخدام العدد الأصلي للقنوات (عند استخدام قيمة تساوي أو أكبر من هذا الرقم). على سبيل المثال، ستؤدي القيمة 6 أو أكبر إلى تكوين برنامج فك الترميز لإخراج 6 قنوات عند إدخال محتوى 5.1. - [C-7-2] عند فك الترميز، يجب أن يعلن برنامج فك الترميز عن قناع القناة المُستخدَم
على تنسيق الإخراج
KEY_CHANNEL_MASK
باستخدام ثوابتandroid.media.AudioFormat
(مثال:CHANNEL_OUT_5POINT1
).
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برامج فك ترميز الصوت بخلاف برامج الترميز AAC التلقائية برنامج فك ترميز الصوت وقدرته على إخراج مقاطع صوتية متعددة القنوات (أي أكثر من قناتان) عند معالجة المحتوى المضغوط المتعدد القنوات، عندئذ:
- [C-SR-2] يُنصح بشدة بأن تتم تهيئة برنامج فك الترميز من خلال
تطبيقًا باستخدام فك التشفير باستخدام المفتاح
KEY_MAX_OUTPUT_CHANNEL_COUNT
للتحكّم في تقليل مزج المحتوى إلى صوت استيريو (عند استخدام القيمة 2) أو الناتج باستخدام العدد الأصلي للقنوات (عند استخدام قيمة تساوي أو أكبر من هذا الرقم). على سبيل المثال، ستؤدي القيمة 6 أو أكبر إلى تكوين برنامج فك الترميز لإخراج 6 قنوات عند إدخال محتوى 5.1. - [C-SR-3] عند فك الترميز، ننصح بشدة أداة فك الترميز بالإعلان عن
قناع القناة المُستخدَم في تنسيق الإخراج
KEY_CHANNEL_MASK
باستخدام ثوابت android.media.AudioFormat (مثال:CHANNEL_OUT_5POINT1
).
5.1.3. تفاصيل برامج ترميز الصوت
التنسيق/برنامج الترميز | التفاصيل | أنواع الملفات/تنسيقات الحاويات المطلوبة |
---|---|---|
ملف MPEG-4 AAC الشخصي (AAC LC) |
إتاحة المحتوى الأحادي/استيريو/5.0/5.1 مع معيار لأخذ عينات من 8 إلى 48 كيلوهرتز. |
|
ملف تعريف MPEG-4 HE AAC (AAC+ ) | إتاحة المحتوى الأحادي/استيريو/5.0/5.1 مع معيار معدلات أخذ العينات من 16 إلى 48 كيلوهرتز. |
|
MPEG-4 HE AACv2 الملف الشخصي (AAC+ المحسَّن) |
إتاحة المحتوى الأحادي/استيريو/5.0/5.1 مع معيار معدلات أخذ العينات من 16 إلى 48 كيلوهرتز. |
|
AAC ELD (معيار AAC منخفض ومحسّن) | دعم المحتوى الأحادي/استيريو مع معدلات أخذ العينات القياسية من 16 إلى 48 كيلوهرتز |
|
الولايات المتحدة الأمريكية (USAC) | دعم المحتوى الأحادي/استيريو مع معدلات أخذ العينات القياسية من 7.35 إلى 48 كيلو هرتز. | MPEG-4 (.mp4 و .m4a) |
AMR-NB | 4.75 إلى 12.2 كيلوبت في الثانية، تم أخذ عينات من البيانات عند 8 كيلوهرتز | 3GPP (.3gp) |
AMR-WB | 9 معدّلات من 6.60 كيلوبت في الثانية إلى 23.85 كيلوبت في الثانية استنادًا إلى العيّنة بمعدّل 16 كيلوهرتز، وفقًا لما هو محدّد في AMR-WB، المعدّل المتعدد التكيّفي - برنامج ترميز الكلام بنطاق واسع النطاق | 3GPP (.3gp) |
FLAC | لكلّ من برنامج الترميز وفك الترميز: يجب ضبط الوضع "أحادي" و"استيريو" على الأقل يجب أن تكون معدلات العينات التي تصل إلى 192 كيلوهرتز متوافقة. 16 بت و24 بت الدقة إلى دعم البيانات. يجب أن تكون معالجة بيانات الصوت بتنسيق FLAC بسرعة 24 بت متوفّرة مع إعدادات صوت النقطة العائمة |
|
MP3 | ثابت/استيريو 8-320 كيلوبت في الثانية (CBR) أو معدل نقل بيانات متغير (VBR) |
|
MIDI | نوعا MIDI 0 و1. الإصدار 1 و2 من DLS. XMF وMobile XMF. الدعم لـ صيغ نغمات الرنين RTTTL/RTX وOTA وiMelody |
|
فوربيس | فك الترميز: دعم للمحتوى الأحادي والاستيريو و5.0 و5.1 مع أخذ العيّنات
معدلات 8000 و12000 و16000 و24000 و48,000 هرتز. الترميز: دعم المحتوى الأحادي ومحتوى الاستيريو مع معدلات أخذ العينات 8000 و12000 و16000 و24000 و48000 هرتز. |
|
تضمين نبضي مشفر (PCM)/موجة (موجة) | يجب أن يتوافق برنامج ترميز PCM مع تنسيق PCM خطي 16 بت ونموذج عائم 16 بت. موجة يجب أن يتوافق جهاز الاستخراج مع معيار PCM الخطي 16 بت و24 بت و32 بت وعدد عائم 32 بت (معدلات تصل إلى حد الأجهزة). يجب أن تكون معدلات أخذ العينات متاحة من من 8 كيلوهرتز إلى 192 كيلوهرتز | WAVE (.wav) |
Opus | فك الترميز: دعم للمحتوى الأحادي والاستيريو والإصدار 5.0 و5.1
بمعدلات عينات 8000 و12000 و16000 و24000 و48000 هرتز.
الترميز: دعم المحتوى الأحادي و الاستيريو بمعدلات عينات 8000 و12000 و16000 و24000 و48000 هرتز. |
|
5.1.4. ترميز الصور
يمكنك الاطّلاع على مزيد من التفاصيل في 5.1.6. تفاصيل برامج ترميز الصور.
يجب أن تدعم عمليات تنفيذ الأجهزة ترميز الصور التالي:
- [C-0-1] JPEG
- [C-0-2] PNG
- [C-0-3] WebP
بدء متطلبات جديدة
- [C-0-4] AVIF
- يجب أن تتوافق الأجهزة مع
BITRATE_MODE_CQ
والملف الشخصي الأساسي.
- يجب أن تتوافق الأجهزة مع
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع ترميز HEIC عبر android.media.MediaCodec
لنوع الوسائط MIMETYPE_IMAGE_ANDROID_HEIC
،
وهي:
- يجب أن يوفر [C-1-1] برنامج ترميز HEVC مسرَّع على الجهاز
يدعم
BITRATE_MODE_CQ
وضع التحكم في معدل نقل البياناتHEVCProfileMainStill
ملف شخصي وحجم إطار 512 × 512 بكسل
5.1.5. فك ترميز الصور
يمكنك الاطّلاع على مزيد من التفاصيل في 5.1.6. تفاصيل برامج ترميز الصور.
يجب أن تتيح عمليات تنفيذ الأجهزة فك ترميز الصور التالية:
- [C-0-1] JPEG
- [C-0-2] GIF
- [C-0-3] PNG
- [C-0-4] BMP
- [C-0-5] WebP
- [C-0-6] RAW
- [C-0-7] AVIF (الملف الشخصي الأساسي)
إذا كانت عمليات تنفيذ الأجهزة تتيح فك ترميز فيديو HEVC، سيتم إجراء ما يلي: * [C-1-1] يجب أن يتوافق مع فك ترميز صورة HEIF (HEIC).
برامج فك ترميز الصور التي تدعم تنسيقًا عاليًا البت (أكثر من 9 وحدات بت لكل قناة):
- [C-2-1] يجب أن يتيح إخراج تنسيق مكافئ له 8 بت إذا طلب ذلك من خلال
التطبيق، على سبيل المثال، عبر
ARGB_8888
إعدادandroid.graphics.Bitmap
.
5.1.6. تفاصيل برامج ترميز الصور
التنسيق/برنامج الترميز | التفاصيل | أنواع الملفات/تنسيقات الحاويات المتوافقة |
---|---|---|
JPEG | أساسي+تدريجي | JPEG (.jpg) |
ملف GIF | GIF (.gif) | |
PNG | PNG (.png) | |
BMP | BMP (.bmp) | |
تنسيق WebP | WebP (.webp) | |
عرض أوّلي | ARW (.arw) وCR2 (.cr2) وDNG (.dng) وNEF (.nef) وNRW (.nrw) وORF (.orf) PEF (.pef) وRAF (.raf) وRW2 (.rw2) وSRW (.srw) | |
ملف HEIF | الصور، مجموعة الصور، تسلسل الصور | HEIF (.heif) وHEIC (.heic) |
AVIF (الملف الشخصي الأساسي) | الصور، مجموعة الصور، الملف الشخصي الأساسي لتسلسل الصور | حاوية HEIF (.avif) |
برنامج ترميز الصور وفكّ الترميز الظاهرَين من خلال واجهة برمجة التطبيقات MediaCodec
[C-1-1] يجب أن يتوافق مع YUV420 8:8:8 اللون المرن (
COLOR_FormatYUV420Flexible
) إلىCodecCapabilities
.[C-SR-1] يُنصح بشدة بأن يتوافق مع تنسيق الألوان RGB888 لسطح الإدخال الحالي.
[C-1-3] يجب أن يدعم واحدًا على الأقل من مستوٍ أو شبه مستوٍ تنسيق الألوان YUV420 8:8:8:
COLOR_FormatYUV420PackedPlanar
(ما يعادلCOLOR_FormatYUV420Planar
) أوCOLOR_FormatYUV420PackedSemiPlanar
(ما يعادل علىCOLOR_FormatYUV420SemiPlanar
). موصى بها بشدة لدعم كليهما.
5.1.7. برامج ترميز الفيديو
- لضمان جودة مقبولة لبث الفيديو على الويب ومؤتمر الفيديو في خدمات الأجهزة، ينبغي أن تستخدم عمليات تنفيذ الأجهزة برنامج ترميز VP8 للأجهزة الذي يفي المتطلبات.
إذا كانت عمليات تنفيذ الأجهزة تشمل برنامجًا لفك ترميز الفيديوهات أو برنامج ترميز:
[C-1-1] يجب أن تتوافق برامج ترميز الفيديو مع أحجام مخزن البيانات المؤقت وإخراجه تستوعب أكبر إطار مضغوط وغير مضغوط على النحو المطلوب وفقًا للمعيار والتهيئة ولكن ليس بشكل عام أيضًا.
[C-1-2] يجب أن تتوافق برامج ترميز الفيديو وفك ترميزها مع ألوان YUV420 8:8:8 المرنة. التنسيقات (
COLOR_FormatYUV420Flexible
) إلىCodecCapabilities
.[C-1-3] يجب أن تتوافق برامج ترميز الفيديو وفك ترميزها مع جهاز واحد على الأقل. تنسيق الألوان YUV420 شبه المستوى 8:8:8:
COLOR_FormatYUV420PackedPlanar
(ما يعادلCOLOR_FormatYUV420Planar
) أوCOLOR_FormatYUV420PackedSemiPlanar
(ما يعادلCOLOR_FormatYUV420SemiPlanar
). يُوصى بها بشدة لدعم كلا الخيارين.[C-SR-1] يُنصح بشدة باستخدام برامج ترميز الفيديو وفك ترميزها قطعة واحدة على الأقل من جهاز مستوٍ محسّن أو شبه مستوٍ YUV420 8:8:8 (YV12، أو NV12، أو NV21، أو أي تنسيق مكافئ للمورّد).
[C-1-5] برامج فك ترميز الفيديوهات التي تتوافق مع تنسيق بتات عميق يجب أن يدعم (9 بت لكل قناة) إخراج تنسيق مكافئ له 8 بت في حالة يطلبه التطبيق. ويجب أن ينعكس ذلك على إتاحة تنسيق الألوان YUV420 8:8:8 عبر
android.media.MediaCodecInfo
إذا كانت عمليات تنفيذ الأجهزة تُعلن عن دعم ملف HDR من خلال
Display.HdrCapabilities
،
وهي:
- [C-2-1] يجب أن يتيح تحليل البيانات الوصفية الثابتة بتقنية HDR ومعالجتها.
إذا كانت عمليات تنفيذ الأجهزة تُعلن عن دعم التحديث الداخلي من خلال
FEATURE_IntraRefresh
في MediaCodecInfo.CodecCapabilities
صنف، فإنها:
- [C-3-1] يجب أن تتوافق مع فترات إعادة التحميل في نطاق يتراوح بين 10 و60 لقطة. تعمل بدقة خلال 20% من فترة إعادة التحميل التي تم إعدادها.
ما لم يحدد التطبيق خلاف ذلك باستخدام KEY_COLOR_FORMAT
مفتاح التنسيق وعمليات فك ترميز الفيديو:
- [C-4-1] يجب أن يتم الضبط تلقائيًا على تنسيق الألوان المحسَّن لعرض الأجهزة إذا تم تكوينها باستخدام مخرجات السطح.
- [C-4-2] يجب أن يتم ضبط الإعدادات التلقائية على تنسيق الألوان YUV420 8:8:8 المحسَّن لوحدة المعالجة المركزية (CPU). إذا تم إعداده بحيث لا يستخدم إخراج Surface.
5.1.8. قائمة برامج ترميز الفيديو
التنسيق/برنامج الترميز | التفاصيل | أنواع الملفات/تنسيقات الحاويات المطلوبة |
---|---|---|
بروتوكول H.263 |
|
|
H.264 AVC | راجع القسم 5.2 5.3 للاطّلاع على التفاصيل |
|
H.265 HEVC | راجِع القسم 5.3 لمعرفة التفاصيل. |
|
MPEG-2 | الجودة الرئيسية |
|
MPEG-4 SP |
|
|
نموذج الفيديو 8 (VP8) | راجع القسم 5.2 5.3 للاطّلاع على التفاصيل |
|
نموذج الفيديو 9 (VP9) | راجِع القسم 5.3 لمعرفة التفاصيل. |
|
AV1 | اطّلِع على القسم 5.2 والقسم 5.3 للحصول على التفاصيل. |
|
5.1.9. أمان برنامج ترميز الوسائط
يجب أن تضمن عمليات تنفيذ الأجهزة التوافق مع ميزات أمان برنامج ترميز الوسائط كما هو موضح أدناه.
يشمل Android دعم OMX، وهي واجهة برمجة تطبيقات لتسريع الوسائط المتعددة عبر الأنظمة الأساسية، بالإضافة إلى Codec 2.0، وهي واجهة برمجة تطبيقات تسريع وسائط متعددة منخفضة الأداء.
إذا كانت تطبيقات الأجهزة تدعم الوسائط المتعددة،:
- [C-1-1] يجب أن يتم توفير الدعم لبرامج ترميز الوسائط إما من خلال OMX أو Codec 2.0 واجهات برمجة التطبيقات (أو كليهما) كما هو الحال في المشروع المفتوح المصدر لنظام Android ولا يجب إيقافها أو التحايل على وسائل الحماية الأمنية. هذا لا يعني على وجه التحديد أن كل يجب أن يستخدم برنامج الترميز OMX أو Codec 2.0 API، وأن يتيح فقط استخدام يجب أن تتوفر إحدى واجهات برمجة التطبيقات هذه، ويجب أن يتوفر الدعم لواجهات برمجة التطبيقات المتاحة وسائل الحماية الأمنية الموجودة.
- [C-SR-1] يُنصَح بشدة بتضمين إمكانية استخدام واجهة برمجة التطبيقات Codec 2.0 API
إذا لم تكن عمليات تنفيذ الأجهزة متوافقة مع واجهة برمجة التطبيقات Codec 2.0 API، سيحدث ما يلي:
- [C-2-1] يجب أن يتضمن برنامج ترميز برنامج OMX المقابل من نظام التشغيل Android. مشروع مفتوح المصدر (إن كان متاحًا) لكل تنسيق ونوع وسائط (برنامج ترميز أو برنامج فك الترميز) يتوافق مع الجهاز.
- [C-2-2] برامج الترميز التي تبدأ أسماؤها بـ "OMX.google" يجب أن يكون مستندًا إلى على رمز مصدر المشروع المفتوح المصدر لنظام Android
- [C-SR-2] يُنصح بشدة بتشغيل برامج ترميز برامج OMX في برنامج ترميز. عملية لا يمكنها الوصول إلى برامج تشغيل الأجهزة بخلاف مصممي خرائط الذاكرة.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع واجهة برمجة التطبيقات Codec 2.0 API، سيحدث ما يلي:
- يجب أن يشتمل [C-3-1] على برنامج ترميز البرنامج المقابل لبرنامج Codec 2.0 من "مشروع مفتوح المصدر لنظام Android" (إذا كان متاحًا) لكل تنسيق ونوع وسائط (برنامج ترميز أو برنامج فك الترميز) يتوافق مع الجهاز.
- [C-3-2] يجب أن يحتوي على برامج ترميز البرنامج Codec 2.0 في برنامج الترميز. كما هو منصوص عليه في "المشروع المفتوح المصدر لنظام Android" لمنح إمكانية الوصول إلى برامج ترميز البرامج على نطاق أوسع
- [C-3-3] برامج الترميز التي تبدأ أسماؤها بـ "c2.android" يجب أن يكون مستندًا إلى على رمز مصدر المشروع المفتوح المصدر لنظام Android
5.1.10. وصف برنامج ترميز الوسائط
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برامج ترميز الوسائط، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتم عرض القيم الصحيحة لترميز برنامج ترميز الوسائط عبر
MediaCodecInfo
واجهة برمجة التطبيقات.
ويشمل ذلك على وجه الخصوص:
- [C-1-2] برامج الترميز التي تبدأ أسماؤها بـ "OMX" يجب استخدام واجهات برمجة تطبيقات OMX وأن يكون لها أسماء تتوافق مع إرشادات التسمية الخاصة بـ OMX IL.
- [C-1-3] برامج الترميز التي تبدأ أسماؤها بـ "c2" أن يستخدم واجهة برمجة التطبيقات Codec 2.0 API لها أسماء تتوافق مع إرشادات التسمية في Codec 2.0 لنظام التشغيل Android.
- [C-1-4] برامج الترميز التي تبدأ أسماؤها بـ "OMX.google" أو "c2.android". يجب ألا يتم وصفها كمورِّد أو مسرَّعة باستخدام الأجهزة.
- [C-1-5] برامج الترميز التي يتم تشغيلها في عملية ترميز (المورِّد أو النظام) والتي يجب ألا يكون الوصول إلى برامج تشغيل الأجهزة بخلاف مخصصات الذاكرة واضعي الخرائط على أنها برامج فقط.
- [C-1-6] برامج الترميز غير المتوفّرة في المشروع المفتوح المصدر لنظام Android أو غير المستندة إليه في التعليمات البرمجية المصدر في هذا المشروع يجب أن يتم وصفها كمورّد.
- [C-1-7] يجب أن يتم وصف برامج الترميز التي تستخدم تسريع الأجهزة مثل تسريع الأجهزة.
- [C-1-8] يجب ألا تكون أسماء برامج الترميز مضلِّلة. على سبيل المثال، برامج الترميز المسماة "برامج فك الترميز" يجب أن يدعم فك الترميز وتلك التي تحمل اسم "برامج الترميز". يجب تقديم الدعم الترميز. يجب أن تتوافق برامج الترميز ذات الأسماء التي تحتوي على تنسيقات الوسائط مع هذه والتنسيقات.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برامج ترميز الفيديو:
- [C-2-1] يجب أن تنشر جميع برامج ترميز الفيديو بيانات قابلة للتحقيق في عدد اللقطات في الثانية الأحجام التالية إذا كان برنامج الترميز متوافقًا:
SD (جودة منخفضة) | SD (جودة عالية) | دقة عالية - 720p | دقة عالية - 1080p | دقة فائقة | |
---|---|---|---|---|---|
دقة الفيديو |
|
|
|
1920 × 1080 بكسل (باستثناء MPEG4 وAV1) | 3840 × 2160 بكسل (HEVC وVP9 وAV1) |
- [C-2-2] يجب أن يتم وصف برامج ترميز الفيديو التي يتم وصفها كأجهزة مسرَّعة
ونشر معلومات نقاط الأداء. يجب أن تكون كل القوائم متوافقة
نقاط الأداء العادية (مُدرَجة في
PerformancePoint
واجهة برمجة التطبيقات)، ما لم تكن مشمولة بنقطة أداء عادية أخرى متوافقة. - بالإضافة إلى ذلك، عليه نشر نقاط أداء إضافية إذا تدعم أداءً مستدامًا للفيديو بخلاف الأداء القياسي المدرج.
5.2. ترميز الفيديو
- ينبغي ألا يزيد عن نافذتين منزلقتين، وأن يتجاوز معدل نقل البيانات بنسبة 15% بين الفواصل الزمنية داخل الإطار (I-frame).
- يجب ألا يزيد معدل نقل البيانات عن 100% عبر نافذة منزلقة من ثانية واحدة
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أي برنامج ترميز للفيديو وإتاحتها التطبيقات التابعة لجهات خارجية وضبطMediaFormat.KEY_BITRATE_MODE
إلى
BITRATE_MODE_VBR
لكي يعمل برنامج الترميز في وضع "معدل نقل بيانات متغيّر"
طالما أنّ ذلك لا يؤثّر في الحد الأدنى للجودة،
معدل نقل البيانات المشفر :
[C-5-1] يجبيجب ألا يكون أكثر من واحد نافذة منزلقة تتجاوز معدل نقل البيانات بين الإطارات (I-frame) أكثر من 15% من معدّل نقل البيانات الفترات.[C-5-2] يجبيجب ألا يكون أكثر من زيادة بنسبة 100% في معدل نقل البيانات خلال نافذة تمرير تبلغ ثانية واحدة
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أي برنامج ترميز للفيديو وإتاحتها
تطبيقات الجهات الخارجية وتعيين
MediaFormat.KEY_BITRATE_MODE
إلى
BITRATE_MODE_CBR
لكي يعمل برنامج الترميز في وضع معدل نقل بيانات ثابت، يكون معدّل نقل البيانات المشفر:
[C-6-1] يجبيُنصَح بشدة بـ [C-SR-2] يجب عدم تجاوز معدّل نقل البيانات المستهدَف بنسبة تتجاوز 15% خلال فترة تمرير مدتها ثانية واحدة.
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الجهاز تتضمن عرض شاشة مضمّنة مع
قطري لا يقل عن 2.5 بوصة أو يتضمن منفذ إخراج فيديو
الإعلان عن دعم الكاميرا عبر android.hardware.camera.any
عن الميزات، فإنها:
- [C-1-1] يجب أن يتضمن دعم فيديو واحد على الأقل من فيديو VP8 أو H.264 وبرامج الترميز، وإتاحتها للتطبيقات التابعة لجهات خارجية.
- يجب أن يتوافق مع كل من برنامجَي ترميز الفيديوهات VP8 وH.264 وإتاحة هذه الميزة. لتطبيقات الجهات الخارجية.
إذا كانت عمليات تنفيذ الجهاز تتوافق مع أي من تنسيقات الفيديو ذات الترميز H.264 أو VP8 أو VP9 أو HEVC برامج الترميز وإتاحتها للتطبيقات التابعة لجهات خارجية، فإنها:
- [C-2-1] يجب أن يتوافق مع معدّلات نقل البيانات القابلة للضبط ديناميكيًا.
- يجب أن يدعم معدلات عرض الإطارات المتغيرة، حيث من المفترض أن يحدد برنامج ترميز الفيديو مدة عرض اللقطة الفورية بناءً على الطوابع الزمنية للمخازن المؤقتة للإدخال تخصيص حزمة وحدات البيانات الخاصة به بناءً على مدة الإطار
إذا كانت طرق تنفيذ الأجهزة تتوافق مع برنامج ترميز الفيديو MPEG-4 SP وجعله متوفّرة للتطبيقات التابعة لجهات خارجية، فإنها:
- يجب أن يتوافق مع معدلات نقل البيانات القابلة للضبط ديناميكيًا لبرنامج الترميز المتوافق.
إذا كانت عمليات تنفيذ الأجهزة توفّر برامج ترميز فيديو مسرَّع على الجهاز أو صور،
ويدعم جهاز واحد أو أكثر من الكاميرات المتصلة أو القابلة للتوصيل التي تم الكشف عنها من خلال
واجهات برمجة تطبيقات android.camera
:
- [C-4-1] يجب أن تتوافق جميع برامج ترميز الفيديو المسرّع للأجهزة والصور مع إطارات الترميز من كاميرات الأجهزة.
- "يجب أن يكون" متوافقًا مع إطارات الترميز من كاميرات الأجهزة في جميع الفيديوهات أو برامج ترميز الصور.
إذا كانت عمليات تنفيذ الأجهزة توفّر ترميز النطاق العالي الديناميكية، سيتم إجراء ما يلي:
- يُوصى بشدة [C-SR-1] بتوفير مكوّن إضافي واجهة برمجة التطبيقات لتحويل الترميز السلس لتحويل تنسيق HDR إلى تنسيق SDR.
5.2.1. بروتوكول H.263
ما إذا كانت عمليات تنفيذ الأجهزة متوافقة مع برامج ترميز H.263 وإتاحتها على جميع الأجهزة إلى التطبيقات التابعة لجهات خارجية، فإنّها:
- [C-1-1] يجب أن يتوافق مع درجة دقة QCIF (176 × 144) باستخدام المستوى 45 للملف الشخصي الأساسي. إنّ استخدام SQCIF اختياري.
يجب إتاحة معدلات نقل بيانات قابلة للتهيئة ديناميكيًا لنظام التشغيل برنامج الترميز المتوافق
5.2.2. H.264
في حال كانت عمليات تنفيذ الأجهزة متوافقة مع برنامج ترميز H.264، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتوافق مع المستوى 3 للملف الشخصي الأساسي. ومع ذلك، دعم ASO (ترتيب الشرائح العشوائي) وFMO (المرن) ترتيب الكتلة الجزئية) وRS (الشرائح المتكررة) اختياري. علاوة على ذلك، الحفاظ على التوافق مع أجهزة Android الأخرى، يُوصى لا تستخدم برامج الترميز كلاً من ASO وFMO وRS في الملف الشخصي الأساسي.
- [C-1-2] يجب أن يتوافق مع ملفات ترميز الفيديو ذات الدقة العادية (SD) في الجدول التالي.
- يجب أن يتوافق مع المستوى 4 للملف الشخصي الرئيسي.
- "يجب أن" متوافق مع ملفات ترميز الفيديو ذات الدقة العالية (HD) كما هو موضح في الجدول التالي.
في حال الإبلاغ عن توافق عمليات تنفيذ الأجهزة مع ترميز H.264 للفيديوهات بدقة 720p أو 1080p مقاطع الفيديو من خلال واجهات برمجة تطبيقات الوسائط، وهي:
- [C-2-1] يجب أن يتوافق مع ملفات الترميز الشخصية في الجدول التالي.
دقة عادية (جودة منخفضة) | دقة عادية (جودة عالية) | دقة عالية - 720p | دقة عالية - 1080p | |
---|---|---|---|---|
دقة الفيديو | 320 × 240 بكسل | 720 × 480 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل |
عدد اللقطات في الثانية للفيديو | 20 لقطة في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية |
معدّل نقل بيانات الفيديو | 384 كيلوبت في الثانية | 2 ميغابت في الثانية | 4 ميغابت في الثانية | 10 ميغابت في الثانية |
5.2.3. نموذج الفيديو 8 (VP8)
في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP8، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتوافق مع ملفات ترميز الفيديو بدقة عادية.
- يجب أن يتوافق مع ملفات ترميز الفيديو ذات الدقة العالية (HD) التالية.
- [C-1-2] يجب أن يتيح كتابة ملفات Matroska WebM.
- ينبغي توفير برنامج ترميز VP8 للأجهزة الذي يفي متطلبات ترميز أجهزة RTC الخاصة بمشروع WebM، لضمان الجودة المقبولة لخدمات بث الفيديو على الويب ومؤتمرات الفيديو.
في حال الإبلاغ عن توافق عمليات تنفيذ الجهاز مع ترميز VP8 للفيديوهات بدقة 720p أو 1080p مقاطع الفيديو من خلال واجهات برمجة تطبيقات الوسائط، وهي:
- [C-2-1] يجب أن يتوافق مع ملفات الترميز الشخصية في الجدول التالي.
دقة عادية (جودة منخفضة) | دقة عادية (جودة عالية) | دقة عالية - 720p | دقة عالية - 1080p | |
---|---|---|---|---|
دقة الفيديو | 320 × 180 بكسل | 640 × 360 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل |
عدد اللقطات في الثانية للفيديو | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية |
معدّل نقل بيانات الفيديو | 800 كيلوبت في الثانية | 2 ميغابت في الثانية | 4 ميغابت في الثانية | 10 ميغابت في الثانية |
5.2.4. نموذج الفيديو 9 (VP9)
في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP9، سيتم إجراء ما يلي:
- [C-1-2] يجب توفير الملف الشخصي 0 المستوى 3.
- [C-1-1] يجب أن يتيح كتابة ملفات Matroska WebM.
- [C-1-3] يجب أن ينشئ بيانات Codecprivate.
- "يُفترض" أن تتيح استخدام الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في الجدول التالي.
- يُنصَح بشدة بأن توافق [C-SR-1] مع الملفات الشخصية لفك ترميز المحتوى بدقة عالية. كما هو موضح في الجدول التالي إذا كان هناك برنامج ترميز للأجهزة.
دقة عادية | دقة عالية - 720p | دقة عالية - 1080p | دقة فائقة | |
---|---|---|---|---|
دقة الفيديو | 720 × 480 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل | 3840 × 2160 بكسل |
عدد اللقطات في الثانية للفيديو | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية |
معدّل نقل بيانات الفيديو | 1.6 ميغابت في الثانية | 4 ميغابت في الثانية | 5 ميغابت في الثانية | 20 ميغابت في الثانية |
إذا طالبت عمليات تنفيذ الجهاز بتوفير الدعم للملف الشخصي 2 أو الملف الشخصي 3 من خلال واجهات برمجة تطبيقات الوسائط:
- يتوفّر الدعم لتنسيق 12 بت بشكلٍ اختياري.
5.2.5. بروتوكول H.265
إذا كانت عمليات تنفيذ الأجهزة متوافقة مع برنامج ترميز H.265، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتوافق مع المستوى 3 للملف الشخصي الرئيسي حتى درجة الدقة 512 × 512
يجب أن تتوافق مع ملفات الترميز الشخصية ذات الدقة العالية كما هو موضح في الجدول التالي.- يوصى بشدة بدعم [C-SR-1] ملف شخصي بدقة 720 × 480 بدقة عادية ملفات تشفير الدقة العالية كما هو موضح في الجدول التالي في حالة وجود برنامج ترميز الجهاز.
دقة عادية | دقة عالية - 720p | دقة عالية - 1080p | دقة فائقة | |
---|---|---|---|---|
دقة الفيديو | 720 × 480 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل | 3840 × 2160 بكسل |
عدد اللقطات في الثانية للفيديو | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية |
معدّل نقل بيانات الفيديو | 1.6 ميغابت في الثانية | 4 ميغابت في الثانية | 5 ميغابت في الثانية | 20 ميغابت في الثانية |
بدء متطلبات جديدة
5.2.6. AV1
في حال كانت عمليات تنفيذ الأجهزة متوافقة مع برنامج ترميز AV1، سيتم عندها:
- [C-1-1] يجب أن يتوافق مع الملف الشخصي الرئيسي، بما في ذلك محتوى 8 بت و10 بت.
[C-1-2] يجب أن تنشر بيانات الأداء، مثل إعداد تقارير عن بيانات الأداء عبر
getSupportedFrameRatesFor()
أوgetSupportedPerformancePoints()
واجهات برمجة التطبيقات لدرجات الدقة المتوافقة في الجدول أدناه[C-1-3] يجب قبول البيانات الوصفية ذات تنسيق HDR وإخراجها في البث المباشر للبيانات
في حال تسريع برنامج ترميز AV1 باستخدام الأجهزة، سيتم في هذه الحالة تنفيذ ما يلي:
- [C-2-1] يجب أن يتيح ملف تعريف ترميز HD1080p مضمّنًا من الجدول أدناه:
دقة عادية | دقة عالية - 720p | دقة عالية - 1080p | دقة فائقة | |
---|---|---|---|---|
دقة الفيديو | 720 × 480 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل | 3840 × 2160 بكسل |
عدد اللقطات في الثانية للفيديو | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية |
معدّل نقل بيانات الفيديو | 5 ميغابت في الثانية | 8 ميغابت في الثانية | 16 ميغابت في الثانية | 50 ميغابت في الثانية |
إنهاء المتطلبات الجديدة
5.3. فك ترميز الفيديو
في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برامج ترميز VP8 أو VP9 أو H.264 أو H.265، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتيح التبديل الديناميكي لدرجة دقة الفيديو وعدد اللقطات في الثانية من خلال واجهات برمجة تطبيقات Android العادية ضمن البث نفسه لجميع VP8 وVP9 برنامجا الترميز H.264 وH.265 في الوقت الفعلي وبدرجة دقة تصل إلى الحدّ الأقصى المسموح به لكل برنامج ترميز على الجهاز
5.3.1. MPEG-2
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برامج فك ترميز MPEG-2، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتوافق مع المستوى العالي للملف الشخصي الرئيسي.
5.3.2 بروتوكول H.263
إذا كانت عمليات تنفيذ الأجهزة متوافقة مع برامج فك ترميز H.263، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتوافق مع المستوى 30 للملف الشخصي الأساسي. (درجات الدقة CIF وQCIF وSQCIF بسرعة 30 لقطة في الثانية) 384 كيلوبت في الثانية) والمستوى 45 (درجة دقة QCIF وSQCIF بسرعة 30 لقطة في الثانية) 128 كيلوبت في الثانية).
5.3.3. MPEG-4
في حال تنفيذ الجهاز باستخدام برامج فك ترميز MPEG-4:
- [C-1-1] يجب أن يتوافق مع المستوى 3 من الملف الشخصي البسيط.
5.3.4 H.264
إذا كانت عمليات تنفيذ الأجهزة تتيح برامج فك ترميز H.264، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتوافق مع المستوى 3.1 للملف الشخصي الرئيسي والملف الشخصي الأساسي. دعم بالنسبة إلى ترتيب الشرائح العشوائية (ASO) وFMO (الترتيب المرن للكتلة الفائقة) وRS (الشرائح المتكررة) اختياري.
- [C-1-2] يجب أن يكون قادرًا على فك ترميز الفيديوهات باستخدام الدقة العادية (SD) الملفات الشخصية المدرَجة في الجدول التالي وتم ترميزها باستخدام "الملف الشخصي الأساسي" والمستوى 3.1 للملف الشخصي الرئيسي (بما في ذلك 720p30).
- يجب أن يكون قادرًا على فك ترميز الفيديوهات باستخدام الملفات الشخصية ذات الدقة العالية (HD) كما هو موضح في الجدول التالي.
إذا كان الارتفاع الذي تم الإبلاغ عنه من خلال طريقة Display.getSupportedModes()
هو
دقة الفيديو أو أكبر منها، وعمليات تنفيذ الأجهزة:
- [C-2-1] يجب أن يتوافق مع الملفات الشخصية لفك ترميز الفيديو بدقة عالية تبلغ 720p في ما يلي: المؤقت.
- [C-2-2] يجب أن يتوافق مع الملفات الشخصية لفك ترميز الفيديو بدقة عالية 1080p في الحالات التالية: المؤقت.
دقة عادية (جودة منخفضة) | دقة عادية (جودة عالية) | دقة عالية - 720p | دقة عالية - 1080p | |
---|---|---|---|---|
دقة الفيديو | 320 × 240 بكسل | 720 × 480 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل |
عدد اللقطات في الثانية للفيديو | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 60 لقطة في الثانية | 30 لقطة في الثانية (60 لقطة في الثانيةالتلفزيون) |
معدّل نقل بيانات الفيديو | 800 كيلوبت في الثانية | 2 ميغابت في الثانية | 8 ميغابت في الثانية | 20 ميغابت في الثانية |
5.3.5. H.265 (HEVC)
إذا كانت عمليات تنفيذ الأجهزة متوافقة مع برنامج ترميز H.265، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتوافق مع الفئة الرئيسية للملف الشخصي الرئيسي من المستوى 3 وفيديو SD بفك ترميز الملفات الشخصية كما هو موضح في الجدول التالي.
- "يُفترض" أن تتيح استخدام الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في الجدول التالي.
- [C-1-2] يجب أن يتوافق مع الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في ما يلي. جدول إذا كان هناك برنامج لفك ترميز الأجهزة.
إذا كان الارتفاع الذي تم الإبلاغ عنه من خلال طريقة Display.getSupportedModes()
هو
مساوٍ لدرجة دقة الفيديو أو أكبر منها، ثم:
- [C-2-1] يجب أن تتوافق عمليات تنفيذ الأجهزة مع أحد بروتوكولات H.265 أو VP9 على الأقل. فك ترميز الملفات الشخصية بتنسيق 720 و1080 وUHD.
دقة عادية (جودة منخفضة) | دقة عادية (جودة عالية) | دقة عالية - 720p | دقة عالية - 1080p | دقة فائقة | |
---|---|---|---|---|---|
دقة الفيديو | 352 × 288 بكسل | 720 × 480 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل | 3840 × 2160 بكسل |
عدد اللقطات في الثانية للفيديو | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30/60 لقطة في الثانية (60 لقطة في الثانيةالتلفزيون باستخدام فك ترميز أجهزة H.265) | 60 لقطة في الثانية |
معدّل نقل بيانات الفيديو | 600 كيلوبت في الثانية | 1.6 ميغابت في الثانية | 4 ميغابت في الثانية | 5 ميغابت في الثانية | 20 ميغابت في الثانية |
في حال ادعاء عمليات تنفيذ الأجهزة أنّها تتيح ملف تعريف بتقنية HDR من خلال الوسائط واجهات برمجة التطبيقات:
- [C-3-1] يجب أن تقبل عمليات تنفيذ الأجهزة البيانات الوصفية المطلوبة ذات تنسيق HDR من بالإضافة إلى دعم استخراج وإخراج تقنية HDR المطلوبة البيانات الوصفية من مصدر البيانات البت و/أو الحاوية.
- [C-3-2] يجب أن تعرض عمليات تنفيذ الأجهزة محتوى HDR بشكل صحيح على على شاشة الجهاز أو على منفذ إخراج الفيديو العادي (مثل HDMI).
5.3.6. نموذج الفيديو 8 (VP8)
في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP8، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتوافق مع الملفات الشخصية لفك ترميز SD في الجدول التالي.
- "هل يجب استخدام برنامج ترميز VP8 للأجهزة" المتطلبات.
- يجب أن تتوفر الملفات الشخصية لفك ترميز المحتوى بدقة عالية في الجدول التالي.
إذا كان الارتفاع كما تم الإبلاغ عن الطريقة Display.getSupportedModes()
يساوي
درجة دقة الفيديو أو أكبر منها:
- [C-2-1] يجب أن تتوافق عمليات تنفيذ الأجهزة مع ملفات شخصية بدقة 720p في الجدول التالي.
- [C-2-2] يجب أن تتوافق عمليات تنفيذ الأجهزة مع ملفات شخصية بدقة 1080p في الجدول التالي.
دقة عادية (جودة منخفضة) | دقة عادية (جودة عالية) | دقة عالية - 720p | دقة عالية - 1080p | |
---|---|---|---|---|
دقة الفيديو | 320 × 180 بكسل | 640 × 360 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل |
عدد اللقطات في الثانية للفيديو | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 لقطة في الثانية (60 لقطة في الثانيةالتلفزيون) | 30 (60 لقطة في الثانيةالتلفزيون) |
معدّل نقل بيانات الفيديو | 800 كيلوبت في الثانية | 2 ميغابت في الثانية | 8 ميغابت في الثانية | 20 ميغابت في الثانية |
5.3.7. نموذج الفيديو 9 (VP9)
في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP9، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتوافق مع الملفات الشخصية لفك ترميز الفيديو بدقة عادية كما هو موضّح في الجدول التالي.
- "يُفترض" أن تتيح استخدام الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في الجدول التالي.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP9 وبرنامج فك ترميز الأجهزة:
- [C-2-1] يجب أن يتوافق مع الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في ما يلي. المؤقت.
إذا كان الارتفاع الذي تم الإبلاغ عنه من خلال طريقة Display.getSupportedModes()
هو
مساوٍ لدرجة دقة الفيديو أو أكبر منها، ثم:
- [C-3-1] يجب أن تتوافق عمليات تنفيذ الأجهزة مع أحد VP9 أو H.265 على الأقل. فك ترميز الملفات الشخصية لـ 720 و1080 وUHD.
دقة عادية (جودة منخفضة) | دقة عادية (جودة عالية) | دقة عالية - 720p | دقة عالية - 1080p | دقة فائقة | |
---|---|---|---|---|---|
دقة الفيديو | 320 × 180 بكسل | 640 × 360 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل | 3840 × 2160 بكسل |
عدد اللقطات في الثانية للفيديو | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 لقطة في الثانية (60 لقطة في الثانيةالتلفزيون باستخدام فك ترميز أجهزة VP9) | 60 لقطة في الثانية |
معدّل نقل بيانات الفيديو | 600 كيلوبت في الثانية | 1.6 ميغابت في الثانية | 4 ميغابت في الثانية | 5 ميغابت في الثانية | 20 ميغابت في الثانية |
إذا طالبت عمليات تنفيذ الأجهزة بتوفير الدعم لـ VP9Profile2
أو VP9Profile3
من خلال "CodecProfileLevel"
واجهات برمجة تطبيقات الوسائط:
- يتوفّر الدعم لتنسيق 12 بت بشكلٍ اختياري.
إذا ادّعت عمليات تنفيذ الأجهزة أنّها تتيح ملف شخصي بنطاق عالي الديناميكية (VP9Profile2HDR
،
VP9Profile2HDR10Plus
وVP9Profile3HDR
وVP9Profile3HDR10Plus
) من خلال
واجهات برمجة تطبيقات الوسائط:
- [C-4-1] يجب أن تقبل عمليات تنفيذ الأجهزة البيانات الوصفية المطلوبة ذات تنسيق HDR
(
KEY_HDR_STATIC_INFO
) لجميع ملفات تعريف HDR، بالإضافة إلى "KEY_HDR10_PLUS_INFO" للملفات الشخصية التي تستخدم تقنية HDR10Plus) من التطبيق. كما يجب أن تدعم استخراج وإخراج البيانات الوصفية ذات تنسيق HDR المطلوبة من مصدر البيانات البت و/أو الحاوية. - [C-4-2] يجب أن تعرض عمليات تنفيذ الأجهزة محتوى HDR بشكل صحيح على على شاشة الجهاز أو على منفذ إخراج الفيديو العادي (مثل HDMI).
5.3.8. Dolby Vision
إذا كانت عمليات تنفيذ الأجهزة تشير إلى توافق برنامج فك ترميز Dolby Vision من خلال
HDR_TYPE_DOLBY_VISION
فإنهم:
- [C-1-1] يجب توفير أداة استخراج تتوافق مع تقنية Dolby Vision.
- [C-1-2] يجب عرض محتوى Dolby Vision بشكل صحيح على شاشة الجهاز على منفذ إخراج فيديو عادي (مثل HDMI).
- [C-1-3] يجب تعيين رقم تعريف المقطع الصوتي الطبقات الأساسية المتوافقة مع الأنظمة القديمة (إن وجدت) لتكون مماثلة لطبقة معرف التتبع لطبقة Dolby Vision.
5.3.9 AV1
- [C-1-1] يجب أن يتوافق مع الملف الشخصي 0، بما في ذلك محتوى 10 بت.
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز AV1 وإتاحتها للتطبيقات التابعة لجهات خارجية، سيتم إجراء ما يلي:- [C-1-1] يجب أن يتوافق مع الملف الشخصي الرئيسي، بما في ذلك محتوى 8 بت و10 بت.
في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز AV1 باستخدام أحد الأجهزة برنامج فك الترميز المسرّع ثم:
- [C-2-1] يجب أن يكون قادرًا على فك ترميز ملفات فك ترميز الفيديوهات بدقة عالية تبلغ 720p على الأقل من
الجدول أدناه عند الإبلاغ عن الارتفاع بواسطة
Display.getSupportedModes()
الطريقة تساوي 720p أو أكبر منها. - [C-2-2] يجب أن يكون قادرًا على فك ترميز الملفات الشخصية لفك ترميز الفيديوهات بدقة عالية تبلغ 1080p على الأقل
من الجدول أدناه عند الإبلاغ عن الارتفاع بواسطة
Display.getSupportedModes()
تساوي 1080p أو أكبر منها.
دقة عادية | دقة عالية - 720p | دقة عالية - 1080p | دقة فائقة | |
---|---|---|---|---|
دقة الفيديو | 720 × 480 بكسل | 1280 × 720 بكسل | 1920 × 1080 بكسل | 3840 × 2160 بكسل |
عدد اللقطات في الثانية للفيديو | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية | 30 إطارًا في الثانية |
معدّل نقل بيانات الفيديو | 5 ميغابت في الثانية | 8 ميغابت في الثانية | 16 ميغابت في الثانية | 50 ميغابت في الثانية |
إذا كانت عمليات تنفيذ الأجهزة تتيح ملف تعريف HDR من خلال واجهات برمجة تطبيقات الوسائط، يجب عندها وهي:
- [C-3-1] يجب أن يتيح استخراج وإخراج البيانات الوصفية ذات تنسيق HDR من Bitstream و/أو الحاوية.
- [C-3-2] يجب أن يعرض محتوى HDR بشكل صحيح على شاشة الجهاز أو على منفذ إخراج الفيديو العادي (مثل HDMI).
إنهاء المتطلبات الجديدة
5.4. تسجيل الصوت
في حين أن بعض المتطلبات الموضحة في هذا القسم مدرجة على أنه "ينبغي" ونظرًا إلى الإصدار Android 4.3، فقد وضعنا تعريف التوافق للإصدارات المستقبلية. لتغييرها إلى "يجب". أجهزة Android الحالية والجديدة تعمل بشكل كبير موصى بها باستيفاء هذه المتطلبات المدرجة كما هو مطلوب لن يتمكنوا من تحقيق التوافق مع Android عند الترقية إلى الإصدارات المستقبلية. .
5.4.1. معلومات تسجيل الصوت والميكروفونات الأولية
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone
، سيتم ما يلي:
[C-1-1] يجب أن يسمح بالتقاط المحتوى الصوتي الأولي في أي ساحة مشاركات
AudioRecord
أوAAudio
INPUT مفتوحة بنجاح. يجب على الأقل توفُّر الخصائص التالية:- التنسيق: PCM خطي، 16 بت
- معدّلات أخذ العيّنات: 8000، 11025، 16000، 44100، 48,000 هرتز
- القنوات: أحادي
- مصادر الصوت:
DEFAULT
،MIC
,CAMCORDER
,VOICE_RECOGNITION
،VOICE_COMMUNICATION
،UNPROCESSED
، أوVOICE_PERFORMANCE
. ينطبق ذلك أيضًا على الإعدادات المسبقة للإدخال المكافئة فيAAudio
، وذلك في على سبيل المثال،AAUDIO_INPUT_PRESET_CAMCORDER
.
"يجب السماح" بالتقاط المحتوى الصوتي غير المنسّق بما يلي: الخصائص التالية:
- التنسيق: PCM الخطي، 16 بت و24 بت
- معدلات أخذ العينات: 8000، 11025، 16000، 22050، 24000، 32000، 44100 48000 هرتز
- القنوات: هو عدد القنوات الذي يعادل عدد الميكروفونات على جهاز
[C-1-2] يجب أن يتم التقاطها بمعدلات عينة أعلى من دون زيادة العينات.
[C-1-3] يجب أن يتضمن فلترًا مناسبًا لمنع التشويش عند يتم الحصول على معدلات العينات الموضحة أعلاه باستخدام العينات المنخفضة.
"ينبغي" السماح بالتقاط جودة راديو AM وDVD للمحتوى الصوتي الأولي، الذي تعني السمات التالية:
- التنسيق: PCM خطي، 16 بت
- معدلات أخذ العينات: 22050، 48000 هرتز
- القنوات: استيريو
[C-1-4] يجب أن يلتزم بـ
MicrophoneInfo
API وملء المعلومات للميكروفونات المتوفرة على الجهاز بشكل صحيح التطبيقات التابعة لأطراف ثالثة من خلالAudioManager.getMicrophones()
واجهة برمجة التطبيقات لـ AudioRecord النشطة باستخدامMediaRecorder.AudioSources DEFAULT
،MIC
،CAMCORDER
،VOICE_RECOGNITION
،VOICE_COMMUNICATION
أوUNPROCESSED
أوVOICE_PERFORMANCE
. إذا كانت عمليات تنفيذ الجهاز تسمح بالتقاط جودة راديو AM وDVD للصوت الأولي للمحتوى، فإن:[C-2-1] يجب التقاطه بدون زيادة العينات بأي نسبة أعلى من 16000:22050 أو 44100:48000.
[C-2-2] يجب أن يشتمل على فلتر تنعيم مناسب لأي عملية جمع عيّنات أو تقليل العينات.
5.4.2. الالتقاط للتعرف على الصوت
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone
، سيتم ما يلي:
- [C-1-1] يجب التقاط الصور
مصدر صوت واحد (
android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
) في أحد معدلات العينات، وهما 44100 و48000. - [C-1-2] يجب أن توقِف تلقائيًا أي معالجة للصوت لخفض الضوضاء في حال
يتم تسجيل بث صوتي من صوت
AudioSource.VOICE_RECOGNITION
. المصدر. [C-1-3] يجب، تلقائيًا، إيقاف أي عنصر تحكم تلقائي في الصوت أثناء التسجيل بثّ صوتي من مصدر الصوت
AudioSource.VOICE_RECOGNITION
.من المفترض أن تظهر خصائص اتساع مسطّح مقابل تردد مسطّح في نطاق التردد المتوسط: تحديدًا أقل من 3 ديسيبل من 100 هرتز إلى 4000 هرتز لكل جهاز وكل ميكروفون يُستخدم لتسجيل مصدر صوت التعرف على الصوت.
يوصى بشدة باستخدام [C-SR-1] لإظهار مستويات السعة في المستوى المنخفض نطاق التردد: تحديدًا من + 20 ديسيبل من 30 هرتز إلى 100 هرتز مقارنةً بـ نطاق التردد المتوسط لكل ميكروفون يتم استخدامه لتسجيل الصوت التعرف على مصدر الصوت.
يوصى بشدة باستخدام [C-SR-2] لإظهار مستويات السعة في أعلى نطاق التردد: تحديدًا من + 30 ديسيبل من 4000 هرتز إلى 22 كيلوهرتز مقارنةً بـ نطاق التردد المتوسط لكل ميكروفون يتم استخدامه لتسجيل الصوت التعرف على مصدر الصوت.
يجب ضبط حساسية إدخال الصوت بحيث يتوفّر مصدر نغمة جيبية بتردد 1000 هرتز يتم تشغيلها عند مستوى ضغط الصوت: 90 ديسيبل (تم قياسه
على مسافة 30 سم منبجانب الميكروفون) ينتج استجابة مثالية بقيمة RMS 2500 في نطاق 1770 و3530 لـ 16 عيّنات البت (أو -22.35 ديسيبل - مقياس كامل + 3 ديسيبل لقياس النقطة العائمة/الدقة المزدوجة) لكل ميكروفون يستخدم لتسجيل التعرف على الصوت مصدر الصوتيجب تسجيل البث الصوتي لميزة "التعرّف على الصوت" بحيث يتوفّر اتساع PCM تتبع مستويات المدخلات وخط مستوى الصوت المنخفض خطيًا لنطاق لا يقل عن 30 ديسيبل من -18 ديسيبل إلى +12 ديسيبل re 90 ديسيبل مستوى صوت SPL عند الميكروفون.
يجب تسجيل البث الصوتي لميزة "التعرّف على الصوت" بالتناغم التام تشوّه (THD) أقل من% 1 لتردد 1 كيلوهرتز عند مستوى إدخال SPL 90 ديسيبل على مستوى الصوت الميكروفون.
في حال رصدت عمليات تنفيذ الأجهزة للسمة android.hardware.microphone
والتشويش
تقنيات الإيقاف (الخفض) المضبوطة للتعرف على الكلام، فهي:
- [C-2-1] يجب السماح بالتحكم في هذا التأثير الصوتي من خلال
واجهة برمجة تطبيقات
android.media.audiofx.NoiseSuppressor
. - [C-2-2] يجب أن يحدّد بشكل فريد كل تقنية من تقنيات كتم الضوضاء
التنفيذ من خلال الحقل
AudioEffect.Descriptor.uuid
.
5.4.3. الالتقاط لإعادة توجيه التشغيل
وتشمل الفئة android.media.MediaRecorder.AudioSource
الفئة REMOTE_SUBMIX
.
مصدر الصوت
إذا كانت عمليات تنفيذ الأجهزة تشير إلى كلّ من android.hardware.audio.output
و
android.hardware.microphone
، وهي:
[C-1-1] يجب تنفيذ مصدر الصوت
REMOTE_SUBMIX
بشكل صحيح بحيث عندما يستخدم تطبيق واجهة برمجة التطبيقاتandroid.media.AudioRecord
للتسجيل من هذه يلتقط الصوت مزيجًا من جميع عمليات البث الصوتي، باستثناء ما يلي:AudioManager.STREAM_RING
AudioManager.STREAM_ALARM
AudioManager.STREAM_NOTIFICATION
5.4.4. وحدة إلغاء صدى الصوت
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone
، سيتم ما يلي:
- يجب استخدام ميزة إلغاء صدى الصوت
(AEC) هي تكنولوجيا تم ضبطها للاتصال الصوتي وتم تطبيقها على مسار الالتقاط
عند التقاط الصورة باستخدام
AudioSource.VOICE_COMMUNICATION
.
إذا كانت عمليات تنفيذ الجهاز توفّر ميزة "إلغاء صدى الصوت" الصوتية
يتم إدراجه في مسار التقاط الصوت عند AudioSource.VOICE_COMMUNICATION
، فهي:
- [C-SR-1] يُنصَح باعتماد هذا الإجراء للإبلاغ عن هذا الإجراء عبر AcousticEchoCanceler طريقة واجهة برمجة التطبيقات AcousticEchoCanceler.isAvailable()
- [C-SR-2] تستخدم strongLY_RECOMMENDED للسماح بتشغيل هذا التأثير الصوتي يمكن التحكّم فيها باستخدام أداة AcousticEchoCanceler واجهة برمجة التطبيقات.
- [C-SR-3] يتم تطبيقها {4}LY_RECOMMENDED لتحديد كل تقنية AEC بشكل فريد التنفيذ من خلال AudioEffect.Descriptor.uuid .
5.4.5. التقاط متزامن
إذا أعلنت عمليات تنفيذ الأجهزة عن السمة android.hardware.microphone
، يجب
تنفيذ الالتقاط المتزامن كما هو موضح في هذا المستند. وعلى وجه التحديد:
- [C-1-1] يجب أن يسمح بالوصول المتزامن إلى الميكروفون من خلال أدوات تسهيل الاستخدام
التقاط خدمة باستخدام
AudioSource.VOICE_RECOGNITION
وواحد على الأقل التقاط أي تطبيقات مع أيAudioSource
. - [C-1-2] يجب أن يسمح بالوصول المتزامن إلى الميكروفون بواسطة جهاز مثبت مسبقًا
تطبيق لديه دور "مساعد Google" وتطبيق واحد على الأقل
الالتقاط بأي
AudioSource
باستثناءAudioSource.VOICE_COMMUNICATION
أوAudioSource.CAMCORDER
. - [C-1-3] يجب كتم صوت التقاط الصوت في أي تطبيق آخر، باستثناء
خدمة إمكانية وصول، بينما يستخدم التطبيق في التقاط الصور
AudioSource.VOICE_COMMUNICATION
أوAudioSource.CAMCORDER
ومع ذلك، عندما يلتقط أحد التطبيقات عبرAudioSource.VOICE_COMMUNICATION
ثم تطبيق آخر يمكنه التقاط المكالمة الصوتية إذا كان تطبيقًا مميزًا (مثبّتًا مسبقًا) يحتوي على الإذنCAPTURE_AUDIO_OUTPUT
. - [C-1-4] إذا تم التقاط تطبيقين أو أكثر بشكل متزامن وإذا لا يحتوي أي من التطبيقين على واجهة مستخدم في الأعلى، التطبيق الذي بدأ في التقاط أحدث يتلقى صوتًا.
5.5. تشغيل الصوت
يتيح Android للتطبيقات إمكانية تشغيل الصوت من خلال الصوت. جهاز ملحق للإخراج كما هو موضح في القسم 7.8.2.
5.5.1. تشغيل الصوت الأولي
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.audio.output
، سيتم ما يلي:
[C-1-1] يجب أن يسمح بتشغيل المحتوى الصوتي الأولي باستخدام ما يلي الخصائص التالية:
- تنسيقات المصدر: PCM الخطي، 16 بت، 8 بت، عائم
- القنوات: إعدادات أحادية وستيريو وصالحة للقنوات المتعددة لما يصل إلى 8 قنوات
- معدّلات أخذ العينات (بالهرتز):
- 8000 و11025 و16000 و22050 و24000 و32000 و44100 و48,000 على القناة الإعدادات الواردة أعلاه
- 96000 في وضع أحادي وستيريو
5.5.2 التأثيرات الصوتية
يوفّر Android واجهة برمجة تطبيقات للتأثيرات الصوتية. لعمليات تنفيذ الأجهزة.
إذا كانت عمليات تنفيذ الأجهزة تشير إلى الميزة android.hardware.audio.output
،
وهي:
- [C-1-1] يجب أن يتوافق مع
EFFECT_TYPE_EQUALIZER
عمليات تنفيذEFFECT_TYPE_LOUDNESS_ENHANCER
التي يمكن التحكم فيها من خلال الفئتان الفرعيتان "تأثير الصوت"Equalizer
وLoudnessEnhancer
- [C-1-2] يجب أن يتوافق مع تنفيذ واجهة برمجة تطبيقات العروض المرئية، ويمكن التحكم فيها من خلال
لفئة
Visualizer
. - [C-1-3] يجب أن يتيح تنفيذ "
EFFECT_TYPE_DYNAMICS_PROCESSING
". يمكن التحكم فيها من خلال الفئة الفرعية AudioEffectDynamicsProcessing
.
بدء متطلبات جديدة
- [C-1-4] يجب أن يتوافق مع التأثيرات الصوتية مع مدخل وإخراج النقطة العائمة.
- [C-1-5] يجب التأكد من توافق المؤثرات الصوتية مع قنوات متعددة حتى عدد قنوات الخلاط والمعروف أيضًا باسم FCC_LIMIT.
إنهاء المتطلبات الجديدة
- يجب أن تتوافق مع
EFFECT_TYPE_BASS_BOOST
وEFFECT_TYPE_ENV_REVERB
عمليات تنفيذEFFECT_TYPE_PRESET_REVERB
وEFFECT_TYPE_VIRTUALIZER
يمكن التحكم فيه من خلالAudioEffect
الفئات الفرعيةBassBoost
،EnvironmentalReverb
وPresetReverb
وVirtualizer
. - [C-SR-1] يُوصى بها بشدة لدعم التأثيرات في العناصر العائمة متعدد القنوات.
5.5.3. مستوى إخراج الصوت
عمليات تنفيذ أجهزة السيارات:
- السماح بضبط مستوى الصوت
بشكل منفصل لكل بث صوتي باستخدام نوع المحتوى أو استخدامه على النحو المحدّد
بواسطة السمات الصوتية
واستخدام الإعدادات الصوتية في السيارة على النحو المحدّد بشكل علني في
android.car.CarAudioManager
.
5.5.4. نقل الصوت
إذا كانت عمليات تنفيذ الأجهزة تتيح إعادة تحميل الصوت، سيتم إجراء ما يلي:
- [C-SR-1] يُنصَح باستخدامها بشكل كبير لقطع المحتوى الصوتي الذي لا يتضمّن أي مشاكل عند تشغيله بين مقطعَين بتنسيق واحد عندما يحددها واجهة برمجة التطبيقات AudioTrack gapless وحاوية الوسائط لـ MediaPlayer.
5.6. وقت استجابة الصوت
إنّ وقت استجابة الصوت هو التأخير الزمني الذي تمر به إشارة صوتية عبر النظام. تعتمد العديد من فئات التطبيقات على وقت الاستجابة القصير لتحقيق الوقت والمؤثرات الصوتية.
استخدِم التعريفات التالية لأغراض هذا القسم:
- وقت استجابة الناتج. يشير هذا المصطلح إلى الفاصل الزمني بين وقت كتابة التطبيق لإطار. من بيانات PCM المُرمّزة وعند تقديم الصوت المقابل إلى بيئة مستقلة في محول الشبكة الموجود على الجهاز أو الإشارة تغادر الجهاز عبر ويمكن ملاحظتها خارجيًا.
- وقت استجابة الإخراج البارد. الوقت بين بدء بث إخراج و وقت العرض لأول إطار استنادًا إلى الطوابع الزمنية، عند إخراج الصوت كان النظام خاملاً وتم إيقافه قبل تقديم الطلب.
- وقت استجابة الإخراج المستمر. كما أن وقت استجابة الإخراج للإطارات اللاحقة بعد تشغيل الصوت على الجهاز.
- وقت استجابة الإدخال: الفاصل الزمني بين وقت تقديم الصوت بواسطة البيئة إلى الجهاز لدى محول الإشارة الموجود على الجهاز أو إشارة تدخل إلى الجهاز عن طريق المنفذ وعندما يقرأ تطبيق الإطار المقابل من بيانات PCM المشفرة.
- فقدان الإدخال. الجزء الأولي من إشارة إدخال غير قابلة للاستخدام أو غير متاح.
- وقت استجابة الإدخال البارد. الوقت بين بدء البث ووقت تلقي أول إطار صالح، عندما يكون نظام إدخال الصوت غير مستخدَم من قِبل أي برنامج حاليًا قبل الطلب.
وقت استجابة الإدخال المستمر. وقت استجابة الإدخال للإطارات اللاحقة، أثناء تسجيل الجهاز للصوت
وقت استجابة الذهاب والعودة المستمر. مجموع وقت استجابة الإدخال المستمر بالإضافة إلى وقت الاستجابة المستمر للمخرج بالإضافة إلى فترة مخزنة واحدة. تسمح فترة المخزن المؤقت الوقت الذي يحتاجه التطبيق لمعالجة الإشارة والوقت اللازم للتخفيف من حدة الفرق بين مصادر الإدخال والإخراج.
واجهة برمجة تطبيقات قائمة انتظار المخزن المؤقت لـ OpenSL ES PCM. مجموعة أدوات PCM ذات الصلة OpenSL ES واجهات برمجة التطبيقات ضمن Android NDK.
واجهة برمجة التطبيقات للصوت الأصلي: مجموعة واجهات برمجة تطبيقات AAudio ضمن Android NDK.
الطابع الزمني: يشير هذا المصطلح إلى زوج يتكون من موضع إطار نسبي داخل إطار. البث والوقت المقدّر للدخول في هذا الإطار أو مغادرته مسار معالجة الصوت على نقطة النهاية المرتبطة. يمكن أيضًا مراجعة AudioTimestamp:
glitch انقطاع مؤقت أو قيمة عيّنة غير صحيحة في الإشارة الصوتية يكون سببها عادةً تم تقليل المخزن المؤقت للمخرجات، تجاوز سعة التخزين المؤقت للمدخلات أو أي مصدر آخر للضوضاء الرقمية أو التناظرية.
متوسط الانحراف المطلق. ومتوسّط القيمة المطلقة لـ عن المتوسط لمجموعة من القيم.
وقت استجابة النقر للنغمة. الفترة الزمنية بين النقر على الشاشة ووقت النقر على الشاشة نغمة تصدر نتيجة سماع النقر على السماعة.
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.audio.output
، سيتم
يجب أن تستوفي المتطلبات التالية أو تتجاوزها:
- [C-1-1] الطابع الزمني للمُخرج الذي تم عرضه بواسطة
AudioTrack.getTimestamp
ودقة
AAudioStream_getTimestamp
هي +/- 2 ملي ثانية. [C-1-2] وقت استجابة الناتج البارد يبلغ 500 مللي ثانية أو أقل.
[C-1-3] يجب فتح مصدر بيانات باستخدام "
AAudioStreamBuilder_openStream()
" تستغرق أقل من 1000 مللي ثانية.
إذا كانت عمليات تنفيذ الأجهزة تشير إلى أنّ android.hardware.audio.output
هي
موصى به بشدة لاستيفاء المتطلبات التالية أو تجاوزها:
- [C-SR-1] يصل وقت استجابة الإخراج على البارد إلى 100 مللي ثانية أو أقل عبر بيانات مكبر الصوت .
- [C-SR-2] يبلغ وقت استجابة النقر للنغمة 80 مللي ثانية أو أقل.
- [C-SR-4] الطابع الزمني للمُخرج الذي تم عرضه بواسطة
AudioTrack.getTimestamp
ودقة
AAudioStream_getTimestamp
هي +/- 1 ملي ثانية.
بدء متطلبات جديدة
- [C-SR-4] وقت الاستجابة للإرسال والاستقبال المحسوب بناءً على المدخلات والمخرجات
ننصح بشدة بالطوابع الزمنية التي يعرضها "
AAudioStream_getTimestamp
". ضمن 30 مللي ثانية من وقت استجابة الرحلة ذهابًا وإيابًا الذي تم قياسهAAUDIO_PERFORMANCE_MODE_NONE
وAAUDIO_PERFORMANCE_MODE_LOW_LATENCY
لمكبرات الصوت وسماعات الرأس السلكية واللاسلكية.
إنهاء المتطلبات الجديدة
في حال كانت عمليات تنفيذ الأجهزة تستوفي المتطلبات المذكورة أعلاه، بعد إجراء أي عملية عند استخدام واجهة برمجة تطبيقات الصوت الأصلي AAudio للمعايرة، للحصول على إخراج متواصل وقت الاستجابة ووقت الاستجابة عند البارد في مقطع صوتي متوافق واحد على الأقل جهاز إخراج الصوت، وهي:
- [C-SR-5] يُنصح بشدة بالإبلاغ عن وقت الاستجابة المنخفض الصوتي من خلال بيان
علامة ميزة واحدة (
android.hardware.audio.low_latency
) - [C-SR-6] يُنصح بشدة بتلبية متطلبات وقت الاستجابة السريع الصوت عبر AAudio API.
- [C-SR-7] يُنصح بشدّة لضمان ذلك في أحداث البث المباشر
AAUDIO_PERFORMANCE_MODE_LOW_LATENCY
منAAudioStream_getPerformanceMode()
، القيمة التي يعرضهاAAudioStream_getFramesPerBurst()
أقل من أو تساوي القيمة التي يتم عرضها بواسطةandroid.media.AudioManager.getProperty(String)
لمفتاح الموقعAudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER
.
في حال لم تكن عمليات تنفيذ الأجهزة تستوفي متطلبات تشغيل الصوت ذي وقت الاستجابة السريع عبر واجهة برمجة تطبيقات الصوت الأصلي A Audio:
- [C-2-1] يجب ألا يُبلِغ عن توفير الصوت في وقت الاستجابة المنخفض.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن android.hardware.microphone
، سيتم
يجب أن تستوفي متطلبات إدخال الصوت التالية:
- [C-3-1] تحديد الخطأ في الطوابع الزمنية للإدخال، وفقًا لما يعرضه
AudioRecord.getTimestamp
أو
AAudioStream_getTimestamp
، إلى +/- 2 ملي ثانية. "خطأ" وهذا يعني الانحراف عن القيمة الصحيحة. - [C-3-2] وقت استجابة الإدخال البارد يبلغ 500 مللي ثانية أو أقل.
- [C-3-3] يجب فتح مصدر بيانات إدخال باستخدام
AAudioStreamBuilder_openStream()
تستغرق أقل من 1000 مللي ثانية.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن android.hardware.microphone
، سيتم
موصى به بشدة لاستيفاء متطلبات صوت الإدخال التالية:
[C-SR-8] يبلغ وقت استجابة الإدخال البارد 100 مللي ثانية أو أقل عبر الميكروفون مسار البيانات.
[C-SR-11] الحدّ من الخطأ في الطوابع الزمنية للإدخال، وفقًا لما يعرضه AudioRecord.getTimestamp أو
AAudioStream_getTimestamp
، إلى +/- 1 ملي ثانية.
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.audio.output
android.hardware.microphone
، وهي:
- [C-SR-12] يُنصح بشدة بأن يكون لها وقت استجابة متواصل للرحلة ذهابًا وإيابًا 50 ملي ثانية أو أقل من 5 قياسات، مع متوسط الانحراف المطلق أقل من 10 مللي ثانية، عبر مسار متوافق واحد على الأقل.
5.7. بروتوكولات الشبكة
يجب أن تدعم عمليات تنفيذ الأجهزة بروتوكولات شبكة الوسائط لتشغيل الصوت والفيديو كما هو محدّد في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
لكل برنامج ترميز وتنسيق حاوية يكون تطبيق الجهاز مطلوبًا تنفيذ الجهاز:
[C-1-1] يجب أن يتوافق مع برنامج الترميز أو الحاوية عبر بروتوكول HTTP وHTTPS.
[C-1-2] يجب أن يتوافق مع تنسيقات شرائح الوسائط المقابلة كما هو موضّح في جدول تنسيقات شرائح الوسائط أدناه فوق بروتوكول مسودة البث المباشر عبر HTTP، الإصدار 7
[C-1-3] يجب أن يتوافق مع تنسيقات حمولة البيانات الأساسية لـ RTSP كما هو موضح في جدول بروتوكول RTSP أدناه. بالنسبة إلى الاستثناءات، يُرجى الاطّلاع على الحواشي السفلية للجدول في القسم 5.1.
تنسيقات شرائح الوسائط
تنسيقات الشرائح | المَراجع | توفُّر برنامج ترميز مطلوب |
---|---|---|
MPEG-2 Transport Stream | ISO 13818 |
برامج ترميز الفيديو:
. وMPEG-2. برامج ترميز الصوت:
|
الترميز المتقدّم للصوت مع إطارات ADTS وعلامات رقم التعريف 3 (ID3) | ISO 13818-7 | راجع القسم 5.1.1 للحصول على تفاصيل حول الترميز المتقدّم للصوت وخياراته المختلفة |
WebVTT | WebVTT |
بروتوكول النقل في الوقت الفعلي (RTP)، أو بروتوكول البث المباشر على الإنترنت (SDP)
اسم الملف الشخصي | المَراجع | توفُّر برنامج ترميز مطلوب |
---|---|---|
H264 AVC | RFC 6184 | راجع القسم 5.1.8 للحصول على تفاصيل حول H264 AVC |
MP4A-LATM | RFC 6416 | راجع القسم 5.1.3 للحصول على تفاصيل حول الترميز المتقدّم للصوت وخياراته المختلفة |
H263-1998 |
RFC 3551 RFC 4629 RFC 2190 |
راجع القسم 5.1.8 للحصول على تفاصيل حول H263 |
H263-2000 | RFC 4629 | راجع القسم 5.1.8 للحصول على تفاصيل حول H263 |
دورة AMR | RFC 4867 | راجع القسم 5.1.3 للحصول على تفاصيل حول AMR-NB |
AMR-WB | RFC 4867 | راجع القسم 5.1.3 للحصول على تفاصيل حول AMR-WB |
MP4V-ES | RFC 6416 | راجع القسم 5.1.8 للحصول على تفاصيل حول MPEG-4 SP |
mpeg4 عامة | RFC 3640 | راجع القسم 5.1.3 للحصول على تفاصيل حول الترميز المتقدّم للصوت وخياراته المختلفة |
MP2T | RFC 2250 | يُرجى الاطّلاع على MPEG-2 Transport Stream ضمن HTTP Live Streaming لمزيد من التفاصيل. |
5.8. الوسائط الآمنة
إذا كانت عمليات تنفيذ الأجهزة تتيح إخراج الفيديو الآمن وكانت قادرة على تتوافق مع الأسطح الآمنة:
- [C-1-1] يجب أن يعلن عن دعمه لـ
Display.FLAG_SECURE
.
في حال أعلنت عمليات تنفيذ الأجهزة عن توافقها مع Display.FLAG_SECURE
والدعم
بروتوكول العرض اللاسلكي:
- [C-2-1] يجب تأمين الرابط باستخدام آلية تشفير قوية مثل HDCP 2.x أو أعلى للشاشات المتصلة من خلال البروتوكولات اللاسلكية مثل Miracast.
في حال أعلنت عمليات تنفيذ الأجهزة عن توافقها مع Display.FLAG_SECURE
متوافقة مع شاشة عرض خارجية سلكية، وهي:
- [C-3-1] يجب أن يتوافق مع HDCP 1.2 أو الإصدارات الأحدث مع جميع الشاشات الخارجية المتصلة. عبر منفذ سلكي يمكن للمستخدم الوصول إليه.
5.9. الواجهة الرقمية للآلات الموسيقية (MIDI)
في حال أبلغت عمليات تنفيذ الأجهزة عن توافق الميزة android.software.midi
من خلال
android.content.pm.PackageManager
صنف، فإنها:
[C-1-1] يجب أن يتوافق مع MIDI على جميع عمليات نقل الأجهزة التي تتيح استخدام MIDI التي توفّر اتصالاً عامًا لا يتوافق مع MIDI، وفيها تكون وسائل النقل هذه:
- وضع مضيف USB، القسم 7.7
- دور MIDI عبر Bluetooth LE في دور مركزي، القسم 7.4.3
[C-1-2] يجب أن يتوافق مع نقل برامج MIDI بين التطبيقات. (أجهزة MIDI الافتراضية)
[C-1-3] يجب أن يتضمن libamedi.so (دعم MIDI الأصلي)
"التوافق مع أجهزة MIDI" عبر وضع الجهاز الملحق بمنفذ USB، القسم 7.7
5.10. صوت احترافي
في حال إبلاغ عمليات تنفيذ الأجهزة عن توافق الميزات
android.hardware.audio.pro
عبر
android.content.pm.PackageManager
صنف، فإنها:
- [C-1-1] يجب الإبلاغ عن إتاحة الميزة
android.hardware.audio.low_latency
- يجب أن يتوفر في [C-1-2] وقت استجابة الصوت ذهابًا وإيابًا بشكل مستمر، كما هو محدد في القسم 5.6 وقت استجابة الصوت 25 مللي ثانية أو أقل عبر مسار معتمد واحد على الأقل.
- [C-1-3] يجب أن يشتمل على منافذ USB تدعم وضع مضيف USB وUSB. الجهاز الطرفي.
- [C-1-4] يجب الإبلاغ عن إتاحة الميزة
android.software.midi
. - [C-1-5] يجب أن يستوفي وقت الاستجابة ومتطلبات صوت USB باستخدام
الصوت الأصلي
واجهة برمجة التطبيقات و
AAUDIO_PERFORMANCE_MODE_LOW_LATENCY
. - [C-1-6] يجب أن يبلغ وقت استجابة إخراج الصوت البارد 200 ملّي ثانية أو أقل.
- [C-1-7] يجب أن يبلغ وقت استجابة إدخال "البارد" 200 ملّي ثانية أو أقل.
[C-1-8] يجب أن يبلغ متوسط وقت استجابة النقر للنغمة 80 مللي ثانية أو أقل أكثر من 5 قياسات على الأقل عبر مسار بيانات مكبّر الصوت إلى الميكروفون.
[C-SR-1] يُنصح بشدة بتلبية وقت الاستجابة على النحو المحدّد في القسم 5.6 وقت استجابة الصوت بمدّة 20 ملي ثانية أو أقل، أكثر من 5 قياسات مع متوسط انحراف مطلق أقل من 5 مللي ثانية عبر مسار المتحدث إلى الميكروفون.
[C-SR-2] يُنصَح باستخدامها بشدة لاستيفاء متطلبات Pro Audio وقت استجابة الصوت ذهابًا وإيابًا بشكل مستمر، ووقت استجابة الإدخال على البارد، والإخراج البارد وقت الاستجابة ومتطلبات الصوت عبر USB باستخدام واجهة برمجة التطبيقات Aaudio الأصلية عبر مسار MMAP.
[C-SR-3] يُوصى بها بشدة لتوفير مستوى ثابت من وحدة المعالجة المركزية الأداء عندما يكون الصوت نشطًا ويختلف حِمل وحدة المعالجة المركزية (CPU). يجب اختبار هذه البيانات باستخدام تطبيق Android SynthMark. يستخدم SynthMark أداة توليف برامج تعمل على إطار عمل محاكاة الصوت يقيس أداء النظام. يمكنك الاطّلاع على مستندات SynthMark للحصول على شرح للمقاييس. The SynthMark ضرورة تشغيل التطبيق باستخدام خيار "الاختبار الآلي" وتحقيق النتائج التالية:
- Voicemark.90 >= 32 صوتًا
- timemark.fixed.little <= 15 مللي ثانية
- timemark.dynamic.little <= 50 ميللي ثانية
يجب تقليل دقة ساعة الصوت وانحرافها بالنسبة إلى الوقت القياسي.
يجب تقليل تغيُّر ساعة الصوت بالنسبة إلى وحدة المعالجة المركزية (CPU)
CLOCK_MONOTONIC
عندما يكون كلاهما نشطين.يجب تقليل وقت استجابة الصوت عبر محوّلات الطاقة على الجهاز.
"يجب" تقليل وقت استجابة الصوت عبر صوت USB الرقمي.
"يجب" توفير قياسات وقت استجابة الصوت في جميع المسارات.
يجب تقليل التشويه في أوقات إدخال معاودة الاتصال لإكمال المخزن المؤقت الصوتي، حيث إن ذلك في النسبة المئوية القابلة للاستخدام من معدل نقل بيانات وحدة المعالجة المركزية الكامل من خلال معاودة الاتصال.
يجب ألا تحدث أخطاء في الصوت عند الاستخدام العادي في وقت الاستجابة الذي تم الإبلاغ عنه.
يجب ألا يكون هناك أي فارق في وقت الاستجابة بين القنوات.
يجب تقليل وقت استجابة MIDI في جميع عمليات النقل.
يجب تقليل تغيُّر وقت استجابة MIDI أثناء التحميل (عدم الاستقرار) في جميع عمليات النقل.
يجب أن يتم توفير طوابع زمنية دقيقة لـ MIDI في جميع عمليات النقل.
يجب تقليل ضوضاء الإشارة الصوتية عبر المحوّلات على الجهاز، بما في ذلك فترة مباشرة بعد التشغيل على البارد.
يجب أن توفر قيمة صفرية للفرق في ساعة الصوت بين جانبي الإدخال والإخراج نقاط النهاية المقابلة عندما يكون كلاهما نشط. أمثلة على العبارات المقابلة نقاط النهاية تشمل الميكروفون ومكبّر الصوت المتوفّر على الجهاز أو منفذ إدخال مقبس الصوت والنتيجة.
يجب التعامل مع استدعاءات إكمال المخزن المؤقت للصوت مع وجهي الإدخال والإخراج نقاط النهاية المقابلة في نفس سلسلة المحادثات عندما يكون كلاهما نشط، ثم اضغط على استدعاء الإخراج مباشرةً بعد الإرجاع من معاودة اتصال الإدخال. أو وإذا لم يكن من الممكن معالجة عمليات الاستدعاء على سلسلة المحادثات نفسها، أدخِل إخراج رد الاتصال بعد وقت قصير من إدخال استدعاء الإدخال للسماح التطبيق أن يكون له توقيت ثابت بين جانبي المدخلات والمخرجات.
يجب تقليل فرق الطور بين التخزين المؤقت للصوت HAL في الإدخال. وجوانب إخراج نقاط النهاية المتجاوبة.
يجب تقليل وقت استجابة اللمس.
يجب تقليل تغيُّر وقت استجابة اللمس عند التحميل (عدم الاستقرار).
إذا كانت عمليات تنفيذ الأجهزة تستوفي جميع المتطلبات أعلاه، فإنها:
- [C-SR-4] يُنصح بشدة بالإبلاغ عن الدعم للميزة
android.hardware.audio.pro
عبرandroid.content.pm.PackageManager
الصف.
إذا كانت عمليات تنفيذ الجهاز تتضمّن مقبس صوت مقاس 3.5 ملم بأربعة موصّلات:
يجب أن يكون لـ [C-2-1] وقت استجابة متواصل مستمر للصوت ذهابًا وإيابًا، على النحو المحدد في القسم 5.6 وقت استجابة الصوت الذي يبلغ 20 ملي ثانية أو أقل أكثر من 5 قياسات مع متوسط انحراف مطلق أقل من 5 مللي ثانية خلال مسار مقبس الصوت باستخدام مفتاح إلكتروني لاسترجاع الصوت
[C-SR-5] يُنصح بشدة بالامتثال قسم مواصفات الجهاز الجوّال (مقبس) لمواصفات سماعة الرأس السلكية (الإصدار 1.1).
إذا تجاهلت عمليات تنفيذ الجهاز مقبس صوت مقاس 3.5 ملم بأربعة موصّلات تشتمل على منافذ USB تدعم وضع مضيف USB، فهي:
- [C-3-1] يجب تنفيذ فئة الصوت على USB.
- [C-3-2] يجب أن يكون سرعة انتقال الصوت ذهابًا وإيابًا متواصلاً لمدة 25 مللي ثانية أو أقل، أكثر من 5 قياسات مع متوسط الانحراف المطلق أقل من 5 ملي ثانية عبر منفذ وضع مضيف USB باستخدام فئة صوت USB. (يمكن قياس ذلك باستخدام محوّل USB-3.5 ملم وأداة لاسترجاع الصوت). مفتاح إلكتروني أو استخدام واجهة صوتية بمنفذ USB مع كابلات توصيل لتوصيل المدخلات إلى المخرجات).
- [C-SR-6] يُنصَح باستخدامها بشدة لإتاحة إمكانية عقد مؤتمر I/O في وقت واحد لما يصل إلى 8 قنوات كل اتجاه، ومعدل عينة بتردد 96 كيلو هرتز، وعمق 24 بت أو 32 بت، عند استخدامه مع أجهزة USB المُلحقة الصوتية التي تستوفي أيضًا هذه المتطلبات.
- [C-SR-7] يُنصح بشدة باستيفاء هذه المجموعة من المتطلبات باستخدام واجهة برمجة تطبيقات الصوت الأصلي AAudio عبر مسار MMAP.
إذا كانت عمليات تنفيذ الأجهزة تتضمن منفذ HDMI، سيتم إجراء ما يلي:
- "ينبغي" أن يدعم إخراج الصوت الاستيريو وثمانية قنوات بسرعة 20 بت أو عمق 24 بت و192 كيلوهرتز بدون فقدان عمق البت أو إعادة أخذ العينات، في تهيئة واحدة على الأقل.
5.11. التقاط لم تتم معالجته
يتيح Android تسجيل الأصوات التي لم تتم معالجتها عبر
مصدر صوت واحد (android.media.MediaRecorder.AudioSource.UNPROCESSED
) ضِمن
OpenSL ES، يمكن الوصول إليه من خلال ضبط إعداد مسبق للتسجيل
SL_ANDROID_RECORDING_PRESET_UNPROCESSED
إذا كانت عمليات تنفيذ الجهاز تهدف إلى دعم مصدر الصوت الذي لم تتم معالجته توفّرها للتطبيقات التابعة لجهات خارجية، وهي:
[C-1-1] يجب الإبلاغ عن الدعم من خلال
android.media.AudioManager
. الموقع Property_SUPPORT_AUDIO_SOURCE_UNPROCESSED.[C-1-2] يجب أن تكون ذات اتساع مسطّح مقابل تردد مسطّح تقريبًا الخصائص في نطاق التردد المتوسط: تحديدًا أقل من 10 ديسيبل من من 100 هرتز إلى 7000 هرتز لكل ميكروفون يتم استخدامه لتسجيل الصوت الذي لم تتم معالجته مصدر الصوت
[C-1-3] يجب أن تظهر مستويات اتساع في التردد المنخفض النطاق: تحديدًا من ≥20 ديسيبل من 5 z إلى 100 هرتز مقارنةً بـ نطاق التردد المتوسط لكل ميكروفون يتم استخدامه لتسجيل مصدر صوت لم تتم معالجته
[C-1-4] يجب أن تظهر مستويات اتساع في التردد العالي النطاق: تحديدًا من أقل من 30 ديسيبل من 7000 هرتز إلى 22 كيلوهرتز مقارنةً بـ نطاق التردد المتوسط لكل ميكروفون يتم استخدامه لتسجيل مصدر صوت لم تتم معالجته
[C-1-5] يجب ضبط حساسية إدخال الصوت على شكل جيب جيبي بتردد 1000 هرتز مصدر نغمة يتم تشغيلها عند مستوى ضغط الصوت (SPL) البالغ 94 ديسيبل ينتج عنها استجابة مع قيمة RMS بقيمة 520 لعينة 16 بت (أو مقياس كامل-36 ديسيبل للنقطة العائمة/المزدوجة لكل ميكروفون يُستخدَم لتسجيل أصوات الأجهزة التي لم تتم معالجتها مصدر الصوت
[C-1-6] يجب أن تبلغ نسبة الإشارة إلى الضوضاء (SNR) 60 ديسيبل أو أعلى كل ميكروفون يتم استخدامه لتسجيل مصدر الصوت الذي لم تتم معالجته. (في حين يُقاس SNR كفرق بين 94 ديسيبل SPL وما يعادل ذلك مستوى الضوضاء الذاتية (SPL) بمقياس A).
يجب أن يحتوي [C-1-7] على تشوّه التوافقي الكلي (THD) أقل من 1% لكل ميكروفون، مع مستوى إدخال لصوت SPL يبلغ 90 ديسيبل، لكل ميكروفون يتم استخدامه تسجيل مصدر الصوت الذي لم تتم معالجته
[C-1-8] يجب ألا يتضمّن أي إشارات أخرى (مثل اكتساب تلقائي). السعر الأساسي أو فلتر المرور المرتفع أو إلغاء الصدى) في المسار بخلاف للانتقال إلى النطاق المطلوب. معنى هذا التعديل:
- [C-1-9] في حال توفُّر أي معالجة إشارات في البنية لأي من التنسيقات سببًا، فيجب أن يتم إيقافه وأن يقدم بشكل فعال عدم أي تأخير أو وقت استجابة إضافي لمسار الإشارة.
- [C-1-10] يجب ألا يكون مضاعف المستوى على المسار الصحيح تؤدي إلى تأخير أو وقت الاستجابة في مسار الإشارة.
يتم إجراء جميع قياسات مستوى العميل (SPL) مباشرةً بجانب الميكروفون قيد الاختبار. بالنسبة إلى عمليات إعداد الميكروفونات المتعددة، تسري هذه المتطلبات على لكل ميكروفون.
في حال كانت عمليات تنفيذ الأجهزة تشير إلى السمة android.hardware.microphone
ولكنها لا تشير إلى ذلك
تتوافق مع مصدر الصوت الذي لم تتم معالجته، وهي:
- [C-2-1] يجب عرض
null
للحقلAudioManager.getProperty(PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED)
طريقة واجهة برمجة التطبيقات، للإشارة إلى عدم وجود دعم على نحو صحيح. - لا يزال [C-SR-1] مقترحًا بشدة لاستيفاء أكبر عدد من المتطلبات بالنسبة إلى مسار الإشارة لمصدر التسجيل الذي لم تتم معالجته.
5.12. فيديو HDR
سيتوافق Android 13 مع تقنيات النطاق العالي الديناميكية كما هو موضّح في المستند القادم.
تنسيق Pixel
إذا كان برنامج فك ترميز الفيديو يعلن عن توفّر Color_FormatYUVP010، يجب عندها:
[C-1-1] يجب أن يتوافق مع التنسيق P010 لقراءة وحدة المعالجة المركزية (ImageReader، MediaImage، ByteBuffer). في نظام التشغيل Android 13، تم ضبط P010 للسماح بخطوات عشوائية من أجل Y وطائرات الأشعة فوق البنفسجية.
[C-1-2] يجب أن تتمكن وحدة معالجة الرسومات من استخدام وحدة معالجة الرسومات في المخزن المؤقت للمخرجات P010 (عند حدوث المخصصة مع استخدام GPU_SAMPLING). يتيح ذلك إنشاء وحدة معالجة الرسومات وتخصيصها تعيين الأسلوب بواسطة التطبيقات.
إذا كان برنامج فك ترميز الفيديو يعلن عن توافق Color_Format32bitABGR2101010، ينطبق ما يلي:
- [C-2-1] يجب أن يتوافق مع تنسيق RGBA_1010102 لسطح الإخراج إمكانية قراءة وحدة المعالجة المركزية (CPU) (إخراج ByteBuffer).
إذا أعلن برنامج ترميز فيديو عن توافقه مع Color_FormatYUVP010، يجب إجراء ما يلي:
- [C-3-1] يجب أن يتوافق مع التنسيق P010 لسطح الإدخال ووحدة المعالجة المركزية القابلة للكتابة إدخال (ImageWriter وMediaImage وByteBuffer).
إذا أعلن برنامج ترميز فيديو عن توافقه مع Color_Format32bitABGR2101010، ينطبق ما يلي:
- [C-4-1] يجب أن يتوافق مع تنسيق RGBA_1010102 لسطح الإدخال ووحدة المعالجة المركزية القابلة للكتابة إدخال (ImageWriter، ByteBuffer). ملاحظة: التحويل بين عمليات النقل المختلفة المنحنيات غير مطلوبة لبرامج الترميز.
متطلبات الالتقاط بتقنية HDR
بالنسبة إلى جميع برامج ترميز الفيديو التي تتيح استخدام ملفات HDR الشخصية، يجب مراعاة ما يلي عند تنفيذ الأجهزة:
[C-5-1] يجب ألا يفترض أن البيانات الوصفية ذات تنسيق HDR دقيقة. على سبيل المثال، قد يحتوي الإطار المشفر على بكسلات تتجاوز أعلى مستوى للإضاءة، قد لا يمثل المدرج التكراري الإطار.
يجب تجميع البيانات الوصفية الديناميكية ذات تنسيق HDR لإنشاء صورة ثابتة متوافقة مع النطاق العالي الديناميكية. البيانات الوصفية لأحداث البث المشفرة، ويجب إخراجها في نهاية كل جلسة الترميز.
إذا كانت عمليات تنفيذ الأجهزة تتيح التقاط الصور بتقنية HDR باستخدام واجهات برمجة تطبيقات CamcorderProfile فإنهم:
[C-6-1] يجب أن يتيح التقاط الصور باستخدام تقنية HDR من خلال واجهات برمجة تطبيقات Camera2.
يجب أن يدعم [C-6-2] برنامج ترميز فيديو مسرَّع على واحد على الأقل مع كل تقنية من تقنيات HDR المتوافقة.
يجب أن يتيح [C-6-3] استخدام تقنية HLG (كحد أدنى).
[C-6-4] يجب أن يتيح كتابة البيانات الوصفية ذات تنسيق HDR (إذا كان ذلك منطبقًا على تقنية HDR) فقط) في ملف الفيديو الذي تم التقاطه. لأجهزة AV1 وHEVC وDolbyVision وهذا يعني تضمين البيانات الوصفية في البث المباشر المشفّر.
[C-6-5] يجب أن يتوافق مع P010 وColor_FormatYUVP010.
[C-6-6] يجب أن يتوافق مع التعيين التلقائي لدرجة اللون من HDR إلى SDR برنامج فك ترميز مسرَّع على الجهاز للملف الشخصي الذي تم التقاطه. أو بعبارةٍ أخرى، إذا كان بإمكان الجهاز التقاط HDR10+ HEVC، يجب أن يكون برنامج فك ترميز HEVC التلقائي قادرًا لفك ترميز البث الذي تم تسجيله بتنسيق SDR
متطلبات تعديل النطاق العالي الديناميكية (HDR)
إذا كانت عمليات تنفيذ الأجهزة تتضمن برامج ترميز للفيديوهات تتوافق مع إمكانية التعديل بتقنية HDR، يجب وهي:
- في حال عدم توفُّرها، يجب استخدام الحدّ الأدنى من وقت الاستجابة لإنشاء البيانات الوصفية ذات تنسيق HDR يجب أن يتعاملوا بسلاسة مع الحالات التي تكون فيها البيانات الوصفية متوفرة لبعض وليس للآخرين. وينبغي أن تكون بيانات التعريف هذه دقيقة (على سبيل المثال، تمثل ذروة الإضاءة الفعلية والمدرّج التكراري للإطار).
إذا كان تنفيذ الجهاز يتضمن برامج ترميز تتوافق مع FEATURE_HdrEditing
، يجب عندها
برامج الترميز هذه:
[C-7-1] يجب أن يتوافق مع ملف شخصي واحد على الأقل بتقنية HDR.
[C-7-2] يجب أن يتوافق مع
FEATURE_HdrEditing
لجميع الملفات الشخصية ذات النطاق العالي الديناميكية التي يتم الإعلان عنها بواسطة برنامج الترميز هذا. بمعنى آخر، يجب أن تتيح هذه التطبيقات إنشاء بيانات وصفية بتنسيق HDR عند لا تتوفّر هذه الميزة في جميع ملفات HDR المتوافقة التي تستخدم بيانات وصفية بتنسيق HDR.[C-7-3] يجب أن يتوافق مع تنسيقات الإدخال التالية لبرنامج ترميز الفيديو الاحتفاظ بإشارة النطاق العالي الديناميكية المفكوك ترميزها:
- RGBA_1010102 (موجود حاليًا في منحنى النقل المستهدف) لكل من المدخلات وByteBuffer ويجب أن تعلن عن الدعم Color_Format32bitABGR2101010.
إذا كان تنفيذ الجهاز يتضمن برامج ترميز تتوافق مع FEATURE_HdrEditing، عندئذٍ الجهاز:
- [C-7-4] يجب الإعلان عن دعم إضافة OpenGL EXT_YUV_target.
6. التوافق بين أدوات المطوّرين وخياراتهم
6.1. أدوات مطوّري البرامج
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يتوافق مع أدوات مطوّري برامج Android المتوفرة في نظام التشغيل Android SDK.
-
- يجب أن يتوافق [C-0-2] مع adb كما هو موضّح في حزمة Android SDK وواجهة الأوامر.
والأوامر المقدّمة في بروتوكول AOSP والتي يمكن لمطوِّري التطبيقات استخدامها،
من ضمنهم
dumpsys
cmd stats
- [C-0-11] يجب أن يتوافق مع أمر الغلاف
cmd testharness
. جارٍ الترقية الأجهزة من إصدار Android سابق بدون وقد يتم إعفاء كتلة بيانات دائمة من C-0-11. - [C-0-3] يجب ألا يغيّر تنسيق أو محتوى نظام الجهاز أحداث (إحصائيات البطارية ، Diskstats، بصمة الإصبع، إحصائيات الرسومات، netstats، الملف الشخصي (procstats) التي تم تسجيلها من خلال أمر dumpsys.
- [C-0-10] يجب أن يسجّل بدون حذف وأن ينفّذ الأحداث التالية
متاحة ويمكن الوصول إليها من خلال أمر الغلاف
cmd stats
فئة واحدة (StatsManager
) في System API.- تم تغيير حالة ActivityForegroundState.
- تم رصد قيمة شاذة
- تم الإبلاغ عن مسار تنقل التطبيق
- حدث AppCrashOccurred
- حدث AppStartOccurred
- تم تغيير مستوى البطارية
- البطاريةSaverModeStateChanged
- تم تلقّي نتيجة BleScanResult
- BleScanStateChanged
- تم تغيير حالة الشحن
- DeviceIdleModeStateChanged
- .ForegroundServiceStateChanged
- GpsScanStateChanged
- تم تغيير JobState
- plgedStateChanged
- scheduleJobStateChanged
- تم تغيير حالة الشاشة
- SyncStateChanged
- SystemEboundedRealtime (الوقت الفعلي للنظام)
- UidProcessStateChanged
- تم تغيير حالة WakelockState
- حدث منبّه الصباح
- تم تغيير حالة WifiLockState
- تم تغيير حالة WifiMulticastLock
- تم تغيير حالة Wi-FiScanState
- [C-0-4] يجب أن يكون البرنامج الخفي لـ adb من جهة الجهاز غير نشط بشكل تلقائي يجب أن تتوفّر آلية يمكن للمستخدمين الوصول إليها لتفعيل ميزة تصحيح الأخطاء في Android جسر.
- [C-0-5] يجب أن يتيح استخدام adb. يوفِّر Android إمكانية استخدام Adb. يفعِّل Adb الآمن واجهة برمجة التطبيقات (ADb) على المضيفات المعروفة التي تمت مصادقتها.
- [C-0-6] يجب أن يوفر آلية تسمح بربط Adb من الجهاز المضيف. وعلى وجه التحديد:
إذا كانت عمليات تنفيذ الجهاز بدون منفذ USB تتوافق مع وضع الأجهزة الملحقة، سيتم إجراء ما يلي:
- [C-3-1] يجب تنفيذ adb عبر شبكة محلية (مثل Ethernet) أو Wi-Fi).
- [C-3-2] يجب أن يوفر برامج تشغيل لأنظمة Windows 7 و8 و10، مما يسمح مطوّري البرامج للاتصال بالجهاز باستخدام بروتوكول adb.
إذا كانت عمليات تنفيذ الجهاز تدعم اتصالات adb بجهاز مضيف من خلال شبكة Wi-Fi أو إيثرنت:
- [C-4-1] يجب أن يستخدم طريقة
AdbManager#isAdbWifiSupported()
إرجاعtrue
.
إذا كانت عمليات تنفيذ الجهاز تدعم اتصالات adb بجهاز مضيف من خلال Wi-Fi أو إيثرنت تتضمن كاميرا واحدة على الأقل، وهي:
- [C-5-1] يجب أن يستخدم طريقة
AdbManager#isAdbWifiQrSupported()
إرجاعtrue
.
- يجب أن يتوافق [C-0-2] مع adb كما هو موضّح في حزمة Android SDK وواجهة الأوامر.
والأوامر المقدّمة في بروتوكول AOSP والتي يمكن لمطوِّري التطبيقات استخدامها،
من ضمنهم
خدمة Dalvik Debug Monitor (ddms)
- يجب أن يتوافق [C-0-7] مع جميع ميزات نظام إدارة البيانات (ddms) كما هو موثّق في حزمة تطوير البرامج (SDK) لنظام التشغيل Android. بما أنّ نظام dms يستخدم adb، يُفترَض أن يكون الدعم لنظام ddms غير نشط بشكل تلقائي. يجب أن يكون معتمدًا عندما ينشط المستخدم Android Debug Bridge على النحو الوارد أعلاه.
-
- [C-0-9] يجب أن يتوافق مع أداة تتبُّع النظم كما هو موثّق في حزمة تطوير البرامج (SDK) لنظام التشغيل Android. يجب أن يكون النظام غير نشط بشكل افتراضي ويجب أن يكون هناك برنامج يمكن الوصول إليه من المستخدم لتشغيل Systrace.
-
- [C-SR-1] يُوصى بشدتها لكشف
/system/bin/perfetto
ثنائي النظام إلى مستخدم واجهة المستخدم الذي يتوافق مع cmdline مستندات العروض - [C-SR-2] يُنصح بشدة بقبول البرنامج الثنائي للأداء كإدخال تهيئة Protobuf التي تتوافق مع المخطط المحدد في مستندات المزايا
- [C-SR-3] يُنصح بشدة بكتابة برنامج Perfetto كمخرج تتبع النماذج الأوّلية التي تتوافق مع المخطط المحدد في مستندات المزايا
- [C-SR-4] يُوصى بشدة بتقديمها من خلال برنامج Perfetto الثنائي على الأقل من مصادر البيانات الموضّحة في مستندات المزايا.
- [C-SR-1] يُوصى بشدتها لكشف
-
- [C-0-12] يجب كتابة
LMK_KILL_OCCURRED_FIELD_NUMBER
Atom إلى سجلّ يعرض إحصاءات عند إنهاء أحد التطبيقات بسبب انخفاض الذاكرة الخالية
- [C-0-12] يجب كتابة
وضع مفعِّل الاختبار إذا كانت عمليات تنفيذ الجهاز تتوافق مع أمر واجهة الأوامر
cmd testharness
تشغيلcmd testharness enable
، فإن:- [C-2-1] يجب عرض
true
لمدةActivityManager.isRunningInUserTestHarness()
- [C-2-2] يجب تنفيذ "وضع مفعِّل الاختبار" كما هو موضَّح في مستندات "وضع مفعِّل اختبار"
- [C-2-1] يجب عرض
معلومات عمل وحدة معالجة الرسومات
عمليات تنفيذ الأجهزة:
- [C-0-13] يجب تنفيذ أمر Shell
dumpsys gpu --gpuwork
لعرض بيانات عمل وحدة معالجة الرسومات المجمَّعة التي تعرضها النواةpower/gpu_work_period
أو لا تعرض أي بيانات إذا كانت نقطة التتبع غير متاحة. بروتوكول AOSP التنفيذ هيframeworks/native/services/gpuservice/gpuwork/
.
- [C-0-13] يجب تنفيذ أمر Shell
إذا أبلغَت عمليات تنفيذ الأجهزة عن دعم Vulkan 1.0 أو إصدار أحدث عبر
علامات ميزات android.hardware.vulkan.version
، وهي:
- [C-1-1] يجب أن توفر ميزة لمطوّر التطبيق لتفعيل/إيقاف طبقات تصحيح أخطاء وحدة معالجة الرسومات
- [C-1-2] يجب، عند تفعيل طبقات تصحيح أخطاء وحدة معالجة الرسومات، تعداد الطبقات في المكتبات التي توفرها أدوات خارجية (أي ليست جزءًا من النظام الأساسي أو حزمة التطبيق) في التطبيقات القابلة للتصحيح الدليل الأساسي إلى إتاحة vkEnumerateInstanceLayerProperties() وvkCreateInstance() طرق واجهة برمجة التطبيقات.
6.2. خيارات المطوّرين
يتيح Android للمطوّرين ضبط إعدادات التطبيق. الإعدادات المتعلقة بالتطوير.
يجب أن توفر عمليات تنفيذ الأجهزة تجربة متسقة تتيح خيارات المطوّرين ما يلي:
- [C-0-1] يجب أن يحترم android.settings.APPLICATION_DEVELOPMENT_SETTINGS الغرض من عرض الإعدادات المتعلقة بتطوير التطبيقات. أحدث إصدارات Android يؤدي تنفيذ هذا الإجراء إلى إخفاء قائمة "خيارات المطوّرين" تلقائيًا وتمكين المستخدمين من تشغيل "خيارات المطوّرين" بعد الضغط سبع (7) مرات في الإعدادات > لمحة عن الجهاز > عنصر القائمة رقم الإصدار
- [C-0-2] يجب أن تخفي خيارات المطوّرين تلقائيًا.
- [C-0-3] يجب أن توفر آلية واضحة لا تمنح الأولوية مع تطبيق تابع لجهة خارجية بدلاً من تطبيق آخر لتمكين المطوّرين الخيارات. يجب أن يقدم مستندًا أو موقعًا إلكترونيًا مرئيًا للجميع يصف كيفية لتفعيل "خيارات المطوّرين". يجب أن يكون هذا المستند أو موقع الويب قابلاً للربط من مستندات Android SDK.
- يجب أن يتم إرسال إشعار مرئي مستمر للمستخدم عند بدء مرحلة من البرنامج. تم تفعيل الخيارات والمخاوف المتعلقة بأمان المستخدم.
- قد يقصر مؤقتًا الدخول إلى قائمة "خيارات المطورين"، عن طريق إخفاء القائمة أو إيقافها، وذلك لمنع تشتيت الانتباه في الحالات التي يكون فيها فإن سلامة المستخدم موضع قلق.
7. توافُق الأجهزة
إذا كان أحد الأجهزة يتضمن مكونًا معينًا للجهاز له واجهة برمجة التطبيقات للمطوّرين التابعين لجهات خارجية:
- [C-0-1] يجب أن تنفذ عملية تنفيذ الجهاز ذلك واجهة برمجة التطبيقات كما هو موضّح في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
إذا كانت هناك واجهة برمجة تطبيقات في حزمة SDK مع مكون جهاز يُعرف أنه اختياري تطبيق الجهاز لا يتضمن هذا المكون:
- [C-0-2] تعريفات الفئة الكاملة (كما هو موثق بواسطة SDK) للمكوِّن يجب عرض واجهات برمجة التطبيقات.
- [C-0-3] يجب تنفيذ سلوكيات واجهة برمجة التطبيقات كعمليات مستقلة في بعض المعقول والموضة.
- [C-0-4] يجب أن تعرض طرق واجهة برمجة التطبيقات قيمًا فارغة في الحالات التي تسمح بها حزمة تطوير البرامج (SDK) التوثيق.
- [C-0-5] يجب أن تعرض طرق واجهة برمجة التطبيقات عمليات تنفيذ للفئات التي تحتوي على قيم فارغة في وثائق حزمة SDK.
- [C-0-6] يجب ألا تنشئ طرق واجهة برمجة التطبيقات استثناءات غير موثّقة من خلال حزمة تطوير البرامج (SDK) التوثيق.
- [C-0-7] يجب أن تُبلغ عمليات تنفيذ الأجهزة عن الأجهزة الدقيقة بشكل مستمر
معلومات الإعداد عبر
getSystemAvailableFeatures()
طريقتَان (hasSystemFeature(String)
) على android.content.pm.PackageManager الفئة نفسها لبصمة الإصدار.
ومن الأمثلة النموذجية على السيناريو الذي تنطبق فيه هذه المتطلبات هو الاتصال الهاتفي واجهة برمجة التطبيقات: حتى على الأجهزة بخلاف الهواتف، يجب تنفيذ واجهات برمجة التطبيقات هذه على النحو المعقول بلا عمليات.
7.1. العرض والرسومات
يتضمن Android مرافق تعدِّل أصول التطبيقات وواجهة المستخدم تلقائيًا.
بشكل مناسب للجهاز لضمان خروج تطبيقات الجهات الخارجية
يعمل بشكل جيد على مجموعة متنوعة من تهيئات الأجهزة.
مجموعة متنوعة من شاشات عرض الأجهزة وإعداداتها. إنّ
شاشة العرض المتوافقة مع Android هي شاشة عرض تنفذ جميع
السلوكيات وواجهات برمجة التطبيقات الموضحة في مقالة مطوّرو تطبيقات Android - التوافق مع الشاشة
نظرة عامة، فإن ذلك
(7.1) وأقسامه الفرعية، بالإضافة إلى أي نوع جهاز إضافي
السلوكيات المحددة الموثقة في القسم 2 من هذا
CDD.
على الشاشات المتوافقة مع Android حيث تعمل جميع الجهات الخارجية المتوافقة مع Android
إمكانية تشغيل تطبيقات الأجهزة، يجب أن تنفذ عمليات تنفيذ الأجهزة واجهات برمجة التطبيقات هذه بشكل صحيح
وسلوكيات المستخدمين كما هو موضّح في هذا القسم.
بدء متطلبات جديدة
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن تعرض تلقائيًا التطبيقات التابعة للجهات الخارجية على الشاشات المتوافقة مع Android
إنهاء المتطلبات الجديدة
يتم تعريف الوحدات المُشار إليها من خلال المتطلّبات في هذا القسم على النحو التالي:
- الحجم القطري الفعلي. المسافة بالبوصة بين اثنين متعارضين زوايا الجزء المضيء من الشاشة.
نقاط لكل بوصة (dpi)الكثافة. عدد وحدات البكسل التي يشتمل عليها خط خطي مدى أفقي أو رأسي بمقدار 1 بوصة، ويتم التعبير عنه بالبكسل لكل بوصة (نقطة لكل بوصة أو نقطة لكل بوصة). أينdpiيتم سرد قيم نقطة لكل بوصة (ppi) ونقطة لكل بوصة (dpi)، يجب أن تكون النقاط لكل بوصة أفقية ورأسية ضمن القائمة. النطاق.- نسبة العرض إلى الارتفاع يشير ذلك المصطلح إلى نسبة وحدات البكسل للبُعد الأطول إلى بُعد أقصر للشاشة. على سبيل المثال، فإن عرض 480x854 بكسل ستكون 854/480 = 1.779، أو ما يقرب من "16:9".
- وحدة بكسل مستقلة الكثافة (dp)
A وحدة بكسل افتراضية تمت تسويتها إلىشاشة تبلغ 160 نقطة لكل بوصةكثافة شاشة تبلغ 160 بالنسبة لبعض الكثافة d، وعدد بالبكسل p، وهو عدد وحدات بكسل مستقلة الكثافة بكسلة مستقلة الكثافة يتم احتسابها على النحو التالي:بكسل = dps * (الكثافة/160)dp = (160 / d) * p .
7.1.1. إعدادات الشاشة
7.1.1.1. حجم الشاشة وشكلها
يتوافق إطار عمل واجهة المستخدم من Android مع مجموعة متنوعة من تنسيقات الشاشة المنطقية المختلفة
ويسمح للتطبيقات بالاستعلام عن شاشة التكوين الحالية
حجم التنسيق عبر Configuration.screenLayout
مع SCREENLAYOUT_SIZE_MASK
وConfiguration.smallestScreenWidthDp
.
عمليات تنفيذ الأجهزة:
[C-0-1] يجب الإبلاغ عن حجم التخطيط الصحيح
Configuration.screenLayout
كما هو محدّد في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android. وعلى وجه التحديد، يجب أن تبلغ عمليات تنفيذ الأجهزة عن القيم المنطقية الصحيحة أبعاد شاشة البكسل المستقلة الكثافة (dp) على النحو التالي:- الأجهزة التي تم ضبط
Configuration.uiMode
فيها كأي قيمة بخلاف UI_mode_TYPE_watch، والإبلاغ عن حجمsmall
Configuration.screenLayout
، يجب أن يحتوي على 426 بكسل مستقل الكثافة × 320 بكسل مستقل الكثافة على الأقل. - الأجهزة التي يبلغ حجمها
normal
لجهازConfiguration.screenLayout
يجب أن يحتوي على 480 بكسل مستقل الكثافة × 320 بكسل مستقل الكثافة على الأقل. - الأجهزة التي يبلغ حجمها
large
لجهازConfiguration.screenLayout
يجب أن يحتوي على ما لا يقل عن 640 بكسل مستقل الكثافة × 480 بكسل مستقل الكثافة (dp). - الأجهزة التي يبلغ حجمها
xlarge
لجهازConfiguration.screenLayout
يجب أن يحتوي على ما لا يقل عن 960 بكسل مستقل الكثافة × 720 بكسل مستقل الكثافة (dp).
- الأجهزة التي تم ضبط
[C-0-2] يجب أن يلتزم بالطلبات بشكل صحيح" مذكور إتاحة أحجام الشاشات من خلال <
supports-screens
> في ملف AndroidManifest.xml، كما هو موصوف في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Androidقد يحتوي على الشاشات المتوافقة مع Android ذات الزوايا المستديرة.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع الشاشات القادرة على
UI_MODE_TYPE_NORMAL
إعدادات الحجم
والتوافق مع Android
استخدام الشاشات المادية مع
زوايا دائرية لعرض هذه الشاشات
وهي:
[C-1-1] يجب أن يضمن استيفاء أحد المتطلبات التالية على الأقل لكل عرض من هذا النوع:
- نصف قطر الزوايا المستديرة أقل من أو يساوي 38 وحدة بكسل مستقلة الكثافة.
- عندما يكون
1518 بكسل مستقل الكثافة بنسبة1518 يتم تثبيت مربّع dp في كل زاوية من زوايا العرض المنطقي، على الأقل بكسل لكل مربع على الشاشة.
مدى تحمل المستخدم للتبديل إلى وضع العرض زوايا مستطيلة.
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الأجهزة تتيح ضبط لوحة مفاتيح NO_KEYS
فقط،
وأعتزم الإبلاغ عن التوافق مع وضع واجهة المستخدم UI_MODE_TYPE_NORMAL
.
التكوين، فهي:
- [C-4-1] يجب أن يتوفّر حجم تصميم على الأقل، باستثناء أي خطوط مقطوعة للشاشة، 596 بكسل مستقل الكثافة × 384 بكسل مستقل الكثافة أو أكبر
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة تتضمن شاشات عرض متوافقة مع Android ذات أو يتضمن مفصلة قابلة للطي بين لوحات عرض متعددة ويجعلها هذه الشاشات المتاحة لعرض تطبيقات تابعة لجهات خارجية:
- [C-2-1] يجب أن ينفذ أحدث إصدار ثابت متاح من extensions API أو الإصدار الثابت من sidecar API لاستخدامه في مكتبة Window Manager Jetpack.
إذا كانت عمليات تنفيذ الأجهزة تتضمن شاشات عرض متوافقة مع Android ذات قابلة للطي أو تتضمن مفصلة قابلة للطي بين لوحات عرض متعددة وإذا تعبر المفصّلة أو الطي نافذة تطبيق بملء الشاشة، حيث:
- [C-3-1] يجب أن يبلغ عن الموضع والحدود وحالة المفصّلة أو الطي من خلال الإضافات أو واجهات برمجة تطبيقات السيارة الجانبية للتطبيق.
للحصول على تفاصيل عن تنفيذ واجهات برمجة التطبيقات للإضافة أو الإضافة بشكل صحيح، يُرجى الرجوع إلى إلى المستندات العلنية الخاصة بحزمة Window Manager Jetpack.
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الجهاز تتضمن منطقة عرض واحدة أو أكثر متوافقة مع Android القابلة للطي، أو التي تتضمن مفصلة قابلة للطي بين عدة مناطق لوحة العرض المتوافقة مع Android وإتاحة مساحات العرض هذه التطبيقات، فإنها:
- [C-4-1] يجب تنفيذ الإصدار الصحيح من إضافات مدير النوافذ مستوى واجهة برمجة التطبيقات على النحو الموضّح في إضافات WindowManager.
إنهاء المتطلبات الجديدة
7.1.1.2. نسبة عرض إلى ارتفاع الشاشة
على الرغم من أنه ليست هناك قيود على نسبة العرض إلى الارتفاع للعرض الفعلي
الشاشات المتوافقة مع Android، ونسبة العرض إلى الارتفاع للشاشة المنطقية
موضع عرض تطبيقات الجهات الخارجية، والذي يمكن استنتاجه من طول الشاشة
قيم العرض التي تم الإبلاغ عنها من خلال view.Display
واجهات برمجة التطبيقات والإعدادات
يجب أن تستوفي واجهات برمجة التطبيقات المتطلبات التالية:
[C-0-1] تم ضبط عمليات تنفيذ الأجهزة مع
Configuration.uiMode
على يجب أن تكون نسبة العرض إلى الارتفاع فيUI_MODE_TYPE_NORMAL
أقل من أو تساوي إلى 1.86 (حوالي 16:9)، إلا إذا استوفى التطبيق أحد المتطلبات التالية الشروط:- أعلن التطبيق أنّه يتيح زيادة نسبة العرض إلى الارتفاع للشاشة.
من خلال
android.max_aspect
بيانات التعريف. - يشير التطبيق إلى أنّه قابل لتغيير الحجم من خلال android:resizeableActivity. .
- يستهدف التطبيق المستوى 24 من واجهة برمجة التطبيقات أو مستوى أعلى، ولا يفصح عن
android:maxAspectRatio
يحدّ من نسبة العرض إلى الارتفاع المسموح بها.
- أعلن التطبيق أنّه يتيح زيادة نسبة العرض إلى الارتفاع للشاشة.
من خلال
[C-0-3] عمليات تنفيذ الأجهزة مع ضبط
Configuration.uiMode
على يجب ضبط نسبة العرض إلى الارتفاع فيUI_MODE_TYPE_WATCH
على 1.0 (1:1).
7.1.1.3. كثافة الشاشة
يحدد إطار عمل واجهة المستخدم من Android مجموعة من الكثافات المنطقية القياسية للمساعدة في يستهدف مطورو التطبيقات موارد التطبيقات.
عمليات تنفيذ الأجهزة:
- [C-0-1]
عمليات تنفيذ الأجهزة تلقائيًايجب الإبلاغفقطعن أحد يتم إدراج كثافات إطار عمل Android المُدرجة فيDisplayMetrics
من خلالDENSITY_DEVICE_STABLE
واجهة برمجة التطبيقات ويجب أن تكون هذه القيمة قيمة ثابتة لكل عرض مادي.يجب ألا تتغير في أي وقت. في المقابل،ومع ذلك قد يكون الجهاز الإبلاغ عنكثافة عشوائيةمختلفةDisplayMetrics.density
وفقًا للتغييرات التي يجريها المستخدم على إعدادات العرض (على سبيل المثال مثلًا، حجم العرض) يتم تعيينه بعد التشغيل الأولي.
- يجب أن تحدد عمليات تنفيذ الأجهزة الكثافة العادية لإطار عمل Android الأقرب رقميًا إلى الكثافة الفيزيائية للشاشة، ما لم الكثافة المنطقية تجعل حجم الشاشة المبلّغ عنه أقل من الحد الأدنى المتاح. في حال حذف تمثّل الكثافة العادية لإطار عمل Android الأقرب رقميًا إلى ينتج عن الكثافة الفيزيائية حجم شاشة أصغر من أصغر حجم حجم شاشة متوافق متوافق (عرض 320 وحدة بكسل مستقلة الكثافة)، وينبغي في الإبلاغ عن ثاني أدنى كثافة لإطار عمل Android وفقًا للمعيار.
بدء متطلبات جديدة
- "يجب تحديد كثافة إطار عمل Android العادية" رقميًا. الأقرب إلى الكثافة الفيزيائية للشاشة، أو قيمة يمكن تعيينها إلى نفس قياسات مجال الرؤية الزاوي المكافئة لجهاز محمول باليد.
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة توفر
هناك إمكانية
تغيير حجم عرض الجهاز ، تكون:
- [C-1-1]
يجب ألا يتم تغيير حجم العرضيجب عدم تغيير حجم الشاشة أكبر من 1.5 مرةDENSITY_DEVICE_STABLE
الكثافة الأصليةأو تنتج حدًا أدنى فعّالاً لبُعد الشاشة يقل عن 320 بكسل مستقل الكثافة (ما يعادل ذلك) إلى مؤهل المورد sw320dp)، أيهما أقرب. - [C-1-2]
يجب ألا يتم تغيير حجم شاشة العرضيجب عدم تغيير حجم الشاشة أصغر من 0.85 مرة منDENSITY_DEVICE_STABLE
الكثافة الأصلية. - ولضمان سهولة الاستخدام وأحجام الخطوط المتسقة، يُنصح باتّباع
توفير خيارات الإعلانات المدمجة مع المحتوى التالية (مع الالتزام بالحدود)
المحددة أعلاه)
- صغيرة: 0.85x
- الإعداد التلقائي: 1x (مقياس العرض الأصلي)
- كبيرة: 1.15x
- أكبر: 1.3x
- الأكبر 1.45x
7.1.2. مقاييس العرض
إذا كانت عمليات تنفيذ الأجهزة تتضمن الشاشات أو الشاشات المتوافقة مع Android إخراج الفيديو إلى شاشات العرض المتوافقة مع Android، فإنها:
- [C-1-1] يجب الإبلاغ عن القيم الصحيحة لجميع الشاشات المتوافقة مع Android
المقاييس المحددة في
android.util.DisplayMetrics
API.
إذا كانت عمليات تنفيذ الجهاز لا تتضمن شاشة مضمّنة أو إخراج فيديو، وهي:
- [C-2-1] يجب الإبلاغ عن القيم الصحيحة للشاشة المتوافقة مع Android.
كما هو محدّد في واجهة برمجة تطبيقات
android.util.DisplayMetrics
للقيمة التلقائية التي تمت محاكاتها لـview.Display
.
7.1.3. اتجاه الشاشة
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يبلغ عن اتجاهات الشاشة المتوافقة
(
android.hardware.screen.portrait
و/أوandroid.hardware.screen.landscape
) ويجب أن يتم الإبلاغ عن عملية دعم واحدة على الأقل. توجهك. على سبيل المثال، جهاز باتجاه أفقي ثابت شاشة، مثل التلفزيون أو الكمبيوتر المحمول، والتي ينبغي الإبلاغ عنandroid.hardware.screen.landscape
- [C-0-2] يجب الإبلاغ عن القيمة الصحيحة للجهاز الحالي
الاتجاه، متى تم الاستعلام عبر
android.content.res.Configuration.orientation
,android.view.Display.getOrientation()
أو واجهات برمجة تطبيقات أخرى.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع كلا اتجاهَي الشاشة، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يدعم الاتجاه الديناميكي من خلال التطبيقات إما على الشاشة العمودية أو الأفقية توجهك. وهذا يعني أنّ الجهاز يجب أن يراعي طلب التطبيق بخصوص شاشة محدّدة. توجهك.
- [C-1-2] يجب ألا يتم تغيير حجم الشاشة أو كثافةها التي تم الإبلاغ عنها عند تغيير الاتجاه.
- من الممكن اختيار الاتجاه العمودي أو الأفقي كإعداد تلقائي.
7.1.4. تسريع الرسومات الثنائية الأبعاد والثلاثية الأبعاد
7.1.4.1 OpenGL ES
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يحدد بشكل صحيح إصدارات OpenGL ES المتوافقة (1.1، 2.0،
3.0 و3.1 و3.2) من خلال واجهات برمجة التطبيقات المُدارة (على سبيل المثال من خلال
GLES10.getString()
) وواجهات برمجة التطبيقات الأصلية. - [C-0-2] يجب أن يتضمن الدعم لجميع واجهات برمجة التطبيقات المُدارة ذات الصلة واجهات برمجة التطبيقات الأصلية لكل إصدارات OpenGL ES التي تم تحديدها لدعمها.
إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:
- [C-1-1] يجب أن يتوافق مع كل من OpenGL ES 1.1 و2.0، كما هو مضمّن ومفصَّل. في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
- [C-SR-1] يُوصى بها بشدة لإتاحة استخدام OpenGL ES 3.1.
- يجب أن تتوافق مع OpenGL ES 3.2.
يتم تقسيم اختبارات OpenGL ES dEQP إلى عدد من قوائم الاختبار، كل منها
تاريخ/رقم إصدار مرتبط. وتتوفر هذه البيانات في شجرة مصادر Android على
external/deqp/android/cts/main/glesXX-main-YYYY-MM-DD.txt
هو جهاز
يتوافق مع OpenGL ES على مستوى يتم الإبلاغ عنه ذاتيًا إلى أنّه يمكنه اجتياز dEQP
في جميع قوائم الاختبار من هذا المستوى والمستويات السابقة.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أي من إصدارات OpenGL ES، سيتم إجراء ما يلي:
- [C-2-1] يجب إعداد التقارير من خلال واجهات برمجة التطبيقات المُدارة في OpenGL ES وواجهات برمجة التطبيقات الأصلية بأي إضافات OpenGL ES الأخرى التي تم تنفيذها، وبالتالي يجب لا تُبلغ عن سلاسل الإضافات التي لا تتوافق معها.
- [C-2-2] يجب أن يتوافق مع
EGL_KHR_image
وEGL_KHR_image_base
EGL_ANDROID_image_native_buffer
،EGL_ANDROID_get_native_client_buffer
،EGL_KHR_wait_sync
،EGL_KHR_get_all_proc_addresses
،EGL_ANDROID_presentation_time
،EGL_KHR_swap_buffers_with_damage
،EGL_ANDROID_recordable
وEGL_ANDROID_GLES_layers
إضافة - [C-2-3] يجب الإبلاغ عن الحد الأقصى لإصدار اختبارات OpenGL ES dEQP
متاحة عبر علامة الميزة
android.software.opengles.deqp.level
. - [C-2-4] يجب أن يتوافق على الأقل مع الإصدار 132383489 (اعتبارًا من 1 آذار (مارس) 2020)
تم الإبلاغ عنه في علامة الميزة
android.software.opengles.deqp.level
. - [C-2-5] يجب اجتياز جميع اختبارات OpenGL ES dEQP في قوائم الاختبار بين الإصدار
132383489 والإصدار المحدّد في
علامة ميزة واحدة (
android.software.opengles.deqp.level
) لكل ميزة متاحة إصدار OpenGL ES. - [C-SR-2] يُنصح بشدة بدعم
EGL_KHR_partial_update
OES_EGL_image_external
إضافات يجب أن يتم الإبلاغ بدقة عبر طريقة
getString()
، وأي زخرفة تنسيق الضغط الذي يتيحونه، والذي يكون عادةً خاصًا بالمورّد.يجب أن تتوافق مع
EGL_IMG_context_priority
EGL_EXT_protected_content
إضافات
إذا كانت عمليات تنفيذ الأجهزة تشير إلى توافقها مع OpenGL ES 3.0 أو 3.1 أو 3.2، ينطبق ما يلي:
- [C-3-1] يجب تصدير رموز الدوال المقابلة لهذه النسخة بتنسيق بالإضافة إلى رموز الدالة OpenGL ES 2.0 في مكتبة libGLESv2.so.
- [C-SR-3] يُنصَح باستخدامها بشدة لإتاحة
OES_EGL_image_external_essl3
الإضافة.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع OpenGL ES 3.2، سيتم إجراء ما يلي:
- [C-4-1] يجب أن يتوافق مع حزمة إضافات OpenGL ES Android بالكامل.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع حزمة إضافات Android OpenGL ES في بالكامل، فإنها:
- [C-5-1] يجب أن يحدد خدمة الدعم من خلال
android.hardware.opengles.aep
علامة الميزة.
إذا كشفت عمليات تنفيذ الأجهزة عن الدعم لـ EGL_KHR_mutable_render_buffer
الإضافة، فإنها:
- [C-6-1] يجب أن يتوافق أيضًا مع
EGL_ANDROID_front_buffer_auto_refresh
. الإضافة.
7.1.4.2 Vulkan
يدعم Android استخدام Vulkan ، وهي واجهة برمجة تطبيقات منخفضة التكلفة وتعمل عبر الأنظمة الأساسية للرسومات الثلاثية الأبعاد العالية الأداء.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع OpenGL ES 3.1، سيتم إجراء ما يلي:
- [C-SR-1] يُوصى بشدة بتضمين الدعم في Vulkan 1.3.
- [C-4-1] يجب ألا يكون متوافقًا مع إصدار Vulkan (أي خيار الصيغة أن يكون جزءًا من إصدار Vulkan الأساسي صفرًا).
إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:
- [C-SR-2] يُوصى بشدة بتضمين الدعم في Vulkan 1.3.
يتم تقسيم اختبارات Vulkan dEQP إلى عدد من قوائم الاختبارات، يتضمّن كلّ منها
التاريخ/النسخة المرتبطة. وتتوفر هذه البيانات في شجرة مصادر Android على
external/deqp/android/cts/main/vk-main-YYYY-MM-DD.txt
هو جهاز
يتوافق مع Vulkan على المستوى الذي يتم الإبلاغ عنه ذاتيًا إلى أنّه بإمكانه اجتياز dEQP
في جميع قوائم الاختبار من هذا المستوى والمستويات السابقة.
إذا كانت عمليات تنفيذ الجهاز تشمل دعم Vulkan
1.0 أو إصدار أحدث:
- [C-1-1] يجب أن تبلغ قيمة العدد الصحيح مع
android.hardware.vulkan.level
وandroid.hardware.vulkan.version
علامات الميزات. - [C-1-2] يجب تعداد
VkPhysicalDevice
واحد على الأقل لـ Vulkan واجهة برمجة التطبيقات الأصليةvkEnumeratePhysicalDevices()
. - [C-1-3] يجب تنفيذ
Vulkan 1.0بالكامل واجهات برمجة تطبيقات Vulkan 1.1 لكل تعدادVkPhysicalDevice
- [C-1-4] يجب تعداد الطبقات، المضمنة في المكتبات الأصلية المسماة
libVkLayer*.so
في دليل المكتبة الأصلي لحزمة التطبيق، من خلال واجهات برمجة تطبيقات Vulkan الأصليةvkEnumerateInstanceLayerProperties()
وvkEnumerateDeviceLayerProperties()
. - [C-1-5] يجب عدم تعداد الطبقات التي توفرها المكتبات خارج
حزمة التطبيق، أو توفير طرق أخرى لتتبع أو اعتراض
Vulkan API، ما لم يكن التطبيق يحتوي على السمة
android:debuggable
يتم ضبطها على أنّهاtrue
أو البيانات الوصفيةcom.android.graphics.injectLayers.enable
تم الضبط علىtrue
. - [C-1-6] يجب الإبلاغ عن جميع سلاسل الإضافات التي تتوافق معها عبر واجهات برمجة تطبيقات Vulkan الأصلية، وفي المقابل يجب ألا تُبلّغ عن سلاسل الإضافات وهي لا تدعمها بشكل صحيح.
- [C-1-7] يجب أن يتوافق مع VK_KHR_surface وVK_KHR_android_surface وVK_KHR_swapchain وVK_KHR_incremental_present.
- [C-1-8] يجب الإبلاغ عن الحد الأقصى لإصدار اختبارات dEQP من Vulkan
متاحة عبر علامة الميزة
android.software.vulkan.deqp.level
. - [C-1-9] يجب أن يتوافق على الأقل مع الإصدار
132317953
(اعتبارًا من 1 آذار (مارس) 2019) بتنسيق تم الإبلاغ عنه في علامة الميزةandroid.software.vulkan.deqp.level
. - [C-1-10] يجب أن يجتاز جميع اختبارات Vulkan dEQP في قوائم الاختبار بين
للإصدار
132317953
والإصدار المحدّد في علامة ميزةandroid.software.vulkan.deqp.level
- [C-1-11] يجب ألا تعداد الدعم لـ VK_KHR_video_queue، VK_KHR_video_decode_queue أو VK_KHR_video_encode_queue.
- [C-SR-3] يُنصَح باستخدامها بشدة لإتاحة
VK_KHR_driver_properties
وVK_GOOGLE_display_timing
إضافة.
- يجب أن يتوافق مع
VkPhysicalDeviceProtectedMemoryFeatures
وVK_EXT_global_priority
- [C-1-12] يجب ألا تعداد التوافق مع الإضافة VK_KHR_performance_query.
- يجب أن يستوفي [C-1-13] المتطلبات المحدّدة في ملف Android Baseline 2021 الشخصي.
- [C-SR-4] يُوصى بها بشدة لاستيفاء المتطلبات المحددة في الملف الشخصي لإصدار Android Baseline 2022
بدء متطلبات جديدة
[C-SR-5] يُنصَح باستخدامها بشدة لدعم
VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory
وVK_EXT_global_priority
.[C-SR-6] يُنصَح بشدة باستخدام
SkiaVk
مع HWUI.
إنهاء المتطلبات الجديدة
إذا لم تكن عمليات تنفيذ الأجهزة متوافقة مع Vulkan 1.0، سيتم إجراء ما يلي:
- [C-2-1] يجب ألا تعلن عن أي علامة من علامات ميزة Vulkan (مثل
android.hardware.vulkan.level
،android.hardware.vulkan.version
). - [C-2-2] يجب ألا يتم تعداد أي
VkPhysicalDevice
لواجهة Vulkan الأصليةvkEnumeratePhysicalDevices()
في حال اشتملت عمليات تنفيذ الأجهزة على التوافق مع Vulkan 1.1 وأعلِن عن أي من علامات ميزة Vulkan الموضّحة هنا ، وهي:
- [C-3-1] يجب أن يتم تقديم الدعم للدلالة الخارجية والاسم المعرِّف
SYNC_FD
والإضافةVK_ANDROID_external_memory_android_hardware_buffer
.
بدء متطلبات جديدة
- [C-SR-7] يُنصَح باستخدامها بشدة لإنشاء
VK_KHR_external_fence_fd
الإضافة المتاحة لتطبيقات الجهات الخارجية وتفعيل التطبيق تصدير حمولات السياجات واستيرادها من ملف POSIX واصفات كما هو موضح هنا.
إنهاء المتطلبات الجديدة
7.1.4.3 RenderScript
- [C-0-1] يجب أن تتوافق عمليات تنفيذ الأجهزة مع Android RenderScript، على النحو المفصّل في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android
7.1.4.4 تسريع الرسومات ثنائية الأبعاد
يشتمل Android على آلية تتيح للتطبيقات إعلان رغبتها في لتمكين تسريع الأجهزة للرسومات ثنائية الأبعاد على التطبيق، أو النشاط، مستوى النافذة أو العرض من خلال استخدام علامة بيان android:hardwareAccelerated أو طلبات البيانات المباشرة من واجهة برمجة التطبيقات
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يتيح تسريع الأجهزة تلقائيًا، ويجب وتعطل تسريع الأجهزة إذا طلب المطور ذلك عن طريق إعداد android:hardwareAccelerated="false" أو إيقاف ميزة "تسريع الأجهزة" مباشرةً من خلال واجهات برمجة تطبيقات Android View.
- [C-0-2] يجب أن يظهر سلوكًا متوافقًا مع مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android حول تسريع الأجهزة
يتضمّن Android عنصر TextureView يتيح للمطوّرين دمج زخارف OpenGL ES التي يتم تسريعها بالأجهزة كأهداف عرض في تسلسل هرمي لواجهة المستخدم.
عمليات تنفيذ الأجهزة:
- [C-0-3] يجب أن يتوافق مع واجهة برمجة تطبيقات TextureView، ويجب أن يحتوي على سلوك متّسق مع عملية تنفيذ Android
7.1.4.5 شاشات واسعة النطاق
إذا كانت عمليات تنفيذ الأجهزة تطالب بإتاحة شاشات العرض ذات النطاق الواسع من خلال
Configuration.isScreenWideColorGamut()
فإنهم:
- [C-1-1] يجب أن يحتوي على شاشة معايرة بالألوان.
- [C-1-2] يجب أن يحتوي على شاشة تغطي سلسلة ألوانها مجموعة ألوان sRGB بالكامل في بيئة CIE 1931 xyY.
- [C-1-3] يجب أن يحتوي على شاشة تبلغ مساحتها 90% على الأقل من DCI-P3 في مساحة CIE 1931 xyY.
- [C-1-4] يجب أن يتوافق مع OpenGL ES 3.1 أو 3.2 والإبلاغ عنه بشكل صحيح.
- [C-1-5] يجب الإعلان عن دعم
EGL_KHR_no_config_context
.EGL_EXT_pixel_format_float
،EGL_KHR_gl_colorspace
،EGL_EXT_gl_colorspace_scrgb
،EGL_EXT_gl_colorspace_scrgb_linear
،EGL_EXT_gl_colorspace_display_p3
وEGL_EXT_gl_colorspace_display_p3_linear
وEGL_EXT_gl_colorspace_display_p3_passthrough
الإضافات. - [C-SR-1] يُنصَح باستخدامها بشدة لإتاحة
GL_EXT_sRGB
.
بالمقابل، إذا كانت عمليات تنفيذ الأجهزة لا تتيح الشاشات ذات النطاق العريض، سيؤدي ذلك إلى:
- [C-2-1] يجب أن تغطي 100% أو أكثر من sRGB في مساحة CIE 1931 xyY، على الرغم من مجموعة ألوان الشاشة غير محددة.
7.1.5. وضع التوافق مع التطبيقات القديم
يحدد Android "وضع التوافق" الذي يعمل فيه إطار العمل في "عادي" وضع حجم الشاشة المكافئ (عرض 320 بكسل مستقل الكثافة) لصالح نظام التشغيل القديم التطبيقات التي لم يتم تطويرها للإصدارات القديمة من نظام التشغيل Android التي ظهرت قبل . واستقلالية حجم الشاشة.
7.1.6. تكنولوجيا الشاشة
يشتمل نظام Android الأساسي على واجهات برمجة تطبيقات تسمح للتطبيقات بعرض بيانات الرسومات على شاشة متوافقة مع Android. يجب أن تتوافق الأجهزة مع كل هذه واجهات برمجة التطبيقات كما هو محدّد في حزمة تطوير البرامج (SDK) لنظام التشغيل Android، ما لم يتم السماح بذلك على وجه التحديد في هذا المستند.
جميع الشاشات المتوافقة مع Android والمتوافقة مع نظام التشغيل Android:
- يجب أن يكون [C-0-1] قادرًا على عرض رسومات ملونة 16 بت.
- "ينبغي" أن يتوافق مع شاشات العرض قادرة على عرض رسومات ملونة بـ 24 بت.
- يجب أن يكون [C-0-2] قادرًا على عرض الصور المتحركة.
- [C-0-3] يجب أن تكون له نسبة عرض إلى ارتفاع بكسل (PAR) بين 0.9 و1.15. وهذا يعني أنّ نسبة العرض إلى الارتفاع للبكسل يجب أن تكون قريبة من المربع (1.0) مع تفاوت يتراوح بين 10 و15%.
7.1.7. الشاشات الثانوية
يتيح Android استخدام شاشات العرض الثانوية المتوافقة مع Android لتفعيل الميزة. إمكانات مشاركة الوسائط وواجهات برمجة التطبيقات للمطوّرين للوصول إلى الشاشات الخارجية.
إذا كانت عمليات تنفيذ الجهاز تتوافق مع شاشة عرض خارجية إما عبر كابل سلكي، لاسلكيًا أو اتصال عرض إضافيًا مضمّنًا، فإنهما:
- [C-1-1] يجب تنفيذ
DisplayManager
خدمة النظام وواجهة برمجة التطبيقات كما هو موضّح في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
7.2. أجهزة إدخال بيانات
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يتضمن آلية إدخال، مثل الشاشة التي تعمل باللمس أو التنقّل بدون لمس للتنقل بين عناصر واجهة المستخدم.
7.2.1. لوحة المفاتيح
إذا كانت عمليات تنفيذ الأجهزة تشمل دعمًا لجهات خارجية مع تطبيقات محرر أسلوب الإدخال (IME)، فإنها:
- [C-1-1] يجب أن يعلن عن
android.software.input_methods
علامة الميزة. - [C-1-2] يجب تنفيذ
Input Management Framework
بالكامل - [C-1-3] يجب أن يتضمن لوحة مفاتيح برمجية مثبتة مسبقًا.
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب ألا يتضمن لوحة مفاتيح خارجية لا تتطابق مع إحدى التنسيقات المحددة في android.content.res.Configuration.keyboard (QWERTY أو 12 مفتاح).
- يجب أن يشمل ذلك عمليات تنفيذ إضافية للوحة المفاتيح الافتراضية.
- وقد يشتمل على لوحة مفاتيح خارجية.
7.2.2. التنقُّل بدون لمس
يتيح Android استخدام لوحة التحكّم وكرة التعقب والعجلة كآليات التنقل بدون لمس.
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب الإبلاغ عن القيمة الصحيحة android.content.res.Configuration.navigation:
في حال عدم توفُّر عمليات تنقّل لا تعمل باللمس في عمليات تنفيذ الأجهزة، سيؤدّي ذلك إلى ما يلي:
- [C-1-1] يجب أن يوفر آلية معقولة لواجهة مستخدم بديلة تحديد النص وتعديله، بما يتوافق مع "محركات إدارة الإدخال". تشير رسالة الأشكال البيانية يتضمّن التنفيذ المفتوح المصدر لنظام Android آلية اختيار مناسب للاستخدام مع الأجهزة التي تفتقر إلى إدخالات التنقل التي لا تعمل باللمس.
7.2.3. مفاتيح التنقل
إنّ المنزل العناصر الأخيرة، ورجوع الوظائف التي يتم توفيرها عادةً عن طريق التفاعل مع زر مادي مخصص أو جزءًا مميزًا من الشاشة التي تعمل باللمس، أساسية لنظام Android نموذج التنقّل، وبالتالي عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يوفر للمستخدم القدرة على تشغيل التطبيقات المثبّتة
التي لديها نشاط مع
<intent-filter>
مجموعة معACTION=MAIN
CATEGORY=LAUNCHER
أوCATEGORY=LEANBACK_LAUNCHER
لجهاز التلفزيون وعمليات التنفيذ. يجب أن تكون الدالة Home الآلية لهذه الوظيفة التي يمكن لهذا المستخدم الوصول إليها. - يجب توفير أزرار لوظيفة "الأخيرة" و"الرجوع".
إذا تم توفير وظيفتَي "الصفحة الرئيسية" و"الأخيرة" و"رجوع"، سيتم ما يلي:
- [C-1-1] يجب أن تتوفّر من خلال إجراء واحد (مثل النقر أو النقر مرّتين أو ) عندما يكون أي منها متاحًا.
- [C-1-2] يجب أن يقدم مؤشرًا واضحًا حول الإجراء الفردي الذي سيؤدي إلى تشغيل لكل دالة. وجود رمز مطبوع مطبوع على الزر، يوضح أحد البرامج الأيقونة في جزء شريط التنقل من الشاشة، أو تمشية المستخدم خلال التدفق التوضيحي الإرشادي خطوة بخطوة أثناء تجربة الإعداد خارج الصندوق أمثلة على هذا المؤشر.
عمليات تنفيذ الأجهزة:
يُوصى بشدة [C-SR-1] بعدم توفير آلية إرسال البيانات وظيفة القائمة لأنّه تم إيقافه لصالح شريط الإجراءات بدءًا من Android 4.0.
[C-SR-2] يُوصى بها بشدة لتقديم جميع وظائف التنقل قابلة للحذف. "قابل للإلغاء" وهي قدرة المستخدم على منع وظيفة التنقل من التنفيذ (على سبيل المثال، العودة إلى المنزل، العودة، إلخ.) إذا كانت عدم تجاوز حد معين.
إذا كانت عمليات تنفيذ الجهاز توفر وظيفة القائمة، فإنها:
- [C-2-1] يجب عرض زر القائمة الكاملة للإجراء عند تنفيذ الإجراء النافذة المنبثقة للقائمة الكاملة غير فارغة وشريط الإجراءات مرئي.
- [C-2-2] يجب ألا يعدّل موضع النافذة المنبثقة لتجاوز الإجراء يتم عرضه من خلال تحديد زر القائمة الكاملة في شريط الإجراءات، ولكن قد يتم النافذة المنبثقة لتجاوز الإجراء في موضع معدل على الشاشة عندما تكون من خلال تحديد وظيفة القائمة.
إذا لم تكن عمليات تنفيذ الجهاز توفر وظيفة "القائمة"، للعكس التوافق، فهي:
- [C-3-1] يجب أن تجعل وظيفة القائمة متاحة للتطبيقات عندما
targetSdkVersion
أقل من 10، إما عن طريق زر فعلي أو مفتاح برنامج، أو الإيماءات. يجب الوصول إلى دالة القائمة هذه ما لم تكن مخفية مع وظائف التنقل الأخرى.
إذا كانت عمليات تنفيذ الأجهزة توفر دالة المساعدة، وهي:
- [C-4-1] يجب أن يجعل وظيفة المساعدة سهلة الوصول من خلال إجراء واحد (مثل النقر أو النقر مرّتين أو إيماءة) عندما تتوفّر إمكانية الوصول إلى مفاتيح التنقُّل الأخرى.
- [C-SR-3] يُنصح بشدة باستخدام الضغط مع الاستمرار على وظيفة الصفحة الرئيسية بهذا الشكل التفاعل المحدد.
إذا كانت عمليات تنفيذ الجهاز تستخدم جزءًا مميزًا من الشاشة لعرض مفاتيح التنقل، وهي:
- [C-5-1] يجب أن تستخدم مفاتيح التنقل جزءًا مميزًا من الشاشة، وليس متاحة للتطبيقات، ويجب ألا تحجبها أو تتداخل مع جزء الشاشة المتاح للتطبيقات.
- [C-5-2] يجب توفير جزء من الشاشة للتطبيقات التي المتطلبات المحددة في الفقرة 7.1.1.
- [C-5-3] يجب أن يحترم العلامات التي حددها التطبيق من خلال
View.setSystemUiVisibility()
واجهة برمجة التطبيقات، بحيث يصبح هذا الجزء المميز من الشاشة (المعروف أيضًا باسم شريط التنقل) مخفيًا بشكل صحيح بعيدًا كما هو موثق في حزمة SDK.
إذا تم توفير وظيفة التنقّل كإجراء على الشاشة ومستند إلى الإيماءات:
- [C-6-1]
WindowInsets#getMandatorySystemGestureInsets()
يجب استخدامه فقط للإبلاغ عن منطقة التعرّف على الإيماءات في "الشاشة الرئيسية". - [C-6-2] الإيماءات التي تبدأ داخل مستطيل استبعاد وفقًا لما تحدده الإيماءات
تطبيق يعمل في المقدّمة عبر
View#setSystemGestureExclusionRects()
، ولكن خارجWindowInsets#getMandatorySystemGestureInsets()
, يجب عدم اعتراضه لدالة التنقل ما دام الاستبعاد يُسمح باستخدام المستطيل ضمن الحد الأقصى للاستبعاد كما هو محدد في وثائقView#setSystemGestureExclusionRects()
- [C-6-3] يجب أن يرسل إلى التطبيق الذي يعمل في المقدّمة
MotionEvent.ACTION_CANCEL
الحدث بمجرد بدء اعتراض اللمسات بواسطة إيماءة نظام، إذا سبق أن تم إرسالMotionEvent.ACTION_DOWN
فعالية. - [C-6-4] يجب أن توفر للمستخدم القدرة على التبديل إلى شاشة على الشاشة، التنقل المستند إلى الأزرار (على سبيل المثال، في الإعدادات).
- يجب توفير وظيفة "الصفحة الرئيسية" من خلال التمرير سريعًا للأعلى من الحافة السفلية الاتجاه الحالي للشاشة.
- يُفترض أن توفر وظيفة "Recents" (الأحدث) كتمرير سريع لأعلى مع الاستمرار قبل الإصدار، من نفس المنطقة مثل إيماءة الشاشة الرئيسية.
- الإيماءات التي تبدأ خلال
WindowInsets#getMandatorySystemGestureInsets()
يجب ألا تتأثر بمستطيلات الاستبعاد التي تقدمها المقدمة تطبيق عبرView#setSystemGestureExclusionRects()
إذا تم توفير وظيفة تنقل من أي مكان على الحافة اليسرى واليمنى الاتجاه الحالي للشاشة:
- [C-7-1] يجب أن تكون وظيفة التنقل "رجوع" ويتم توفيرها مرِّر سريعًا من الحافة اليمنى واليسرى للاتجاه الحالي الشاشة.
- [C-7-2] إذا تم توفير لوحات نظام مخصصة قابلة للتمرير السريع على اليمين أو الحواف اليمنى، يجب وضعها في أعلى 1/3 من الشاشة مع مؤشر مرئي واضح ومستمر على أن السحب للداخل المذكورة أعلاه، وبالتالي لا يعود. قد تكون لوحة نظام التي ضبطها المستخدم بحيث تهبط أسفل الجزء العلوي أو الثالث من الشاشة الحواف، لكن يجب ألا تستخدم لوحة النظام أطول من 1/3 حواف (الحواف).
- [C-7-3] عندما يحتوي التطبيق الذي تعمل في المقدّمة على إما View.SYSTEM_UI_FLAG_IMMERSIVE, View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY, WindowInsetsController.BEHAVIOR_DEFAULT أو تم تعيين علامات WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE، يجب أن يتصرف التمرير السريع من الحواف كما هو مُطبق في AOSP، وهو كما هو موثق في حزمة SDK.
- [C-7-4] عندما يحتوي التطبيق الذي تعمل في المقدّمة على إما View.SYSTEM_UI_FLAG_IMMERSIVE, View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY, WindowInsetsController.BEHAVIOR_DEFAULT أو تم تعيين علامات WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE، يجب أن تكون لوحات النظام المخصصة القابلة للتمرير السريع مخفية حتى يدخل المستخدم أو إلغاء تعتيم أشرطة النظام (أي التنقل وشريط الحالة) كما تم التنفيذ في بروتوكول AOSP.
إذا تم توفير وظيفة التنقل الخلفي وألغى المستخدم زر الرجوع إيماءة، ثم:
- [C-8-1] يجب الاتصال بـ
OnBackInvokedCallback.onBackCancelled()
. - [C-8-2]
OnBackInvokedCallback.onBackInvoked()
يجب ألّا يتم الاتصال به. - [C-8-3] يجب عدم إرسال الحدث KEYCODE_BACK.
إذا تم توفير وظيفة الانتقال للخلف ولكن التطبيق الذي يعمل في المقدّمة لا يعمل
ألا يكون لديك "OnBackInvokedCallback
" مسجَّل، وعندئذٍ:
- يجب أن يوفر النظام صورة متحركة للتطبيق الذي يعمل في المقدّمة إلى عودة المستخدم، كما هو مذكور في AOSP.
إذا كانت عمليات تنفيذ الأجهزة توفّر الدعم لواجهة برمجة تطبيقات النظام setNavBarMode
من أجل
السماح لأي تطبيق نظام لديه إذن "android.permission.STATUS_BAR
" بضبط
وضع شريط التنقل، فسيتم عندها:
- [C-9-1] يجب أن يتم توفير الدعم للأيقونات المناسبة للأطفال أو التي تستند إلى الأزرار والتنقل على النحو الوارد في رمز AOSP.
7.2.4. إدخال الشاشة التي تعمل باللمس
يتيح Android استخدام مجموعة متنوعة من أنظمة إدخال المؤشر، مثل الشاشات التي تعمل باللمس ولوحات اللمس وأجهزة الإدخال التي تعمل باللمس وهمية عمليات تنفيذ الأجهزة المستندة إلى شاشة تعمل باللمس ترتبط بعرض حتى يكون لدى المستخدم انطباعه مباشرةً التلاعب بالعناصر المعروضة على الشاشة. نظرًا لأن المستخدم يلمس الشاشة مباشرة، لا يحتاج النظام إلى أي عناصر وظيفية إضافية للإشارة إلى الكائنات يتم التلاعب به.
عمليات تنفيذ الأجهزة:
- يجب أن يتوفّر لديه نظام إدخال مؤشر من نوع ما (سواء بشكل الماوس أو اللمس).
- يجب أن تدعم المؤشرات التي يتم تتبُّعها بشكل مستقل بالكامل.
إذا كانت عمليات تنفيذ الجهاز تتضمن شاشة تعمل باللمس (بلمسة واحدة أو أفضل) على شاشة أساسية متوافقة مع Android، وهي:
- [C-1-1] يجب الإبلاغ عن
TOUCHSCREEN_FINGER
بشأنConfiguration.touchscreen
واجهة برمجة التطبيقات. - [C-1-2] يجب أن يبلغ عن
android.hardware.touchscreen
تم الإبلاغ عن ميزة واحدة (android.hardware.faketouch
).
إذا كانت عمليات تنفيذ الجهاز تتضمن شاشة تعمل باللمس يمكنها تتبع أكثر من بلمسة واحدة على شاشة أساسية متوافقة مع Android، فإنهم:
- [C-2-1] يجب الإبلاغ عن علامات الميزات المناسبة
android.hardware.touchscreen.multitouch
،android.hardware.touchscreen.multitouch.distinct
،android.hardware.touchscreen.multitouch.jazzhand
يتوافق مع نوع الشاشة المحددة التي تعمل باللمس على الجهاز.
إذا كانت عمليات تنفيذ الجهاز تعتمد على جهاز إدخال خارجي مثل الماوس أو كرة تعقّب (أي عدم لمس الشاشة مباشرةً) لإدخال بيانات في جهاز شاشة متوافقة مع Android وتستوفي متطلبات اللمس الزائف في الفقرة 7.2.5، فهي:
- [C-3-1] يجب ألا يتم الإبلاغ عن أي علامة ميزة تبدأ بـ
android.hardware.touchscreen
- [C-3-2] يجب أن يبلغ
android.hardware.faketouch
فقط. - [C-3-3] يجب الإبلاغ عن
TOUCHSCREEN_NOTOUCH
Configuration.touchscreen
واجهة برمجة التطبيقات.
7.2.5. الإدخال باللمس الزائف
توفّر واجهة اللمس الزائفة نظامًا لإدخالًا للمستخدم يتعامل بشكل تقريبي مع مجموعة فرعية من إمكانات الشاشة التي تعمل باللمس. على سبيل المثال، يستخدم الماوس أو جهاز التحكم عن بعد الذي يقود يقترب المؤشر على الشاشة من اللمس، ولكنه يتطلب من المستخدم الإشارة أولاً التركيز ثم النقر. العديد من أجهزة الإدخال، مثل الماوس ولوحة اللمس والجيروسكوب يتيح ماوس هوائي ومؤشر الجيروسكوب وذراع التحكّم ولوحة اللمس المتعددة اللمس أن يستخدموا الأجهزة المزيّفة. والتفاعلات باللمس. يتضمن Android ثابت الميزات android.hardware.fake touch، الذي يتوافق مع شاشة عالية الدقة لا تعمل باللمس جهاز إدخال (مستند إلى المؤشر) مثل الماوس أو لوحة اللمس التي يمكنها توفير لمحاكاة الإدخال الذي يعتمد على اللمس (بما في ذلك دعم الإيماءات الأساسية)، ويشير إلى أن يتوافق الجهاز مع مجموعة فرعية محاكى من وظائف الشاشة التي تعمل باللمس.
إذا كانت عمليات تنفيذ الجهاز لا تشمل شاشة تعمل باللمس ولكنها تتضمن شاشة أخرى نظام إدخال المؤشر الذي يريدون إتاحته، يمكنهم:
- يجب أن تعلن عن توافقها مع علامة الميزة
android.hardware.faketouch
.
إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع android.hardware.faketouch
،
وهي:
- [C-1-1] يجب الإبلاغ عن موضعَي الشاشة المطلقتين X وY لموقع المؤشر وعرض مؤشر مرئي على الشاشة.
- [C-1-2] يجب الإبلاغ عن حدث اللمس الذي يتضمن رمز الإجراء الذي يحدد تغيير الحالة الذي يحدث على المؤشر الانتقال للأسفل أو للأعلى على الشاشة
- [C-1-3] يجب أن يدعم المؤشر لأسفل وأعلى على أي كائن على الشاشة، والذي تسمح للمستخدمين بمحاكاة النقر على عنصر على الشاشة.
- [C-1-4] يجب دعم المؤشر لأسفل والمؤشر لأعلى والمؤشر لأسفل ثم المؤشر لأعلى في نفس المكان على كائن على الشاشة خلال مهلة زمنية، والتي تسمح للمستخدمين بمحاكاة النقر المزدوج على كائن معروض على الشاشة.
- [C-1-5] يجب أن يدعم المؤشر لأسفل على نقطة عشوائية على الشاشة، تحريك المؤشر إلى أي نقطة عشوائية أخرى على الشاشة، متبوعًا بمؤشر أعلى، وهو ما يسمح للمستخدمين بمحاكاة السحب باللمس.
- [C-1-6] يجب دعم المؤشر لأسفل ثم السماح للمستخدمين بتحريك كائن إلى موضع مختلف على الشاشة ثم المؤشر لأعلى على الشاشة، والتي تتيح للمستخدمين تمرير كائن على الشاشة بسرعة.
إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع
android.hardware.faketouch.multitouch.distinct
، إن:
- [C-2-1] يجب أن يعلن عن دعمه لـ
android.hardware.faketouch
. - [C-2-2] يجب أن يتيح التتبع المميز لمؤشرين مستقلين أو أكثر المدخلات.
إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع
android.hardware.faketouch.multitouch.jazzhand
، إن:
- [C-3-1] يجب أن يعلن عن دعمه لـ
android.hardware.faketouch
. - [C-3-2] يجب أن يتيح تتبُّعًا مختلفًا لـ 5 (تتبُّع اليدين من الأصابع) أو أكثر من إدخالات المؤشر بشكل مستقل تمامًا.
7.2.6. دعم أذرعة التحكّم في الألعاب
7.2.6.1. تعيينات الأزرار
عمليات تنفيذ الأجهزة:
- يجب أن يكون بإمكان [C-1-1] ربط أحداث HID بثوابت
InputEvent
المقابلة لها كما هو موضّح في الجداول أدناه. تستوفي عملية التنفيذ الأولية لنظام التشغيل Android هذا الشرط.
إذا كانت عمليات تنفيذ الأجهزة تتضمن وحدة تحكم أو تم شحنها مع وحدة تحكم منفصلة في الصندوق والتي من شأنها أن توفر وسائل لإدخال جميع الأحداث المدرجة في الجداول أدناه، فإنها:
- [C-2-1] يجب أن يعلن عن علامة الميزة
android.hardware.gamepad
زرّ | استخدام أجهزة HID2 | زر Android |
---|---|---|
أ1 | 0x09 0x0001 | KEYCODE_button_A (96) |
ب1 | 0x09 0x0002 | KEYCODE_button_B (97) |
X1 | 0x09 0x0004 | KEYCODE_button_X (99) |
ش1 | 0x09 0x0005 | KEYCODE_button_Y (100) |
لوحة التحكّم1 لوحة التحكّم1 |
0x01 0x00393 | AXIS_HAT_Y4 |
لوحة التحكّم لليسار1 لوحة التحكّم اليمنى1 |
0x01 0x00393 | AXIS_HAT_X4 |
زر الكتف الأيسر1 | 0x09 0x0007 | KEYCODE_button_L1 (102) |
زر الكتف الأيمن1 | 0x09 0x0008 | KEYCODE_button_R1 (103) |
النقر على الذراع اليسرى1 | 0x09 0x000E | KEYCODE_button_THUMBL (106) |
النقر بزر الماوس الأيمن1 | 0x09 0x000F | KEYCODE_button_THUMBR (107) |
رجوع1 | 0x0c 0x0224 | KEYCODE_BACK (4) |
1 KeyEvent
2 يجب الإفصاح عن حالات استخدام أجهزة الواجهة البشرية (HID) أعلاه ضمن اللعبة pad CA (0x01 0x0005).
3 يجب ألا يقل الحد الأدنى المنطقي لهذا الاستخدام عن 0، الحد الأقصى المنطقي 7، والحد الأدنى المادي 0، والحد الأقصى المادي 315، من الوحدات بالدرجات، وحجم التقرير 4. يتم تعريف القيمة المنطقية بأنها الدوران في اتجاه عقارب الساعة بعيدًا عن المحور الرأسي؛ على سبيل المثال، القيمة المنطقية ويمثل الرقم 0 عدم وجود دوران ويتم الضغط على الزر لأعلى، بينما تمثل القيمة المنطقية الرقم 1 يمثل تدويرًا بمقدار 45 درجة ويمثل مفتاحا لأعلى واليسار ضغط.
عناصر التحكّم التناظرية1 | استخدام أجهزة HID | زر Android |
---|---|---|
عامل التفعيل الأيسر | 0x02 0x00C5 | AXIS_LTRIGGER |
عامل التفعيل الأيمن | 0x02 0x00C4 | خوارزمية "AXIS_RTRIGGER" |
ذراع التحكّم الأيسر | 0x01 0x0030 0x01 0x0031 |
AXIS_X AXIS_Y |
ذراع التحكّم الأيمن | 0x01 0x0032 0x01 0x0035 |
AXIS_Z AXIS_RZ |
7.2.7. جهاز التحكّم عن بُعد
لمعرفة المتطلبات الخاصة بالأجهزة، يمكنك الاطّلاع على القسم 2.3.1.
7.3. أدوات الاستشعار
إذا كانت تطبيقات الجهاز تتضمن نوع أداة استشعار محددًا له وواجهة برمجة التطبيقات (API) المقابلة للمطورين من الجهات الخارجية، وتنفيذ الأجهزة أن تنفذ واجهة برمجة التطبيقات هذه كما هو موضح في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android مستندات Android المفتوحة المصدر بخصوص أجهزة الاستشعار.
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يبلغ بدقة وجود أو عدم وجود أجهزة استشعار وفقًا
android.content.pm.PackageManager
الصف. - [C-0-2] يجب أن تعرض قائمة دقيقة بأجهزة الاستشعار المتوافقة عبر
SensorManager.getSensorList()
وطرق مماثلة - [C-0-3] يجب أن يعمل بشكل معقول مع جميع واجهات برمجة تطبيقات أداة الاستشعار الأخرى (على سبيل المثال، من خلال
عرض
true
أوfalse
على النحو المناسب عندما تحاول الطلبات التسجيل المستمعين، ولا يتصل بمستمعيات المستشعرات عندما لا تكون المستشعرات المقابلة حاليًا وما إلى ذلك).
إذا كانت تطبيقات الجهاز تتضمن نوع أداة استشعار محددًا له واجهة برمجة التطبيقات (API) المقابلة للمطورين من الجهات الخارجية، فإنهم:
- [C-1-1] يجب الإبلاغ عن جميع قياسات أجهزة الاستشعار باستخدام قيم النظام الدولي للوحدات (المقاييس) ذات الصلة لكل نوع أداة الاستشعار كما هو محدّد في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
- [C-1-2] يجب الإبلاغ عن بيانات جهاز الاستشعار بحد أقصى لوقت الاستجابة 100. ملي ثانية + 2 * sample_time لحالة تدفق مستشعر يبلغ الحد الأقصى لوقت الاستجابة المطلوب 0 ملي ثانية عندما يكون معالج التطبيقات نشطًا. ولا يشمل هذا التأخير أي تأخير في الفلترة.
- [C-1-3] يجب الإبلاغ عن عيّنة المستشعر الأولى خلال 400 مللي ثانية + 2 * sample_time لوقت تشغيل المستشعر. من المقبول أن تقدم هذه العينة دقة المعامل 0.
- [C-1-4] بالنسبة إلى أي واجهة برمجة تطبيقات تشير إليها مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android أداة استشعار مستمرة عمليات تنفيذ الأجهزة باستمرار عينات البيانات الدورية التي ينبغي أن يكون لها عدم استقرار أقل من 3٪، ويُعرَّف فيه عدم الاستقرار بأنه الانحراف المعياري للفرق تم تسجيل قيم الطوابع الزمنية بين الأحداث المتتالية.
- يجب أن يتأكّد [C-1-5] من بث حدث جهاز الاستشعار. يجب ألا يمنع وحدة المعالجة المركزية للجهاز من إدخال حالة التعليق أو الاستيقاظ. من حالة التعليق.
- [C-1-6] يجب الإبلاغ عن وقت الفعالية في غضون نانو ثانية كما هو موضح في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android، والتي تمثل وقت وقوع الحدث ومزامنته مع ساعة SystemClock.e جانبيdRealtimeNano()
- [C-SR-1] يُنصح بشدة بحدوث خطأ في مزامنة الطابع الزمني أقل من 100 مللي ثانية، ويجب أن يكون الخطأ في مزامنة الطابع الزمني أقل من 1 ميليثانية.
- عند تفعيل عدة أجهزة استشعار، يجب ألا يتجاوز استهلاك الطاقة مجموع استهلاك الطاقة الذي تم الإبلاغ عنه لجهاز الاستشعار الفردي.
القائمة أعلاه ليست شاملة. السلوك الموثَّق لحزمة تطوير البرامج (SDK) لنظام التشغيل Android ووثائق Android المفتوحة المصدر حول أجهزة الاستشعار وموثوق به.
إذا كانت تطبيقات الجهاز تتضمن نوع أداة استشعار محددًا له واجهة برمجة التطبيقات (API) المقابلة للمطورين من الجهات الخارجية، فإنهم:
- [C-1-6] يجب ضبط درجة دقة غير صفرية لجميع أجهزة الاستشعار والإبلاغ عن القيمة
من خلال
Sensor.getResolution()
طريقة واجهة برمجة التطبيقات.
بعض أنواع أدوات الاستشعار مركَّبة، ما يعني أنّه يمكن اشتقاقها من البيانات المقدَّمة بواسطة جهاز استشعار آخر أو أكثر. (تشمل الأمثلة أداة استشعار الاتجاه جهاز استشعار التسارع الخطي).
عمليات تنفيذ الأجهزة:
- "يجب" تطبيق أنواع أدوات الاستشعار هذه، عندما تضمين المستشعرات المادية والضرورية على النحو الموضَّح في أنواع أدوات الاستشعار.
إذا كانت عمليات تنفيذ الجهاز تتضمّن أداة استشعار مركّبة، سيتم تطبيق ما يلي:
- [C-2-1] يجب تنفيذ أداة الاستشعار كما هو موضّح في البرامج المفتوحة المصدر لنظام Android مستندات حول أجهزة الاستشعار المركّبة.
إذا كانت تطبيقات الجهاز تتضمن نوع أداة استشعار محددًا له واجهة برمجة التطبيقات المقابلة للمطورين من الجهات الخارجية وأداة الاستشعار واحدة فقط ثم عمليات تنفيذ الأجهزة:
- [C-3-1] يجب ضبط درجة الدقة على 1 لجهاز الاستشعار والإبلاغ عن القيمة
من خلال
Sensor.getResolution()
طريقة واجهة برمجة التطبيقات.
إذا كانت عمليّات تنفيذ الجهاز تشمل نوعًا معيّنًا من أجهزة الاستشعار التي تتيح SensorAdditionalInfo#TYPE_VEC3_CALIBRATION وتُعرّض أداة الاستشعار لمطوّري برامج الجهات الخارجية لما يلي:
- [C-4-1] يجب ألا تتضمّن أي معايرة ثابتة ومحددة من المصنع في البيانات المقدمة.
فإذا كانت عمليات تنفيذ الجهاز تتضمن مجموعة من مقياس التسارع ثلاثي المحاور، جهاز استشعار الجيروسكوب الثلاثي المحاور أو جهاز استشعار مقياس المغناطيسية:
- [C-SR-2] يُوصى به بشدة للتأكد من استخدام مقياس التسارع والجيروسكوب لمقياس المغناطيسية موضع نسبي ثابت، بحيث إذا كان الجهاز قابلة للتحويل (على سبيل المثال، قابلة للطي)، تظل محاور أداة الاستشعار منحنية ومتسقة مع نظام الإحداثيات في أداة الاستشعار في جميع الأجهزة حالات التحويل.
7.3.1. مقياس التسارع
عمليات تنفيذ الأجهزة:
- [C-SR-1] يُوصى بشدة بتضمين مقياس تسارع ثلاثي المحاور.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياس تسارع، سيحدث ما يلي:
- يجب أن يتمكّن [C-1-1] من الإبلاغ عن الأحداث التي تصل ترددها إلى 50 هرتز على الأقل.
- [C-1-3] يجب أن يتوافق مع نظام الإحداثيات لمستشعر Android كما هو موضح بالتفصيل في واجهات برمجة تطبيقات Android.
- [C-1-4] يجب أن يكون قادرًا على القياس من السقوط الحر لما يصل إلى أربعة أضعاف الجاذبية(4 غرام) أو أكثر على أي محور.
- [C-1-5] يجب أن تصل درجة الدقة إلى 12 بت على الأقل.
- [C-1-6] يجب أن يكون لها انحراف معياري لا يزيد عن 0.05 م/ث^، حيث ينبغي حساب الانحراف المعياري على أساس كل محور في العينات تم جمعها خلال مدة لا تقل عن 3 ثوانٍ وبأسرع معدل أخذ العينات.
- "يجب" الإبلاغ عن الأحداث التي تصل ترددها إلى 200 هرتز على الأقل.
- يجب أن تبلغ درجة دقة الصورة 16 بت على الأقل.
- ينبغي معايرته أثناء الاستخدام إذا تغيرت الخصائص بمرور دورة الحياة وتعويضها، والحفاظ على معلمات التعويض بين عمليات إعادة تشغيل الجهاز.
- يجب تعويض درجة الحرارة.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياس تسارع ثلاثي المحاور، سيتم إجراء ما يلي:
- [C-2-1] يجب استخدام أداة استشعار
TYPE_ACCELEROMETER
والإبلاغ عنها. - [C-SR-4] يُنصَح باستخدامها بشدة لتنفيذ "
TYPE_SIGNIFICANT_MOTION
" المركب. - [C-SR-5] يُوصى بشدة بتنفيذها والإبلاغ عنها
جهاز استشعار "
TYPE_ACCELEROMETER_UNCALIBRATED
" تعمل أجهزة Android بشكل كبير يُنصَح باستيفاء هذا الشرط ليتمكّن العميل من الترقية إلى إصدار النظام الأساسي المستقبلي الذي قد يصبح فيه هذا مطلوبًا. - يجب تنفيذ
TYPE_SIGNIFICANT_MOTION
،TYPE_TILT_DETECTOR
،TYPE_STEP_DETECTOR
،TYPE_STEP_COUNTER
أجهزة الاستشعار المركّبة كما هو موضح في مستند حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
إذا كانت عمليات تنفيذ الجهاز تتضمّن مقياس تسارع يتضمّن أقل من 3 محاور، سيتم تطبيق ما يلي:
- [C-3-1] يجب استخدام أداة استشعار
TYPE_ACCELEROMETER_LIMITED_AXES
والإبلاغ عنها. - [C-SR-6] تكون strongLY_RECOMMENDED لتنفيذها والإبلاغ عنها
جهاز استشعار "
TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
"
فإذا كانت عمليات تنفيذ الجهاز تتضمن مقياس تسارع ثلاثي المحاور وأي من
TYPE_SIGNIFICANT_MOTION
، TYPE_TILT_DETECTOR
، TYPE_STEP_DETECTOR
،
تم تنفيذ TYPE_STEP_COUNTER
من أجهزة الاستشعار المركّبة:
- [C-4-1] حاصل جمع يجب أن يكون استهلاك الطاقة دائمًا أقل من 4 ميغاواط.
- يجب أن تكون قيمة كل منهما أقل من 2 ميغاواط و0.5 ميغاواط عندما يكون الجهاز في الوضع الديناميكي أو شرط ثابت.
فإذا كانت عمليات تنفيذ الجهاز تشمل مقياس تسارع ثلاثي المحاور ومستشعر جيروسكوب ثلاثي المحاور، وهي:
- [C-5-1] يجب أن ينفذ
TYPE_GRAVITY
وTYPE_LINEAR_ACCELERATION
أجهزة الاستشعار المركّبة. - [C-SR-7] يُوصى بها بشدة لتنفيذ
جهاز الاستشعار المركّب
TYPE_GAME_ROTATION_VECTOR
.
فإذا كانت عمليات تنفيذ الجهاز تتضمن مقياس تسارع ثلاثي المحاور، أو مستشعر جيروسكوب ثلاثي المحاور، وجهاز استشعار مقياس المغناطيسية، وهي:
- [C-6-1] يجب استخدام أداة استشعار مركّبة
TYPE_ROTATION_VECTOR
.
7.3.2 مقياس المغناطيسية
عمليات تنفيذ الأجهزة:
- [C-SR-1] يُنصح بشدة بتضمين مقياس مغناطيسي ثلاثي المحاور (بوصلة).
إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياس مغناطيسي ثلاثي المحاور، سيتم إجراء ما يلي:
- [C-1-1] يجب تشغيل أداة استشعار
TYPE_MAGNETIC_FIELD
. - [C-1-2] يجب أن يكون قادرًا على الإبلاغ عن الأحداث التي تصل مدتها إلى 10 هرتز على الأقل ويجب أن يتم الإبلاغ عن الأحداث التي تصل مدّتها إلى 50 هرتز على الأقل.
- [C-1-3] يجب أن يتوافق مع نظام الإحداثيات لمستشعر Android كما هو موضح بالتفصيل في واجهات برمجة تطبيقات Android.
- يجب أن يكون بإمكان جهاز [C-1-4] القياس بين -900 ميكرومتر و+900 ميكرو طن في كل وحدة. المحور قبل التشبع.
- [C-1-5] يجب أن تكون قيمة إزاحة الحديد الصلب أقل من 700 ميكرومتر عن قيمة أقل من 200 ميكرومتر، عن طريق وضع مقياس المغناطيسية بعيدًا عن المجالات المغناطيسية الديناميكية (الناتجية الحالية) والثابتة (الناتجة عن المغناطيس).
- يجب أن تكون دقة الشاشة [C-1-6] مساوية أو أكثر كثافة من 0.6 ميكرومتر.
- [C-1-7] يجب أن يتيح المعايرة وتعويض الحديد الصلب على الإنترنت والتحيز، والاحتفاظ بمعلمات التعويض بين عمليات إعادة تشغيل الجهاز.
- [C-1-8] يجب تطبيق التعويض باستخدام الحديد الليّن، ويمكن إجراء المعايرة تتم إمّا أثناء استخدام الجهاز أو أثناء إنتاجه.
- [C-1-9] يجب أن يحتوي على انحراف معياري، محسوبًا على أساس كل محور وفقًا العيّنات التي تم جمعها خلال فترة لا تقلّ عن 3 ثوانٍ في أسرع وقت لجمع العيّنات معدّل النقل: 1.5 ميكرو طن يجب أن يكون لها انحراف معياري لا يزيد عن 0.5 ميكرومتر
- [C-1-10] يجب تنفيذ
TYPE_MAGNETIC_FIELD_UNCALIBRATED
أداة الاستشعار.
فإذا اشتملت عمليات تنفيذ الجهاز على مقياس مغناطيسية ثلاثي المحاور، فإن مقياس التسارع ومستشعر جيروسكوب ثلاثي المحاور، فإنها:
- [C-2-1] يجب استخدام أداة استشعار مركّبة
TYPE_ROTATION_VECTOR
.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياس المغناطيسية ثلاثي المحاور، وهو مقياس التسارع، سينطبق التالي:
- قد يتم استخدام أداة استشعار "
TYPE_GEOMAGNETIC_ROTATION_VECTOR
".
فإذا كانت عمليات تنفيذ الجهاز تتضمن مقياس المغناطيسية ثلاثي المحاور ومقياس التسارع
جهاز استشعار "TYPE_GEOMAGNETIC_ROTATION_VECTOR
"، وهو:
- [C-3-1] يجب أن تستهلك أقل من 10 ميغاواط.
- من المفترض أن تستهلك الطاقة أقل من 3 ميغاواط عند تسجيل أداة الاستشعار في وضع الدفعة. بتردد 10 هرتز
7.3.3. نظام تحديد المواقع العالمي (GPS)
عمليات تنفيذ الأجهزة:
- [C-SR-1] يُوصى بشدة بتضمين جهاز استقبال GPS/GNSS.
إذا كانت عمليات تنفيذ الجهاز تتضمّن مستقبِل GPS/GNSS والإبلاغ عن الإمكانات
إلى التطبيقات من خلال علامة ميزة android.hardware.location.gps
، فإنها:
- [C-1-1] يجب أن يتوافق مع مخرجات الموقع الجغرافي بمعدّل لا يقل عن 1 هرتز عند
تم الطلب عبر
LocationManager#requestLocationUpdate
. - [C-1-2] يجب أن يتمكن من تحديد الموقع في ظروف السماء المفتوحة
(إشارات قوية، مسارات متعددة ضبابية، HDOP < 2) في غضون 10 ثوانٍ (سريعة)
الوقت اللازم لإصلاح الأخطاء لأول مرة)، عند الاتصال بسرعة بيانات تبلغ 0.5 ميغابت في الثانية أو أكثر
الاتصال بالإنترنت. وعادةً ما يتم تلبية هذا الشرط من خلال استخدام بعض
أحد أشكال تقنية نظام تحديد المواقع العالمي (GPS)/نظام تحديد المواقع العالمي (GNSS) المدعوم أو المتوقَّع
لتقليل وقت قفل GPS/GNSS (تشمل بيانات المساعدة الوقت المرجعي،
الموقع الجغرافي المرجعي وتوقيتات القمر الصناعي/الساعة).
- [C-1-6] بعد إجراء عملية حسابية للموقع، يجب أن تحدد عمليات التنفيذ موقعها، في السماء المفتوحة، داخل 5 ثوانٍ، عند إعادة تشغيل طلبات الموقع الجغرافي، بعد ما يصل إلى ساعة حساب الموقع الأولي، حتى عندما يكون الطلب اللاحق يتم إجراؤها بدون اتصال البيانات، و/أو بعد دورة الطاقة.
في السماء المفتوحة بعد تحديد الموقع، أثناء كونك ثابتًا أو تتحرك بسرعة أقل من متر واحد في الثانية مربعة التسارع:
- [C-1-3] يجب أن يتمكن من تحديد الموقع في نطاق 20 مترًا والسرعة في نطاق 0.5 متر في الثانية، أي ما لا يقل عن 95% من الوقت.
- [C-1-4] يجب أن تتبع في وقت واحد والإبلاغ عبر
GnssStatus.Callback
ما لا يقل عن 8 أقمار صناعية من مجموعة نجمية واحدة. - ينبغي أن تكون قادرًا على تتبع ما لا يقل عن 24 قمرًا صناعيًا، من مجموعات نجمية متعددة (مثل نظام تحديد المواقع العالمي (GPS) + واحد على الأقل من غلوناس، وبيدو، غاليليو).
[C-SR-2] يُنصَح باستخدامها بشدة لمواصلة تقديم بيانات نظام تحديد المواقع العالمي (GPS)/نظام GNSS العادي. مخرجات الموقع الجغرافي من خلال واجهة برمجة تطبيقات الموقع الجغرافي في GNSS أثناء هاتف الطوارئ الاتصال.
[C-SR-3] يُنصح بشدة بالإبلاغ عن قياسات GNSS من جميع المجموعات النجمية التي يتم تتبعها (كما تم الإبلاغ عنها في رسائل GnssStatus)، باستثناء SBAS.
[C-SR-4] يُوصى بشدة بالإبلاغ عن AGC ومعدّل تكرار GNSS القياس.
[C-SR-5] يُنصح بشدة بالإبلاغ عن جميع تقديرات الدقة (بما في ذلك الاتجاه والسرعة والوضع العمودي) كجزء من كل موقع من مواقع نظام تحديد المواقع العالمي (GPS)/ GNSS.
[C-SR-6] يُنصح بشدة بالإبلاغ عن قياسات GNSS، في أقرب وقت العثور عليها، حتى إذا لم يتم حساب الموقع من خلال GPS/GNSS بعد تم الإبلاغ عنها.
[C-SR-7] يُوصى بها بشدة للإبلاغ عن نطاقات GNSS الزائفة بمعدلات زائفة، أنه في ظروف مفتوحة بعد تحديد الموقع، أثناء كونه ثابتًا أو يتحرك بأقل من 0.2 متر في الثانية المربعة والعجلة، وهي كافية لحساب الموقع على بُعد 20 مترًا، والسرعة في نطاق 0.2 متر في الثانية، أي ما لا يقل عن 95% من الوقت.
7.3.4 الجيروسكوب
عمليات تنفيذ الأجهزة:
- [C-SR-1] يُنصح بشدة بتضمين جهاز استشعار جيروسكوب.
إذا كانت عمليات تنفيذ الجهاز تتضمن جيروسكوب، سيتم ما يلي:
- يجب أن يتمكّن [C-1-1] من الإبلاغ عن الأحداث التي تصل ترددها إلى 50 هرتز على الأقل.
- [C-1-4] يجب أن تصل درجة الدقة إلى 12 بت أو أكثر.
- [C-1-5] يجب تعويض درجة الحرارة فيه.
- [C-1-6] يجب معايرته وتعويضه أثناء الاستخدام، مع الحفاظ على معلَمات التعويض بين عمليات إعادة تشغيل الجهاز
- [C-1-7] يجب أن يحتوي على تباين لا يزيد عن 1e-7 rad^2 / s^2 لكل هرتز (التباين لكل هرتز، أو rad^2 / s) يُسمح بأن يختلف التباين حسب على معدل أخذ العينات، إلا أنه يجب أن يكون مقيَّدًا بهذه القيمة. بمعنى آخر، إذا كنت قياس تباين الجيروسكوب بمعدل أخذ عينات 1 هرتز، يجب ألا يكون أكبر من 1e-7 rad^2/s^2.
- [C-SR-2] يُوصى بشدة بأن يكون خطأ المعايرة أقل من 0.01 راد/ثانية عندما يكون الجهاز ثابتًا في درجة حرارة الغرفة.
- [C-SR-3] يُوصى بشدة بأن تكون درجة الدقة 16 بت أو أكثر.
- "يجب" الإبلاغ عن الأحداث التي تصل ترددها إلى 200 هرتز على الأقل.
إذا كانت عمليات تنفيذ الأجهزة تتضمن جيروسكوبًا ثلاثي المحاور، سيتم إجراء ما يلي:
- [C-2-1] يجب تشغيل أداة استشعار
TYPE_GYROSCOPE
. - [C-SR-4] يُنصح بشدة بتنفيذ
TYPE_GYROSCOPE_UNCALIBRATED
أداة الاستشعار.
إذا كانت عمليات تنفيذ الجهاز تتضمّن جيروسكوب يتضمن أقل من 3 محاور، سيتم إجراء ما يلي:
- [C-3-1] يجب استخدام أداة استشعار
TYPE_GYROSCOPE_LIMITED_AXES
والإبلاغ عنها. - [C-SR-5] يتم strongLY_RECOMMENDED لتنفيذها والإبلاغ عنها
جهاز استشعار "
TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
"
إذا كانت عمليات تنفيذ الجهاز تتضمّن جيروسكوبًا ثلاثي المحاور، يمكن استخدام أداة استشعار لمقياس التسارع وجهاز استشعار مقياس المغناطيسية، وهي:
- [C-4-1] يجب استخدام أداة استشعار مركّبة
TYPE_ROTATION_VECTOR
.
إذا كانت عمليات تنفيذ الجهاز تشتمل على مقياس تسارع ثلاثي المحاور وجيروسكوب ثلاثي المحاور جهاز الاستشعار، فهي:
- [C-5-1] يجب أن ينفذ
TYPE_GRAVITY
وTYPE_LINEAR_ACCELERATION
أجهزة الاستشعار المركّبة. - [C-SR-6] يُوصى بها بشدة لتنفيذ
TYPE_GAME_ROTATION_VECTOR
المركب.
7.3.5. مقياس الضغط الجوي
عمليات تنفيذ الأجهزة:
- [C-SR-1] يُنصح بشدة بتضمين مقياس الضغط الجوي (ضغط الهواء المحيط جهاز الاستشعار).
إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياسًا للمؤشر، سيتم تفسير ما يلي:
- [C-1-1] يجب استخدام أداة استشعار
TYPE_PRESSURE
والإبلاغ عنها. - [C-1-2] يجب أن يكون قادرًا على إرسال الأحداث بسرعة 5 هرتز أو أكثر.
- [C-1-3] يجب تعويض درجة الحرارة فيه.
- [C-SR-2] يُنصح بشدة بأن تكون قادرًا على الإبلاغ عن قياسات الضغط في النطاق 300hPa إلى 1100hPa.
- "ينبغي" الحصول على دقة مطلقة تبلغ 1hPa.
- يجب أن تكون الدقة النسبية 0.12hPa على نطاق 20hPa (أي ما يعادل دقة تبلغ حوالي متر واحد أعلى من 200 متر تقريبًا من التغيير على مستوى سطح البحر).
7.3.6. مقياس درجة الحرارة
إذا كانت عمليات تنفيذ الأجهزة تشمل ميزان حرارة في البيئة المحيطة (أداة استشعار الحرارة)، وهي:
- [C-1-1] يجب أن يحدد
SENSOR_TYPE_AMBIENT_TEMPERATURE
جهاز استشعار الحرارة في البيئة المحيطة، وعلى أداة الاستشعار (كابينة الغرفة/المركبة) حيث يتفاعل المستخدم مع جهازك بدرجات مئوية.
إذا كانت عمليّات استخدام الجهاز تشمل أداة استشعار لميزان الحرارة تقيس بخلاف درجة الحرارة المحيطة، مثل درجة حرارة وحدة المعالجة المركزية (CPU)، تكون:
- [C-2-1] يجب ألا يحدّد
SENSOR_TYPE_AMBIENT_TEMPERATURE
لمستشعر الحرارة.
إذا كانت عمليات تنفيذ الجهاز تتضمن أداة استشعار لمراقبة درجة حرارة الجلد، فإنهم:
- [C-SR-1] يُوصى بها بشدة لدعم PowerManager.getThermalHeadroom واجهة برمجة التطبيقات.
7.3.7. مقياس ضوء
- وقد تشمل إجراءات استخدام الجهاز مقياس ضوء (أداة استشعار الضوء المحيط).
7.3.8 أداة استشعار التقارب
- وقد تتضمن عمليات تنفيذ الأجهزة أداة استشعار التقارب.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن أداة استشعار التقارب وكانت تعرض تقارير القراءة الثنائية "بالقرب" أو "البعيد":
- [C-1-1] يجب أن يقيس مسافة جسم في نفس اتجاه الشاشة. بمعنى آخر، يجب أن يكون جهاز استشعار التقارب موجَّهًا لاكتشاف الأجسام بالقرب من الشاشة، لأنّ الهدف الأساسي من هذا النوع من أجهزة الاستشعار هو اكتشاف هاتف قيد الاستخدام من قبل المستخدم. إذا كانت عمليات تنفيذ الجهاز تتضمن أداة استشعار التقارب بأي اتجاه آخر، يجب ألا تكون متاحة من خلال واجهة برمجة التطبيقات هذه.
- [C-1-2] يجب أن يكون بدقة 1 بت أو أكثر.
- [C-1-3] يجب استخدام 0 سنتيمتر كقيمة أقرب للقراءة و5 سنتيمترات القراءة البعيدة.
- [C-1-4] يجب أن يبلغ الحد الأقصى للنطاق والدقة 5.
7.3.9 أجهزة استشعار الدقة العالية
إذا كانت عمليات تنفيذ الأجهزة تتضمّن مجموعة من أدوات الاستشعار العالية الجودة على النحو المحدّد في هذا القسم وإتاحتها للتطبيقات التابعة لجهات خارجية، فإنّها:
- [C-1-1] يجب أن يحدد القدرة من خلال
علامة ميزة واحدة (
android.hardware.sensor.hifi_sensors
)
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.sensor.hifi_sensors
،
وهي:
يجب أن يتضمّن [C-2-1] جهاز استشعار "
TYPE_ACCELEROMETER
" ينطبق عليه ما يلي:- يجب أن يتراوح نطاق القياس بين -8g و+8g على الأقل يُنصح بشدة بأن يكون نطاق القياس بين -16 غرامًا على الأقل و+16 غرامًا.
- يجب أن تكون درجة دقة القياس لا تقل عن 2048 LSB/غرام.
- يجب أن يكون الحد الأدنى لتكرار القياس 12.5 هرتز أو أقل.
- يجب أن يبلغ الحد الأقصى لتردد القياس 400 هرتز أو أعلى. يجب
تتوافق مع SensorDirectChannel
RATE_VERY_FAST
. - يجب أن يكون هناك تشويش في القياس ليس أعلى من 400 ميكروغرام/توفِّر ترددًا هرتز.
- يجب استخدام نموذج لا يمكن تنشيطه من هذا المستشعر مع مورد احتياطي. لما لا يقل عن 3000 حدث جهاز استشعار.
- يجب أن يكون استهلاك الطاقة بالدفعة أقل من 3 ميغاواط.
- [C-SR-1] يُوصى بشدة بأن يكون معدل نقل بيانات قياس 3dB في على الأقل 80% من تردد Nyquist وطيف الضوضاء البيضاء ضمن هذه النطاق الترددي.
- من المفترض أن يكون لديك تسريع في المشي عشوائيًا أقل من 30 ميكروغرام 🏏 هرتز تم اختباره على درجة حرارة الغرفة.
- يُفترض أن يكون هناك تغيُّر في الانحياز مقارنةً بدرجة الحرارة التي تبلغ ≤ +/- 1 مليغرام/درجة مئوية.
- يجب أن يكون الخط غير الخطي الأكثر ملاءمة بنسبة ≤ 0.5%، وتغيّر الحساسية مقابل درجة الحرارة ≤ ≤ 0.03%/درجة مئوية.
- يجب أن تكون حساسية المحور المتقاطع < 2.5٪ وتغير الحساسية عبر المحاور < 0.2% في نطاق درجة حرارة تشغيل الجهاز
[C-2-2] يجب أن يحتوي على
TYPE_ACCELEROMETER_UNCALIBRATED
مع متطلبات الجودة مثلTYPE_ACCELEROMETER
.يجب أن يتضمّن [C-2-3] أداة استشعار
TYPE_GYROSCOPE
وهي:- يجب أن يتراوح نطاق القياس بين -1000 و +1000 نقطة في الثانية على الأقل.
- يجب أن تكون درجة دقة القياس 16 LSB/dps على الأقل.
- يجب أن يكون الحد الأدنى لتكرار القياس 12.5 هرتز أو أقل.
- يجب أن يبلغ الحد الأقصى لتردد القياس 400 هرتز أو أعلى. يجب
تتوافق مع SensorDirectChannel
RATE_VERY_FAST
. - يجب أن يكون هناك تشويش في قياس حالة الجهاز لا يزيد عن 0.014 درجة/ثانية/وإعادة هرتز.
- [C-SR-2] يُوصى بشدة بأن يكون معدل نقل بيانات قياس 3dB في على الأقل 80% من تردد Nyquist وطيف الضوضاء البيضاء ضمن هذه النطاق الترددي.
- يجب أن يكون معدّل المشي العشوائي أقلّ من 0.001 درجة/ثانية ©Hz تم اختباره في الغرفة. درجة الحرارة.
- يُفترض أن يكون هناك تغيُّر في الانحياز مقارنةً بدرجة الحرارة التي تبلغ ≤ +/- 0.05 درجة/ ثانية / درجة مئوية.
- من المفترض أن يتغيّر مستوى الحساسية مقارنةً بدرجة الحرارة التي تقل عن 0.02% / درجة مئوية.
- يُفترض أن يحتوي الخط غير الخطي على أفضل ملائمة، وهو ≤ 0.2%.
- من المفترض أن تكون كثافة الضوضاء 0.007 درجة/ثانية/وإعادة هرتز أو أقل.
- من المفترض أن يكون خطأ المعايرة أقل من 0.002 راد/ثانية في يتراوح نطاق درجة الحرارة بين 10 و40 درجة مئوية عندما يكون الجهاز ثابتًا.
- يجب أن تكون حساسية g-g أقل من 0.1 درجة/s/g.
- يجب أن تكون حساسية المحور المتقاطع < 4.0 % وحساسية المحاور الاختلاف < 0.3% في نطاق درجة حرارة تشغيل الجهاز
[C-2-4] يجب أن يحتوي على
TYPE_GYROSCOPE_UNCALIBRATED
بالجودة نفسها المتطلبات مثلTYPE_GYROSCOPE
.يجب أن يتضمّن [C-2-5] أداة استشعار
TYPE_GEOMAGNETIC_FIELD
وهي:- يجب أن يتراوح نطاق القياس بين -900 و+900 ميكرومتر.
- يجب أن تكون درجة دقة القياس 5 LSB/uT على الأقل.
- يجب أن يكون الحد الأدنى لتكرار القياس 5 هرتز أو أقل.
- يجب أن يبلغ الحد الأقصى لتردد القياس 50 هرتز أو أعلى.
- يجب أن يكون هناك تشويش في القياس ليس أعلى من 0.5 وحدة uT.
[C-2-6] يجب أن يحتوي على
TYPE_MAGNETIC_FIELD_UNCALIBRATED
بالجودة نفسها المتطلبات مثلTYPE_GEOMAGNETIC_FIELD
، إضافةً إلى ذلك:- يجب استخدام نموذج لا يمكن تنشيطه من هذا المستشعر مع مورد احتياطي. لـ 600 حدث جهاز استشعار على الأقل.
- [C-SR-3] مستحسن بشدة أن يكون له طيف ضوضاء بيضاء من 1 هرتز إلى 10 هرتز على الأقل عندما يكون معدّل الإبلاغ 50 هرتز أو أعلى.
يجب أن يتضمّن [C-2-7] أداة استشعار
TYPE_PRESSURE
وهي:- يجب أن يتراوح نطاق القياس بين 300 و1100 هيلتر باسك على الأقل.
- يجب أن تكون درجة دقة القياس 80 LSB/hPa على الأقل.
- يجب أن يكون الحد الأدنى لتكرار القياس 1 هرتز أو أقل.
- يجب أن يبلغ الحد الأقصى لتردد القياس 10 هرتز أو أعلى.
- يجب أن يكون هناك تشويش في القياس ليس أعلى من 2 Pa/fill هرتز.
- يجب استخدام نموذج لا يمكن تنشيطه من هذا المستشعر مع مورد احتياطي. لما لا يقل عن 300 حدث جهاز استشعار.
- يجب أن يكون استهلاك الطاقة بالدفعة أقل من 2 ميغاواط.
يجب أن يتضمّن [C-2-8] أداة استشعار
TYPE_GAME_ROTATION_VECTOR
.يجب أن يتضمّن [C-2-9] أداة استشعار
TYPE_SIGNIFICANT_MOTION
تتوافق مع ما يلي:- يجب أن يكون استهلاك الطاقة أقل من 0.5 ميغاواط عندما يكون الجهاز ثابتة و1.5 ميغاواط عند تحرك الجهاز.
يجب أن يتضمّن [C-2-10] أداة استشعار
TYPE_STEP_DETECTOR
متوافقة مع ما يلي:- يجب استخدام نموذج لا يمكن تنشيطه من هذا المستشعر مع مورد احتياطي. لـ 100 حدث استشعار على الأقل.
- يجب أن يكون استهلاك الطاقة أقل من 0.5 ميغاواط عندما يكون الجهاز ثابتة و1.5 ميغاواط عند تحرك الجهاز.
- يجب أن يكون استهلاك الطاقة بالدفعة أقل من 4 ميغاواط.
يجب أن يتضمّن [C-2-11] جهاز استشعار
TYPE_STEP_COUNTER
ينطبق عليه ما يلي:- يجب أن يكون استهلاك الطاقة أقل من 0.5 ميغاواط عندما يكون الجهاز ثابتة و1.5 ميغاواط عند تحرك الجهاز.
يجب أن يتضمّن [C-2-12] أداة استشعار
TILT_DETECTOR
تتوافق مع ما يلي:- يجب أن يكون استهلاك الطاقة أقل من 0.5 ميغاواط عندما يكون الجهاز ثابتة و1.5 ميغاواط عند تحرك الجهاز.
[C-2-13] الطابع الزمني للحدث الفعلي نفسه الذي تم الإبلاغ عنه من قِبل يجب أن يكون مقياس التسارع والجيروسكوب ومقياس المغناطيسية ضمن 2.5 مللي ثانية. من بعضها البعض. الطابع الزمني للحدث الفعلي نفسه الذي تم الإبلاغ عنه من قِبل يجب أن يكون مقياس التسارع والجيروسكوب في حدود 0.25 مللي ثانية من كل منهما آخر.
[C-2-14] يجب أن يحتوي على الطوابع الزمنية لأحداث أداة استشعار الجيروسكوب في الوقت نفسه الأساسية كنظام فرعي للكاميرا وفي غضون 1 مللي ثانية من الخطأ.
[C-2-15] يجب أن يسلم عينات إلى التطبيقات في غضون 5 مللي ثانية من الوقت الذي تصبح فيه البيانات متوفرة على أي من أجهزة الاستشعار الفعلية المذكورة أعلاه بالتطبيق.
[C-2-16] يجب ألا يزيد استهلاك الطاقة عن 0.5 ميغاواط. عندما يكون الجهاز ثابتًا وتبلغ طاقته 2.0 ميغاواط عند تحريك الجهاز عند تفعيل أي مجموعة من أدوات الاستشعار التالية:
SENSOR_TYPE_SIGNIFICANT_MOTION
SENSOR_TYPE_STEP_DETECTOR
SENSOR_TYPE_STEP_COUNTER
SENSOR_TILT_DETECTORS
[C-2-17] قد يتضمّن جهاز استشعار "
TYPE_PROXIMITY
"، ولكن يجب أن يتضمّن في حال توفُّره حد أدنى لقدرة المخزن المؤقت لـ 100 حدث استشعار.
لاحظ أن جميع متطلبات استهلاك الطاقة في هذا القسم لا تشمل استهلاك الطاقة لمعالج التطبيقات. إنها تشمل القوة ترسمها سلسلة المستشعر بالكامل - أداة الاستشعار، وأي دائرة دعامة، وأي نظام معالجة مستشعر مخصص، إلخ.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن دعمًا مباشرًا لأداة الاستشعار، سيتم تطبيق ما يلي:
- [C-3-1] يجب أن يعلن بشكل صحيح عن توافقه مع أنواع القنوات المباشرة
مستوى الأسعار في التقارير من خلال
isDirectChannelTypeSupported
وgetHighestDirectReportRateLevel
واجهة برمجة التطبيقات. - [C-3-2] يجب أن يتوافق مع نوع واحد على الأقل من نوعَي القنوات المباشرة لجهاز الاستشعار لكل أجهزة الاستشعار التي تعلن أنّها تتوافق مع القناة المباشرة لجهاز الاستشعار.
- من المفترض أن يدعم إعداد تقارير الأحداث من خلال القناة المباشرة لأداة الاستشعار
أداة استشعار (خيار غير التنشيط) من الأنواع التالية:
TYPE_ACCELEROMETER
TYPE_ACCELEROMETER_UNCALIBRATED
TYPE_GYROSCOPE
TYPE_GYROSCOPE_UNCALIBRATED
TYPE_MAGNETIC_FIELD
TYPE_MAGNETIC_FIELD_UNCALIBRATED
7.3.10. أدوات استشعار المقاييس الحيوية
للحصول على خلفية إضافية عن قياس أمان فتح القفل باستخدام المقاييس الحيوية، يُرجى الاطّلاع على قياس مستندات الأمان باستخدام المقاييس الحيوية
إذا كانت عمليات تنفيذ الأجهزة تتضمّن شاشة قفل آمنة:
- يجب أن تتضمّن أداة استشعار للمقاييس الحيوية.
يمكن تصنيف أدوات استشعار المقاييس الحيوية على أنّها الفئة 3 (المعروفة سابقًا باسم قوية)، الفئة 2 (المعروفة سابقًا باسم الضعيفة)، أو الفئة 1 (المعروفة سابقًا باسم الملاءمة) بناءً على معدلات قبول الانتحال والمحتال، وعلى أمان المقاييس الحيوية. ويحدد هذا التصنيف الإمكانات التي يجب أن تتفاعل أداة استشعار المقاييس الحيوية مع المنصة ومع طرف ثالث التطبيقات. يجب أن تستوفي أجهزة الاستشعار متطلبات إضافية كما هو موضّح أدناه في حال يرغب في أن يتم تصنيفه على أنه الفئة 1 أو الفئة 2 أو الفئة 3. تحصل المقاييس الحيوية من الفئة 2 والفئة 3 على إمكانات إضافية مثل بالتفصيل أدناه.
إذا كانت عملية تنفيذ الجهاز تتيح أداة استشعار للمقاييس الحيوية لطرف ثالث التطبيقات عبر android.hardware.biometrics.BiometricManager، android.hardware.biometrics.BiometricPrompt، وandroid.provider.Settings.ACTION_BIOMETRIC_ENROLL، وهي:
- يجب أن يستوفي [C-4-1] متطلبات المقاييس الحيوية من الفئة 3 أو الفئة 2. كما هو موضح في هذا المستند.
- [C-4-2] يجب أن يتعرف على كل اسم معلمة محدد على أنه ثابت ويحترمه في قسم المصادقون الفئة وأي مجموعات منها. وفي المقابل، يجب ألا يتم قبول أو التعرف على ثوابت الأعداد الصحيحة التي تم تمريرها إلى canAuthenticate(int) وsetAllowedAuthenticators(int) بخلاف تلك الموثقة كثوابت عامة في المصادقون وأي مجموعات منها.
- [C-4-3] يجب تنفيذ ACTION_BIOMETRIC_ENROLL إجراء على الأجهزة التي تتضمّن أحد المقاييس الحيوية من الفئة 3 أو الفئة 2. يجب أن يعرض هذا الإجراء نقاط دخول التسجيل في الفئة 3 فقط. أو المقاييس الحيوية من الفئة 2.
في حال كانت عمليات تنفيذ الأجهزة تتيح المقاييس الحيوية السلبية، سيتم اتخاذ الإجراءات التالية:
- [C-5-1] يجب أن يتم تلقائيًا طلب خطوة تأكيد إضافية (مثل الضغط على زر).
- [C-SR-1] يُنصح بشدة بأن يكون لها إعداد يسمح للمستخدمين لإلغاء تفضيل التطبيق ويتطلب دائمًا إرفاق خطوة تأكيد البيانات.
- [C-SR-2] يُنصح بشدة بتأمين إجراء التأكيد بحيث لا يمكن لنظام التشغيل أو اختراق النواة انتحال صفتها. على سبيل المثال، يعني ذلك أنّ الإجراء المؤكد هو استناد إلى زر فعلي. يتم توجيهه من خلال دبوس إدخال/إخراج (GPIO) للإدخال فقط للأغراض العامة عنصر آمن (SE) لا يمكن تشغيله بواسطة أي وسيلة أخرى غير للضغط على الأزرار الفعلية.
- [C-5-2] يجب أيضًا تنفيذ مسار مصادقة ضمنية (بدون خطوة التأكيد) بما يتوافق مع setConfirmationrequired(boolean), التطبيقات التي يمكن إعدادها للاستخدام في تدفقات تسجيل الدخول.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن عدة أدوات استشعار حيوية، سيتم إجراء ما يلي:
بدء متطلبات جديدة
[C-7-1] يجب أن يتم ذلك، عندما تكون المقاييس الحيوية غير مفعَّلة (أي أنّ المقاييس الحيوية غير مفعَّلة) حتى يفتح المستخدم قفل الجهاز باستخدام المصادقة الأساسية) أو عندما يتم حظر المستخدم في وقت محدد (أي أنّ المقاييس الحيوية غير مفعَّلة مؤقتًا إلى أن ينتظر المستخدم بعض الوقت. فترة) بسبب إخفاق العديد من المحاولات، وكذلك حجب جميع المقاييس الحيوية من فئة المقاييس الحيوية المنخفضة. في حالة التأمين المحدد زمنيًا، يجب أن يكون وقت التراجع لإثبات الملكية باستخدام المقاييس الحيوية هو الحد الأقصى لوقت التراجع لجميع المقاييس الحيوية في الحظر المشروط بوقت محدّد
[C-SR-12] يُوصى بها بشدة، عند حظر أحد المقاييس الحيوية (أي تكون المقاييس الحيوية غير مفعَّلة إلى أن يفتح المستخدم قفلها باستخدام المصادقة الأساسية.) التأمين المحدد زمنيًا (أي أن يتم إيقاف المقاييس الحيوية مؤقتًا حتى ينتظر المستخدم فاصلاً زمنيًا) بسبب فشل عدد كبير جدًا من المحاولات، حظر جميع المقاييس الحيوية الأخرى من نفس فئة المقاييس الحيوية. في حالة التأمين المحدد زمنيًا، فإن وقت التراجع للتحقق باستخدام المقاييس الحيوية هو بشدة يُنصح بأن تكون هذه المدة الحد الأقصى لوقت توقُّف جميع المقاييس الحيوية المحددة زمنيًا. التأمين.
[C-7-2] يجب أن يطلب من المستخدم الحصول على المصادقة الأساسية المقترحة (مثلاً: رقم التعريف الشخصي والنقش وكلمة المرور) لإعادة ضبط عدّاد التأمين باستخدام أحد المقاييس الحيوية الحظر. قد يُسمَح للمقاييس الحيوية من الفئة 3 بإعادة ضبط القفل. للحصول على مقياس حيوي مُقفَل من الفئة نفسها أو الفئة الأدنى. الفئة 2 أو يجب عدم السماح للمقاييس الحيوية من الفئة 1 بإكمال عملية حظر إعادة الضبط. التشغيل لأي مقاييس حيوية.
إنهاء المتطلبات الجديدة
- [C-SR-3] يُنصح بشدة بطلب تأكيد مقياس حيوي واحد فقط لكل عملية مصادقة (مثلاً في حال توفُّر كل من بصمة الإصبع وأدوات استشعار الوجه على الجهاز، onAuthenticationSucceeded يجب إرسالها بعد تأكيد أيٍ منها).
للسماح لعمليات تنفيذ الأجهزة بالوصول إلى مفاتيح ملف تخزين المفاتيح تطبيقات الجهات الخارجية، فإنها:
- يجب أن يستوفي [C-6-1] متطلبات الفئة 3 على النحو المحدّد في هذا. أدناه.
- [C-6-2] يجب أن يتم استخدام المقاييس الحيوية من الفئة 3 فقط عند إجراء المصادقة تتطلب BIOMETRIC_strong، أو يتم استدعاء المصادقة باستخدام CryptoObject.
إذا كانت عمليات تنفيذ الأجهزة تريد التعامل مع أداة استشعار للمقاييس الحيوية على أنّها من الفئة 1 (المعروفة سابقًا باسم مستوى الراحة)، وهي:
- [C-1-1] يجب أن يكون معدل قبول خاطئ أقل من 0.002٪.
- [C-1-2] يجب الإفصاح عن أن هذا الوضع قد يكون أقل أمانًا من رقم التعريف الشخصي القوي. أو النمط أو كلمة المرور مع تعداد مخاطر تفعليها بوضوح، إذا أن تكون معدلات قبول المحتال والانتحال أعلى من 7٪ وفقًا لقياسه بروتوكولات اختبار المقاييس الحيوية في Android
- [C-1-9] يجب أن يطلب من المستخدم الحصول على المصادقة الأساسية المقترحة (مثل رقم التعريف الشخصي أو النقش أو كلمة المرور) بعد ما لا يزيد عن عشرين محاولة خاطئة ولا وقت تراجع أقل من تسعين ثانية للتحقق باستخدام المقاييس الحيوية - حيث المحاولة الخاطئة هي محاولة الحصول على جودة كافية (BIOMETRIC_ACQUIRED_GOOD) لا يتطابق مع مقياس حيوي مسجَّل.
- [C-SR-4] يُنصح بشدة بتقليل إجمالي عدد المحاولات الخاطئة لإثبات الهوية باستخدام المقاييس الحيوية المحدّدة في [C-1-9] في حال كان الانتحال والاحتيال أعلى من% 7 كمقياس للمقاييس الحيوية في Android. اختبار البروتوكولات
- [C-1-3] يجب أن تحد من معدّل محاولات التحقّق باستخدام المقاييس الحيوية - عندما
المحاولة الخاطئة هي محاولة الحصول على جودة كافية
(
BIOMETRIC_ACQUIRED_GOOD
) لا تتطابق مع المقاييس الحيوية المسجَّلة. - [C-SR-5] يُوصى بشدة بفرض قيود على محاولات الحدّ من المعدل 30 ثانية بعد خمس محاولات خاطئة للتحقق باستخدام المقاييس الحيوية الحد الأقصى لعدد المحاولات الخاطئة لكل [C-1-9] - حيث تكون المحاولة الخاطئة واحدة باستخدام جودة تسجيل ملائمة (BIOMETRIC_ACQUIRED_GOOD) لا تتطابق مع وهي المقاييس الحيوية المسجَّلة.
- [C-SR-6] يُنصح بشدة باعتماد جميع أسباب تقييد المعدّل في بيئة التنفيذ الموثوقة (TEE).
[C-1-10] يجب إيقاف المقاييس الحيوية بعد التراجع عن المصادقة الأساسية تم تشغيله لأول مرة كما هو موضح في [C-0-2] من القسم 9.11.
[C-1-11] يجب أن يحتوي على معدل قبول للاحتيال والمحتال لا يزيد عن 30٪، مع (1) معدل قبول الانتحال والمحتال للعرض التقديمي للمستوى (أ) أنواع الأدوات الهجومية (PAI) التي لا تزيد عن 30% و (2) الانتحال معدل قبول المحتال لأنواع المستوى B PAI لا يزيد عن 40٪، نظرًا باستخدام بروتوكولات اختبار المقاييس الحيوية في Android.
[C-1-4] يجب منع إضافة مقاييس حيوية جديدة بدون إنشاء سلسلة من الثقة من خلال تكليف المستخدم بتأكيد وجود جهاز حالي أو إضافة جهاز جديد بيانات الاعتماد (رقم التعريف الشخصي أو النمط أو كلمة المرور) المحمية من قِبل TEE فتح Android يوفر تنفيذ مشروع المصدر الآلية في إطار العمل لتنفيذ إذًا.
[C-1-5] يجب إزالة جميع بيانات المقاييس الحيوية التي تحدِّد هوية المستخدم بالكامل. عند إزالة حساب المستخدم (بما في ذلك من خلال إعادة الضبط على الإعدادات الأصلية).
[C-1-6] يجب أن يحترم العلامة الفردية لهذا المقياس الحيوي (أي
DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT
،DevicePolicymanager.KEYGUARD_DISABLE_FACE
، أوDevicePolicymanager.KEYGUARD_DISABLE_IRIS
).[C-1-7] يجب أن يطلب من المستخدم الحصول على المصادقة الأساسية المقترحة (مثل رقم التعريف الشخصي أو النقش أو كلمة المرور) مرة واحدة كل 24 ساعة أو أقل. ملاحظة: يجب ترقية الأجهزة التي تعمل بالإصدار 9 من نظام Android أو الإصدارات الأقدم تحدي المستخدم للحصول على المصادقة الأساسية الموصى بها (مثل رقم التعريف الشخصي، النقش وكلمة المرور) مرة كل 72 ساعة أو أقل.
[C-1-8] يجب أن يطلب تحدي المستخدم للوصول إلى الانتخابات الأساسية الموصى بها المصادقة (مثلاً: رقم التعريف الشخصي أو النقش أو كلمة المرور) أو المقاييس الحيوية من الفئة 3 (strong) بعد أحد الإجراءات التالية:
- مهلة عدم النشاط لمدة 4 ساعات
- 3 محاولات فاشلة لمصادقة المقاييس الحيوية
- تتم إعادة ضبط مدة مهلة عدم النشاط وعدد عمليات المصادقة التي تعذّر إجراؤها. بعد أي تأكيد ناجح لبيانات اعتماد الجهاز. ملاحظة: قد تتم ترقية الأجهزة التي تم إطلاقها على الإصدار 9 من نظام Android أو الإصدارات الأقدم معفى من C-1-8.
[C-SR-7] يُنصح بشدة باستخدام المنطق في إطار العمل المقدَّم بواسطة المشروع المفتوح المصدر لنظام Android لفرض القيود المحددة في [C-1-7] و[C-1-8] للأجهزة الجديدة.
[C-SR-8] يُوصى بشدة بأن يكون معدل الرفض الخاطئ أقل من 10%، وفقًا لما تم قياسه على الجهاز.
[C-SR-9] يُنصح بشدة بأن يكون وقت الاستجابة أقل من ثانية واحدة، ويتم قياسها من وقت رصد المقاييس الحيوية إلى أن يتم فتح قفل الشاشة وهي المقاييس الحيوية المسجَّلة.
بدء متطلبات جديدة
[C-1-12] يجب أن يحتوي على معدل قبول للاحتيال والمحتال لا يزيد عن 40% لكل نوع من أنواع الأدوات الهجومية في العرض التقديمي، وفقًا للقياس بروتوكولات اختبار المقاييس الحيوية على Android
[C-SR-13] يُوصى بشدة بقبول الانتحال والاحتيال لا يزيد عن 30% لكل نوع من أنواع أدوات الهجوم في العرض التقديمي، وفقًا لما تم تحديده من خلال بروتوكولات اختبار المقاييس الحيوية في Android
[C-SR-14] يُنصح بشدة بالإفصاح عن فئة المقاييس الحيوية جهاز استشعار المقاييس الحيوية والمخاطر الناتجة عنه.
[C-SR-17] يُنصَح باستخدامه بشدة لتنفيذ واجهات AIDL الجديدة (مثل
IFace.aidl
وIFingerprint.aidl
).
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الأجهزة تريد التعامل مع أحد أجهزة الاستشعار الحيوية على أنّها من الفئة 2 (المعروفة سابقًا باسم ضعيفة)، وهي:
يجب أن يستوفي [C-2-1] جميع متطلبات الفئة 1 أعلاه.
[C-2-2] يجب أن يحتوي على معدل قبول للاحتيال والمحتال لا يزيد عن 20٪، مع (1) معدل قبول المحتال والانتحال أنواع أدوات هجوم العرض التقديمي (PAI) في المستوى أ التي لا تزيد عن 20%، و (2) معدل قبول الانتحال والمحتال لأنواع المستوى B PAI غير أعلى من 30%، وفقًا للقياس بروتوكولات اختبار المقاييس الحيوية في Android
بدء متطلبات جديدة
- [C-SR-15] يُوصى بشدة بقبول الانتحال والاحتيال لا يزيد عن% 20 لكل وسيلة هجومية في العرض التقديمي (PAI) النوع، كما يتم قياسها من خلال بروتوكولات اختبار المقاييس الحيوية على Android
إنهاء المتطلبات الجديدة
- [C-2-3] يجب أن يؤدي
مطابقة المقاييس الحيوية في بيئة تنفيذ معزولة خارج Android
مساحة المستخدم أو مساحة النواة، مثل بيئة التنفيذ الموثوقة (TEE)
أوعلى شريحة ذات قناة آمنة إلى بيئة التنفيذ المعزولة أو على جهاز افتراضي محمي تستوفي المتطلبات في الفقرة 9.17. - [C-2-4] يجب أن تكون جميع بيانات تحديد الهوية مشفّرة وبتشفير مصادَق عليها بحيث لا يمكن الحصول عليها أو قراءتها أو تغييرها خارج بيئة تنفيذ معزولة أو شريحة ذات قناة آمنة إلى بيئة تنفيذ معزولة كما هو موثق في عملية تنفيذ الإرشادات على موقع "مشروع مفتوح المصدر لنظام Android" أو جهاز افتراضي محمي يتحكّم فيه برنامج Hypervisor (مراقب الأجهزة الظاهرية) والذي يستوفي المتطلبات الواردة في الفقرة 9.17.
- [C-2-5] للمقاييس الحيوية المستندة إلى الكاميرا، والمصادقة المستندة إلى المقاييس الحيوية
أو عند التسجيل:
- يجب تشغيل الكاميرا في وضع يمنع اصطدام إطارات الكاميرا التي تتم قراءتها أو تعديلها خارج بيئة التنفيذ المعزولة أو شريحة من خلال قناة آمنة لبيئة التنفيذ المعزولة أو جهاز افتراضي محمي يتحكّم فيه برنامج Hypervisor (مراقب الأجهزة الظاهرية) يستوفي المتطلبات الواردة في الفقرة 9.17.
- بالنسبة إلى حلول الكاميرا الواحدة باستخدام النموذج اللوني أحمر أخضر أزرق، يمكن ضبط إطارات الكاميرا على يمكن قراءته خارج بيئة التنفيذ المعزولة لدعم العمليات مثل معاينة التسجيل، ولكن يجب ألا تكون قابلة للتغيير.
- [C-2-6] يجب ألا يتم تفعيل تطبيقات الجهات الخارجية للتمييز بين تسجيلات المقاييس الحيوية الفردية.
- [C-2-7] يجب ألا يسمح بالوصول غير المشفَّر إلى بيانات المقاييس الحيوية التي تحدّد الهوية أو أي بيانات مشتقة منها (مثل التضمينات) إلى معالج التطبيقات خارج سياق بيئة التنفيذ الموثوقة (TEE) أو الجهاز الافتراضي المحمي الذي يتحكّم فيه برنامج Hypervisor (مراقب الأجهزة الظاهرية) الذي يستوفي المتطلبات الواردة في الفقرة 9.17. لا يتم استثناء ترقية الأجهزة التي تم إطلاقها على الإصدار 9 من نظام Android أو الإصدارات الأقدم. من C-2-7.
[C-2-8] يجب أن يحتوي على مسار معالجة آمن بحيث يمكن بالنظام أو اختراق النواة لا يسمح بإدخال البيانات بشكل مباشر إلى المصادقة بشكل خاطئ على أنك المستخدم. ملاحظة: في حال سبق أن بدأت عمليات تنفيذ الأجهزة على الإصدار 9 من نظام التشغيل Android أو أقدم ولا يمكنها تلبية المطلب C-2-8 من خلال برنامج نظام تحديث، فقد يتم إعفاؤها من هذا المطلب.
[C-SR-10] يُنصح بشدة بتضمين ميزة "رصد الحياة الواقعية" للجميع المقاييس الحيوية وميزة "رصد الانتباه" الخاصة بالمقاييس الحيوية للوجه
[C-2-9] يجب إتاحة أداة الاستشعار الحيوية للجهات الخارجية. التطبيقات.
إذا كانت عمليات تنفيذ الأجهزة تريد التعامل مع أحد أجهزة الاستشعار الحيوية على أنّها من الفئة 3 (المعروفة سابقًا باسم قوية)، وهي:
- يجب أن يستوفي [C-3-1] جميع متطلبات الفئة 2 أعلاه، باستثناء [C-1-7] و[C-1-8].
- يجب أن يتوفّر لدى [C-3-2] ملف تخزين مفاتيح مستنِد إلى الجهاز.
- [C-3-3] يجب أن يتضمن معدل قبول للاحتيال والمحتال لا يزيد عن 7٪، مع (1) معدل قبول المحتال والانتحال أنواع أدوات هجوم العرض التقديمي (PAI) ذات المستوى أ التي لا تزيد عن 7%، (2) معدل قبول الانتحال والمحتال لأنواع المستوى B PAI غير الأعلى عن 20%، وفقًا لما تم تحديده بواسطة بروتوكولات اختبار المقاييس الحيوية في Android
- [C-3-4] يجب أن يطلب المستخدم من المستخدم تحديد مسار الاختبار الأساسي الموصى به المصادقة (مثل رقم التعريف الشخصي أو النقش أو كلمة المرور) مرة واحدة كل 72 ساعة أو أقل.
- [C-3-5] يجب إعادة إنشاء رقم تعريف Authenticator لجميع المقاييس الحيوية من الفئة 3 والمتوافقة على الأجهزة إذا كان أي منها إعادة تسجيلهم.
- [C-3-6] يجب تفعيل مفاتيح تخزين المفاتيح المستنِدة إلى مقاييس حيوية إلى جهة خارجية. التطبيقات.
بدء متطلبات جديدة
- [C-SR-16] يُوصى بشدة بقبول الانتحال والاحتيال لا يزيد عن 7% لكل نوع من أنواع أدوات الهجوم في العرض التقديمي، وفقًا لما تم تحديده من خلال بروتوكولات اختبار المقاييس الحيوية في Android
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الجهاز تحتوي على أداة استشعار بصمة الإصبع أسفل الشاشة (UDFPS): وهي:
- [C-SR-11] يُوصى بها بشدة لمنع المنطقة القابلة للمس في UDFPS من التداخل مع التنقل باستخدام ثلاثة أزرار( وهو ما قد يطلبه بعض المستخدمين إمكانية الوصول).
7.3.11. أداة استشعار الوضعية
عمليات تنفيذ الأجهزة:
- قد يتم دعم أداة استشعار الوضعية بزاوية 6 درجات بحريّة.
إذا كانت تطبيقات الجهاز توفّر أداة استشعار الوضعية بزاوية 6 درجات بحريّة، سيتم:
- [C-1-1] يجب تنفيذ
TYPE_POSE_6DOF
والإبلاغ عنه أداة الاستشعار. - يجب أن يكون [C-1-2] أكثر دقة من متجه الدوران وحده.
7.3.12. أداة استشعار زاوية المفصّلة
إذا كانت عمليّات تنفيذ الأجهزة تتوافق مع أداة استشعار زاوية المفصّلة، سيتم إجراء ما يلي:
- [C-1-1] يجب تنفيذ
TYPE_HINGLE_ANGLE
والإبلاغ عنه. - [C-1-2] يجب أن يدعم قراءتين على الأقل بين 0 و360 درجة (شاملاً، أي بما في ذلك 0 و360 درجة).
- [C-1-3] يجب أن يعرض تنبيهًا
أداة الاستشعار في
getDefaultSensor(SENSOR_TYPE_HINGE_ANGLE)
.
7.3.13. IEEE 802.1.15.4 (UWB)
إذا كانت عمليات تنفيذ الجهاز تشمل دعم 802.1.15.4 وكشف وظيفة أخرى إلى تطبيق تابع لجهة خارجية، فإنها:
بدء متطلبات جديدة
- [C-1-2] يجب الإبلاغ عن علامة ميزة الجهاز
android.hardware.uwb
. - [C-1-3] يجب أن يتوافق مع جميع مجموعات الضبط التالية (محدّدة مسبقًا)
مجموعات من مَعلمات FIRA UCI)
المحدد في تنفيذ AOSP.
CONFIG_ID_1
: البث الأحادي النطاقSTATIC STS DS-TWR
الذي يحدده FiRa، الوضع المؤجل، مع نطاق فاصل زمني يبلغ 240 ملي ثانية.CONFIG_ID_2
: محددة FiRa من واحد إلى متعددSTATIC STS DS-TWR
للنطاقات، الوضع المؤجل، مع نطاق فاصل زمني يبلغ 200 ملي ثانية. حالة الاستخدام النموذجية: الهاتف الذكي يتفاعل مع العديد من الأجهزة الذكية.CONFIG_ID_3
: مثلCONFIG_ID_1
، باستثناء زاوية الوصول (AoA) عدم الإبلاغ عن البيانات.CONFIG_ID_4
: مثلCONFIG_ID_1
، باستثناء وضع أمان P-STS مفعّلة.CONFIG_ID_5
: مثلCONFIG_ID_2
، باستثناء وضع أمان P-STS مفعّلة.CONFIG_ID_6
: مثلCONFIG_ID_3
، باستثناء وضع أمان P-STS مفعّلة.CONFIG_ID_7
: مثلCONFIG_ID_2
، باستثناء عنصر التحكّم الفردي في P-STS تفعيل وضع المفاتيح.
- [C-1-4] يجب أن يوفر المستخدم القدرة على السماح للمستخدم بتبديل النطاق الفائق العرض (UWB) حالة تشغيل/إيقاف الراديو.
- [C-1-5] يجب أن تفرض التطبيقات التي تستخدم النطاق الترددي الفائق العرض (UWB) تثبيت
UWB_RANGING
إذن (ضمن مجموعة الأذوناتNEARBY_DEVICES
)
اجتياز اختبارات المطابقة والشهادات ذات الصلة التي يحددها المعيار المؤسسات، بما في ذلك FIRA، CCC تساعد CSA في ضمان عمل 802.1.15.4 بشكل صحيح.
إنهاء المتطلبات الجديدة
7.4. إمكانية اتصال البيانات
7.4.1. الاتصالات الهاتفية
"الاتصالات الهاتفية" كما تستخدمها واجهات برمجة تطبيقات Android، ويشير هذا المستند على وجه التحديد بأجهزة تتعلق بإجراء مكالمات صوتية وإرسال رسائل SMS ، أو إنشاء بيانات جوّال عبر شبكة جوّال (مثل GSM أو CDMA أو LTE أو NR)GSM أو CDMA. قد يختار جهاز تتوفّر فيه ميزة "الاتصال الهاتفي" توفير بعض خدمات المكالمات والمراسلة والبيانات أو كلها حسب ما يتناسب مع المنتج.
عبر شبكة GSM أو CDMA. على الرغم من أنّ هذه المكالمات الصوتية قد يتم تبديلها بين حِزم البيانات أو لا، فإنّها تُستخدم لأغراض Android بشكل مستقل عن أي اتصال بيانات يمكن تنفيذه باستخدام الشبكة نفسها. بمعنى آخر، تشير وظيفة "الهاتف" وواجهات برمجة التطبيقات في Android على وجه التحديد إلى المكالمات الصوتية والرسائل القصيرة SMS. على سبيل المثال، لا تُعتبر عمليات تنفيذ الأجهزة التي لا يمكنها إجراء مكالمات أو إرسال/استلام رسائل SMS أجهزة هاتفية، بغض النظر عما إذا كانت تستخدم شبكة جوّال لإجراء اتصال البيانات أم لا.
- قد يتم استخدام Android على الأجهزة التي لا تتضمن أجهزة اتصال هاتفي. الذي هو أن Android متوافق مع الأجهزة بخلاف الهواتف.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن الاتصال الهاتفي من خلال بروتوكول GSM أو CDMA، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يعلن عن علامة الميزة
android.hardware.telephony
محددة أخرى خاصة بالميزات الفرعية وفقًا للتكنولوجيا. - [C-1-2] يجب أن تنفيذ الدعم الكامل لواجهة برمجة التطبيقات الخاصة بتلك التقنية.
- "يجب أن" تسمح بجميع أنواع خدمات شبكة الجوّال المتاحة (شبكة الجيل الثاني والثالث والرابع والجيل الخامس وما إلى ذلك)
أثناء مكالمات الطوارئ (بغض النظر عن أنواع الشبكات التي تم تحديدها بواسطة
SetAllowedNetworkTypeBitmap()
).
إذا كانت عمليات تنفيذ الأجهزة لا تتضمّن أجهزة هاتفية، فإنها:
- [C-2-1] يجب تنفيذ واجهات برمجة التطبيقات الكاملة في بيئة مستقلة.
إذا كانت عمليات تنفيذ الأجهزة تتيح استخدام واجهات eUICC أو شرائح eSIM أو شرائح SIM المضمّنة، وعليك تضمين ما يلي: آلية ملكية لإتاحة وظائف شريحة eSIM للجهات الخارجية المطورين، فهم:
- [C-3-1] يجب أن يعلن عن
android.hardware.telephony.euicc
علامة الميزة.
في حال لم تؤدي عمليات تنفيذ الأجهزة إلى ضبط خاصية النظام ro.telephony.iwlan\_operation\_mode
على "قديم"، سيتم ما يلي:
- [C-4-1] يجب عدم الإبلاغ عن "NETWORK_TYPE_IWLAN" من خلال NetworkRecordInfo#getAccessNetworkTechnology() عند حدوث NetworkRecordInfo#getTransportType() يتم الإبلاغ عنه على أنّه "TRANSPORT_TYPE_WWAN" لمثيل NetworkConnectionInfo نفسه.
إذا كانت عمليات تنفيذ الجهاز تتوافق مع نظام فرعي واحد للوسائط المتعددة لعناوين IP (IMS) التسجيل لكل من خدمة الاتصال الهاتفي للوسائط المتعددة (MMTEL) ميزات خدمات الاتصالات التفاعلية (RCS) ويتوقع أن تمتثل متطلبات مشغل شبكة الجوّال المتعلقة باستخدام تسجيل الرسائل الفورية لجميع إشارات IMS لحركة البيانات:
- [C-5-1] يجب أن يعلن عن
android.hardware.telephony.ims
عن الميزة وتقديم تنفيذ كامل واجهة برمجة التطبيقات ImsService API لكل من MMTEL وRCS واجهة برمجة التطبيقات لـ User Capability Exchange. - [C-5-2] يجب أن يعلن عن
android.hardware.telephony.ims.singlereg
الميزة وتوفير تنفيذ كامل لواجهة SipTransport API، GbaService API إشارات الحامل المخصصة باستخدام IRadio 1.6 HAL، وتوفير من خلال خادم الإعداد التلقائي (ACS) أو إدارة حسابات أخرى خاصة باستخدام IMS Configuration API.
إذا كانت عمليات تنفيذ الأجهزة تعرض ميزة "android.hardware.telephony
"، سيتم ما يلي:
- [C-6-1]
SmsManager#sendTextMessage
وSmsManager#sendMultipartTextMessage
يجب أن تؤدي إلى المكالمات المقابلة إلىCarrierMessagingService
لتوفير وظيفة المراسلة النصية.SmsManager#sendMultimediaMessage
أوSmsManager#downloadMultimediaMessage
يجب أن تؤدي إلى المكالمات المقابلة إلىCarrierMessagingService
لتوفير وظيفة رسائل الوسائط المتعددة. - [C-6-2] الطلب الذي عينه
android.provider.Telephony.Sms#getDefaultSmsPackage
يجب استخدام مدير الرسائل القصيرة SMS واجهات برمجة التطبيقات عند إرسال واستقبال رسائل SMS ورسائل الوسائط المتعددة. مرجع AOSP في الحزم/التطبيقات/المراسلة يلبي هذا الشرط. - [C-6-3] التطبيق الذي يستجيب لـ
Intent#ACTION_DIAL
يجب أن يسمح بإدخال رموز اتصال عشوائية بتنسيق*#*#CODE#*#*
. تشغيل مطابقةTelephonyManager#ACTION_SECRET_CODE
البث. - [C-6-4] التطبيق الذي يستجيب لـ
Intent#ACTION_DIAL
يجب استخدامVoicemailContract.Voicemails#TRANSCRIPTION
لعرض نص البريد الصوتي المرئي للمستخدمين إذا كان هذا الملف يتيح لهم عمليات تحويل البريد الصوتي إلى نصوص. - [C-6-5] يجب أن يمثّل كل SUBSCRIPTIONInfo مع ما يعادله
المعرّف الفريد العالمي (UUID) للمجموعة
كاشتراك فردي بجميع العناصر المرئية للمستخدم التي تعرض
التحكم في معلومات شريحة SIM. من أمثلة هذه العناصر الوظيفية الإعدادات
والواجهات التي تتطابق
Settings#ACTION_MANAGE_ALL_SIM_PROFILES_SETTINGS
أوEuiccManager#ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS
- [C-6-6] يجب ألا تعرض أو تسمح بالتحكم في أي SubscriptionInfo مع المعرّف الفريد العالمي (UUID) للمجموعة غير فارغ والفرصة في أي خصائص مرئية للمستخدم السماح بضبط إعدادات شريحة SIM أو التحكّم فيها
إذا كانت عمليات تنفيذ الأجهزة تعرض ميزة "android.hardware.telephony
"
ووفِّر شريط حالة النظام، وبعد ذلك:
- [C-7-1] يجب اختيار اشتراك نشِط تمثيلي لاشتراك معيّن المعرّف الفريد العالمي (UUID) لمجموعة عرضها للمستخدم في أي وظائف توفر حالة شريحة SIM المعلومات. ومن الأمثلة على هذه الخصائص الوظيفية شريط الحالة الخلوي رمز الإشارة أو مربّع الإعدادات السريعة
- [C-SR-1] يُنصح بشدة بأن يكون الاشتراك التمثيلي اختاروه ليكون اشتراك في خدمة البيانات النشطة إلا إذا كان الجهاز يُصدر صوتًا الذي يُوصى خلاله بشدة بأن يكون الممثل هو اشتراك خدمة الصوت النشط.
إذا كانت عمليات تنفيذ الأجهزة تعرض ميزة "android.hardware.telephony
"، سيتم ما يلي:
- [C-6-7] يجب أن يكون قادرًا على فتح واستخدام الحد الأقصى في الوقت نفسه عدد القنوات المنطقية (إجمالي 20) لكل UICC وفقًا لـ ETSI TS 102 221.
- [C-6-8] يجب ألا يطبّق أي من السلوكيات التالية على تطبيقات مشغّل شبكة الجوّال النشطة.
(وفقًا لما حدّده "
TelephonyManager#getCarrierServicePackageName
") تلقائيًا أو بدون تأكيد صريح من المستخدم:- إبطال الوصول إلى الشبكة أو تقييده
- إبطال الأذونات
- فرض قيود على عمليات تنفيذ التطبيقات التي تعمل في الخلفية أو التي تعمل في المقدّمة بشكل يتجاوز ميزات إدارة الطاقة الحالية المضمّنة في AOSP
- إيقاف التطبيق أو إلغاء تثبيته
إذا أبلغت عمليات تنفيذ الأجهزة عن ميزة android.hardware.telephony
كلها نشطة،
اشتراكات غير انتهازية
التي تشترك في معرّف فريد عالمي (UUID) لمجموعة يتم إيقافها،
إذا تمت إزالتها فعليًا من الجهاز أو تم وضع علامة عليها على أنها عرضة، فسيحدث ما يلي:
- [C-8-1] يجب أن يوقِف تلقائيًا جميع العناصر المتبقية النشطة فرصية الاشتراكات في نفس المجموعة.
إذا كانت عمليات تنفيذ الأجهزة تتضمن اتصالات هاتفية عبر بروتوكول GSM لكن لا تشتمل على اتصال هاتفي عبر CDMA، فإنها:
- [C-9-1] يجب ألا يفصح عن
PackageManager#FEATURE_TELEPHONY_CDMA
. - [C-9-2] يجب رمي
IllegalArgumentException
عند محاولة إحراز أي أهداف أنواع شبكات 3GPP2 في أقنعة بت نوع الشبكة المفضّلة أو المسموح بها. - [C-9-3] يجب أن تعرض سلسلة فارغة من
TelephonyManager#getMeid
إذا كانت عمليات تنفيذ الأجهزة تتيح رموز eUICC مع منافذ وملفات شخصية متعددة، سيتم إجراء ما يلي:
- [C-10-1] يجب أن يعلن عن
android.hardware.telephony.euicc.mep
علامة الميزة.
7.4.1.1. التوافق مع حظر الأرقام
إذا أبلغت عمليات تنفيذ الأجهزة عن ميزة "android.hardware.telephony.calling
"، سيتم ما يلي:
- [C-1-1] يجب أن يتضمن إمكانية حظر الأرقام
- [C-1-2] يجب تنفيذ
BlockedNumberContract
بالكامل وواجهة برمجة التطبيقات المقابلة كما هو موضح في مستندات حزمة SDK. [C-1-3] يجب حظر جميع المكالمات والرسائل من رقم هاتف في "BlockNumberProvider" بدون أي تفاعل مع التطبيقات. الاستثناء الوحيد تحدث هذه المشكلة عندما يتم رفع حظر الرقم مؤقتًا كما هو موضّح في حزمة تطوير البرامج (SDK) التوثيق.
[C-1-4] يجب الكتابة إلى موفِّر سجلّ المكالمات في النظام الأساسي لإجراء مكالمة محظورة ويجب فلترة المكالمات التي تستخدم
BLOCKED_TYPE
من عرض سجل المكالمات التلقائي في تطبيق برنامج الاتصال المثبّت مسبقًا.[C-1-5] يجب ألّا يتم التواصل مع مقدِّم خدمات الاتصال الهاتفي بحثًا عن رسالة محظورة.
[C-1-6] يجب تنفيذ واجهة مستخدم لإدارة الأرقام المحظورة، والتي يتم فتحها الغرض من العرض هو
TelecomManager.createManageBlockedNumbersIntent()
. .[C-1-7] يجب عدم السماح للمستخدمين الثانويين بعرض الأرقام المحظورة أو تعديلها على الجهاز حيث يفترض نظام Android الأساسي أن المستخدم الأساسي التحكم في الخدمات الهاتفية، في حالة واحدة، على الجهاز. الكل يجب أن تكون واجهة المستخدم ذات الصلة مخفية بالنسبة إلى المستخدمين الثانويين ويجب أن تكون القائمة المحظورة لا يزال يحترمه.
يجب نقل الأرقام المحظورة إلى مقدّم الخدمة عند تحديث الجهاز. إلى Android 7.0.
أن تتيح للمستخدم إمكانية عرض المكالمات المحظورة في الأجهزة المثبَّتة مسبقًا تطبيق الاتصال.
7.4.1.2. واجهة برمجة تطبيقات الاتصالات
في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.telephony.calling
، سينطبق التالي على:
- يجب أن يتوافق [C-1-1] مع واجهات برمجة تطبيقات
ConnectionService
الموضّحة في حزمة تطوير البرامج (SDK). - [C-1-2] يجب أن يعرض مكالمة واردة جديدة ويتيح للمستخدم إمكانية
قبول المكالمة الواردة أو رفضها عندما يكون المستخدم في مكالمة جارية
تم إنشاؤه من خلال تطبيق تابع لجهة خارجية لا يتيح ميزة تجميد البيانات
محددة عبر
CAPABILITY_SUPPORT_HOLD
- [C-1-3] يجب أن يكون له تطبيق ينفذ InCallService:
[C-SR-1] يُوصى بها بشدة لإبلاغ المستخدم بأنه يجيب على مكالمة واردة سيتم إنهاء المكالمة الجارية.
يستوفي تنفيذ بروتوكول AOSP هذه المتطلبات من خلال إشعار تنبيهي والتي تشير للمستخدم إلى أن الرد على مكالمة واردة سيؤدي إلى سيتم إنهاء المكالمة الأخرى.
[C-SR-2] يُنصح بشدة بتحميل تطبيق برنامج الاتصال التلقائي الذي عرض إدخال في سجلّ المكالمات واسم تطبيق تابع لجهة خارجية في سجلّ المكالمات عندما يضبط التطبيق التابع لجهة خارجية
EXTRA_LOG_SELF_MANAGED_CALLS
مفتاح إضافي على الجهاز منPhoneAccount
إلىtrue
.[C-SR-3] يُوصى بشدتها للتعامل مع سماعات الرأس
KEYCODE_MEDIA_PLAY_PAUSE
وKEYCODE_HEADSETHOOK
حدثينandroid.telecom
واجهات برمجة التطبيقات على النحو التالي:- الاتصال بالرقم
Connection.onDisconnect()
عند رصد ضغطة قصيرة على الحدث الرئيسي أثناء مكالمة جارية. - الاتصال بالرقم
Connection.onAnswer()
عند رصد ضغطة قصيرة على الحدث الرئيسي أثناء مكالمة واردة. - الاتصال بالرقم
Connection.onReject()
عند رصد ضغطة مطوّلة على الحدث الرئيسي أثناء مكالمة واردة. - تبديل حالة كتم صوت جهاز
CallAudioState
- الاتصال بالرقم
7.4.1.3. نقل البيانات من شبكة NAT-T Keepalive
عمليات تنفيذ الأجهزة:
- يجب أن تشتمل هذه السياسة على إمكانية نقل بيانات رسالة التحقّق من الاتصال على شبكة الجوّال.
إذا كانت عمليات تنفيذ الجهاز تتضمن دعم تفريغ البيانات المتعلقة بالمحافظة على الاتصال الخلوي يعرض الوظائف للتطبيقات التابعة لجهات خارجية، فإنّها:
- [C-1-1] يجب أن يتوافق مع واجهة برمجة تطبيقات SocketKeepAlive.
- [C-1-2] يجب أن يتوافق مع خانة واحدة على الأقل رسالة التحقّق من الاتصال المتزامنة عبر شبكة الجوّال.
- [C-1-3] يجب أن يتوافق مع أكبر عدد ممكن من منافذ الاتصال بشبكة الجوّال المتزامنة. بواسطة طبقة تجريد الأجهزة (HAL) اللاسلكية الخلوية.
- [C-SR-1] يُنصَح باستخدامها بشدة لإتاحة ثلاث نقاط على الأقل من الاتصال بشبكة الجوّال الخانات لكل مثيل راديو.
إذا لم تكن عمليات تنفيذ الأجهزة تتضمّن توافقًا مع نقل بيانات رسالة التحقُّق من الشبكة الخلوية، وهي:
- [C-2-1] يجب عرض ERROR_UNSUPPORTED.
7.4.2 معيار IEEE 802.11 (لشبكات Wi-Fi)
عمليات تنفيذ الأجهزة:
- يجب أن يتوفر دعم لشكل واحد أو أكثر من أشكال 802.11.
إذا كانت تنفيذات الجهاز تتضمن دعم 802.11 وكشف وظيفة أخرى إلى تطبيق تابع لجهة خارجية، فإنها:
- [C-1-1] يجب أن ينفذ واجهة برمجة تطبيقات Android المقابلة.
- [C-1-2] يجب الإبلاغ عن علامة ميزة الجهاز
android.hardware.wifi
. - [C-1-3] يجب تنفيذ multicast API كما هو موضّح في مستندات حزمة SDK.
- [C-1-4] يجب أن يتوافق مع نظام أسماء النطاقات ذي البث المتعدد (mDNS) ويجب ألا يصف حزم mDNS
(224.0.0.251 أو ff02::fb)
في أي وقت من التشغيل، بما في ذلك عندما تظهر الشاشة
ليست في حالة نشطة، ما لم يتم إسقاط هذه الحزم أو تصفيتها
ضرورية للبقاء ضمن نطاقات استهلاك الطاقة التي تتطلبها الهيئات التنظيمية
المتطلبات السارية على السوق المستهدف
بالنسبة إلى تطبيقات أجهزة Android TV، حتى عندما يكون الجهاز في حالة الطاقة في وضع الاستعداد - [C-1-5] يجب ألا يتعامل مع
WifiManager.enableNetwork()
طلب البيانات إلى طريقة واجهة برمجة التطبيقات كمؤشر كافٍ لتبديل نوع البيانات النشطة حاليًاNetwork
الذي يتم استخدامه تلقائيًا لعدد زيارات التطبيق ويتم عرضه بواسطةConnectivityManager
طرق واجهة برمجة التطبيقات، مثلgetActiveNetwork
وregisterDefaultNetworkCallback
. بمعنى آخر، قد يعطِّلون فقط الوصول إلى الإنترنت الذي توفره أي مزوّد شبكة آخر (مثل بيانات الجوّال) إذا نجح في التحقق من الصحة أن شبكة Wi-Fi توفر الاتصال بالإنترنت. - [C-1-6] يُوصى بها بشدة، عندما
ConnectivityManager.reportNetworkConnectivity()
ما يسمى، إعادة تقييم الاتصال بالإنترنت علىNetwork
، بعد أن يحدّد التقييم أنّ قيمةNetwork
الحالية لم تعُد توفّر اتصال بالإنترنت، والتبديل إلى أي شبكة أخرى متاحة (مثل شبكة الجوّال البيانات) التي توفر الوصول إلى الإنترنت. - [C-1-7] يجب أن عشوائيًا عنوان MAC المصدر ورقم تسلسل التحقيق إطارات الطلب، مرة واحدة في بداية كل عملية فحص، في حين أن STA غير متصل.
- [C-1-8] يجب استخدام عنوان MAC واحد متسق (يجب عدم ترتيب MAC عشوائيًا في منتصف الطريق من خلال عملية فحص).
- [C-1-9] يجب تكرار رقم تسلسل طلب التحقيق بالشكل المعتاد (بالتسلسل) بين طلبات التحقيق في الفحص.
- [C-1-10] يجب اختيار رقم تسلسل طلب التحقيق عشوائيًا بين الاستطلاع الأخير طلب الفحص وطلب الفحص الأول لإجراء الفحص التالي.
- [C-SR-1] يُنصح بشدة بإجراء ترتيب عشوائي لعنوان MAC المصدر المستخدَم في
جميع اتصالات STA بنقطة وصول (AP) أثناء الربط
المرتبطة.
- يجب أن يستخدم الجهاز عنوان MAC عشوائيًا مختلفًا لكل معرِّف SSID (FQDN for Passpoint) الذي يتواصل معه.
- يجب أن يوفر الجهاز للمستخدم خيارًا للتحكم في التوزيع العشوائي حسب SSID (FQDN لنقطة المرور) باستخدام خيارات عشوائية عشوائيًا، ويجب تعيين الوضع الافتراضي للاتصال بشبكة Wi-Fi الجديدة من الإعدادات ليتم توزيعها عشوائيًا.
- [C-SR-2] يُنصَح بشدة باستخدام معرّف مجموعة خدمات الأساسية (BSSID) عشوائيًا لأي نقطة وصول (AP)
الإنشاء.
- يجب اختيار عنوان MAC عشوائيًا واستمراره وفقًا لمعرّف SSID الذي يستخدمه نقطة الوصول
- قد يوفر الجهاز للمستخدم خيارًا لتعطيل هذه الميزة. في حال توفير مثل هذا الخيار، يجب تفعيل التوزيع العشوائي تلقائيًا.
إذا كانت عمليات تنفيذ الجهاز تتضمّن توافقًا مع وضع توفير الطاقة بشبكة Wi-Fi على النحو المحدّد وفقًا لمعيار IEEE 802.11، فإنهم:
- يجب إيقاف وضع توفير الطاقة عبر شبكة Wi-Fi عند تثبيت تطبيق
قفل
WIFI_MODE_FULL_HIGH_PERF
أو قفلWIFI_MODE_FULL_LOW_LATENCY
من خلالWifiManager.createWifiLock()
وWifiManager.WifiLock.acquire()
واجهات برمجة التطبيقات والقفل نشط. - [C-3-2] متوسط وقت الاستجابة للإرسال والاستقبال بين الجهاز
ونقطة وصول عندما يكون الجهاز في "قفل وقت الاستجابة المنخفض" لشبكة Wi-Fi
يجب أن يكون وضع (
WIFI_MODE_FULL_LOW_LATENCY
) أصغر من وقت الاستجابة أثناء وضع "قفل الأداء العالي" في شبكة Wi-Fi (WIFI_MODE_FULL_HIGH_PERF
). - [C-SR-3] يُوصى بها بشدة لتقليل وقت استجابة إرسال البيانات ذهابًا وإيابًا في شبكة Wi-Fi
عند الحصول على قفل وقت الاستجابة السريع (
WIFI_MODE_FULL_LOW_LATENCY
) ويدخل حيز التنفيذ.
إذا كانت إجراءات تنفيذ الجهاز تتوافق مع شبكة Wi-Fi وتستخدم Wi-Fi للبحث عن الموقع، وهي:
- [C-2-1] يجب توفير ميزة للمستخدم لتفعيل/إيقاف قراءة القيمة
من خلال
WifiManager.isScanAlwaysAvailable
طريقة واجهة برمجة التطبيقات.
7.4.2.1. اتصال Wi-Fi مباشر
عمليات تنفيذ الأجهزة:
- يجب أن يشمل ذلك الدعم لاتصال Wi-Fi المباشر (شبكة Wi-Fi من نظير إلى نظير).
إذا كانت عمليات تنفيذ الأجهزة تتضمّن إمكانية الاتصال بشبكة Wi-Fi المباشرة، يعني ذلك ما يلي:
- [C-1-1] يجب تنفيذ واجهة برمجة تطبيقات Android المقابلة كما هو موضّح في مستندات حزمة SDK.
- [C-1-2] يجب الإبلاغ عن ميزة الأجهزة
android.hardware.wifi.direct
. - [C-1-3] يجب أن يتوافق مع اتصال Wi-Fi المعتاد.
- [C-1-4] يجب أن يتوافق مع عمليات Wi-Fi وWi-Fi Direct معًا.
- [C-SR-1] يُنصَح بشدة باستخدام عنوان MAC المصدر عشوائيًا لجميع المستخدمين اتصالات Wi-Fi Direct التي تم تشكيلها حديثًا.
7.4.2.2. إعداد رابط مباشر عبر أنفاق شبكة Wi-Fi
عمليات تنفيذ الأجهزة:
- يجب أن تتضمن الدعم إعداد الرابط المباشر عبر أنفاق Wi-Fi (TDLS) كما هو موضَّح في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android
في حال كانت عمليات تنفيذ الجهاز تتضمّن دعمًا لـ TDLS وTDLS من خلال واجهة برمجة تطبيقات WiFiManager، وهي:
- [C-1-1] يجب أن يعلن عن توفّر TDLS من خلال
WifiManager.isTdlsSupported
. - "يجب" استخدام "TDL" فقط عندما يكون ذلك ممكنًا ومفيدًا.
- يجب أن يكون لديك بعض الإرشادات وألّا تستخدم "تحديد المسار الفرعي" (TDLS) عندما يكون من المحتمَل أن يكون أداؤها أسوأ من المرور عبر نقطة وصول Wi-Fi.
7.4.2.3. التعرُّف على شبكة Wi-Fi
عمليات تنفيذ الأجهزة:
- يجب أن تتوافق مع خدمة Wi-Fi Aware.
إذا كانت عمليات تنفيذ الجهاز تتضمن دعم خدمة Wi-Fi Aware وكشفت الوظائف إلى تطبيقات الجهات الخارجية، فيتم إجراء ما يلي:
- [C-1-1] يجب تنفيذ واجهات برمجة تطبيقات
WifiAwareManager
كما هو موضّح في مستندات حزمة تطوير البرامج (SDK): - [C-1-2] يجب أن يعلن عن علامة الميزة
android.hardware.wifi.aware
. - [C-1-3] يجب أن يتوافق مع عمليات Wi-Fi وWi-Fi في الوقت نفسه.
- [C-1-4] يجب اختيار عنوان واجهة إدارة Wi-Fi Aware عشوائيًا على فترات زمنية لمدة لا تزيد عن 30 دقيقة وعندما تكون خدمة Wi-Fi Aware مفعّلة إلا إذا كان عملية النطاق المستمرة جارية أو مسار بيانات Aware نشط (العشوائية غير متوقعًا ما دام مسار البيانات نشطًا).
إذا كانت عمليات تنفيذ الجهاز تتضمن دعم خدمة Wi-Fi Aware موقع Wi-Fi كما هو موضح في القسم 7.4.2.5 تعرض هذه الوظائف لتطبيقات تابعة لجهات خارجية، وتضمن لها ما يلي:
- [C-2-1] يجب أن تنفذ واجهات برمجة تطبيقات الاكتشاف المستند إلى الموقع: setRangingEnabled، setMinResponseMm، setMaxمسافةMm ، onServiceDiscoveredWithinRange:
7.4.2.4. نقطة مرور Wi-Fi
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع معيار 802.11 (Wi-Fi)، سيتم ما يلي:
- [C-1-1] يجب أن يتوافق مع نقطة مرور Wi-Fi.
- [C-1-2] يجب تنفيذ واجهات برمجة تطبيقات
WifiManager
ذات الصلة بنقطة المرور باعتبارهما كما هو موضح في وثائق حزمة SDK. - [C-1-3] يجب أن يتوافق مع معيار IEEE 802.11u، ذي الصلة على وجه التحديد إلى اكتشاف الشبكة وتحديدها، مثل الإعلانات العامة بروتوكول خدمات (GAS) وبروتوكول طلب شبكة الوصول (ANQP).
- [C-1-4] يجب أن يعلن عن علامة ميزة
android.hardware.wifi.passpoint
. - [C-1-5] يجب أن يتبع تنفيذ AOSP لاكتشاف ومطابقة وربط إلى شبكات نقطة المرور.
- [C-1-6] يجب أن يتوافق مع المجموعة الفرعية التالية على الأقل من إعدادات الجهاز البروتوكولات كما هو موضح في نقطة مرور Wi-Fi Alliance R2: EAP-TTLS وSOAP-XML.
- [C-1-7] يجب أن يعالج شهادة خادم AAA كما هو موضح في مواصفات نقطة الاتصال 2.0 R3.
- [C-1-8] يجب أن يتيح تحكُّم المستخدم في توفير المتطلبات اللازمة من خلال "أداة اختيار شبكة Wi-Fi".
- [C-1-9] يجب أن تظل إعدادات نقطة المرور مستمرة في جميع عمليات إعادة التشغيل.
- [C-SR-1] يُوصى بها بشدة لدعم الأحكام والشروط ميزة القبول.
- [C-SR-2] يُوصى بها بشدة لدعم ميزة معلومات المكان.
في حال توفير مفتاح تحكّم عام لإيقاف نقطة المرور للمستخدم، يجب تنفيذ ما يلي:
- [C-3-1] يجب تفعيل "نقطة المرور" تلقائيًا.
7.4.2.5. موقع Wi-Fi (وقت الذهاب والعودة عند الاتصال بشبكة Wi-Fi: ميزة "المراسلة النصية في الوقت الفعلي")
عمليات تنفيذ الأجهزة:
- يجب أن تتوافق مع ميزة الموقع الجغرافي لشبكة Wi-Fi.
إذا كانت إجراءات تنفيذ الجهاز تتضمن توافقًا مع موقع Wi-Fi وكشف الوظائف إلى تطبيقات الجهات الخارجية، فيتم إجراء ما يلي:
- [C-1-1] يجب تنفيذ واجهات برمجة تطبيقات
WifiRttManager
كما هو موضّح في مستندات حزمة تطوير البرامج (SDK): - [C-1-2] يجب أن يعلن عن علامة الميزة
android.hardware.wifi.rtt
. - [C-1-3] يجب اختيار عنوان MAC للمصدر عشوائيًا لكل سلسلة رسائل RTT. التي يتم تنفيذها أثناء استخدام واجهة Wi-Fi التي يتم فيها إرسال ميزة "المراسلة النصية في الوقت الفعلي" التي يتم تنفيذها غير مرتبطة بنقطة وصول.
- [C-1-4] يجب أن تكون دقيقة في نطاق مترين وفي نطاق ترددي يبلغ 80 ميغاهرتز في نطاق 68 النسبة المئوية (كما يتم حسابها باستخدام دالة التوزيع التراكمي).
- [C-SR-1] يُوصى بشدة بالإبلاغ عنها بدقة ضمن نطاق 1.5 متر بنطاق ترددي يبلغ 80 ميغاهرتز عند الشريحة المئوية 68 (حسبما يتم احتسابه باستخدام دالة التوزيع التراكمي).
7.4.2.6. إيقاف نقل بيانات شبكة Wi-Fi Keepalive
عمليات تنفيذ الأجهزة:
- يجب أن يشمل ذلك الدعم لنقل بيانات رسالة التحقُّق من الاتصال بشبكة Wi-Fi.
إذا كانت عمليات تنفيذ الجهاز تتضمّن توافقًا مع نقل بيانات رسالة التحقُّق من الاتصال بشبكة Wi-Fi وتعرِض الوظائف للتطبيقات التابعة لجهات خارجية، فإنّها:
- [C-1-1] يجب أن يتوافق مع واجهة برمجة تطبيقات SocketKeepAlive.
- [C-1-2] يجب أن يتوافق مع ما لا يقل عن ثلاث خانات متزامنة للبقاء على الاتصال عبر Wi-Fi
إذا لم تكن عمليات تنفيذ الجهاز تتضمّن توافقًا مع نقل بيانات رسالة التحقُّق من الاتصال بشبكة Wi-Fi، وهي:
- [C-2-1] يجب أن يعرض
ERROR_UNSUPPORTED
.
7.4.2.7. الاتصال السهل عبر Wi-Fi (بروتوكول توفير المتطلبات اللازمة للأجهزة)
عمليات تنفيذ الأجهزة:
- يجب أن يتوافق مع بروتوكول Wi-Fi Easy Connect (DPP).
إذا كانت تنفيذات الجهاز تتضمن دعمًا لـ Wi-Fi Easy Connect وكشف الوظائف للتطبيقات التابعة للجهات الخارجية، فإنها:
- [C-1-1] يجب أن يحتوي على WifiManager#isEasyConnectsupported()
إرجاع الطريقة
true
.
7.4.2.8. التحقُّق من شهادة خادم Wi-Fi للمؤسسات
إذا لم يتم التحقّق من صحة شهادة خادم Wi-Fi أو خادم Wi-Fi لم يتم تعيين اسم النطاق، وعمليات تنفيذ الأجهزة:
- [C-SR-1] يُوصى بشدة بعدم توفير خيار للمستخدم إضافة شبكة Wi-Fi للمؤسسات يدويًا في تطبيق الإعدادات.
7.4.2.9. الثقة عند الاستخدام الأول (TOFU)
إذا كانت عمليات تنفيذ الجهاز تتوافق مع الثقة عند الاستخدام الأول (TOFU) تسمح للمستخدم بتحديد تهيئات WPA/WPA2/WPA3-Enterprise، فإنهم:
- [C-4-1] يجب أن يوفر للمستخدم خيارًا لتحديد استخدام TOFU.
7.4.3. البلوتوث
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع الملف الشخصي لـ Bluetooth Audio:
- يجب أن تتوافق مع برامج ترميز الصوت المتقدّمة وبرامج ترميز الصوت عبر البلوتوث (مثال: LDAC)
إذا كانت تطبيقات الأجهزة تتيح استخدام HFP وA2DP وAVRCP، سيتم ما يلي:
- يجب أن يتوافق مع إجمالي 5 أجهزة متصلة على الأقل.
في حال كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.vr.high_performance
الميزات، فهي:
- [C-1-1] يجب أن يتوافق مع Bluetooth 4.2 وBluetooth LE Data Length.
يتيح Android استخدام البلوتوث والبلوتوث منخفض الطاقة.
إذا كانت عمليات تنفيذ الجهاز تشمل التوافق مع البلوتوث والبلوتوث منخفضة الطاقة، وهي:
- [C-2-1] يجب أن يفصح عن الميزات المرتبطة بالمنصّة
(
android.hardware.bluetooth
وandroid.hardware.bluetooth_le
) على التوالي) وتنفيذ واجهات برمجة التطبيقات للنظام الأساسي. - "يجب تنفيذ" الملفات الشخصية ذات الصلة عبر البلوتوث، مثل A2DP وAVRCP وOBEX وHFP وما إلى ذلك على النحو المناسب للجهاز
إذا كانت عمليات تنفيذ الأجهزة تتضمّن إمكانية استخدام Bluetooth Low Energy (BLE)، سيتم إجراء ما يلي:
- يجب أن يُعلِن [C-3-1] عن ميزة الأجهزة "
android.hardware.bluetooth_le
". - [C-3-2] يجب تفعيل البلوتوث المستند إلى GATT (الملف الشخصي للسمات العامة) واجهات برمجة التطبيقات كما هو موضح في وثائق حزمة SDK android.Bluetooth
- [C-3-3] يجب الإبلاغ عن القيمة الصحيحة
BluetoothAdapter.isOffloadedFilteringSupported()
للإشارة إلى ما إذا كانت منطق الفلترة لعرض ScanFilter تم تنفيذ فئات واجهة برمجة التطبيقات. - [C-3-4] يجب الإبلاغ عن القيمة الصحيحة
BluetoothAdapter.isMultipleAdvertisementSupported()
للإشارة إلى ما إذا كانت الإعلانات منخفضة الطاقة متاحة [C-3-5] يجب تنفيذ مهلة عنوان خاص قابل للحل (RPA) بعد الآن أكثر من 15 دقيقة مع تدوير العنوان عند انتهاء المهلة لحماية خصوصية المستخدم عندما يستخدم الجهاز تقنية BLE لإجراء مسح ضوئي أو لعرض الإعلانات. لمنع هجمات التوقيت، يجب أيضًا توزيع الفواصل الزمنية بشكل عشوائي. بين 5 و15 دقيقة
يجب أن يتيح تحميل منطق الفلترة إلى شريحة البلوتوث. عند تنفيذ ScanFilter API.
يجب أن يتيح تحميل المسح المجمَّع إلى شريحة البلوتوث.
يجب أن يدعم الإعلان المتعدد في 4 خانات على الأقل.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع Bluetooth LE وتستخدم Bluetooth LE for فحص الموقع، فإنهم:
- [C-4-1] يجب توفير ميزة للمستخدم لتفعيل/إيقاف قراءة القيمة
من خلال System API
BluetoothAdapter.isBleScanAlwaysAvailable()
.
إذا كانت عمليات تنفيذ الأجهزة تشمل التوافق مع البلوتوث المنخفض الطاقة (Bluetooth) وسماعات الأذن الطبية (Hearing Aids) الملف الشخصي، كما هو موضح في دعم سماعات الأذن الطبية باستخدام Bluetooth LE:
- [C-5-1] يجب عرض
true
لمدة BluetoothAdapter.getProfileProxy(context, Listener, BluetoothProfile.HEARING_AID).
إذا كانت عمليات تنفيذ الجهاز تشمل التوافق مع البلوتوث أو Bluetooth Low Energy، وهي:
- [C-6-1] يجب أن يحظر الوصول إلى أي بيانات وصفية خاصة بالبلوتوث (مثل فحص
النتائج) التي يمكن استخدامها لمعرفة موقع الجهاز، ما لم
يجتاز التطبيق الذي قدّم الطلب
android.permission.ACCESS_FINE_LOCATION
بنجاح التحقّق من الإذن استنادًا إلى حالة المقدّمة/الخلفية الحالية
إذا كانت عمليات تنفيذ الأجهزة تتضمّن توافقًا مع البلوتوث أو Bluetooth Low Energy ولا يتضمّن بيان التطبيق إقرارًا من المطوّر ينص على أنها لا تحصل على الموقع من البلوتوث، بعد ذلك، سيقومون بما يلي:
- [C-6-2] يجب حظر الوصول إلى البلوتوث خلف
android.permission.ACCESS_FINE_LOCATION
.
إذا كانت عمليات تنفيذ الجهاز تعرض true
BluetoothAdapter.isLeAudioSupported()
API، وعندئذٍ:
- [C-7-1] يجب أن يتوافق مع برنامج البث الأحادي.
- [C-7-2] يجب أن يدعم 2 مليون PHY.
- [C-7-3] يجب أن يتوافق مع LE Extended Advertising.
- [C-7-4] يجب أن يدعم اتصالَي CIS على الأقل في CIG.
- [C-7-5] يجب تفعيل عميل البث الأحادي BAP، ومنسق مجموعة CSIP، وخادم MCP، وحدة تحكّم VCP، وخادم CCP في آن واحد.
- [C-SR-1] يُوصى بها بشدة لتفعيل برنامج HAP أحادي البث.
إذا كانت عمليات تنفيذ الجهاز تعرض true
BluetoothAdapter.isLeAudioBroadcastSourceSupported()
API، وعندئذٍ:
- [C-8-1] يجب أن يدعم رابطين على الأقل من روابط BIS بتنسيق BIG.
- [C-8-2] يجب تفعيل مصدر بث BAP، مساعد بث BAP في الوقت نفسه.
- [C-8-3] يجب أن يتيح استخدام الإعلانات الدورية بنظام LE.
إذا كانت عمليات تنفيذ الجهاز تعرض true
BluetoothAdapter.isLeAudioBroadcastAssistantSupported()
API، وعندئذٍ:
- [C-9-1] يجب أن يتوافق مع PAST (نقل مزامنة الإعلانات الدورية).
- [C-9-2] يجب أن يتيح استخدام الإعلانات الدورية بنظام LE.
إذا كانت عمليات تنفيذ الأجهزة تشير إلى FEATURE_BLUETOOTH_LE
، سيتم ما يلي:
- [C-10-1] يجب أن تكون قياسات RSSI ضمن +/-9 ديسيبل لنسبة 95% من
القياسات على مسافة 1 متر من جهاز مرجعي يرسل في
ADVERTISE_TX_POWER_HIGH
في بيئة خط الرؤية. [C-10-2] يجب أن يشتمل على تصحيحات Rx/Tx لتقليل الانحرافات لكل قناة لكي تكون القياسات على كل قناة من القنوات الثلاث وعلى كل هوائي (في حالة استخدام عدة ديسيبل)، ضمن نطاق +/-3 ديسيبل لبعضها البعض بنسبة 95% من القياسات.
[C-SR-2] يُوصى بها بشدة لقياس وتعويض معادلة Rx تأكَّد من أنّ القيمة المتوسطة لمعيار BLE RSSI هي -60 ديسيبل ملي واط +/-10 ديسيبل على بُعد متر واحد من الجهاز المرجعي الذي يتم الإرسال إليه في
ADVERTISE_TX_POWER_HIGH
، حيث يتم نقل الأجهزة بحيث يكونون على "مستويات موازية" مع الشاشات المواجهة نفسها اتجاهك.[C-SR-3] يُوصى بشدة بقياس وتعويض تعويض Tx تأكَّد من أنّ القيمة المتوسطة لخلاصة RSSI BLE: -60 ديسيبل ملي واط +/-10 ديسيبل عند البحث عن مرجع الجهاز على مسافة 1 متر ويجري الإرسال في
ADVERTISE_TX_POWER_HIGH
، حيث تكون الأجهزة موجهة بحيث تكون قيد التشغيل "الطائرات المتوازية" ذات شاشات تواجه نفس الاتجاه.تم نقل المتطلبات [C-10-3] و[C-10-4] إلى 2.2.1. الأجهزة:
- [C-10-3] يجب أن يقيس ويعادل معادلة Rx إلى
تأكّد من أنّ القيمة المتوسطة لخلاصة RSSI - 55 ديسيبل ملي واط +/-10 ديسيبل على مسافة 1 متر من
الجهاز المرجعي الذي يجري الإرسال في
ADVERTISE_TX_POWER_HIGH
. - [C-10-4] يجب أن تقيس تعويض Tx وتعويضه إلى
تأكَّد من أنّ القيمة المتوسطة لخلاصة RSSI - 55 ديسيبل ملي واط +/-10 ديسيبل عند البحث عن مرجع
الجهاز على مسافة 1 متر ويجري الإرسال في
ADVERTISE_TX_POWER_HIGH
ننصحك بشدة باتّباع خطوات إعداد القياس المحدّدة في متطلبات معايرة الحضور:
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع الإصدار 5.0 من البلوتوث، سيتم اتخاذ الإجراءات التالية:
- [C-SR-4] يُنصَح باستخدامها بشدة لتقديم الدعم في ما يلي:
- LE 2 مليون
- LE Codec PHY
- إضافة LE Advertising
- الإعلانات الدورية
- 10 مجموعات إعلانية على الأقل
- ما لا يقل عن 8 اتصالات متزامنة منخفضة الطاقة (LE). يمكن أن يكون كل اتصال في وأدوار طوبولوجيا الربط.
- خصوصية طبقة رابط LE
- "قائمة الحل" حجم 8 إدخالات على الأقل
7.4.4 الاتصالات القريبة المدى
عمليات تنفيذ الأجهزة:
- يجب أن تشتمل هذه الوسائط على جهاز إرسال واستقبال وأجهزة ذات صلة بالحقل القريب من الحقل. الاتصالات (NFC)
- [C-0-1] يجب تنفيذ
android.nfc.NdefMessage
android.nfc.NdefRecord
واجهات برمجة التطبيقات حتى إذا لم تكن تتضمن دعمًا لتقنية الاتصال القصير المدى (NFC) أن تعلن عن الميزةandroid.hardware.nfc
لأن الفئات تمثل تنسيق تمثيل بيانات مستقل عن البروتوكول.
إذا كانت عمليات تنفيذ الأجهزة تشمل أجهزة NFC ونخطط لتوفيرها تطبيقات الجهات الخارجية، فإنها:
- [C-1-1] يجب الإبلاغ عن ميزة
android.hardware.nfc
من طريقةandroid.content.pm.PackageManager.hasSystemFeature()
. - يجب أن يكون قادرًا على قراءة رسائل NDEF وكتابتها عبر تقنية NFC التالية على النحو التالي:
- [C-1-2] يجب أن يكون قادرًا على العمل كقارئ أو كاتب منتدى NFC
(على النحو المحدَّد في المواصفات الفنية لمنتدى NFC)
NFCForum-TS-DigitalProtocol-1.0) عبر معايير NFC التالية:
- NFCA (ISO14443-3A)
- NFCB (ISO14443-3B)
- NfcF (JIS X 6319-4)
- IsoDep (ISO 14443-4)
- أنواع علامات منتدى NFC 1 و2 و3 و4 و5 (يحدّدها منتدى NFC)
[C-SR-1] يُنصح بشدة بأن تكون قادرًا على قراءة وكتابة NDEF بالإضافة إلى البيانات الأولية عبر معايير NFC التالية. لاحظ أن في حين أن معايير الاتصال القصير المدى (NFC) موصى بها بشدة، ومن المخطط تغيير تعريف التوافق لإصدار مستقبلي تغيير هذه إليه. هذه المعايير اختيارية في هذا الإصدار ولكنّها ستكون مطلوبة. في الإصدارات المستقبلية. الأجهزة الحالية والجديدة التي تشغّل هذا الإصدار من نشجِّع نظام Android بشدة على استيفاء هذه المتطلبات الآن يمكنهم الترقية إلى إصدارات المنصة المستقبلية.
[C-1-13] يجب إجراء استطلاع لكل التكنولوجيات المتوافقة أثناء اكتشاف الاتصال القصير المدى (NFC) الحالي.
يجب أن يكون في وضع اكتشاف NFC عندما يكون الجهاز نشطًا مع تفعيل الشاشة وفتح قفل الشاشة.
يجب أن تكون قادرة على قراءة الرمز الشريطي وعنوان URL (إذا تم ترميزه) الرمز الشريطي لتقنية NFC على Thinfilm المنتجات.
تجدر الإشارة إلى أنّ الروابط المتاحة للجميع لا تتوفّر لنظامَي JIS وISO وNFC. مواصفات المنتدى المذكورة أعلاه.
يتيح Android استخدام وضع محاكاة بطاقة مضيف NFC (HCE).
إذا كانت تطبيقات الجهاز تتضمن مجموعة شرائح لوحدة تحكم NFC قادرة على استخدام وظيفة HCE (على سبيل المثال، تقنية NfcA و/أو NfcB أو تدعم توجيه "رقم تعريف التطبيق" (AID)، وهي:
- [C-2-1] يجب أن يبلغ عن ثابت خاصية
android.hardware.nfc.hce
. - [C-2-2] يجب أن يتوافق مع واجهات برمجة تطبيقات NFC HCE على النحو التالي: محدد في حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
إذا كانت عمليّات تنفيذ الجهاز تتضمّن مجموعة شرائح لوحدة تحكّم NFC يمكنها استخدام وظيفة محاكاة البطاقة المُضيفة (HCE) لشبكات NFCF، وتنفيذ هذه الميزة على تطبيقات تابعة لجهات خارجية، فإنها:
- [C-3-1] يجب أن يبلغ عن ثابت خاصية
android.hardware.nfc.hcef
. - [C-3-2] يجب تنفيذ واجهات برمجة تطبيقات محاكاة بطاقة NfcF كما هو محدّد في حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
إذا كانت عمليّات تنفيذ الجهاز تتضمّن توافقًا عامًا مع NFC كما هو موضَّح في هذا وندعم تقنيات MIFARE (إصدار MiFARE Classic، MiFARE Ultralight وNDEF على MIFARE Classic) من دور القارئ/الكاتب:
- [C-4-1] يجب تنفيذ واجهات برمجة تطبيقات Android المقابلة لها على النحو الموثق من حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
- [C-4-2] يجب الإبلاغ عن الميزة
com.nxp.mifare
منandroid.content.pm.PackageManager.hasSystemFeature
() . يُرجى ملاحظة أنّ هذه الميزة ليست من ميزات Android العادية، وبالتالي لا تظهر كثابت في الفئةandroid.content.pm.PackageManager
.
7.4.5 بروتوكولات الشبكة وواجهات برمجة التطبيقات
7.4.5.1. الحد الأدنى لإمكانات الشبكة
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يتضمن الدعم لشكل واحد أو أكثر من أشكال شبكات البيانات. يجب أن تتضمن عمليات تنفيذ الأجهزة على وجه التحديد دعمًا معيار بيانات واحد على الأقل قادر على 200 كيلوبت/ثانية أو أكثر. أمثلة على تشمل التقنيات التي تستوفي هذا الشرط EDGE وHSPA وEV-DO 802.11g، وشبكة إيثرنت ورقم PAN للبلوتوث.
- يجب أن تتضمن أيضًا إمكانية استخدام بيانات لاسلكية شائعة واحدة على الأقل. مثل 802.11 (Wi-Fi)، عندما يكون معيار الشبكة المادي (مثل Ethernet) هو اتصال البيانات الأساسي.
- قد تنفذ أكثر من شكل واحد من أشكال اتصال البيانات.
7.4.5.2. بروتوكول IPv6
عمليات تنفيذ الأجهزة:
- [C-0-2] يجب أن يحتوي على حزم شبكات IPv6 وأن تدعم IPv6
باستخدام واجهات برمجة التطبيقات المُدارة، مثل
java.net.Socket
java.net.URLConnection
، بالإضافة إلى واجهات برمجة التطبيقات الأصلية، مثلAF_INET6
والمقابس. - [C-0-3] يجب تفعيل IPv6 تلقائيًا.
- يجب أن يضمن أن اتصال IPv6 موثوق به مثل IPv4، على سبيل المثال:
- [C-0-4] يجب الحفاظ على اتصال IPv6 في وضع القيلولة.
- [C-0-5] يجب ألا يؤدي تقييد المعدل إلى فقدان الجهاز لبروتوكول IPv6 على أي شبكة متوافقة مع بروتوكول IPv6 تستخدم 180 ثانية على الأقل
- يجب أن يضمن أن اتصال IPv6 موثوق به مثل IPv4، على سبيل المثال:
- [C-0-6] يجب أن يوفر تطبيقات الجهات الخارجية إمكانية اتصال IPv6 مباشر
عندما تكون متصلاً بشبكة IPv6، بدون أي شكل من أشكال العناوين أو
ترجمة المنفذ التي تحدث محليًا على الجهاز. تعمل كل من واجهات برمجة التطبيقات المُدارة مثل
Socket#getLocalAddress
أوSocket#getLocalPort
) ويجب أن تعرض واجهات برمجة تطبيقات NDK مثلgetsockname()
أوIPV6_PKTINFO
عنوان IP والمنفذ اللذين يستخدمانهما بالفعل لإرسال واستقبال الحزم على وتظهر كخادم عنوان IP المصدر وخوادم المنفذ إلى الإنترنت (الويب).
ويعتمد المستوى المطلوب من دعم IPv6 على نوع الشبكة، كما هو موضح في المتطلبات التالية.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع شبكة Wi-Fi، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتيح التشغيل على حزمتَي بروتوكول الإنترنت وIPv6 فقط على شبكة Wi-Fi.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع شبكة إيثرنت، سيتم ما يلي:
- [C-2-1] يجب أن يتيح تشغيل بروتوكولات حزمتَي بروتوكول الإنترنت وبروتوكول IPv6 فقط. إيثرنت
إذا كانت عمليات تنفيذ الأجهزة تتيح بيانات شبكة الجوّال، سيتم اتخاذ الإجراءات التالية:
- [C-3-1] يجب أن يتوافق مع تشغيل IPv6 (IPv6-only وربما تكديس مزدوج) على شبكة الجوّال.
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أكثر من نوع شبكة واحد (مثل اتصال Wi-Fi وبيانات شبكة الجوّال)، فإن:
- [C-4-1] يجب أن يستوفي في الوقت نفسه المتطلبات أعلاه على كل شبكة عندما يكون الجهاز متصلاً بأكثر من نوع شبكة واحد في الوقت نفسه
7.4.5.3. بوابات مشروطة
يشير البوابة المشروطة إلى شبكة تتطلب تسجيل الدخول من الحصول على اتصال بالإنترنت.
إذا كانت عمليات تنفيذ الأجهزة توفر تنفيذًا كاملاً
android.webkit.Webview API
،
وهي:
- [C-1-1] يجب تقديم تطبيق مدخل مشروط الوصول إليه لمعالجة الغرض
ACTION_CAPTIVE_PORTAL_SIGN_IN
وعرض صفحة تسجيل الدخول إلى المدخل المقيد، عن طريق إرسال هذا الغرض، على طلب واجهة برمجة تطبيقات النظامConnectivityManager#startCaptivePortalApp(Network, Bundle)
- [C-1-2] يجب إجراء اكتشاف المداخل المشروطة وإمكانية تسجيل الدخول من خلال تطبيق المدخل المشروط عند اتصال الجهاز إلى أي نوع شبكة، بما في ذلك شبكة الجوّال/الجوّال، وشبكة Wi-Fi، وإيثرنت أو البلوتوث.
- [C-1-3] يجب أن يتيح تسجيل الدخول إلى البوابات المقيّدة باستخدام نظام أسماء النطاقات الواضح عند ضبط الجهاز على استخدام الوضع المتشدد لنظام أسماء النطاقات الخاص.
- [C-1-4] يجب استخدام "نظام أسماء النطاقات" (DNS) المشفر وفقًا لمستندات حزمة تطوير البرامج (SDK)
android.net.LinkProperties.getPrivateDnsServerName
وandroid.net.LinkProperties.isPrivateDnsActive
لجميع حركات بيانات الشبكة التي لا تتصل بشكل صريح مدخل مقيد. - [C-1-5] يجب أن يضمن ذلك أثناء تسجيل المستخدم الدخول إلى مستخدم مقيّد
بوابة، الشبكة الافتراضية التي تستخدمها التطبيقات (كما تم إرجاعها بواسطة
ConnectivityManager.getActiveNetwork
،ConnectivityManager.registerDefaultNetworkCallback
, وتستخدم بشكل افتراضي في واجهات برمجة تطبيقات شبكات Java مثل java.net.Socket، وواجهات برمجة التطبيقات الأصلية مثلconnect())، أي شبكة أخرى متاحة توفّر خدمة الاتصال بالإنترنت، في حال توفّرها
7.4.6. إعدادات المزامنة
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب تشغيل إعداد المزامنة التلقائية الرئيسي بشكل افتراضي بحيث
الطريقة
getMasterSyncAutomatically()
يعرض "true".
7.4.7. توفير البيانات
إذا كانت عمليات تنفيذ الأجهزة تتضمّن اتصالاً تفرض تكلفة استخدام، تكون:
- [C-SR-1] يُنصح بشدة بتوفير وضع توفير البيانات.
إذا كانت عمليات تنفيذ الأجهزة توفر وضع "توفير البيانات"، سيتم ما يلي:
- [C-1-1] يجب أن يتوافق مع جميع واجهات برمجة التطبيقات في
ConnectivityManager
الفئة كما هو موضّح في مستندات حزمة تطوير البرامج (SDK)
في حال لم توفِّر عمليات تنفيذ الأجهزة وضع "توفير البيانات"، سيحدث ما يلي:
- [C-2-1] يجب أن تعرض القيمة
RESTRICT_BACKGROUND_STATUS_DISABLED
ConnectivityManager.getRestrictBackgroundStatus()
- [C-2-2] يجب ألا يتم البث
ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED
7.4.8 العناصر الآمنة
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع إمكانية استخدام Open Mobile API عناصر آمنة وإتاحتها للتطبيقات التابعة لجهات خارجية، فإنّها:
[C-1-1] يجب تعداد برامج قراءة العناصر الآمنة المتاحة عبر
android.se.omapi.SEService.getReaders()
API.[C-1-2] يجب أن تعلن عن علامات الميزات الصحيحة عبر
android.hardware.se.omapi.uicc
للجهاز بعناصر آمنة مستندة إلى UICC،android.hardware.se.omapi.ese
للجهاز مع عناصر آمنة مستنِدة إلى eSEandroid.hardware.se.omapi.sd
للجهاز بعناصر آمنة تعتمد على الدقة العادية.
7.4.9 النطاق الفائق العرض (UWB)
إذا كانت عمليات تنفيذ الأجهزة تتضمّن الدعم 802.1.15.4 وأن تعرض الوظيفة لتطبيق تابع لجهة خارجية، فإنهم:
- [C-1-1] يجب تنفيذ واجهة برمجة تطبيقات Android المقابلة في android.uwb.
- [C-1-2] يجب الإبلاغ عن علامة ميزة الجهاز android.hardware.uwb.
- [C-1-3] يجب أن يتوافق مع جميع الملفات الشخصية ذات النطاق الفائق العرض (UWB) ذات الصلة والمحددة في Android التنفيذ.
- [C-1-4] يجب أن يوفر المستخدم القدرة على السماح للمستخدم بتبديل النطاق الفائق العرض (UWB) حالة تشغيل/إيقاف الراديو.
- [C-1-5] يجب أن تفرض على التطبيقات التي تستخدم الراديو UWB الحصول على إذن UWB_RANGING (ضمن مجموعة أذونات NEARBY_devices).
- [C-SR-1] يُوصى بها بشدة لاجتياز حالة المطابقة اختبارات الشهادات التي تحددها المؤسسات القياسية، بما في ذلك FIRA وCCC وCSA
- [C-1-6] يجب التأكّد من أنّ قياسات المسافة تكون في نطاق +/-15 سم بنسبة 95% القياسات في بيئة خط الرؤية على مسافة متر واحد في غرفة غير عاكسة.
- [C-1-7] يجب أن يضمن متوسط قياسات المسافة على متر واحد
من الجهاز المرجعي في نطاق [0.75 متر، 1.25 متر] حيث يتم رصد أرض الواقع
يتم قياس المسافة من الحافة العلوية من لوحة البيانات DUT.
يتم تثبيت الوجه للأعلى والإمالة بزاوية 45 درجة. - [C-SR-2] يُنصَح بشدة باتّباع خطوات إعداد القياس محددة في متطلبات معايرة الحضور:
7.5. الكاميرات
إذا كانت عمليات تنفيذ الأجهزة تتضمّن كاميرا واحدة على الأقل، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يعلن عن علامة الميزة
android.hardware.camera.any
. - [C-1-2] يجب أن يكون بالإمكان تخصيص التطبيق للتطبيق في الوقت نفسه 3 صور نقطية بتنسيق RGBA_8888 تساوي حجم الصور الناتجة عن أداة استشعار الكاميرا ذات الدقة الأكبر على الجهاز، أثناء فتح الكاميرا الغرض من المعاينة الأساسية والتسجيل المستمر.
- [C-1-3] يجب التأكّد من أنّ تطبيق الكاميرا التلقائي المثبَّت مسبقًا
نوايا المعالجة
MediaStore.ACTION_IMAGE_CAPTURE
،MediaStore.ACTION_IMAGE_CAPTURE_SECURE
, أوMediaStore.ACTION_VIDEO_CAPTURE
, مسؤول عن إزالة موقع المستخدم من البيانات الوصفية للصورة قبل إرساله إلى التطبيق المستلم عند عدم لديهمACCESS_FINE_LOCATION
.
في حال كانت عمليات تنفيذ الأجهزة تتيح إمكانية إخراج 10 بت بنطاق عالي الديناميكية (HDR)، سيتم ما يلي:
- [C-2-1] يجب أن تتوافق على الأقل مع ملف HLG HDR الشخصي لكل جهاز كاميرا تدعم إخراج 10 بت.
- يجب أن يدعم [C-2-2] إخراج 10 بت إما للواجهة الخلفية الأساسية أو الكاميرا الأمامية الأساسية.
- [C-SR-1] يُنصَح باستخدامها بشدة لإتاحة إخراج مدته 10 بت لكل من الميزتَين الأساسيتَين الكاميرات.
- [C-2-3] يجب أن يتوافق مع الملفات الشخصية ذات النطاق العالي الديناميكية نفسها على جميع الأجهزة كاميرات فرعية ذات صلة بكاميرا منطقية يمكنها BACKWARD_COMPATIBLE الكاميرا المنطقية نفسها.
بالنسبة إلى أجهزة الكاميرات المنطقية التي تتوافق مع تقنية 10 بت بنطاق عالي الديناميكية
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
API، وهي:
- [C-3-1] يجب أن يتيح التبديل بين جميع الإصدارات المادية المتوافقة مع الأنظمة القديمة
الكاميرات عن طريق عنصر التحكم
CONTROL_ZOOM_RATIO
في الكاميرا المنطقية.
7.5.1. الكاميرا الخلفية
الكاميرا الخلفية هي كاميرا توجد على جانب الجهاز المقابل للشاشة أي صور مشاهد في الجانب الأخير من الجهاز، مثل الكاميرا التقليدية.
بدء متطلبات جديدة
الكاميرا الخلفية هي كاميرا مواجهة للعالم تلتقط صورًا لمشاهد من الجانب البعيد. للجهاز، مثل الكاميرا التقليدية؛ على الأجهزة المحمولة، وهي كاميرا الموجود على جانب الجهاز مقابل الشاشة.
إنهاء المتطلبات الجديدة
عمليات تنفيذ الأجهزة:
- يجب أن يشتمل على كاميرا خلفية.
إذا كانت تصاميم الجهاز تتضمّن كاميرا خلفية واحدة على الأقل، سيتم إجراء ما يلي:
- [C-1-1] يجب الإبلاغ عن علامة الميزة
android.hardware.camera
android.hardware.camera.any
- [C-1-2] يجب أن تبلغ درجة دقة الهاتف 2 ميغابكسل على الأقل.
- يجب أن يتم إما تنفيذ التركيز التلقائي للجهاز أو التركيز التلقائي للبرامج في برنامج تشغيل الكاميرا (مرئي لبرنامج التطبيق).
- قد يحتوي على أجهزة ذات تركيز ثابت أو EDOF (عمق مجال ممتد).
- وقد يتضمن فلاشًا.
إذا كانت الكاميرا تتضمن وميضًا:
- [C-2-1] يجب ألا تتم إضاءة مصباح الفلاش أثناء
تم تسجيل مثيل واحد (
android.hardware.Camera.PreviewCallback
). على سطح معاينة الكاميرا، ما لم يتم تفعيل التطبيق بشكل صريح ضوء الفلاش من خلال تفعيل إحدى السمتينFLASH_MODE_AUTO
أوFLASH_MODE_ON
لكائنCamera.Parameters
. لاحظ أن هذا القيد لا ينطبق على نظام الكاميرا المضمَّن في الجهاز، ولكن لجهات خارجية فقط التطبيقات التي تستخدمCamera.PreviewCallback
.
7.5.2 الكاميرا الأمامية
الكاميرا الأمامية هي كاميرا توجد على نفس الجانب من الجهاز على الشاشة أي كاميرا تُستخدم عادةً لتصوير المستخدم، مثل لعقد اجتماعات الفيديو والتطبيقات المشابهة
بدء متطلبات جديدة
الكاميرا الأمامية هي كاميرا موجهة للمستخدم تُستخدم عادةً لتصوير المستخدم، مثل مؤتمرات الفيديو والتطبيقات المشابهة، على جهاز محمول باليد الأجهزة، وهي كاميرا موجودة على الجانب نفسه من الجهاز الذي توجد فيه الشاشة.
إنهاء المتطلبات الجديدة
عمليات تنفيذ الأجهزة:
- وقد يشتمل على كاميرا أمامية.
إذا كانت عمليات تنفيذ الجهاز تتضمّن كاميرا أمامية واحدة على الأقل، سيتم إجراء ما يلي:
- [C-1-1] يجب الإبلاغ عن علامة الميزة
android.hardware.camera.any
android.hardware.camera.front
- [C-1-2] يجب أن تكون درجة الدقة VGA (640x480 بكسل) على الأقل.
- [C-1-3] يجب ألا يتم استخدام كاميرا أمامية كإعداد افتراضي للكاميرا، ويجب ألا يضبط واجهة برمجة التطبيقات هذه التعامل مع الكاميرا الأمامية الكاميرا الخلفية التلقائية، حتى لو كانت الكاميرا الوحيدة على الجهاز.
- [C-1-4] يجب عكس معاينة الكاميرا أفقيًا بالنسبة إلى
الاتجاه الذي يحدده التطبيق عند توفر
طلب صراحةً أن تكون الكاميرا
سيتم تدوير الشاشة عن طريق استدعاء
android.hardware.Camera.setDisplayOrientation()
. وبالعكس، يجب أن يتم عكس المعاينة وفقًا للإعدادات التلقائية للجهاز على المحور الأفقي عندما لا يطلب التطبيق الحالي بشكل صريح أن يتم تدوير شاشة الكاميرا من خلال الاتصالandroid.hardware.Camera.setDisplayOrientation()
. - [C-1-5] يجب ألا تعكس آخر الصور الثابتة أو الفيديوهات المضمّنة تم إرجاعه إلى استدعاءات التطبيق أو التزامه بتخزين الوسائط.
- [C-1-6] يجب أن تعكس الصورة المعروضة من خلال إجراء ما بعد المشاهدة بالطريقة نفسها كتدفق صورة معاينة الكاميرا.
- قد تتضمن ميزات (مثل التركيز التلقائي والفلاش وما إلى ذلك) المتاحة الكاميرات الخلفية كما هو موضح في القسم 7.5.1.
في حال كان من الممكن تغيير عمليات تنفيذ الجهاز من قِبل المستخدم (مثل تلقائيًا باستخدام مقياس التسارع أو يدويًا من خلال إدخال المستخدم):
- [C-2-1] يجب عكس معاينة الكاميرا أفقيًا بالنسبة إلى الاتجاه الحالي للجهاز.
7.5.3. كاميرا خارجية
بدء متطلبات جديدة
الكاميرا الخارجية هي كاميرا يمكن توصيلها أو فصلها عنها فعليًا تنفيذ الجهاز في أي وقت ويمكن أن يواجه أي اتجاه؛ مثل USB الكاميرات.
إنهاء المتطلبات الجديدة
عمليات تنفيذ الأجهزة:
- وقد يشمل ذلك دعمًا لكاميرا خارجية ليس بالضرورة. متصل دائمًا.
إذا كانت عمليّات تنفيذ الأجهزة تتضمّن توافقًا مع كاميرا خارجية، سيحدث ما يلي:
- [C-1-1] يجب الإعلان عن علامة ميزة المنصة
"
android.hardware.camera.external
" وandroid.hardware camera.any
" - [C-1-2] يجب أن يتوافق مع فئة الفيديو عبر USB (UVC 1.0 أو أعلى) إذا لم يكن الكاميرا من خلال منفذ مضيف USB.
- [C-1-3] يجب اجتياز اختبارات CTS للكاميرا باستخدام جهاز كاميرا خارجي فعلي متصلين. تتوفّر تفاصيل اختبار CTS للكاميرا على source.android.com.
- "يجب" أن تدعم ضغطات الفيديو مثل MJPEG لتمكين نقل مجموعات بث بجودة عالية غير مرمّزة (أي صور أوّلية أو مضغوطة بشكل مستقل والتدفقات).
- قد تتوافق مع عدة كاميرات.
- قد يتم دعم ترميز الفيديو المستند إلى الكاميرا.
إذا كان ترميز الفيديو المستند إلى الكاميرا متوافقًا:
- [C-2-1] A متزامن يجب أن تكون إمكانية الوصول إلى مجموعة بث غير مرمّزة / MJPEG (QVGA أو بدرجة دقة أعلى) متاحة تنفيذ الجهاز.
7.5.4. سلوك واجهة برمجة التطبيقات للكاميرا
يشتمل Android على حزمتي واجهة برمجة تطبيقات للوصول إلى الكاميرا، والحزمتين الأحدث هي تعرض واجهة برمجة التطبيقات android.hardware.camera2 التحكم في الكاميرا على مستوى أقل للتطبيق، بما في ذلك تدفقات البث/التدفق الفعالة بدون نسخ وعناصر التحكم لكل إطار تعرض، زيادة، موازنة اللون الأبيض، تحويل اللون، إزالة التشويش، زيادة الحدة والمزيد.
تم وضع علامة إيقاف حزمة واجهة برمجة التطبيقات القديمة، android.hardware.Camera
، في
الإصدار 5.0 من نظام التشغيل Android، لكن من المفترض أن يظلّ متاحًا لاستخدام التطبيقات. جهاز Android
التنفيذ المستمر لواجهة برمجة التطبيقات على النحو الموضَّح في
هذا القسم وفي حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
كل الميزات الشائعة بين فئة android.hardware.camera المتوقفة نهائيًا يجب أن يكون أداء حزمة android.hardware.camera2 الأحدث مكافئًا والجودة في واجهتَي برمجة التطبيقات على سبيل المثال، باستخدام الإعدادات المكافئة، يجب أن تتطابق سرعة ودقة التركيز التلقائي، وجودة الصور التي تم التقاطها هي نفسها. الميزات التي تعتمد على الدلالات المختلفة لواجهتَي برمجة التطبيقات لا يلزم أن تكون هناك سرعة أو جودة مطابِقة، ولكن يجب أن تتطابق بأكبر قدر ممكن قدر الإمكان.
يجب أن تنفّذ عمليات تنفيذ الأجهزة السلوكيات التالية واجهات برمجة التطبيقات المتعلقة بالكاميرا، وذلك لجميع الكاميرات المتاحة. عمليات تنفيذ الأجهزة:
- [C-0-1] يجب استخدام
android.hardware.PixelFormat.YCbCr_420_SP
للمعاينة البيانات المقدمة إلى استدعاءات التطبيق عندما لا يطلب التطبيقandroid.hardware.Camera.Parameters.setPreviewFormat(int)
- [C-0-2] يجب أن يكون بتنسيق ترميز NV21 إذا كان أحد التطبيقات
تسجِّل
android.hardware.Camera.PreviewCallback
يستدعي النظام الطريقةonPreviewFrame()
والمعاينة YCbCr_420_SP، يتم تمرير بيانات البايت[] إلىonPreviewFrame()
. بمعنى آخر، يجب أن يكون NV21 هو الإعداد التلقائي. - يجب أن يتوافق [C-0-3] مع تنسيق YV12 (كما تشير إليه السمة
android.graphics.ImageFormat.YV12
ثابت) لمعاينات الكاميرا لكلّ منهما الكاميرات الأمامية والخلفية من أجلandroid.hardware.Camera
(الأجهزة الكاميرا وبرنامج ترميز الفيديو أي تنسيق بكسل أصلي، غير أن الجهاز يجب أن يتيح التنفيذ التحويل إلى YV12.) - [C-0-4] يجب أن يتوافق مع
android.hardware.ImageFormat.YUV_420_888
يمكنك استخدام تنسيقاتandroid.hardware.ImageFormat.JPEG
كمخرجات من خلالandroid.media.ImageReader
API لعددandroid.hardware.camera2
من الأجهزة التي الإعلانREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
فيandroid.request.availableCapabilities
. - [C-0-5] يجب تنفيذ واجهة برمجة تطبيقات الكاميرا بالكامل
المضمنة في وثائق حزمة تطوير البرامج (SDK) لنظام التشغيل Android، بغض النظر عما إذا كان الجهاز
تشمل التركيز التلقائي للأجهزة أو إمكانات أخرى. على سبيل المثال، الكاميرات التي
التي تفتقر إلى التركيز التلقائي يجب أن تطلب أي رقم
android.hardware.Camera.AutoFocusCallback
مثال (على الرغم من عدم احتوائها على صلة كاميرا لا تركز على البؤرة التلقائية). لاحظ أن هذا ينطبق على الواجهة الأمامية والكاميرات؛ على سبيل المثال، رغم أن معظم الكاميرات الأمامية لا تتوافق التركيز التلقائي، يجب أن تكون استدعاءات واجهة برمجة التطبيقات "مزيفة" كما هو موضح. - [C-0-6] يجب أن يتعرف على كل اسم معلمة وأن يلتزم به
على أنه ثابت في
android.hardware.Camera.Parameters
الصف وandroid.hardware.camera2.CaptureRequest
. وفي المقابل، يجب ألا تلتزم عمليات تنفيذ الجهاز بثوابت السلسلة أو تتعرّف عليها. يتم تمريره إلى طريقةandroid.hardware.Camera.setParameters()
غير تلك موثقة كثوابت فيandroid.hardware.Camera.Parameters
. أي، يجب أن تتوافق عمليات تنفيذ الأجهزة مع جميع مَعلمات "الكاميرا" العادية في حال الأجهزة، ويجب ألا تكون متوافقة مع أنواع مَعلمات "الكاميرا" المخصَّصة على سبيل المثال، آليات الأجهزة التي تتيح التقاط الصور استخدام تقنيات التصوير بتقنية النطاق العالي الديناميكية (HDR) يجب أن يتوافق مع مَعلَمات الكاميراCamera.SCENE_MODE_HDR
- [C-0-7] يجب أن يبلغ عن المستوى المناسب من الدعم مع
android.info.supportedHardwareLevel
كما هو موضح في حزمة تطوير البرامج (SDK) لنظام التشغيل Android، والإبلاغ علامات ميزات إطار العمل. - [C-0-8] يجب أيضًا أن يعلن عن قدرات الكاميرا الفردية الخاصة به
android.hardware.camera2
عبر موقع واحد (android.request.availableCapabilities
) وتوضيح عمليات الإبلاغ عن الميزات المناسبة يجب تحديد علامة الميزة في حال كان أي من أجهزة الكاميرا المتصلة به. ويدعم هذه الميزة. - [C-0-9] يجب أن يبث
Camera.ACTION_NEW_PICTURE
كل مرة يتم فيها التقاط صورة جديدة بواسطة الكاميرا ومدخل تمت إضافة صورة إلى متجر الوسائط. - [C-0-10] يجب أن يبث
Camera.ACTION_NEW_VIDEO
كل مرة يتم فيها تسجيل فيديو جديد بواسطة الكاميرا ودخول تمت إضافة صورة إلى متجر الوسائط. - [C-0-11] يجب أن تتوفر جميع الكاميرات للوصول إليها من خلال التطبيق المتوقف
android.hardware.Camera
يمكن الوصول إلى واجهة برمجة التطبيقات أيضًا عبرandroid.hardware.camera2
واجهة برمجة التطبيقات. - [C-0-12] يجب التأكد من عدم تغيير مظهر الوجه، بما في ذلك
على سبيل المثال لا الحصر، تغيير هندسة الوجه أو لون بشرة الوجه
لتنعيم البشرة لأي
android.hardware.camera2
أوandroid.hardware.Camera
واجهة برمجة التطبيقات. - [C-SR-1] للأجهزة المزوّدة بكاميرات RGB متعددة بوصة
قريبين جدًا ومواجهين في نفس الاتجاه،
يُنصح بشدة بدعم جهاز كاميرا منطقي
الإمكانية
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
، يتكون من جميع الكاميرات المزوّدة بإضاءة خلفية بألوان الأحمر والأخضر والأزرق التي تواجه هذا الاتجاه كأجهزة فرعية مادية.
إذا كانت عمليات تنفيذ الأجهزة توفّر واجهة برمجة تطبيقات خاصة بالكاميرا للتطبيقات التابعة لجهات خارجية، وهي:
- [C-1-1] يجب تنفيذ واجهة برمجة تطبيقات للكاميرا باستخدام
android.hardware.camera2
واجهة برمجة التطبيقات. - قد توفِّر علامات و/أو إضافات مورّدين إلى
android.hardware.camera2
. واجهة برمجة التطبيقات.
7.5.5 اتجاه الكاميرا
إذا كانت أجهزة الكاميرا مزوّدة بكاميرا أمامية أو خلفية، تكون هذه الكاميرات:
- [C-1-1] يجب أن يكون موجهًا وفقًا للأبعاد الطويلة للكاميرا البعد الطويل للشاشة. أي عند تثبيت الجهاز في الوضع الأفقي الاتجاه، يجب على الكاميرات التقاط الصور في الاتجاه الأفقي. هذا النمط تسري بغض النظر عن الاتجاه الطبيعي للجهاز أي أنها تنطبق على الأجهزة الأساسية ذات الاتجاه الأفقي، بالإضافة إلى الأجهزة الأساسية ذات الاتجاه العمودي.
تُستثنى من الشرط أعلاه الأجهزة التي تستوفي جميع المعايير التالية:
- يستخدم الجهاز شاشات ذات أشكال هندسية متغيّرة، مثل الشاشات القابلة للطي أو المفصّلة. ما يعرضه.
- عند تغيير حالة الطي أو المفصّلة في الجهاز، يتم تبديل الجهاز بين الاتجاه الرأسي-الأساسي إلى الاتجاه الأفقي الأساسي (أو العكسي).
بدء متطلبات جديدة
- عمليات تنفيذ الأجهزة التي لا يمكن للمستخدم تبديلها مثل كأجهزة للسيارات.
إنهاء المتطلبات الجديدة
7.6. الذاكرة ومساحة التخزين
7.6.1. الحد الأدنى من مساحة الذاكرة ومساحة التخزين
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يحتوي على تطبيق إدارة التنزيل قد تستخدمها التطبيقات لتنزيل ملفات البيانات ويجب أن تكون قادرة على تنزيل ملفات فردية لا يقل حجمها عن 100 ميغابايت وفقًا للإعدادات التلقائية "ذاكرة التخزين المؤقت" الموقع.
7.6.2. مساحة التخزين المشتركة للتطبيق
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يقدم مساحة تخزين لتشاركها التطبيقات، والتي يُشار إليها أيضًا غالبًا باسم "وحدة تخزين خارجية مشتركة"، أو "وحدة تخزين مشتركة للتطبيق" أو نظام التشغيل Linux المسار " /sdcard" التي يتم تثبيتها عليه
- [C-0-2] يجب إعداده مع مساحة التخزين المشتركة التي يتم تثبيتها تلقائيًا، "خارج الصندوق"، بغض النظر عما إذا كانت مساحة التخزين منفَّذة مكون وحدة تخزين داخلية أو وسيط تخزين قابل للإزالة (على سبيل المثال، آمن منفذ بطاقة رقمية)
- [C-0-3] يجب تثبيت مساحة التخزين المشتركة للتطبيق مباشرةً على مسار Linux
يمكنك
sdcard
أو تضمين رابط رمزي لنظام التشغيل Linux منsdcard
إلى قاعدة التثبيت الفعلية. نقطة واحدة. - [C-0-4] يجب تفعيل
مساحة تخزين في نطاق معيّن
تلقائيًا للجميع
التطبيقات التي تستهدف المستوى 29 من واجهة برمجة التطبيقات أو المستويات الأعلى، باستثناء الحالات التالية:
- عندما طلب التطبيق مبلغ
android:requestLegacyExternalStorage="true"
في البيان الخاص بهم.
- عندما طلب التطبيق مبلغ
- [C-0-5] يجب إخفاء البيانات الوصفية للموقع الجغرافي، مثل علامات Exif لنظام تحديد المواقع العالمي (GPS)، المخزَّنة في
ملفات الوسائط عند الوصول إلى هذه الملفات من خلال
MediaStore
، إلا في حال إذا كان تطبيق الاتصال لديه إذنACCESS_MEDIA_LOCATION
قد تستوفي عمليات تنفيذ الأجهزة المتطلبات أعلاه باستخدام أي من التالي:
- وحدة تخزين قابلة للإزالة ويمكن للمستخدمين الوصول إليها، مثل فتحة بطاقة رقمية آمنة (SD)
- جزء من وحدة التخزين الداخلية (غير القابلة للإزالة) كما هو مُطبق في مشروع مفتوح المصدر لنظام Android (AOSP).
في حال كانت عمليات تنفيذ الأجهزة تستخدم مساحة تخزين قابلة للإزالة لاستيفاء ما سبق المتطلبات، فإنها:
- [C-1-1] يجب تنفيذ إشعار منبثق أو نافذة منبثقة تحذّر المستخدم. عندما لا يكون هناك وسيط تخزين مدرَج في الفتحة
- [C-1-2] يجب أن يحتوي على وسيط تخزين بتنسيق FAT (مثل بطاقة SD) أو يعرض على العلبة والمواد الأخرى المتاحة وقت الشراء يجب شراء الوسيط بشكل منفصل.
إذا كانت عمليات تنفيذ الجهاز تستخدم جزءًا من مساحة التخزين غير القابلة للإزالة لتلبية المتطلبات أعلاه، فإنها:
- يجب استخدام تنفيذ AOSP للتطبيق الداخلي المشترك مساحة التخزين.
- قد تتم مشاركة مساحة التخزين مع بيانات التطبيق الخاصة.
إذا كانت عمليات تنفيذ الأجهزة تتضمن منفذ USB متوافقًا مع وضع أجهزة USB الطرفية، وهي:
- [C-3-1] يجب أن يتم توفير آلية للوصول إلى البيانات في التطبيق. مساحة التخزين المشتركة من كمبيوتر مضيف.
- يجب عرض المحتوى من كلا مساري التخزين بشفافية من خلال
خدمة فحص الوسائط من Android و
android.provider.MediaStore
. - قد يتم استخدام وحدة تخزين USB الكبيرة، ولكن "ينبغي" استخدام "بروتوكول نقل الوسائط" لتلبية لهذا المطلب.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن منفذ USB مع وضع USB للأجهزة الملحقة والدعم فإن بروتوكول نقل الوسائط:
- من المفترض أن يكون متوافقًا مع مضيف بروتوكول نقل الوسائط (MTP) المرجعي لنظام التشغيل Android، نقل ملفات Android.
- يجب أن يتم الإبلاغ عن فئة جهاز USB بقيمة 0x00.
- يجب الإبلاغ عن اسم واجهة USB بتنسيق "MTP".
7.6.3. مساحة تخزين قابلة للاستخدام
إذا كان من المتوقع أن يكون الجهاز جوّالاً بطبيعته على عكس التلفزيون، عمليات تنفيذ الأجهزة:
- [C-SR-1] يُنصح بشدة بتنفيذ التخزين القابل للاستخدام في في موقع مستقر على المدى الطويل، لأن فصل الاتصال عن طريق الخطأ يمكن أن إلى فقدان/تلف البيانات.
إذا كان منفذ جهاز التخزين القابل للإزالة في مكان ثابت على المدى الطويل، مثل داخل حجرة البطارية أو أي غطاء واقي آخر عمليات تنفيذ الأجهزة:
- [C-SR-2] يُنصح بشدة بتنفيذه مساحة تخزين يمكن استخدامها.
7.7. USB
إذا كانت عمليات تنفيذ الأجهزة تحتوي على منفذ USB، سيتم إجراء ما يلي:
- يجب أن يتوافق مع وضع الجهاز الطرفي USB ويجب أن يتوافق مع وضع مضيف USB.
- يجب أن تتوفّر إمكانية إيقاف إشارات البيانات عبر USB.
7.7.1. وضع الأجهزة الملحقة بكابل USB
إذا كانت عمليات تنفيذ الأجهزة تتضمّن منفذ USB متوافقًا مع وضع الأجهزة الملحقة:
- [C-1-1] يجب أن يكون المنفذ قابلاً للاتصال بمضيف USB لديه قاعدة بيانات منفذ USB من النوع A أو C
- [C-1-2] يجب الإبلاغ عن القيمة الصحيحة لـ
iSerialNumber
في معيار USB واصف الأجهزة من خلالandroid.os.Build.SERIAL
. - [C-1-3] يجب أن يرصد شاحن بقوة 1.5 أمبير و3.0 أمبير لكل مقاوم من نوع C يجب أن تكشف التغييرات في الإعلان إذا كانت تدعم منفذ USB من نوع C
- [C-SR-1] يجب أن يستخدم المنفذ شكل جهاز USB مصغر-B أو Micro-AB أو من النوع C. يُنصَح بشدة بأن تستوفي أجهزة Android الحالية والجديدة هذه الشروط المتطلبات حتى يتمكّنوا من الترقية إلى إصدارات الأنظمة الأساسية المستقبلية.
- [C-SR-2] يجب العثور على المنفذ أسفل الجهاز (حسب الاتجاه الطبيعي) أو تمكين تدوير شاشة البرنامج جميع التطبيقات (بما في ذلك الشاشة الرئيسية)، بحيث يتم رسم الشاشة بشكل صحيح عند يتم توجيه الجهاز مع المنفذ في الأسفل. نظام Android الحالي والجديد موصى بها بشدة لاستيفاء هذه المتطلبات حتى تتمكن من الترقية إلى إصدارات الأنظمة الأساسية المستقبلية.
- [C-SR-3] يجب تنفيذ الدعم لرسم تيار بقوة 1.5 أمبير أثناء اهتزاز HS وعدد الزيارات على النحو المحدَّد في مواصفات شحن البطارية بمنفذ USB، النسخة 1.2 يُنصَح بشدة بأن تستوفي أجهزة Android الحالية والجديدة هذه الشروط المتطلبات حتى يتمكّنوا من الترقية إلى إصدارات الأنظمة الأساسية المستقبلية.
- [C-SR-4] يُنصح بشدة بعدم التوافق مع حسابات الملكية طرق الشحن التي تعدِّل الجهد الكهربائي لـ Vbus ليتجاوز المستويات التلقائية وقد تؤدي أدوار المصارف/المصدر على هذا النحو إلى حدوث مشكلات في إمكانية التشغيل التفاعلي مع الشواحن أو الأجهزة التي تتيح استخدام طرق الشحن السريع بمعيار USB. بينما هذا ما يسمى بـ "موصى به بشدة"، ففي إصدارات Android المستقبلية قد تتطلب جميع الأجهزة من النوع C أن تتوافق مع إمكانية التشغيل التفاعلي الكامل مع شاحن من النوع C.
- [C-SR-5] يُنصح بشدة بدعم Power Delivery للبيانات تبديل دور الطاقة عندما تتوافق مع وضع مضيف USB من النوع C وUSB.
- يجب أن يدعم تسليم الطاقة لشحن الجهد العالي ودعم الأوضاع البديلة مثل العرض الخارجي.
- "يجب تنفيذ" واجهة برمجة تطبيقات "الملحق المفتوح لنظام Android" (AOA) والمواصفات على النحو التالي: موثقة في وثائق Android SDK.
إذا كانت عمليات تنفيذ الجهاز تشمل منفذ USB وتم تنفيذ AOA المواصفات، فهي:
- [C-2-1] يجب أن يعلن عن إتاحة ميزة الأجهزة.
android.hardware.usb.accessory
- [C-2-2] يجب أن تتضمن فئة تخزين USB الكبيرة السلسلة "android" في
نهاية وصف الواجهة
iInterface
سلسلة وحدة تخزين USB الكبيرة
7.7.2 وضع مضيف USB
إذا كانت عمليات تنفيذ الجهاز تتضمن منفذ USB متوافقًا مع وضع المضيف، سيتم إجراء ما يلي:
- [C-1-1] يجب تنفيذ واجهة برمجة تطبيقات مضيف USB في Android كما هو موثق في
حزمة تطوير البرامج (SDK) لنظام التشغيل Android ويجب أن تعلن عن توافقها مع ميزة الأجهزة
android.hardware.usb.host
- [C-1-2] يجب تنفيذ الدعم لتوصيل أجهزة USB الطرفية القياسية،
أو بعبارةٍ أخرى، يجب أن:
- توفّر منفذ من النوع C أو سفينة على الجهاز مزوّدة بكابلات تتوافق مع الجهاز منفذ خاص إلى منفذ USB عادي من النوع C (جهاز USB من النوع C).
- توفّر النوع A على الجهاز أو شحنه مع كابلات تتوافق مع الجهاز منفذ خاص إلى منفذ USB من النوع A القياسي.
- توفّر منفذ Micro-AB على الجهاز يجب أن يتم شحنه مع كابل يتوافق مع هذه الميزة إلى منفذ من النوع A قياسي
- [C-1-3] يجب ألا يتم شحنه مع محوّل يحوِّل من USB من النوع A أو منافذ ميكرو-AB إلى منفذ من النوع C (وعاء).
- [C-SR-1] يُوصى بها بشدة لتنفيذ فئة صوت USB كما هو موثّق في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android
- يجب أن تتوفّر إمكانية شحن جهاز USB الملحق المتصل أثناء التواجد في المضيف. وضع؛ يُعلِن عن مصدر حالي بقيمة لا تقل عن 1.5 أمبير كما هو محدّد في قسم "مَعلمات الإنهاء" في المراجعة 1.2 لكابل USB من نوع C ومواصفات الموصل لـ USB من نوع C أو استخدام منفذ شحن من خلال منفذ (CDP) لإخراج النطاق الحالي كما المحددة في مواصفات شحن بطارية USB، النسخة 1.2 لموصلات الصغيرة-AB.
- "يجب" تنفيذ معايير USB من نوع C واعتمادها.
إذا كانت عمليات تنفيذ الجهاز تتضمن منفذ USB يتوافق مع وضع المضيف ومنفذ USB الفئة الصوتية، فإنها:
- [C-2-1] يجب أن يتوافق مع فئة USB HID.
- يجب أن يتوافق جهاز [C-2-2] مع رصد بيانات HID التالية وربطها.
الحقول المحدّدة في جداول استخدام أجهزة HID بمنفذ USB
وطلب استخدام Voice Command
إلى
KeyEvent
الثوابت على النحو التالي:- معرِّف استخدام صفحة الاستخدام (0xC) (0x0CD):
KEYCODE_MEDIA_PLAY_PAUSE
- معرّف استخدام صفحة الاستخدام (0xC) (0x0E9):
KEYCODE_VOLUME_UP
- معرِّف استخدام صفحة الاستخدام (0xC) (0x0EA):
KEYCODE_VOLUME_DOWN
- معرّف استخدام صفحة الاستخدام (0xCF) (0x0CF):
KEYCODE_VOICE_ASSIST
- معرِّف استخدام صفحة الاستخدام (0xC) (0x0CD):
إذا كانت عمليات تنفيذ الجهاز تتضمن منفذ USB يدعم وضع المضيف إطار عمل الوصول إلى مساحة التخزين (SAF)، حيث:
- [C-3-1] يجب أن يتعرف على أي بروتوكول نقل الوسائط (MTP) المتصل عن بُعد.
الأجهزة وإتاحة الوصول إلى محتواها من خلال
ACTION_GET_CONTENT
ACTION_OPEN_DOCUMENT
وACTION_CREATE_DOCUMENT
هدفًا. .
إذا كانت عمليات تنفيذ الجهاز تتضمن منفذ USB يتوافق مع وضع المضيف وUSB النوع C، فهي:
- [C-4-1] يجب تنفيذ وظيفة "منفذ الأدوار المزدوجة" على النحو المحدّد في USB مواصفات النوع ج (الفقرة 4.5.1.3.3). مزدوج منافذ الأدوار: في الأجهزة التي تشتمل على مقبس صوت مقاس 3.5 ملم، حوض USB (وضع المضيف) قد يتم إيقاف تشغيل الكشف عنها افتراضيًا، ولكن يجب أن يكون ذلك ممكنًا بالنسبة إلى المستخدم لتمكينها.
- [C-SR-2] يُنصح بشدة بأن يتوافق مع DisplayPort، ويجب أن يكون متوافقًا مع منفذ USB معدلات البيانات ذات السرعة الفائقة، ويُنصح بشدة بدعمها لتبادل البيانات والقوة.
- [C-SR-3] يُنصح بشدة بعدم توافق وضع إكسسوار محوّل الصوت الموضحة في الملحق "أ" من الإصدار 1.2 من كابل ومواصفات موصّل USB من نوع C
- "ينبغي" تنفيذ نموذج Try.* الأكثر ملاءمة شكل الجهاز. على سبيل المثال، يجب أن ينفذ الجهاز المحمول باليد نموذج Try.SNK
7.8. الصوت
7.8.1. الميكروفون
إذا كانت عمليات تنفيذ الجهاز تتضمن ميكروفونًا، سيتم ما يلي:
- [C-1-1] يجب أن يبلغ عن ثابت خاصية
android.hardware.microphone
. - [C-1-2] يجب أن تستوفي متطلبات التسجيل الصوتي في القسم 5.4.
- [C-1-3] يجب أن تستوفي متطلبات وقت استجابة الصوت في القسم 5.6.
- [C-SR-1] يُنصح بها بشدة لإتاحة التسجيل بالموجات فوق الصوتية القريبة على النحو الموصوف في الفقرة 7.8.3.
إذا حذفَت عمليات تنفيذ الجهاز ميكروفونًا، سيحدث ما يلي:
- [C-2-1] يجب ألا يتم الإبلاغ عن ثابت خاصية
android.hardware.microphone
. - [C-2-2] يجب تنفيذ واجهة برمجة تطبيقات تسجيل الصوت على الأقل في حالات عدم التنفيذ، وفقًا القسم 7.
7.8.2 إخراج الصوت
إذا كانت عمليات تنفيذ الجهاز تتضمن مكبّر صوت أو مخرجًا صوتيًا/وسائط متعددة منفذ لجهاز ملحق لإخراج الصوت مثل مقبس صوت مقاس 4 موصّلات مقاس 3.5 ملم أو منفذ وضع مضيف USB باستخدام الفئة USB audio class، وهي:
- [C-1-1] يجب أن يبلغ عن ثابت خاصية
android.hardware.audio.output
. - [C-1-2] يجب أن تستوفي متطلبات تشغيل الصوت في القسم 5.5.
- [C-1-3] يجب أن تستوفي متطلبات وقت استجابة الصوت في القسم 5.6.
- [C-SR-1] يُنصح بشدة بتوفير إمكانية التشغيل بالموجات فوق الصوتية تقريبًا كما هو موضَّح في الفقرة 7.8.3.
إذا لم تتضمّن عمليات تنفيذ الجهاز مكبّر صوت أو منفذ لإخراج الصوت، سيسري ما يلي:
- [C-2-1] يجب ألا يتم الإبلاغ عن ميزة "
android.hardware.audio.output
". - [C-2-2] يجب أن تنفذ واجهات برمجة التطبيقات المتعلقة بإخراج الصوت في عمليات بيئة مستقلة على الأقل.
لأغراض هذا القسم، "منفذ إخراج" هو واجهة المستخدم مثل مقبس صوت مقاس 3.5 ملم أو HDMI أو منفذ وضع مضيف USB مع فئة صوت USB. دعم إخراج الصوت عبر البروتوكولات اللاسلكية مثل البلوتوث، شبكة Wi-Fi أو شبكة الجوّال ليست مؤهلة لأن تتضمن "منفذ إخراج".
7.8.2.1. منافذ الصوت التناظرية
لكي تكون متوافقة مع سماعات الرأس وغيرها من ملحقات الصوت باستخدام مقبس صوت مقاس 3.5 ملم عبر منظومة Android المتكاملة، إذا كان الجهاز تشتمل على منافذ صوت تناظرية واحدة أو أكثر، وهي:
- [C-SR-1] يُوصى بشدة بتضمين واحد من منافذ صوت لتكون مقبس صوت مقاس 3.5 ملم بأربعة موصّلات.
إذا كانت عمليات تنفيذ الأجهزة تحتوي على مقبس صوت مقاس 3.5 ملم بأربعة موصّلات:
- [C-1-1] يجب تشغيل الصوت على سماعات رأس استيريو وسماعات رأس استيريو بواسطة ميكروفون.
- [C-1-2] يجب أن تتوافق مع مقابس صوت TRRS مع طلب تثبيت CTIA.
- [C-1-3] يجب أن يعتمد الكشف والتعيين لرموز المفاتيح
بعد 3 نطاقات من المعاوقة المكافئة بين الميكروفون والأرض
الموصلات على مقبس الصوت:
- 70 أوم أو أقل:
KEYCODE_HEADSETHOOK
- 210-290 أوم:
KEYCODE_VOLUME_UP
- 360-680 أوم:
KEYCODE_VOLUME_DOWN
- 70 أوم أو أقل:
- [C-1-4] يجب أن يشغّل
ACTION_HEADSET_PLUG
عند إدخال قابس، ولكن فقط بعد أن تلمس جميع جهات الاتصال على المقبس الأجزاء ذات الصلة على المقبس. - يجب أن يتمكن جهاز [C-1-5] من قيادة طاقة لا تقل عن 150 ميغا فولت أو أكثر أو أقل بنسبة% 10 من الجهد الكهربي للإخراج. معاوقة مكبّر صوت بقوة 32 أوم.
- يجب أن يحتوي [C-1-6] على جهد كهربائي لانحياز الميكروفون يتراوح بين 1.8 فولت و2.9 فولت.
- [C-1-7] يجب اكتشاف رمز المفتاح وتعيينه لما يلي
نطاق المعاوقة المكافئة بين الميكروفون وموصّلات الأرض
على مقبس الصوت:
- 110-180 أوم:
KEYCODE_VOICE_ASSIST
- 110-180 أوم:
- [C-SR-2] يُنصَح باستخدامها بشدة لتتوافق مع منافذ الصوت مع بروتوكول OMTP الطلب المسبَق.
- [C-SR-3] مقترحان بشدة لإتاحة تسجيل الصوت من الاستيريو سماعة رأس مع ميكروفون.
إذا كانت عمليات تنفيذ الجهاز تحتوي على مقبس صوت مقاس 3.5 ملم مزود بأربعة موصّلات
الميكروفون، وبثّ android.intent.action.HEADSET_PLUG
باستخدام
ذات القيمة الإضافية التي يتم ضبطها على القيمة 1، فإنها:
- [C-2-1] يجب أن يتوافق مع اكتشاف الميكروفون في الصوت الذي يتم توصيله ملحق.
7.8.2.2. منافذ الصوت الرقمية
يُرجى الاطّلاع على الفقرة 2.2.1 لمعرفة المتطلبات الخاصة بالأجهزة.
7.8.3. الموجات فوق الصوتية القريبة
الصوت القريب من الموجات فوق الصوتية هو نطاق يتراوح بين 18.5 كيلوهرتز و20 كيلوهرتز.
عمليات تنفيذ الأجهزة:
- يجب أن يبلغ بشكل صحيح عن دعم قدرة صوتية شبه فوق صوتية عبر AudioManager.getProperty واجهة برمجة التطبيقات على النحو التالي:
في حال PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND
"صحيح"، يجب استيفاء المتطلبات التالية من خلال
مصادر الصوت VOICE_RECOGNITION
وUNPROCESSED
:
- [C-1-1] متوسط استجابة صوت الميكروفون في نطاق يتراوح بين 18.5 كيلوهرتز و20 كيلوهرتز يجب ألا يزيد مستوى الصوت عن 15 ديسيبل عن الاستجابة عند 2 كيلوهرتز.
- [C-1-2] نسبة الضوضاء غير المرجحة إلى الضوضاء في الميكروفون أعلى من 18.5 كيلوهرتز إلى 20 كيلوهرتز لنغمة 19 كيلوهرتز عند -26 ديسيبل، يجب ألا تكون أقل من 50 ديسيبل.
في حال PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND
"صحيح":
- [C-2-1] يجب ألا تقل استجابة مكبّر الصوت عند 18.5 كيلوهرتز إلى 20 كيلوهرتز عن 40 ديسيبل أسفل الاستجابة عند 2 كيلوهرتز.
7.8.4. سلامة الإشارة
عمليات تنفيذ الأجهزة:
- يجب توفير مسار إشارة صوتية خالية من أي خلل لكل من منفذ الإدخال وبث المحتوى على الأجهزة المحمولة باليد، وفق تعريفها بدون أي أعطال تقنية بعد اختبار مدته دقيقة واحدة لكل مسار. الاختبار باستخدام أداة اختبار OboeTest "اختبار الخطأ الآلي".
يتطلب الاختبار مفتاح إلكتروني لاسترجاع الصوت، يُستخدم مباشرةً في مقبس مقاس 3.5 ملم و/أو مع محوّل مزوّد بمنفذ USB-C إلى منفذ 3.5 ملم. يجب اختبار جميع منافذ إخراج الصوت.
يدعم OboeTester حاليًا مسارات AAudio، ولذلك يجب اختبار المجموعات التالية بحثًا عن أي خلل باستخدام AAudio:
وضع الأداء | المشاركة | معدّل النسبة المئوية خارج العينة | في تشان | ترانيم الفرقعة |
---|---|---|---|---|
وقت استجابة سريع | حصري | غير محدّد | 1 | 2 |
وقت استجابة سريع | حصري | غير محدّد | 2 | 1 |
وقت استجابة سريع | مشترك | غير محدّد | 1 | 2 |
وقت استجابة سريع | مشترك | غير محدّد | 2 | 1 |
لم يتم اختيار لون | مشترك | 48000 | 1 | 2 |
لم يتم اختيار لون | مشترك | 48000 | 2 | 1 |
لم يتم اختيار لون | مشترك | 44100 | 1 | 2 |
لم يتم اختيار لون | مشترك | 44100 | 2 | 1 |
لم يتم اختيار لون | مشترك | 16000 | 1 | 2 |
لم يتم اختيار لون | مشترك | 16000 | 2 | 1 |
يجب أن تستوفي مجموعة البث الموثوق بها المعايير التالية لاستخدام ميزة "إشارات الضوضاء" (Signal to Noise). النسبة (SNR) والتشوّه التوافقي الكلي (THD) لجيب الزاوية بتردد 2000 هرتز
محوّل طاقة | 60 | معدّل الضوضاء الديناميكي |
---|---|---|
مكبّر صوت أساسي مدمج، يتم قياسه باستخدام ميكروفون مرجعي خارجي | < 3.0% | >= 50 ديسيبل |
ميكروفون أساسي مدمج، يتم قياسه باستخدام مكبّر صوت مرجعي خارجي | < 3.0% | >= 50 ديسيبل |
مقابس تناظرية مدمجة مقاس 3.5 ملم، تم اختبارها باستخدام محوّل استرجاعي | أقل من %1 | >= 60 ديسيبل |
محوّلات USB المرفقة مع الهاتف، وتم اختبارها باستخدام محوّل الاسترجاع | < 1.0% | >= 60 ديسيبل |
7.9 الواقع الافتراضي
يشتمل Android على واجهات برمجة تطبيقات ومرافق لإنشاء "الواقع الافتراضي". (وضع الواقع الافتراضي) التطبيقات، بما في ذلك تجارب الواقع الافتراضي ذات الجودة العالية على الأجهزة الجوّالة. الجهاز التنفيذ يجب أن تنفذ واجهات برمجة التطبيقات والسلوكيات هذه بشكل صحيح كما هو مفصل في هذا القسم.
7.9.1. وضع الواقع الافتراضي
يشتمل نظام Android على دعم وضع "الواقع الافتراضي" وهي ميزة تعالج العرض المجسَّم للإشعارات وتُوقف مكونات واجهة مستخدم النظام الأحادي بينما يركز تطبيق الواقع الافتراضي على المستخدم.
7.9.2. وضع الواقع الافتراضي - أداء عالي
إذا كانت عمليات تنفيذ الأجهزة تتيح وضع الواقع الافتراضي (VR)، سيتم ما يلي:
- [C-1-1] يجب أن يحتوي على نواتين ماديتين على الأقل.
- [C-1-2] يجب أن يفصح عن ميزة
android.hardware.vr.high_performance
. - [C-1-3] يجب أن يتوافق مع وضع الأداء المستدام.
- [C-1-4] يجب أن يتوافق مع OpenGL ES 3.2.
- [C-1-5] يجب أن يتوافق مع
android.hardware.vulkan.level
0. - يجب أن يتوافق مع الإصدار 1 من "
android.hardware.vulkan.level
" أو الإصدارات الأحدث. - [C-1-6] يجب التنفيذ
EGL_KHR_mutable_render_buffer
،EGL_ANDROID_front_buffer_auto_refresh
,EGL_ANDROID_get_native_client_buffer
,EGL_KHR_fence_sync
,EGL_KHR_wait_sync
،EGL_IMG_context_priority
،EGL_EXT_protected_content
،EGL_EXT_image_gl_colorspace
، وعرض الإضافات في قائمة إضافات EGL المتاحة. - [C-1-8] يجب تنفيذه
GL_EXT_multisampled_render_to_texture2
،GL_OVR_multiview
,GL_OVR_multiview2
,GL_EXT_protected_textures
, وعرض الإضافات في قائمة إضافات GL المتاحة. - [C-SR-1] يُوصى بشدة بتنفيذها
GL_EXT_external_buffer
،GL_EXT_EGL_image_array
,GL_OVR_multiview_multisampled_render_to_texture
, وعرض الإضافات في قائمة إضافات GL المتاحة. - [C-SR-2] يُوصى بها بشدة لدعم Vulkan 1.1.
- [C-SR-3] يُوصى بشدة بتنفيذها
VK_ANDROID_external_memory_android_hardware_buffer
،VK_GOOGLE_display_timing
,VK_KHR_shared_presentable_image
, وعرضه في قائمة إضافات Vulkan المتاحة. - [C-SR-4] يُنصح بشدة بعرض مجموعة Vulkan واحدة على الأقل في قائمة انتظار Vulkan حيث إن
flags
تحتوي على كل منVK_QUEUE_GRAPHICS_BIT
وVK_QUEUE_COMPUTE_BIT
، وqueueCount
2 على الأقل. - [C-1-7] يجب أن تتمكن وحدة معالجة الرسومات والعرض من مزامنة الوصول إلى وحدة معالجة الرسومات المشتركة مخزن أمامي أمامي يتيح العرض بالعين المتبادلة لمحتوى الواقع الافتراضي بسرعة 60 لقطة في الثانية باستخدام سيتم عرض سياقات العرض بدون عناصر ممزّقة مرئية.
- [C-1-9] يجب تنفيذ الدعم لـ
AHardwareBuffer
العلامةAHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER
،AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA
وAHARDWAREBUFFER_USAGE_PROTECTED_CONTENT
كما هو موضح في NDK. - [C-1-10] يجب تنفيذ الدعم لـ
AHardwareBuffer
مع أي مجموعة من علامات الاستخدامAHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT
,AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE
,AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT
للتنسيقات التالية على الأقل:AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM
,AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM
,AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM
,AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT
- [C-SR-5] يُنصَح باستخدامها بشدة لإتاحة تخصيص
AHardwareBuffer
بأكثر من طبقة وعلامات وتنسيقات محددة في C-1-10. - [C-1-11] يجب أن يتيح فك ترميز H.264 بمعدل 3840 × 2160 على الأقل بمعدّل 30 لقطة في الثانية ضغطه إلى متوسط 40 ميغابت في الثانية (ما يعادل 4 مثيلات 1920 x 1080 بمعدّل 30 لقطة في الثانية - 10 ميغابت في الثانية أو نسختَين من 1920 × 1080 بمعدل 60 لقطة في الثانية و20 ميغابت في الثانية).
- [C-1-12] يجب أن يتوافق مع HEVC وVP9، ويجب أن يكون قادرًا على فك الترميز على الأقل يتم ضغط 1920 × 1080 بمعدل 30 لقطة في الثانية إلى متوسط 10 ميغابت في الثانية، ويجب أن يكون قادر على فك ترميز 3840 x 2160 بمعدّل 30 لقطة في الثانية و 20 ميغابت في الثانية (ما يعادل 4 أمثلة للدقة 1920 × 1080 بمعدّل 30 لقطة في الثانية-5 ميغابت في الثانية).
- [C-1-13] يجب أن يتوافق مع واجهة برمجة تطبيقات
HardwarePropertiesManager.getDeviceTemperatures
وتعرض قيمًا دقيقة لدرجة حرارة الجلد - [C-1-14] يجب أن يحتوي على شاشة مضمّنة، ويجب أن تكون درجة دقته على الأقل 1920 × 1080.
- [C-SR-6] يُوصى بشدة بأن تكون درجة دقة العرض بها لا تقل عن 2560 × 1440.
- [C-1-15] يجب أن يتم تحديث الشاشة بتردد 60 هرتز على الأقل أثناء استخدام وضع الواقع الافتراضي (VR).
- [C-1-17] يجب أن تتوافق الشاشة مع وضع التشديد المنخفض لمدة 5 مللي ثانية أو أقل المثابرة، حيث يتم تعريف المثابرة على أنها مقدار الوقت التي تنبعث منها ضوء البكسل.
- [C-1-18] يجب أن يتوافق مع Bluetooth 4.2 وBluetooth LE Data Length الفقرة 7.4.3.
- [C-1-19] يجب تقديم الدعم والإبلاغ بشكل صحيح
نوع القناة المباشرة
لكل أنواع أدوات الاستشعار التلقائية التالية:
TYPE_ACCELEROMETER
TYPE_ACCELEROMETER_UNCALIBRATED
TYPE_GYROSCOPE
TYPE_GYROSCOPE_UNCALIBRATED
TYPE_MAGNETIC_FIELD
TYPE_MAGNETIC_FIELD_UNCALIBRATED
- [C-SR-7] يُوصى بها بشدة لدعم
TYPE_HARDWARE_BUFFER
نوع القناة المباشرة لجميع أنواع القنوات المباشرة المذكورة أعلاه. - [C-1-21] يجب أن يتوافق مع السمات المرتبطة بالجيروسكوب ومقياس التسارع ومقياس المغناطيسية
متطلبات
android.hardware.hifi_sensors
، على النحو المحدد في الفقرة 7.3.9. - [C-SR-8] يُوصى بها بشدة لدعم
ميزة "
android.hardware.sensor.hifi_sensors
" - [C-1-22] يجب أن تتوفر حركة من طرف إلى طرف لوقت استجابة الفوتون لا يزيد عن 28 مللي ثانية.
- [C-SR-9] يُنصح بشدة باعتماد حركة شاملة على وقت استجابة الفوتون لا يزيد عن 20 ملي ثانية.
- [C-1-23] يجب أن تتضمن نسبة الإطار الأول، وهي النسبة بين سطوع وحدات البكسل في الإطار الأول بعد الانتقال من الأسود إلى الأبيض وسطوع وحدات البكسل البيضاء في حالة ثابتة لا تقل عن 85%.
- [C-SR-10] يُنصح بشدة بأن تبلغ نسبة عرض اللقطة الأول فيها %90 على الأقل.
- قد يوفر خلفية أساسية حصرية للمقدّمة
وقد يتيحان استخدام واجهة برمجة تطبيقات
Process.getExclusiveCores
لعرض هو عدد نوى وحدة المعالجة المركزية (CPU) الحصرية في المقدّمة العلوية. التطبيق.
إذا كان الدعم الحصري متاحًا، فإن الطريقة الأساسية:
- [C-2-1] يجب ألا يسمح بتشغيل أي عمليات أخرى في مساحة المستخدم عليه (باستثناء برامج تشغيل الأجهزة التي يستخدمها التطبيق)، ولكن قد تسمح ببعض النواة من العمليات حسب الضرورة.
7.10. أجهزة تعمل باللمس
بدء متطلبات جديدة
إنّ الأجهزة التي يتم حملها أو ارتداؤها قد تكون لمسية للأغراض العامة. متوفّر للتطبيقات لأغراض تشمل جذب الانتباه عبر نغمات الرنين والتنبيهات والإشعارات بالإضافة إلى تعليقات اللمس العامة.
إذا لم تكن عمليّات تنفيذ الأجهزة تتضمّن مُشغِّل عامل تشغيل ملموس لغرض عام، وهي:
- [7.10/C] يجب أن تعرض القيمة "false" في
Vibrator.hasVibrator()
.
إذا كانت عمليات تنفيذ الأجهزة تتضمّن وظيفة لمس واحدة على الأقل من هذه الحالات العامة فإن:
- [C-1-1] يجب أن يعرض القيمة "صحيح" مع
Vibrator.hasVibrator()
. - يجب عدم استخدام مُشغِّل حسي يعمل باللمس يتضمّن كتلة دوّارة غريبة الأطوار (ERM).
- يجب تنفيذ جميع الثوابت العامة لللمسات الواضحة
في
android.view.HapticFeedbackConstants
وهي (CLOCK_TICK
،CONTEXT_CLICK
،KEYBOARD_PRESS
،KEYBOARD_RELEASE
،KEYBOARD_TAP
،LONG_PRESS
،TEXT_HANDLE_MOVE
،VIRTUAL_KEY
،VIRTUAL_KEY_RELEASE
وCONFIRM
وREJECT
وGESTURE_START
وGESTURE_END
). - يجب تنفيذ جميع الثوابت العامة لللمسات الواضحة
في
android.os.VibrationEffect
وهي (EFFECT_TICK
وEFFECT_CLICK
وEFFECT_HEAVY_CLICK
وEFFECT_DOUBLE_CLICK
) وجميع استقراراتPRIMITIVE_*
العامة الممكنة أجهزة اللمس الغنية فيandroid.os.VibrationEffect.Composition
وهي (CLICK
،TICK
،LOW_TICK
،QUICK_FALL
،QUICK_RISE
،SLOW_RISE
،SPIN
،THUD
. بعض هذه الأساسيات، مثلLOW_TICK
وSPIN
قد لا يكون ممكنًا إلا إذا كان الهزّاز متوافقًا مع بيانات منخفضة نسبيًا الترددات الخاصة. - يجب اتّباع الإرشادات المتعلقة برسم الثوابت العامة.
في
android.view.HapticFeedbackConstants
إلىandroid.os.VibrationEffect
الموصى بها الثوابت مع علاقات السعة المتجاوبة. - يجب استخدام تعيينات الثوابت الملموسة هذه المرتبطة.
- يجب أن تلتزم بتقييم الجودة
عن
createOneShot()
وcreateWaveform()
واجهات برمجة التطبيقات. - يجب التحقق من أن نتيجة الجمهور
android.os.Vibrator.hasAmplitudeControl()
تعكس واجهة برمجة التطبيقات قدرات الهزّاز بشكل صحيح. - يجب التحقّق من الإمكانات اللازمة لقابلية توسيع سعة الاتساع من خلال تشغيل
android.os.Vibrator.hasAmplitudeControl()
.
إذا كانت عمليات تنفيذ الأجهزة تتبع ربط الثوابت الملموسة، فإنها:
- يجب التحقّق من حالة التنفيذ من خلال تشغيل
android.os.Vibrator.areAllEffectsSupported()
وandroid.os.Vibrator.arePrimitivesSupported()
واجهات برمجة التطبيقات. - يجب إجراء تقييم للجودة للثوابت اللمسية.
- "ينبغي" التحقق والتحديث إذا لزم الأمر من التكوين الاحتياطي الأساسيات غير المتاحة كما هو موضّح في إرشادات التنفيذ للثوابت.
- يجب توفير دعم احتياطي للتخفيف من خطر الفشل كما هو موضح هنا.
إنهاء المتطلبات الجديدة
يُرجى الاطّلاع على الفقرة 2.2.1 لمعرفة المتطلبات الخاصة بالأجهزة.
7.11. صف أداء الوسائط
يمكن الحصول على فئة أداء الوسائط لتنفيذ الجهاز من
واجهة برمجة تطبيقات android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
. المتطلبات
لفئة أداء الوسائط لكل إصدار من إصدارات Android بدءًا من
R (الإصدار 30). تدل القيمة الخاصة 0 على أن الجهاز ليس من
فئة أداء الوسائط.
إذا كانت تنفيذات الجهاز تُرجع قيمة غير صفرية
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
، إن:
[C-1-1] يجب أن تعرض قيمة
android.os.Build.VERSION_CODES.R
على الأقل.[C-1-2] يجب أن يكون جهازًا محمولاً باليد.
[C-1-3] يجب أن يستوفي جميع متطلبات "صف أداء الوسائط". موصوفة في القسم 2.2.7.
بمعنى آخر، إنّ فئة أداء الوسائط في Android T تُحدَّد فقط الأجهزة المحمولة باليد بالإصدار T أو S أو R.
يمكنك الاطّلاع على القسم 2.2.7 لمعرفة الخيارات الخاصة بالجهاز. متطلبات المشروع.
8. الأداء والقوة
بعض معايير الحد الأدنى للأداء والتشغيل تكون بالغة الأهمية لتجربة المستخدم الافتراضات الأساسية التي ستكون لدى المطورين عند تطوير التطبيق.
8.1. الاتساق في تجربة المستخدم
يمكن توفير واجهة مستخدم سلسة للمستخدم النهائي إذا كان هناك الحد الأدنى من المتطلبات لضمان اتساق عدد اللقطات في الثانية وأوقات الاستجابة التطبيقات والألعاب. عمليات تنفيذ الأجهزة، وفقًا لنوع الجهاز قد تحتوي على متطلبات قابلة للقياس لوقت استجابة واجهة المستخدم ومهمتها التبديل كما هو موضَّح في القسم 2.
8.2. أداء الوصول إلى وحدات الإدخال والإخراج من الملفات
توفير أساس مشترك لأداء ثابت للوصول إلى الملفات على
تسمح مساحة تخزين البيانات الخاصة للتطبيقات (قسم /data
) لمطوّري التطبيقات
وضع توقع مناسب من شأنه أن يساعد في تصميم برامجهم. الجهاز
عمليات التنفيذ، اعتمادًا على نوع الجهاز، قد يكون هناك متطلبات معينة
كما هو موضَّح في القسم 2 للقراءة التالية:
العمليات وكتابةها:
- أداء الكتابة التسلسلية: تم القياس عن طريق كتابة ملف 256 ميغابايت باستخدام مخزن مؤقت للكتابة بسعة 10 ميغابايت
- أداء الكتابة العشوائية: يتم القياس عن طريق كتابة ملف 256 ميغابايت باستخدام 4 كيلوبايت وكتابة المورد الاحتياطي.
- أداء القراءة التسلسلية: تم القياس من خلال قراءة ملف 256 ميغابايت باستخدام مخزن مؤقت للكتابة بسعة 10 ميغابايت
- أداء القراءة العشوائية: يتم القياس من خلال قراءة ملف 256 ميغابايت باستخدام 4 كيلوبايت وكتابة المورد الاحتياطي.
8.3. أوضاع توفير الطاقة
إذا كانت عمليات تنفيذ الجهاز تتضمن ميزات لتحسين إدارة طاقة الجهاز التي تكون مضمّنة في AOSP (مثل حزمة تطبيقات الاستعداد للتطبيقات أو القيلولة) أو توسيع نطاق الميزات لتطبيق قيود أقوى من حزمة وضع الاستعداد المحدود، فإنها:
- [C-1-1] يجب ألا تنحرف عن تنفيذ AOSP في التشغيل، والصيانة وخوارزميات التنشيط واستخدام إعدادات النظام العامة أو DeviceConfig من وضعي توفير الطاقة "تطبيقات الاستعداد" و"القيلولة".
- [C-1-2] يجب ألا تنحرف عن تنفيذ مشروع AOSP لاستخدام بروتوكول AOSP أو DeviceConfig لإدارة تقييد المهام والمنبّه الشبكة للتطبيقات في كل حزمة لوضع الاستعداد للتطبيقات.
- [C-1-3] يجب ألا ينحرف عن تنفيذ AOSP في عدد حزم تطبيقات وضع الاستعداد في وضع الاستعداد للتطبيقات.
- [C-1-4] يجب تنفيذ حزم التطبيقات في وضع الاستعداد والقيلولة كما هو موضح في إدارة الطاقة.
- [C-1-5] يجب عرض
true
لمدةPowerManager.isPowerSaveMode()
عندما يكون الجهاز قيد التشغيل على وضع توفير الطاقة. - [C-1-6] يجب أن تتوفر للمستخدمين إمكانية عرض جميع التطبيقات المستثناة من وضعَي توفير الطاقة (تطبيقات وضع الاستعداد) و"القيلولة" أو أي تحسينات للبطارية ويجب تنفيذ ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS في مطالبة المستخدم بالسماح لتطبيق بتجاهل البطارية التحسينات.
- [C-SR-1] يُوصى بها بشدة لزيادة تحمُّل المستخدمين لتمكين إيقاف ميزة توفير شحن البطارية.
- [C-SR-2] يُوصى بها بشدة لتمكين المستخدم من عرض جميع التطبيقات المستثناة من وضعَي "تطبيقات الاستعداد" و"القيلولة" لتوفير الطاقة.
في حال توسيع عمليات تنفيذ الأجهزة لميزات إدارة الطاقة المضمّنة في AOSP والتي تطبق قيودًا أكثر صرامة من مجموعة بيانات Rare App Standby راجِع الفقرة 3.5.1.
بالإضافة إلى أوضاع توفير الطاقة، قد تتضمن عمليات تنفيذ أجهزة Android تنفيذ أي من حالات القوة النائمة الأربع أو جميعها كما هو محدد في "مؤشرات Google" واجهة التهيئة والطاقة (ACPI).
في حال تنفيذ عمليات تنفيذ الجهاز لحالة الطاقة S4 على النحو المحدَّد في ACPI، وهي:
- [C-1-1] يجب ألا يتم إدخال هذه الحالة إلا بعد اتخاذ المستخدم إجراءً صريحًا لوضع الجهاز في حالة غير نشطة (مثلاً عن طريق إغلاق غطاء موضوع من الجهاز أو إطفاء مركبة أو تلفزيون) وقبل إعادة تفعيل المستخدم للجهاز (عن طريق فتح غطاء الجهاز أو تدوير المركبة مثلاً) أو التلفزيون).
في حال تنفيذ عمليات تنفيذ الجهاز لحالة الطاقة S3 على النحو المحدَّد في ACPI، وهي:
يجب أن يستوفي [C-2-1] C-1-1 الوارد أعلاه، أو يجب أن يدخل في حالة S3 فقط عندما يكون طرفًا ثالثًا لا تحتاج التطبيقات إلى موارد النظام (مثل الشاشة ووحدة المعالجة المركزية).
وفي المقابل، يجب الخروج من حالة S3 عندما تحتاج تطبيقات الجهات الخارجية إلى موارد النظام، كما هو موضح في حزمة SDK هذه.
فعلى سبيل المثال، بينما تطلب تطبيقات الجهات الخارجية الإبقاء على الشاشة مفعَّلة حتى
FLAG_KEEP_SCREEN_ON
أو مواصلة تشغيل وحدة المعالجة المركزية (CPU)PARTIAL_WAKE_LOCK
، يجب ألا يدخل الجهاز في حالة S3 ما لم يكن، على النحو الموضَّح في C-1-1، اتخذ المستخدم إجراءً صريحًا لوضع الجهاز في حالة عدم النشاط. بالمقابل، في أي وقت عندما تتعرض له تطبيقات تابعة لجهات خارجية تنفيذها من خلال Jobscheduler أو سيتم تشغيل خدمة المراسلة عبر السحابة الإلكترونية من Firebase إلى تطبيقات تابعة لجهات خارجية، يجب أن يخرج الجهاز من حالة S3 ما لم وضع المستخدم الجهاز في حالة غير نشطة. هذه المقاييس غير شاملة وAOSP تنفيذ إشارات استيقاظ مكثفة تؤدي إلى تنشيط من هذه الولاية.
8.4. محاسبة استهلاك الطاقة
كما أن المحاسبة وإعداد التقارير الأكثر دقة لاستهلاك الطاقة توفر مطوّر التطبيقات، الحوافز والأدوات اللازمة لتحسين استخدام الطاقة نمط التطبيق.
عمليات تنفيذ الأجهزة:
- [C-SR-1] يُنصح بشدة بتوفير ملف شخصي للطاقة لكل مكوّن التي تحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
- [C-SR-2] يُنصح بشدة بالإبلاغ عن جميع قيم استهلاك الطاقة بالملي أمبير ساعة (mAh).
- [C-SR-3] يُنصح بشدة بالإبلاغ عن استهلاك طاقة وحدة المعالجة المركزية (CPU) حسب المُعرّف الفريد لكل عملية.
يلبي المشروع المفتوح المصدر لنظام Android المتطلبات من خلال
تنفيذ وحدة نواة
uid_cputime
- [C-SR-4] يُنصح بشدة بإتاحة استخدام الطاقة هذا عبر
adb shell dumpsys batterystats
أمر Shell إلى مطور التطبيق. - يجب أن يُنسب إلى مكون الجهاز نفسه إذا لم تتمكن من إحالة استخدام الطاقة لمكوّن الجهاز إلى تطبيق ما.
8.5. الأداء المتسق
يمكن أن يتذبذب الأداء بشكل كبير بالنسبة للتطبيقات عالية الأداء طويلة الأداء، إمّا بسبب تشغيل التطبيقات الأخرى في الخلفية أو بسبب تقييد وحدة المعالجة المركزية بسبب حدود درجة الحرارة. يتضمن Android واجهات آلية بحيث عندما قدرة الجهاز على العمل، فيمكن للتطبيق الذي يعمل في المقدّمة في المقدمة أن يطلب تحسين تخصيص الموارد لمعالجة هذه التقلبات.
عمليات تنفيذ الأجهزة:
[C-0-1] يجب الإبلاغ بدقة عن توافق "وضع الأداء المستدام" من خلال
PowerManager.isSustainedPerformanceModeSupported()
طريقة واجهة برمجة التطبيقات.يجب أن يتوافق مع "وضع الأداء المستدام".
في حال أبلغت عمليات تنفيذ الأجهزة عن أنّها تتوافق مع "وضع الأداء المستدام"، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يوفر للتطبيقات التي تعمل في المقدّمة مستوى ثابتًا من الأداء لمدة 30 دقيقة على الأقل، عندما يطلب التطبيق ذلك.
- [C-1-2] يجب أن يلتزم
Window.setSustainedPerformanceMode()
واجهة برمجة التطبيقات وواجهات برمجة التطبيقات الأخرى ذات الصلة
إذا كانت عمليات تنفيذ الأجهزة تتضمّن وحدة معالجة مركزية (CPU) واحدة أو أكثر، ينطبق ما يلي:
- يجب توفير مجموعة أساسية واحدة حصرية على الأقل يمكن حجزها بواسطة الجزء العلوي التطبيق الذي يعمل في المقدّمة.
إذا كانت عمليات تنفيذ الأجهزة تتيح تخصيص وحدة أساسية واحدة حصرية في الأعلى في المقدمة، فإنها:
- [C-2-1] يجب أن يتم الإبلاغ عنه من خلال
Process.getExclusiveCores()
طريقة واجهة برمجة التطبيقات: أرقام تعريف النوى الحصرية التي يمكن حجزها بواسطة التطبيق الذي يعمل في المقدّمة. - [C-2-2] يجب عدم السماح بأي عمليات لتوفير مساحة للمستخدم باستثناء برامج تشغيل الأجهزة التي يستخدمها التطبيق لتشغيله على أنوية حصرية، ولكن قد يسمح لبعضها تشغيل عمليات النواة حسب الضرورة.
في حال لم تكن عمليات تنفيذ الأجهزة متوافقة مع مجموعة أساسية حصرية، سيحدث ما يلي:
- [C-3-1] يجب عرض قائمة فارغة من خلال
Process.getExclusiveCores()
طريقة واجهة برمجة التطبيقات.
9. توافق نموذج الأمان
عمليات تنفيذ الأجهزة:
[C-0-1] يجب تنفيذ نموذج أمان متسق مع نموذج أمان نظام Android الأساسي كما هو محدد في المستند المرجعي للأمان والأذونات في واجهات برمجة التطبيقات في وثائق مطور برامج Android.
[C-0-2] يجب أن يتيح تثبيت نظام التشغيل الموقَّع ذاتيًا التطبيقات دون الحاجة إلى أي أذونات/شهادات إضافية من أي والجهات الخارجية أو الجهات الخارجية
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.security.model.compatible
الميزات، فهي:
- يجب أن يستوفي [C-1-1] المتطلبات الواردة في الأقسام الفرعية التالية.
9.1. الأذونات
عمليات تنفيذ الأجهزة:
[C-0-1] يجب أن يتوافق مع نموذج أذونات Android نموذج أدوار Android كما هو محدد في وثائق مطوّر برامج Android. على وجه التحديد، يجب فرض كل إذن ودور محدّدَين في مستندات حزمة تطوير البرامج (SDK) لا أذونات ولا يمكن حذف الأدوار أو تغييرها أو تجاهله.
يمكنك إضافة أذونات إضافية، بشرط أن تكون سلاسل معرّفات الأذونات الجديدة. لا تتوفّر في مساحة الاسم
android.\*
.[C-0-2] أذونات باستخدام
protectionLevel
منPROTECTION_FLAG_PRIVILEGED
يجب منح هذا الإذن للتطبيقات المثبَّتة مسبقًا في المسارات المميّزة لـ صورة النظام (بالإضافة إلى ملفات APEX) وأن تكون ضِمن المجموعة الفرعية من الأذونات المدرَجة في القائمة المسموح بها صراحةً لكل تطبيق يلبي تنفيذ AOSP هذا المطلب من خلال قراءة الالتزام الأذونات المسموح بها لكل تطبيق من الملفات فيetc/permissions/
واستخدام المسارsystem/priv-app
باعتباره الخاص بك.
أما الأذونات التي لها مستوى حماية من الخطورة، فهي أذونات التشغيل.
التطبيقات التي تستخدم targetSdkVersion
> 22 طلبًا في وقت التشغيل.
عمليات تنفيذ الأجهزة:
- [C-0-3] يجب أن يعرض واجهة مخصصة للمستخدم ليقرر ما إذا كان يجب منح أذونات وقت التشغيل المطلوبة وتقديمها واجهة للمستخدم لإدارة أذونات وقت التشغيل.
- يجب أن يتضمّن [C-0-4] عملية تنفيذ واحدة فقط لكل من المستخدمَين. من الواجهات.
[C-0-5] يجب ألا يمنح أي أذونات تشغيل للتطبيقات ما لم:
- أن يتم تركيبها في وقت شحن الجهاز
يمكن الحصول على موافقة المستخدم قبل تقديم الطلب. يستخدم الإذن،
أو
يتم منح أذونات التشغيل سياسة منح الأذونات التلقائية أو مقابل تولّي دور المنصة
[C-0-6] يجب منح إذن
android.permission.RECOVER_KEYSTORE
فقط لتطبيقات النظام التي تسجل وكيل استرداد آمن بشكل سليم. حاسمة يتم تعريف وكيل الاسترداد الآمن بشكل صحيح بأنه وكيل برامج على الجهاز تتزامن مع وحدة تخزين بعيدة خارج الجهاز، ومجهزة من الأجهزة الآمنة باستخدام ما يعادل مستوى الحماية أو أقوى منه موصوفة في خدمة Google Cloud Key Vault لمنع هجمات القوة الغاشمة على عامل المعرفة الخاص بشاشة القفل.
عمليات تنفيذ الأجهزة:
[C-0-7] يجب أن يتقيّد بخصائص إذن تحديد الموقع الجغرافي في Android عند استخدام تطبيق تطلب بيانات الموقع الجغرافي أو النشاط البدني من خلال واجهة برمجة تطبيقات Android العادية أو آلية ملكية. وتشمل هذه البيانات، على سبيل المثال لا الحصر:
- موقع الجهاز (مثل خطوط الطول والعرض) كما هو موضح في القسم 9.8.8.
- يشير هذا المصطلح إلى المعلومات التي يمكن استخدامها لتحديد حالة عمل الجهاز أو تقديره. الموقع (على سبيل المثال، SSID أو معرِّف مجموعة الخدمات الأساسية (BSSID) أو معرِّف الخلية أو موقع الشبكة التي جهازك).
- النشاط البدني للمستخدم أو تصنيف النشاط البدني
وبشكل أكثر تحديدًا، عمليات تنفيذ الأجهزة:
- [C-0-8] يجب أن يحصل على موافقة المستخدم للسماح للتطبيق بالوصول إلى الموقع أو بيانات النشاط البدني.
- [C-0-9] يجب منح إذن وقت التشغيل فقط للتطبيق الذي يحمل الإذن
الإذن الكافي كما هو موضّح في حزمة SDK.
على سبيل المثال:
ContactManager#getServiceState
تتطلب
android.permission.ACCESS_FINE_LOCATION
).
الاستثناءات الوحيدة لخصائص إذن تحديد الموقع الجغرافي في Android المذكورة أعلاه تتعلّق التطبيقات التي لا تصل إلى الموقع الجغرافي لاستنتاج الموقع الجغرافي للمستخدم أو تحديده وعلى وجه التحديد:
- عندما تحصل التطبيقات على إذن
RADIO_SCAN_WITHOUT_LOCATION
. - لأغراض ضبط الجهاز وإعداده، حيث تحتفظ تطبيقات النظام
إذن
NETWORK_SETTINGS
أوNETWORK_SETUP_WIZARD
.
يمكن وضع علامة على الأذونات على أنّها تؤدّي إلى تغيير سلوكها.
[C-0-10] يجب ألا تكون الأذونات التي تم وضع علامة
hardRestricted
عليها ممنوح للتطبيق ما لم:- هناك ملف APK خاص بالتطبيق في قسم النظام.
- يُسنَد المستخدم دورًا مرتبطًا بـ "
hardRestricted
". أذونات لأحد التطبيقات. - تمنح أداة التثبيت
hardRestricted
للتطبيق. - تم منح تطبيق "
hardRestricted
" على إصدار Android سابق.
[C-0-11] يجب أن يتم تقييد التطبيقات التي تمتلك إذن
softRestricted
فقط يجب ألا يحصلوا على إذن الوصول الكامل إلى أن يتم إدراجهم في القائمة المسموح بها كما هو موضّح في حزمة SDK، حيث يتم تحديد إمكانية الوصول الكامل والمحدود لكلsoftRestricted
إذن (مثلاً،READ_EXTERNAL_STORAGE
).[C-0-12] يجب ألا يوفر أي وظائف أو واجهات برمجة تطبيقات مخصصة لتجاوز قيود الأذونات التي تم تحديدها في setPermissionPolicy وsetPermissionGrantState واجهات برمجة التطبيقات.
[C-0-13] يجب استخدام واجهات برمجة تطبيقات AppOpsManager لتسجيل وتتبع كل منها كل عملية وصول آلي إلى البيانات المحمية بأذونات خطيرة من أنشطة وخدمات Android.
[C-0-14] يجب أن يقوم فقط بتعيين الأدوار للتطبيقات ذات الوظائف التي وتفي بمتطلبات الدور.
[C-0-15] يجب ألا يحدد الأدوار المكررة أو الوظائف الشاملة للأدوار التي تحددها المنصة.
إذا أبلغت الأجهزة عن android.software.managed_users
، سينطبق ما يلي:
- [C-1-1] يجب ألا يحصل على الأذونات التالية التي يتم منحها تلقائيًا من قِبل
المشرف:
- الموقع الجغرافي (ACCESS_BACKGROUND_LOCATION، ACCESS_COARSE_LOCATION، ACCESS_FINE_LOCATION).
- الكاميرا (CAMERA)
- الميكروفون (RECORD_AUDIO)
- جهاز استشعار الجسم (BODY_SENSORS)
- النشاط البدني (ACTIVITY_RECOGNITION)
إذا كانت عمليات تنفيذ الأجهزة تتيح للمستخدم اختيار التطبيقات التي يمكنها
الرسم فوق التطبيقات الأخرى بواسطة نشاط يعالج
ACTION_MANAGE_OVERLAY_PERMISSION
النية، فهي:
- [C-2-1] يجب أن يتأكد من أن جميع الأنشطة التي تتضمن فلاتر الأهداف
ACTION_MANAGE_OVERLAY_PERMISSION
يكون لهدف عرض نفس شاشة واجهة المستخدم، بغض النظر عن تطبيق البدء أو أي المعلومات التي يقدمها.
إذا أبلغت عمليات تنفيذ الجهاز عن android.software.device_admin، سيتم:
- [C-3-1] يجب عرض بيان إخلاء مسؤولية أثناء إعداد الجهاز المُدار بالكامل (إعداد مالك الجهاز) للإشارة إلى أنّ مشرف تكنولوجيا المعلومات سيتمكّن من إجراء ما يلي: السماح للتطبيقات بالتحكم في الإعدادات على الهاتف، بما في ذلك الميكروفون والكاميرا مع خيارات تتيح للمستخدم مواصلة الإعداد أو الخروج من الإعداد ما لم أوقف المشرف إمكانية التحكُّم في الأذونات على الجهاز.
في حال تثبيت عمليات تنفيذ على الجهاز مسبقًا لأي حِزم تحمل أيًا من أدوار System UI Intelligence أو System Ambient Audio Intelligence أو System Audio Intelligence أو System Notification Intelligence أو System Text Intelligence أو System Visual Intelligence، ستكون الحِزم:
- [C-4-1] يجب أن يستوفي جميع المتطلبات الموضّحة لعمليات تنفيذ الأجهزة في
الأقسام
"9.8.6 تسجيل المحتوى""9.8.6 بيانات على مستوى نظام التشغيل و9.8.15 عمليات تنفيذ واجهة برمجة التطبيقات في وضع الحماية".
- [C-4-2] يجب ألا يكون لديه إذن android.permission.INTERNET. هذا هو أكثر من ذلك الموصى به بشدة والمذكور في الفقرة 9.8.6.
- [C-4-3] يجب ألا يتم الربط بالتطبيقات الأخرى، باستثناء تطبيقات النظام التالية: البلوتوث وجهات الاتصال والوسائط والاتصال الهاتفي وواجهة SystemUI والمكوّنات التي توفّر واجهات برمجة تطبيقات الإنترنت. هذا أكثر صرامة من تلك المقترحة بشدة في الفقرة 9.8.6.
بدء متطلبات جديدة
إذا كانت عمليات تنفيذ الجهاز تتضمن تطبيقًا افتراضيًا يتوافق مع
VoiceInteractionService
:
- [C-5-1] يجب ألا يتم منح
ACCESS_FINE_LOCATION
كإعداد تلقائي لذلك التطبيق.
إنهاء المتطلبات الجديدة
9.2. المعرّف الفريد وعزل العمليات
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يتوافق مع تطبيق Android وضع الحماية، والذي يتم فيه تشغيل كل تطبيق كمعرّف فريد فريد لنظام Unixstyle وفي عملية منفصلة.
- [C-0-2] يجب أن يدعم تشغيل تطبيقات متعددة برقم تعريف مستخدم Linux نفسه، بشرط أن تكون التطبيقات موقّعة بشكل صحيح وتم إنشاؤها، كما هو موضح في مرجع الأمان والأذونات
9.3. أذونات نظام الملفات
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يتيح الوصول إلى ملفات Android نموذج الأذونات كما هو موضح في مرجع الأمان والأذونات
9.4. بيئات التنفيذ البديلة
يجب أن تحافظ عمليات تنفيذ الأجهزة على اتساق أمان Android نموذج الأذونات، حتى إذا كانت تتضمّن بيئات وقت تشغيل يتم تنفيذها التطبيقات التي تستخدم بعض البرامج أو التقنيات الأخرى بخلاف برنامج Dalvik التنفيذي التنسيق أو الرمز الأصلي معنى هذا التعديل:
[C-0-1] يجب أن تكون أوقات التشغيل البديلة تطبيقات Android، الالتزام بنموذج أمان Android العادي، كما هو موضّح في قسم آخر في القسم 9.
[C-0-2] يجب عدم منح بيئات التشغيل البديلة الإذن بالوصول إلى الموارد محمية بأذونات لم يتم طلبها في
AndroidManifest.xml
لبيئة التشغيل ملف عبر <uses-permission
> الآلية.[C-0-3] يجب ألا تسمح بيئات التشغيل البديلة للتطبيقات باستخدام الميزات المحمية بواسطة أذونات Android المقصورة على تطبيقات النظام.
[C-0-4] يجب أن تلتزم بيئات التشغيل البديلة بنموذج وضع الحماية في Android يجب عدم استخدام بيئة تشغيل بديلة إعادة استخدام وضع الحماية لأي تطبيق آخر مثبَّت على الجهاز، إلا من خلال آليات Android العادية الخاصة بمعرّف المستخدم المشترك وشهادة التوقيع.
[C-0-5] يجب عدم إطلاق بيئات التشغيل البديلة مع أو منح أو منح الدخول إلى أوضاع الحماية المقابلة لتطبيقات Android الأخرى.
[C-0-6] يجب عدم إطلاق بيئات التشغيل البديلة أو منحها أو منحها إلى التطبيقات الأخرى أي امتيازات للمستخدم المميز (الجذر)، أو أي امتيازات معرّف المستخدم.
[C-0-7] عند تضمين ملفات
.apk
لبيئات التشغيل البديلة في صورة النظام لتنفيذات الأجهزة، يجب توقيعها بمفتاح مختلف من المفتاح المستخدَم لتوقيع التطبيقات الأخرى المضمّنة في الجهاز وعمليات التنفيذ.[C-0-8] عند تثبيت التطبيقات، يجب أن تحصل أوقات التشغيل البديلة على موافقة المستخدم على أذونات Android التي يستخدمها التطبيق.
[C-0-9] عندما يحتاج أحد التطبيقات إلى الاستفادة من مورد الجهاز من أجل الذي يملك إذنًا مناسبًا لنظام التشغيل Android (مثل الكاميرا أو نظام تحديد المواقع العالمي (GPS) أو غير ذلك) يجب أن يخبر بيئة التشغيل البديلة المستخدم بإمكانية أن يكون التطبيق قادرًا على للوصول إلى هذا المورد.
[C-0-10] عندما لا تسجّل بيئة التشغيل التطبيق والإمكانيات بهذه الطريقة، يجب أن تسرد بيئة التشغيل جميع الأذونات الاحتفاظ بها في بيئة التشغيل نفسها عند تثبيت أي تطبيق يستخدم بيئة التشغيل تلك
"يجب أن يتم تثبيت التطبيقات في بيئات التشغيل البديلة عبر
PackageManager
" وضع حماية منفصل لنظام التشغيل Android (معرّفات مستخدمي Linux، وما إلى ذلك).قد توفِّر بيئات التشغيل البديلة وضع حماية واحدًا على Android يشاركه جميع المستخدمين. التطبيقات التي تستخدم بيئة التشغيل البديلة.
9.5. دعم عدة مستخدمين
يتضمّن نظام التشغيل Android إمكانية استخدام عدة مستخدمين.
وتوفر الدعم لعزل المستخدم بشكل كامل ونسخ الملفات الشخصية للمستخدمين مع
عزل جزئي(أي ملف شخصي إضافي واحد للمستخدم من النوع)
android.os.usertype.profile.CLONE
).
- قد تتم عمليات تنفيذ الأجهزة ولكن من المفترض ألا يتم تفعيل ميزة تعدد المستخدمين في حال استخدام وسائط قابلة للإزالة كوحدة تخزين خارجية أساسية.
في حال كانت عمليات تنفيذ الأجهزة تتضمّن دعمًا لعدة مستخدمين، سيحدث ما يلي:
- [C-1-2] يجب، لكل مستخدم، تنفيذ سياسة أمان متوافق مع نموذج أمان نظام Android الأساسي كما هو محدد في المستند المرجعي للأمان والأذونات في واجهات برمجة التطبيقات.
- [C-1-3] يجب أن يحتوي على مساحة تخزين مشتركة منفصلة ومعزولة للتطبيقات
(المعروفة أيضًا باسم
/sdcard
) لكل مثيل مستخدم. - [C-1-4] يجب أن يضمن أن التطبيقات المملوكة والتي تعمل نيابةً عنها لا يمكن لمستخدم معين إدراج الملفات التي يملكها أي مستخدم آخر أو قراءتها أو الكتابة فيها، حتى إذا كانت بيانات كلا المستخدمين مخزنة على نفس وحدة التخزين أو نظام الملفات.
- [C-1-5] يجب تشفير محتوى بطاقة SD عند تفعيل ميزة المستخدمين المتعددين استخدام مفتاح مخزَّن فقط على وسائط غير قابلة للإزالة لا يمكن للنظام الوصول إليها إلا إذا تطبيقات الأجهزة تستخدم وسائط قابلة للإزالة لواجهات برمجة تطبيقات التخزين الخارجي. ونظرًا لأن ذلك سيجعل الوسائط غير قابلة للقراءة بواسطة كمبيوتر شخصي مضيف، فإن تنفيذات الجهاز ستكون مطلوبة للتبديل إلى بروتوكول نقل الوسائط (MTP) أو نظام مشابه لتوفير أجهزة الكمبيوتر المضيفة الوصول إلى بيانات المستخدم الحالي.
إذا كانت عمليات تنفيذ الجهاز تتضمن دعمًا لعدة مستخدمين، فعندئذ يجب جميع المستخدمين باستثناء المستخدمين الذين تم إنشاؤهم خصيصًا لتشغيل المثيلات المزدوجة من نفس التطبيق، فإنها:
- [C-2-1] يجب أن يحتوي على مساحة تخزين مشتركة منفصلة ومعزولة للتطبيقات (المعروفة أيضًا باسم /sdcard) لكل مثيل مستخدم.
- [C-2-2] يجب أن يضمن أن التطبيقات التي تمتلكها التطبيقات التي تعمل على لا يمكن نيابةً عن مستخدم معيّن إدراج الملفات التي يملكها أو قراءتها أو الكتابة فيها أي مستخدم آخر، حتى إذا كانت بيانات كلا المستخدمين مخزنة على أو نظام الملفات.
قد تؤدي عمليات تنفيذ الأجهزة إلى إنشاء ملف شخصي إضافي واحد للمستخدم من النوع.
android.os.usertype.profile.CLONE
مقابل المستخدم الأساسي (وفقط مقابل
المستخدم الأساسي) بغرض تشغيل نسختين من التطبيق نفسه.
تشترك هذه المثيلات المزدوجة في مساحة تخزين معزولة جزئيًا، ويتم عرضها في
مستخدم نهائي في "مشغّل التطبيقات" في الوقت نفسه وتظهر في عرض التطبيقات الأخيرة نفسها.
على سبيل المثال، يمكن استخدام ذلك لمساعدة المستخدم على تثبيت اثنين من أجهزة منفصلة
لكل تطبيق على جهاز بشريحتَي SIM.
إذا أدت عمليات تنفيذ الأجهزة إلى إنشاء ملف شخصي إضافي للمستخدم تمت مناقشته أعلاه، فإنهم:
- [C-3-1] يجب أن توفر فقط إمكانية الوصول إلى سعة التخزين أو البيانات المتوفرة يمكن الوصول إليها من خلال الملف الشخصي للمستخدم الرئيسي أو أن يملكها هذا المستخدم بشكل مباشر ملف شخصي إضافي للمستخدم.
- [C-3-2] يجب ألا يحتوي هذا على ملف شخصي للعمل.
- [C-3-3] يجب أن يعزل أدلة بيانات التطبيق الخاصة عن المجلد الرئيسي حساب مستخدم.
- [C-3-4] يجب ألا يتم السماح بإنشاء الملف الشخصي للمستخدم الإضافي إذا كان هناك إذا كان الجهاز مُدارًا بواسطة مالك الجهاز (راجع الفقرة 3.9.1) أو السماح لمالك الجهاز بدون إزالة الملف الشخصي الإضافي للمستخدم أولاً.
بدء متطلبات جديدة
إذا أدت عمليات تنفيذ الأجهزة إلى إنشاء ملف شخصي إضافي للمستخدم تمت مناقشته أعلاه، فإنهم:
- [C-4-5] يجب أن يتم تمييز رموز التطبيق المزدوجة بشكل مرئي عند يتم تقديم الأيقونات للمستخدمين.
- [C-4-6] يجب أن تتوفر للمستخدمين إمكانية حذف بيانات الملف الشخصي للاستنساخ بالكامل.
- [C-4-7] يجب إلغاء تثبيت جميع تطبيقات Clone وحذف بيانات التطبيقات الخاصة ومحتواها وحذف بيانات الملف الشخصي واستنساخ، عندما ينقر المستخدم يختار حذف بيانات الملف الشخصي في Clone بالكامل.
- يجب أن تطلب من المستخدم حذف بيانات الملف الشخصي للاستنساخ بالكامل عند آخر مرة استنساخ التطبيق.
- [C-4-8] يجب إبلاغ المستخدم بأنّه سيتم حذف بيانات التطبيق عند إنشاء النسخة. إلغاء تثبيت التطبيق، أو توفير خيار للمستخدمين للاحتفاظ ببيانات التطبيق عند إلغاء تثبيت التطبيق من الجهاز.
- [C-4-9] يجب حذف أدلة بيانات التطبيق الخاصة ومحتواها، في حال أن يختار المستخدم حذف البيانات أثناء إلغاء التثبيت.
[C-4-1] يجب أن تسمح الأهداف الواردة أدناه التي تنشأ من معالجة الملف الشخصي بواسطة تطبيقات المستخدم الأساسي في الجهاز:
Intent.ACTION_VIEW
Intent.ACTION_SENDTO
Intent.ACTION_SEND
Intent.ACTION_EDIT
Intent.ACTION_INSERT
Intent.ACTION_INSERT_OR_EDIT
Intent.ACTION_SEND_MULTIPLE
Intent.ACTION_PICK
Intent.ACTION_GET_CONTENT
MediaStore.ACTION_IMAGE_CAPTURE
MediaStore.ACTION_VIDEO_CAPTURE
[C-4-2] يجب أن تكتسب جميع القيود المفروضة على المستخدم في سياسة الأجهزة ويتم اختيارها القيود المفروضة على غير المستخدمين(القائمة أدناه) المطبقة على المستخدم الأساسي للجهاز بهذا الملف الشخصي الإضافي للمستخدم.
[C-4-3] يجب السماح بكتابة جهات الاتصال من هذا الملف الشخصي الإضافي فقط عبر الأهداف التالية:
[C-4-4] يجب ألا يحتوي على عمليات مزامنة لجهات الاتصال قيد التشغيل للتطبيقات التي تعمل في هذا الملف الشخصي الإضافي للمستخدم.
- [C-4-14] يجب أن يكون لديه إذن منفصل وإدارة مساحة تخزين التطبيقات التي تعمل في هذا الملف الشخصي الإضافي
- [C-4-5] يجب السماح للتطبيقات في الملف الشخصي الإضافي فقط باستخدام نشاط مشغّل التطبيقات للوصول إلى جهات الاتصال التي يمكن للمستخدم الدخول إليها بالإضافة إلى ملف تعريف شخصي رئيسي للمستخدم.
إنهاء المتطلبات الجديدة
9.6. تحذير بشأن الرسائل القصيرة برسوم إضافية
يتيح Android تحذير المستخدمين من أي عمليات شراء صادرة. رسالة SMS مميّزة رسالة قصيرة برسوم إضافية والرسائل النصية هي رسائل نصية يتم إرسالها إلى خدمة مسجّلة لدى مشغّل شبكة الجوّال وقد تحمل رسومًا للمستخدم.
إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع android.hardware.telephony
،
وهي:
- [C-1-1] يجب تحذير المستخدمين قبل إرسال رسالة SMS إلى الأرقام
تم تحديدها من خلال التعبيرات العادية المحدّدة في
/data/misc/sms/codes.xml
الملف في الجهاز. يوفر المشروع المفتوح المصدر لنظام Android تنفيذ يفي بهذا المطلب.
9.7. ميزات الأمان
يجب أن تضمن عمليات تنفيذ الأجهزة الامتثال لميزات الأمان في كل من والنظام الأساسي كما هو موضح أدناه.
يتضمن "وضع الحماية لنظام Android" ميزات تستخدم نظام التشغيل Linux المعزز للأمان (SELinux) نظام التحكم الإلزامي في الوصول (MAC) ووضع الحماية seccomp وغير ذلك ميزات الأمان في نواة Linux. عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يحافظ على التوافق مع التطبيقات الحالية، حتى إذا أو SELinux أو أي ميزات أمان أخرى يتم تنفيذها أسفل نظام التشغيل إطار العمل.
- [C-0-2] يجب ألا يكون له واجهة مستخدم مرئية عند وجود رصد انتهاك ميزة الأمان وحظره بنجاح تنفيذها أسفل إطار عمل Android، ولكن قد تحتوي على واجهة مستخدم مرئية عند حدوث انتهاك أمني غير محظور أدى إلى نجاح الاستغلال.
- [C-0-3] يجب ألا يتم تنفيذ SELinux أو أي ميزات أمان أخرى أسفل إطار عمل Android الذي يمكن للمستخدم أو مطوّر التطبيق ضبطه
- [C-0-4] يجب عدم السماح بتطبيق يمكن أن يؤثر على تطبيق آخر من خلال واجهة برمجة تطبيقات (مثل واجهة برمجة التطبيقات لإدارة الأجهزة) لضبط سياسة يقطع التوافق.
- [C-0-5] يجب أن يقسم إطار عمل الوسائط إلى عمليات متعددة بحيث من الممكن منح حق الوصول بشكل أكثر تحديدًا لكل عملية موصوفة في موقع "مشروع مفتوح المصدر لنظام Android".
- [C-0-6] يجب تنفيذ آلية وضع الحماية لتطبيق النواة والتي تسمح بتصفية طلبات النظام باستخدام سياسة قابلة للتهيئة من وبرامج متعددة السلاسل. يلبي مشروع Android المفتوح المصدر هذا من خلال تفعيل seccomp-BPF باستخدام السمةthreadgroup المزامنة (TSYNC) كما هو موضح في قسم إعداد النواة في source.android.com.
ميزات سلامة النواة والحماية الذاتية جزء لا يتجزأ من Android الأمان. عمليات تنفيذ الأجهزة:
- [C-0-7] يجب تنفيذ آليات الحماية من تجاوز سعة المخزن المؤقت لحزمة kernel.
ومن أمثلة هذه الآليات
CC_STACKPROTECTOR_REGULAR
CONFIG_CC_STACKPROTECTOR_STRONG
- [C-0-8] يجب تنفيذ إجراءات حماية صارمة في الذاكرة بنواة kernel في المواضع القابلة للتنفيذ
التعليمات البرمجية للقراءة فقط، والبيانات للقراءة فقط غير قابلة للتنفيذ، وغير قابلة للكتابة،
البيانات القابلة للكتابة غير قابلة للتنفيذ (مثل
CONFIG_DEBUG_RODATA
أوCONFIG_STRICT_KERNEL_RWX
). - [C-0-9] يجب تنفيذ حجم الكائن الثابت والديناميكي
التحقق من الحدود للنسخ بين مساحة المستخدم ومساحة الكيرنل (kernel-space)
(مثل
CONFIG_HARDENED_USERCOPY
) على الأجهزة التي يتم شحنها في الأصل بمستوى واجهة برمجة التطبيقات 28 أو أعلى. - [C-0-10] يجب ألا يتم تنفيذ ذاكرة مساحة المستخدم عند التنفيذ
في وضع النواة (kernel، على سبيل المثال، PXN للأجهزة، أو التي تتم محاكاتها عبر
CONFIG_CPU_SW_DOMAIN_PAN
أوCONFIG_ARM64_SW_TTBR0_PAN
) على الأجهزة الشحن في الأصل باستخدام المستوى 28 من واجهة برمجة التطبيقات أو المستويات الأحدث - [C-0-11] يجب ألا تتم قراءة أو كتابة ذاكرة مساحة المستخدم في
kernel خارج واجهات برمجة التطبيقات للوصول العادي إلى نسخة المستخدم (مثل رقم PAN للأجهزة أو
التي تمت محاكاتها عبر
CONFIG_CPU_SW_DOMAIN_PAN
أوCONFIG_ARM64_SW_TTBR0_PAN
) على الأجهزة التي كان يتم شحنها في الأصل باستخدام المستوى 28 من واجهة برمجة التطبيقات أو المستويات الأحدث - [C-0-12] يجب تنفيذ عزل جدول صفحة النواة إذا كان الجهاز
معرَّضة لهجمات اختراق من CVE-2017-5754 على جميع الأجهزة التي يتم شحنها في الأصل باستخدام مستوى واجهة برمجة التطبيقات
28 أو أعلى (على سبيل المثال
CONFIG_PAGE_TABLE_ISOLATION
أوCONFIG_UNMAP_KERNEL_AT_EL0
). [C-0-13] يجب تنفيذ تقوية تنبؤ الفرع إذا كان الجهاز معرَّضة لهجمات اختراق من CVE-2017-5715 على جميع الأجهزة التي يتم شحنها في الأصل باستخدام مستوى واجهة برمجة التطبيقات 28 أو أعلى (مثل
CONFIG_HARDEN_BRANCH_PREDICTOR
).[C-SR-1] يُوصى به بشدة للاحتفاظ ببيانات النواة والذي تتم كتابته فقط أثناء التهيئة مع وضع علامة عليه للقراءة فقط بعد الإعداد (مثل
__ro_after_init
).[C-SR-2] يُوصى بها بشدة لإجراء ترتيب عشوائي لتخطيط التعليمة البرمجية للنواة الذاكرة، وتجنب التعرض الذي قد يعرّض التوزيع العشوائي (مثل
CONFIG_RANDOMIZE_BASE
مع قصور برنامج الإقلاع عبر/chosen/kaslr-seed Device Tree node
أوEFI_RNG_PROTOCOL
).[C-SR-3] يُوصى بها بشدة لتمكين سلامة تدفق التحكم (CFI) في النواة (kernel) لتوفير حماية إضافية من هجمات إعادة استخدام التعليمات البرمجية (مثل
CONFIG_CFI_CLANG
وCONFIG_SHADOW_CALL_STACK
).[C-SR-4] يُنصح بشدة بعدم إيقاف ميزة "سلامة التحكم في تدفق التحكم" (CFI)، تشغيل حزم طلبات الظل (SCS) أو Integer Overflow Sanitization (IntSan) والمكونات التي تم تفعيلها عليها.
[C-SR-5] يُنصَح باستخدامها بشدة لتفعيل CFI وSCS وIntSan لأي مكونات مساحة المستخدم الإضافية الحساسة للأمان كما هو موضح في CFI IntSan
[C-SR-6] يُنصَح باستخدامها بشدة لتفعيل إعداد تسلسل استدعاء الدوال البرمجية في النواة لمنع استخدامات المتغيرات المحلية غير المهيأة (
CONFIG_INIT_STACK_ALL
أوCONFIG_INIT_STACK_ALL_ZERO
). كذلك، ينبغي ألا تفترض عمليات تنفيذ الجهاز القيمة التي يستخدمها برنامج التحويل البرمجي تهيئة السكان المحليين.[C-SR-7] يُنصَح باستخدامها بشدة لتفعيل تهيئة الكوة في النواة وذلك بهدف منع استخدام عمليات تخصيص مخزون غير مهيأ (
CONFIG_INIT_ON_ALLOC_DEFAULT_ON
) وينبغي ألا تفترض القيمة التي يستخدمها بالنواة لتهيئة تلك التخصيصات.
إذا كانت عمليات تنفيذ الجهاز تستخدم نواة Linux قادرة على دعم في SELinux، وهي:
- [C-1-1] يجب تنفيذ SELinux.
- [C-1-2] يجب تعيين SELinux على وضع الفرض العام.
- [C-1-3] يجب إعداد جميع النطاقات في وضع الفرض. ما مِن وضع متساهل يتم السماح بالنطاقات، بما في ذلك النطاقات الخاصة بجهاز أو مورِّد.
- [C-1-4] يجب ألا يعدّل أو يحذف أو يستبدل القواعد الموجودة NOTallow ضمن مجلد System/sepolicy المقدَّم في الإصدار المفتوح المصدر من Android يجب أن يتم تجميع المشروع (AOSP) والسياسة مع وجود جميع قواعد "Neverallow" لكل من نطاقات SELinux المستندة إلى AOSP وكذلك النطاقات الخاصة بالجهاز/المورِّد.
- [C-1-5] يجب تشغيل تطبيقات تابعة لجهات خارجية تستهدف المستوى 28 من واجهة برمجة التطبيقات أو مستوى أعلى في في وضع حماية SELinux لكل تطبيق مع قيود SELinux لكل تطبيق على كل تطبيق دليل البيانات الخاصة للتطبيق.
- "ينبغي" الاحتفاظ بسياسة SELinux الافتراضية المقدمة في system/sepolicy الخاص بالمشروع المفتوح المصدر لنظام Android الأساسي وإضافة المزيد إلى هذا مضبوطة على إعداداتها الخاصة بالأجهزة.
إذا كانت عمليات تنفيذ الجهاز تستخدم نواة بخلاف Linux أو Linux بدون SELinux، وهي:
- [C-2-1] يجب أن يستخدم نظام تحكم إلزامي في الوصول يعادل SELinux.
إذا كانت عمليات تنفيذ الأجهزة تستخدم أجهزة إدخال/إخراج متوافقة مع قانون الأسواق الرقمية، سيتم إجراء ما يلي:
- [C-SR-9] يُنصح بشدة بعزل كل جهاز إدخال/إخراج متوافق مع قانون الأسواق الرقمية (DMA) باستخدام وحدة IOMMU (مثل ARM SMMU).
يحتوي Android على العديد من ميزات الدفاع العميق التي تشكل جزءًا لا يتجزأ من الجهاز. الأمان. بالإضافة إلى ذلك، يركّز Android على تقليل الفئات الرئيسية للأخطاء الشائعة. تساهم في ضعف الجودة والأمان.
للحد من أخطاء الذاكرة، إجراءات الأجهزة:
- [C-SR-10] يُنصح بشدة باختبارها باستخدام خطأ في ذاكرة مساحة المستخدم أدوات رصد مثل MTE لأجهزة ARMv9 أو HWASan لأجهزة ARMv8+ أو ASan لأنواع الأجهزة الأخرى.
- [C-SR-11] يُنصح بشدة باختبارها باستخدام خطأ في ذاكرة النواة KASAN (CONFIG_KASAN وCONFIG_KASAN_HW_TAGS) أجهزة ARMv9 أو CONFIG_KASAN_SW_TAGS لأجهزة ARMv8 أو CONFIG_KASAN_GENERIC لأنواع الأجهزة الأخرى).
- [C-SR-12] يُوصى بشدة باستخدام أدوات اكتشاف أخطاء الذاكرة في مثل MTE وGWP-ASan وKFENCE.
في حال كانت عمليات تنفيذ الجهاز تستخدم بيئة التنفيذ الموثوقة (TEE) المستندة إلى Arm TrustZone، سيتم إجراء ما يلي:
- [C-SR-13] يُوصى بشدة باستخدام بروتوكول قياسي للذاكرة للمشاركة بين Android وTEE، مثل "إطار عمل Arm Firmware" Armv8-A (FF-A)
- [C-SR-14] يُوصى بها بشدة بقصر التطبيقات الموثوق بها على بالوصول إلى الذكريات التي تمت مشاركتها معهم صراحةً من خلال ما سبق والبروتوكول. إذا كان الجهاز متوافقًا مع مستوى استثناء Arm S-EL2، يُرجى تنفيذ ما يلي: يجب فرضها بواسطة مدير الأقسام الآمن. بخلاف ذلك، يجب أن يكون هذا يتم فرضه من قِبل نظام تشغيل TEE.
بدء متطلبات جديدة
تقنية أمان الذاكرة هي تقنية تخفف على الأقل ما يلي
هي فئة من الأخطاء ذات احتمالية عالية (> 90%) في التطبيقات التي تستخدم
android:memtagMode
خيار البيان:
- فائض سعة المخزن المؤقت
- الاستخدام بعد الفترة المجانية
- مجانية مزدوجة
- بدون أي تدخُّل (خالٍ من مؤشر غير malloc)
عمليات تنفيذ الأجهزة:
- [C-SR-15] يُوصى بشدة بتعيين
ro.arm64.memtag.bootctl_supported
إذا كانت عمليات تنفيذ الجهاز تضبط خاصية النظام
ro.arm64.memtag.bootctl_supported
على "صحيح"، وهي:
[C-3-1] يجب أن تسمح لخاصية النظام
arm64.memtag.bootctl
بقبول قائمة مفصولة بفواصل بالقيم التالية، مع التأثير المطلوب سيتم تطبيقه في عملية إعادة التشغيل اللاحقة التالية:memtag
: تم تفعيل تقنية "أمان الذاكرة" على النحو المحدّد أعلاه.memtag-once
: تقنية "أمان الذاكرة" كما هو محدّد أعلاه هي مؤقتًا ويتم إيقافه تلقائيًا في إعادة التشغيلmemtag-off
: تم إيقاف تقنية "أمان الذاكرة" على النحو المحدّد أعلاه.
[C-3-2] يجب أن يسمح لمستخدم واجهة الأوامر بضبط
arm64.memtag.bootctl
.[C-3-3] يجب أن يسمح أي عملية بقراءة
arm64.memtag.bootctl
.[C-3-4] يجب ضبط
arm64.memtag.bootctl
على الحالة المطلوبة حاليًا عند التشغيل، يجب أن يحدّث الموقع أيضًا، إذا تم تنفيذ يسمح بتعديل الحالة بدون تغيير خاصية النظام.[C-SR-16] يُنصح بشدة بأن تعرض إعدادات المطوّرين التي تضبط الرابط مرة واحدة وإعادة تشغيل الجهاز. باستخدام برنامج إقلاع متوافق، يلبي المشروع المفتوح المصدر لنظام Android المتطلبات أعلاه من خلال بروتوكول برنامج الإقلاع MTE
- [C-SR-17] يُنصَح باستخدامها بشدة لعرض أحد الإعدادات في قسم الأمان
قائمة الإعدادات التي تسمح للمستخدم بتفعيل
memtag
.
إنهاء المتطلبات الجديدة
9.8. الخصوصية
9.8.1. سجلّ الاستخدام
يخزن Android سجل اختيارات المستخدم ويدير هذا السجل كما UsageStatsManager.
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يحتفظ بفترة احتفاظ معقولة بسجلّ المستخدمين هذا.
- [C-SR-1] يُوصى بها بشدة للحفاظ على فترة الاحتفاظ بالبيانات التي تبلغ 14 يومًا بشكل افتراضي في تنفيذ بروتوكول AOSP.
يخزِّن Android أحداث النظام باستخدام StatsLog
.
كما تتم إدارة هذا السجلّ عبر StatsManager
IncidentManager
System API:
عمليات تنفيذ الأجهزة:
- يجب أن يحتوي [C-0-2] على الحقول الموضوع عليها علامة
DEST_AUTOMATIC
فقط في تقرير الحوادث الذي تم إنشاؤه بواسطة فئة واجهة برمجة تطبيقات النظامIncidentManager
. - [C-0-3] يجب ألا يستخدم معرّفات الأحداث للنظام لتسجيل أي حدث آخر
مقارنةً بما هو موضّح في
StatsLog
مستندات حزمة SDK. إذا تم تسجيل أحداث نظام إضافية، فمن الممكن أن تستخدم معرِّف Atom مختلف في النطاق بين 100,000 و200,000.
9.8.2. يتم التسجيل
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب ألا يتم تحميل مكونات البرنامج مسبقًا أو توزيعها بطريقة غير تقليدية إرسال معلومات المستخدم الخاصة (مثل ضغطات المفاتيح، والنص المعروض على الشاشة أو تقرير الأخطاء) عن الجهاز بدون موافقة المستخدم أو الإشعارات المستمرة.
- يجب أن يعرض [C-0-2] تحذيرًا من المستخدم ويحصل على موافقة صريحة من المستخدم للسماح بالحصول على أي معلومات حساسة يتم عرضها على شاشة المستخدم
، والتي تشمل نفس الرسالة مثل AOSPفي أي وقتكل مرة في كل جلسة لتسجيل الشاشةبث المحتوى أو تسجيل الشاشةمفعَّلبدأت من خلالMediaProjection.createVirtualDisplay()
,VirtualDeviceManager.createVirtualDisplay()
, أو واجهات برمجة تطبيقات خاصة بها.يجب ألا يقدم للمستخدمين إمكانية إيقاف عرض موافقة المستخدم في المستقبل - [C-0-3] يجب إرسال إشعار مستمر للمستخدم أثناء البث المباشر للشاشة أو تسجيل الشاشة مفعّل. تستوفي "مقدّم خدمة البريد الإلكتروني من Google" (AOSP) هذا الشرط من خلال إظهار رمز إشعار مستمر في شريط الحالة.
بدء متطلبات جديدة
[C-SR-1] يُنصح بشدة بعرض تحذير المستخدِم الذي يتطابق تمامًا مع الرسالة التي تم تنفيذها في بروتوكول AOSP، ولكن يمكن تغييرها طالما أنّ الرسالة تحذّر المستخدم بوضوح من تسجيل أي معلومات حساسة على شاشة المستخدم.
[C-0-4] يجب ألا يتيح للمستخدمين إمكانية إيقاف الطلبات المستقبلية موافقة المستخدِم على تصوير الشاشة، ما لم تبدأ الجلسة تطبيق نظام سمح المستخدم
associate()
معandroid.app.role.COMPANION_DEVICE_APP_STREAMING
أوandroid.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING
للملف الشخصي للجهاز.إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الجهاز تتضمن وظائف في النظام إما
يسجّل المحتوى المعروض على الشاشة و/أو يسجّل البث الصوتي
تم تشغيله على الجهاز بخلاف عبر System API ContentCaptureService
، أو
وسائل الملكية الأخرى الموضحة في
القسم 9.8.6 والبيانات المحيطة على مستوى نظام التشغيل:
- [C-1-1] يجب إرسال إشعار إلى المستخدم باستمرار عند حدوث ذلك تمكين الوظيفة والالتقاط/التسجيل بشكل نشط.
إذا كانت عمليات تنفيذ الجهاز تتضمن مكونًا غير مفعّل يمكن تنفيذه، تسجيل صوت في البيئة المحيطة و/أو تسجيل الصوت الذي يتم تشغيله على الجهاز لاستنتاج معلومات مفيدة حول سياق المستخدم، فإنّه:
- [C-2-1] يجب ألا يتم تخزينها في مساحة تخزين دائمة على الجهاز أو نقلها خارج الجهاز الصوتي الأولي المسجّل أو أي تنسيق يمكن تحويله إلى الصوت الأصلي أو صورة شبه مطابقة إلا بموافقة صريحة من المستخدم.
يشير "مؤشر الميكروفون" إلى شاشة عرض على الشاشة تكون مرئية باستمرار إلى المستخدم ولا يمكن إخفاؤه، وهو ما يفهمه المستخدم بأن الميكروفون يعمل للاستخدام(من خلال نص أو لون أو رمز فريد أو مزيج من ذلك).
يشير "مؤشر الكاميرا" إلى طريقة عرض على الشاشة، والتي تكون مرئية باستمرار المستخدم ولا يمكن إخفاؤه، وهو ما يفهمه المستخدم بأن الكاميرا قيد الاستخدام (من خلال نص فريد أو لون أو رمز أو مزيج آخر).
بعد عرض الثانية الأولى، يمكن أن يتغير مؤشر بصريًا، مثل أصغر، وليس مطلوبًا أن تظهر بالشكل الأصلي ومفهومًا.
قد يتم دمج مؤشر الميكروفون مع كاميرا معروضة بشكل نشط شريطة أن يشير النص أو الأيقونات أو الألوان للمستخدم إلى بدأ استخدام الميكروفون.
قد يكون مؤشر الكاميرا مدمجًا مع ميكروفون معروض بشكل نشط. شريطة أن يشير النص أو الرموز أو الألوان للمستخدم إلى أن بدأ استخدام الكاميرا.
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone
، سيتم ما يلي:
- [C-SR-1] يُوصى بها بشدة لعرض مؤشر الميكروفون عند استخدام أحد التطبيقات
يصل إلى البيانات الصوتية من الميكروفون، وليس عندما يكون الميكروفون قيد التشغيل
تم الوصول إليه فقط من قِبل
HotwordDetectionService
وSOURCE_HOTWORD
ContentCaptureService
أو التطبيقات التي تمتلك الأدوار الموضّحة في القسم 9.1 الأذونات التي تحمل معرّف CDD [C-3-X]. . - [C-SR-2] يُوصى بها بشدة لعرض قائمة "الملفات الحديثة والنشطة"
التطبيقات التي تستخدم الميكروفون وفقًا لما يظهر من
PermissionManager.getIndicatorAppOpUsageData()
، إلى جانب أي إحالة الرسائل المرتبطة بها. - [C-SR-3] يُوصى بشدة بعدم إخفاء مؤشر الميكروفون تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم
إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.camera.any
، سيتم ما يلي:
- [C-SR-4] يُوصى بها بشدة لعرض مؤشر الكاميرا عند تشغيل التطبيق الوصول إلى بيانات الكاميرا المباشرة، ولكن ليس عند الوصول إلى الكاميرا فقط حسب التطبيقات التي تمتلك الأدوار المذكورة في الفقرة 9.1: الأذونات باستخدام CDD المعرّف [C-3-X].
- [C-SR-5] يُوصى بها بشدة لعرض التطبيقات الحديثة والنشطة باستخدام
الكاميرا التي تم إرجاعها من
PermissionManager.getIndicatorAppOpUsageData()
، إلى جانب أي رسائل تحديد مصدر مرتبطة بها. - [C-SR-6] يُنصح بشدة بعدم إخفاء مؤشر الكاميرا للنظام التطبيقات التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم
9.8.3. إمكانية الاتصال
إذا كانت عمليات تنفيذ الأجهزة تتضمن منفذ USB متوافقًا مع وضع أجهزة USB الطرفية، وهي:
- [C-1-1] يجب تقديم واجهة مستخدم تطلب موافقة المستخدم قبل السماح بالوصول إلى محتوى وحدة التخزين المشتركة عبر منفذ USB.
9.8.4. حركة بيانات الشبكة
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب تثبيت شهادات الجذر نفسها مسبقًا للأجهزة الموثوق بها من النظام. تخزين مرجع التصديق (CA) على أنّه مقدّم في مشروع البرامج المفتوحة المصدر لنظام Android
- [C-0-2] يجب شحنه مع متجر CA جذر مستخدم فارغ.
- [C-0-3] يجب أن يعرض تحذيرًا للمستخدم يشير إلى حركة بيانات الشبكة قد تتم مراقبته، عند إضافة هيئة إصدار شهادات الجذر للمستخدم.
في حال توجيه حركة بيانات الأجهزة من خلال شبكة VPN، ستنطبق عمليات تنفيذ الأجهزة على ما يلي:
- [C-1-1] يجب أن يعرض تحذيرًا للمستخدم يشير إلى:
- قد تتم مراقبة حركة بيانات الشبكة.
- ويتم توجيه حركة بيانات هذه الشبكة عبر شبكة VPN محددة يوفر شبكة VPN.
إذا كانت عمليات تنفيذ الجهاز لها آلية، يتم تفعيلها بشكل تلقائي بشكل افتراضي، والتي
توجِّه حركة بيانات الشبكة عبر خادم وكيل أو بوابة VPN (على سبيل المثال،
التحميل المُسبق لخدمة VPN مع منح إذن android.permission.CONTROL_VPN
)، فإنها:
- [C-2-1] يجب أن تطلب موافقة المستخدم قبل تفعيل هذه الآلية.
ما لم يتم تفعيل شبكة VPN من خلال "وحدة التحكّم بسياسة الجهاز" عبر
DevicePolicyManager.setAlwaysOnVpnPackage()
، وفي هذه الحالة لا يحتاج المستخدِم إلى تقديم موافقة منفصلة، ولكن يجب الإعلام فقط بذلك.
إذا أدت عمليات تنفيذ الأجهزة إلى قدرة المستخدم على التبديل إلى "شبكة VPN قيد التشغيل دائمًا" في تطبيق VPN تابع لجهة خارجية، فإنها:
- [C-3-1] يجب أن توقِف قدرة هذا المستخدم على التعامل مع التطبيقات التي لا تتوافق مع التطبيق.
هي خدمة VPN قيد التشغيل دائمًا في ملف
AndroidManifest.xml
من خلال ضبطSERVICE_META_DATA_SUPPORTS_ALWAYS_ON
إلىfalse
.
9.8.5. معرّفات الأجهزة
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن تمنع الوصول إلى الرقم التسلسلي للجهاز، حيث
سارٍ، IMEI/MEID، والرقم التسلسلي لشريحة SIM، ورقم الجوّال الدولي
هوية المشترِك (IMSI) من أحد التطبيقات، ما لم تستوفِ أيًّا مما يلي
المتطلبات:
- هو تطبيق مشغِّل شبكة جوّال موقَّع تم التحقق منه من قِبل الشركات المصنّعة للأجهزة.
- تم منح الإذن
READ_PRIVILEGED_PHONE_STATE
. - امتيازات مشغِّل شبكة الجوّال على النحو المحدَّد في امتيازات مشغِّل شبكة الجوّال في UICC.
- مالك الجهاز أو مالك الملف الشخصي الحاصل على
إذن
READ_PHONE_STATE
. - (بالنسبة إلى الرقم التسلسلي لشريحة SIM/ICCID فقط) تتطلب اللوائح المحلية أن التطبيق يكتشف التغييرات في هوية المشترك.
9.8.6. "التقاط المحتوى" و"البحث في التطبيقات"والبيانات على مستوى نظام التشغيل
Android، من خلال واجهات برمجة تطبيقات النظام ، وتتوافق مع آلية للجهاز
عمليات التنفيذ لالتقاط ContentCaptureService
،
AugmentedAutofillService
أو AppSearchGlobalManager.query
أو بواسطة مستخدم آخر
وسائل ملكيةتفاعلات بيانات التطبيق بين التطبيقات
المستخدِم
البيانات الحسّاسة:
- النصوص والرسومات المعروضة على الشاشة، بما في ذلك على سبيل المثال لا الحصر،
الإشعارات والبيانات الداعمة عبر
AssistStructure
واجهة برمجة التطبيقات. - بيانات الوسائط، مثل الصوت أو الفيديو، التي تم تسجيلها أو تشغيلها بواسطة الجهاز.
- أحداث الإدخال (مثل المفتاح والماوس والإيماءات والصوت والفيديو وأدوات تسهيل الاستخدام).
بدء متطلبات جديدة
- أي شاشة أو بيانات أخرى يتم إرسالها عبر
AugmentedAutofillService
إلى . - أي شاشة أو بيانات أخرى يمكن الوصول إليها عبر
Content Capture
واجهة برمجة التطبيقات. - أي بيانات شاشة أو بيانات أخرى يمكن الوصول إليها عبر
FieldClassificationService
API - أي بيانات تطبيقات يتم تمريرها إلى النظام عبر
AppSearchManager
API ويمكن الوصول إليها من خلالAppSearchGlobalManager.query
.
إنهاء المتطلبات الجديدة
- أي أحداث أخرى يوفّرها التطبيق للنظام من خلال
Content Capture
واجهة برمجة التطبيقات (API) أوAppSearchManager
API لنظام Android الخاصة بواجهة برمجة تطبيقات خاصة.
- أي رسالة نصية أو بيانات أخرى يتم إرسالها عبر
TextClassifier API
إلى "تصنيف النص" في النظام، أي خدمة النظام لفهم معنى النص، بالإضافة إلى إنشاء إجراءات تالية متنبأ بها استنادًا إلى النص. - البيانات المفهرسة بواسطة النظام الأساسي AppSearch، بما في ذلك على سبيل المثال لا تقتصر على النصوص أو الرسومات أو بيانات الوسائط أو غيرها من البيانات المشابهة.
بدء متطلبات جديدة
- البيانات الصوتية التي تم الحصول عليها نتيجة استخدام
SpeechRecognizer#onDeviceSpeechRecognizer()
بواسطة "أداة التعرّف على الكلام" التنفيذ. - بيانات صوتية يتم الحصول عليها في الخلفية (باستمرار) من خلال
AudioRecord
SoundTrigger
أو واجهات برمجة تطبيقات صوتية أخرى، ولا تؤدي إلى ظهور محتوى مرئي للمستخدم مؤشر - بيانات الكاميرا التي يتم الحصول عليها في الخلفية (باستمرار) من خلال CameraManager أو واجهات برمجة تطبيقات الكاميرا الأخرى، ولن ينتج عن ذلك ظهور مؤشر مرئي للمستخدم
إنهاء المتطلبات الجديدة
إذا رصدت عمليات تنفيذ الأجهزة أيًا من البيانات المذكورة أعلاه، سيحدث ما يلي:
- [C-1-1] يجب تشفير جميع هذه البيانات عند تخزينها في الجهاز. هذا النمط قد يتم تشفيرها باستخدام ميزة "التشفير المستند إلى ملفات Android" أو أي من الرموز المذكورة في الإصدار 26 من واجهة برمجة التطبيقات أو الإصدارات الأحدث الموضحة في حزمة Cipher SDK.
- [C-1-2] يجب ألا يجري الاحتفاظ بنسخة احتياطية من البيانات الأولية أو المشفرة باستخدام طرق الاحتفاظ بنسخة احتياطية من البيانات في جهاز Android أو أي طريقة أخرى لاسترداد البيانات طرق أعلى.
- [C-1-3] يجب أن يرسل جميع هذه البيانات فقط.
والسجلّالجهاز باستخدام آلية للحفاظ على الخصوصية، باستثناء بموافقة صريحة من المستخدم في كل مرة التي تمّت مشاركتها. آلية الحفاظ على الخصوصية بأنها "تلك التي تسمح فقط بالتحليل بشكل مجمَّع وتمنع مطابقة الأحداث المسجَّلة أو النتائج المشتقة بالمستخدمين الفرديين منع أي بيانات لكل مستخدم قد تكون قابلة للتأمل (على سبيل المثال، تنفيذها باستخدام تكنولوجيا خصوصية تفاضلية، مثلRAPPOR
). - [C-1-4] يجب ألا تربط هذه البيانات بأي هوية مستخدم (مثل
باسم
Account
) على الجهاز، إلا في حال الحصول على موافقة صريحة من المستخدم في كل مرة يتم فيها نقل البيانات المرتبطة. - [C-1-5] يجب ألا تتم مشاركة هذه البيانات مع أي مكوّنات أخرى في نظام التشغيل
اتباع المتطلبات الموضحة في القسم الحالي
(9.8.6
التقاط المحتوىعلى مستوى نظام التشغيل وميزة "وضع عدم النشاط" البيانات)، باستثناء الموافقة الصريحة من المستخدم في كل ووقت مشاركتها. ما لم تكن هذه الوظائف تم إنشاؤها كتطبيق واجهة برمجة تطبيقات Android SDK (AmbientContext
،HotwordDetectionService
). - [C-1-6] يجب أن يوفر المستخدم القدرة على محو مثل هذه البيانات التي
الـ
عملية تنفيذ أو تعني الملكية أن يجمعContentCaptureService
إذامتى تخزين البيانات بأي شكل من الأشكال على الجهاز. إذا كانت يختار المستخدم محو البيانات، يجب أن يزيل جميع السجلات التي تم جمعها البيانات - [C-1-7] يجب أن توفر للمستخدم إمكانية إيقاف البيانات التي يتم جمعها من خلال AppSearch أو الأدوات المملوكة من قِبل المستخدمين والتي لا تظهر في نظام Android الأساسي مثلاً: المستخدم.
- [C-SR-1] يُنصح بشدة بعدم طلب إذن INTERNET.
- [C-SR-2] يُوصى بها بشدة للوصول إلى الإنترنت من خلال واجهات برمجة تطبيقات منظمة مدعومة بعمليات تنفيذ مفتوحة المصدر متاحة للجميع.
بدء متطلبات جديدة
- [C-SR-4] يُنصح بشدة بتنفيذها باستخدام Android SDK API أو مستودع مفتوح المصدر مماثل يملكه المصنّع الأصلي للجهاز و / أو تنفيذ التنفيذ في وضع الحماية (راجع عمليات تنفيذ واجهة برمجة التطبيقات 9.8.15 Sandboxed API)
إنهاء المتطلبات الجديدة
إذا كانت عمليات تنفيذ الجهاز تتضمن خدمة تنفِّذ System API
"ContentCaptureService
" أو "AppSearchManager.index
" أو أي خدمة ذات ملكية خاصة
تجمع البيانات كما هو موضح أعلاه، فإنها:
- [C-2-1] يجب ألا يسمح للمستخدمين باستبدال الخدمات بـ تطبيقات أو خدمات قابلة للتثبيت من قِبل المستخدم ويجب أن تسمح فقط الخدمات المثبّتة مسبقًا لتسجيل هذه البيانات.
- [C-2-2] يجب ألا يسمح بأي تطبيقات بخلاف الخدمات المثبَّتة مسبقًا تمكنهم من تسجيل مثل هذه البيانات.
- [C-2-3] يجب أن تتوفر قدرة المستخدم على إيقاف الخدمات.
- [C-2-4] يجب ألا يتم حذف قدرة المستخدم على إدارة أذونات Android التي على الخدمات وتطبيق أذونات Android كما هو موضح في الفقرة 9.1. الإذن.
[C-SR-3] يُنصح بشدة بفصلها عن الخدمات الأخرى مكوّنات النظام(مثل عدم ربط الخدمة أو أرقام تعريف عملية المشاركة) باستثناء ما يلي:
- الاتصالات الهاتفية وجهات الاتصال وواجهة مستخدم النظام والوسائط
يوفّر Android حتى SpeechRecognizer#onDeviceSpeechRecognizer()
إمكانية الاستفادة من الميزات.
التعرف على الكلام على الجهاز، بدون الاستعانة بالشبكة.
يجب أن تتوافق أي عملية تنفيذ لأداة SpeechRecognizer على الجهاز مع السياسات.
الموضحة في هذا القسم.
9.8.7. الوصول إلى الحافظة
عمليات تنفيذ الأجهزة:
[C-0-1] يجب ألا يتم عرض بيانات مقطوعة من الحافظة (على سبيل المثال عن طريق
ClipboardManager
(API) ما لم تعتمد جهة خارجية هو تطبيق IME التلقائي أو هو التطبيق محل التركيز حاليًا.[C-0-2] يجب محو بيانات الحافظة بعد 60 دقيقة كحد أقصى من آخر مرة أو وضعها في حافظة أو قراءتها من حافظة.
9.8.8. الموقع الجغرافي
يتضمن الموقع معلومات في فئة الموقع في Android( مثل خط العرض، خط الطول والارتفاع)، بالإضافة إلى المعرّفات التي يمكن تحويلها إلى بيانات الموقع الجغرافي. قد يكون الموقع جيدًا مثل نظام تحديد المواقع العالمي (DGPS) (نظام تحديد المواقع العالمي التفاضلي) أو تقريبية كالمواقع الجغرافية على مستوى البلد (مثل موقع رمز البلد - مركز عملائي - الجوّال رمز البلد).
في ما يلي قائمة بأنواع المواقع الجغرافية التي تستمد الموقع الجغرافي أو يمكن تحويلها إلى موقع المستخدم الجغرافي. هذه المقالة ليست شاملة ولكن يجب استخدامه كمثال على ما يمكن أن يكون الموقع مُشتقة بشكل غير مباشر من:
- نظام تحديد المواقع العالمي (GPS)/نظام تحديد المواقع العالمي (GNSS)/نظام تحديد المواقع العالمي (DGPS)/بروتوكول PPP
- حل تحديد المواقع العالمي أو نظام التنقل العالمي عبر الأقمار الصناعية أو حل التسويق التفاضلي العالمي
- يشمل ذلك أيضًا قياسات GNSS الأولية وحالة GNSS.
- يمكن استنتاج الموقع الدقيق من قياسات GNSS الأولية.
- التكنولوجيات اللاسلكية ذات المعرّفات الفريدة، مثل:
- نقاط وصول WiFi (MAC أو BSSID أو Name أو SSID)
- بلوتوث/BLE (MAC أو BSSID أو الاسم أو SSID)
- النطاق الفائق العرض (MAC) أو معرِّف مجموعة الخدمات الأساسية (BSSID) أو الاسم أو SSID)
- رقم تعريف البرج الخلوي (3G و4G و5G... بما في ذلك جميع أجهزة المودم الخلوية المستقبلية التكنولوجيات التي لها معرّفات فريدة)
كنقطة مرجعية أساسية، يمكنك الاطلاع على واجهات برمجة تطبيقات Android التي تتطلب أذونات ACCESS_FINE_Location أو ACCESS_COARSE_Location
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب ألا يتم تفعيل/إيقاف إعداد الموقع الجغرافي للجهاز وشبكة Wi-Fi أو بلوتوث. فحص الإعدادات بدون موافقة صريحة من المستخدم أو بدء المستخدم
- [C-0-2] يجب أن توفر للمستخدم إمكانية الوصول إلى الموقع ذي الصلة المعلومات، بما في ذلك الطلبات الأخيرة للوصول إلى الموقع الجغرافي والأذونات على مستوى التطبيق والاستخدام البحث عن شبكات Wi-Fi/البلوتوث لتحديد الموقع.
- [C-0-3] يجب أن يتأكّد من أنّ التطبيق الذي يستخدم واجهة برمجة التطبيقات Virtual Location Bypass API [LocationRequest.setLocationSettingsSettingsd()] هي حالة طوارئ يبدأها المستخدم الجلسة (مثلاً، الاتصال برقم 911 أو إرسال رسالة نصية إلى 911). أمّا بالنسبة إلى السيارات، فيجوز أن تكون بدء جلسة طوارئ بدون تفاعل مستخدم نشط في الحالة تم رصد حادث سير أو حادث سير (لتلبية متطلبات eCall مثلاً).
- [C-0-4] يجب الحفاظ على قدرة واجهة برمجة التطبيقات لتجاوز الموقع في حالات الطوارئ على تجاوز إعدادات الموقع الجغرافي للجهاز بدون تغيير الإعدادات.
- [C-0-5] يجب تحديد موعد إشعار يذكّر المستخدم بعد تثبيت تطبيق ما
وصول الخلفية إلى الموقع الجغرافي باستخدام
إذن [
ACCESS_BACKGROUND_LOCATION
].
9.8.9. التطبيقات المثبّتة
لا يمكن لتطبيقات Android التي تستهدف المستوى 30 أو أعلى لواجهة برمجة التطبيقات الاطّلاع على تفاصيل حول التطبيقات المثبّتة تلقائيًا (راجِع مستوى رؤية الحِزم في نظام التشغيل Android مستندات حزمة SDK).
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب ألا يعرض أي تطبيق يستهدف المستوى 30 أو أعلى لواجهة برمجة التطبيقات. حول أي تطبيق آخر مثبَّت، ما لم يكن التطبيق قادرًا على الاطلاع على التفاصيل بالفعل عن التطبيق الآخر المثبَّت من خلال واجهات برمجة التطبيقات المُدارة. يتضمن ذلك ولكنه ولا يقتصر ذلك على التفاصيل التي تم الكشف عنها من خلال أيّ واجهات برمجة تطبيقات مخصَّصة يضيفها الجهاز. أو المُنفذ أو يمكن الوصول إليه من خلال نظام الملفات.
- [C-0-2] يجب ألا يتم منح أي تطبيق إذنًا بالوصول للقراءة أو الكتابة إلى ملفات في أي تطبيق آخر.
الدليل المخصص للتطبيق
داخل وحدة التخزين الخارجية. في ما يلي الاستثناءات الوحيدة:
- مصدر موفر مساحة التخزين الخارجية (مثل تطبيقات مثل DocumentsUI).
- موفّر خدمة التنزيل الذي يستخدم مرجع موفّر خدمة "عمليات التنزيل" تنزيل الملفات إلى مساحة تخزين التطبيقات.
- تطبيقات بروتوكول نقل الوسائط (MTP) الموقَّعة من النظام الأساسي والتي تستخدم إذن مميّز ACCESS_MTP لتفعيل نقل الملفات إلى على جهاز آخر.
- التطبيقات التي تثبِّت تطبيقات أخرى وتحصل على الإذن INSTALL_PACKAGES يمكنهم الوصول إلى أدلة "obb" فقط لغرض إدارة ملفات البيانات الموسّعة الخاصة بحِزم APK
9.8.10. تقرير خطأ في الاتصال
إذا كانت عمليات تنفيذ الأجهزة تشير إلى علامة ميزة android.hardware.telephony
،
وهي:
- [C-1-1] يجب أن يتيح إنشاء تقارير أخطاء الاتصال عبر
BUGREPORT_MODE_TELEPHONY
مع BugreportManager. - [C-1-2] يجب الحصول على موافقة المستخدم في كل مرة يتم فيها ضبط
BUGREPORT_MODE_TELEPHONY
المستخدمة لإنشاء تقرير ويجب ألا تطلب من المستخدم الموافقة على جميع الطلبات المستقبلية من التطبيق. - [C-1-3] يجب ألا يتم عرض التقرير الذي تم إنشاؤه إلى التطبيق صاحب الطلب بدون موافقة صريحة من المستخدم
- [C-1-4] يجب أن تحتوي التقارير التي تم إنشاؤها باستخدام "
BUGREPORT_MODE_TELEPHONY
" على على الأقل المعلومات التالية:- تفريغ
TelephonyDebugService
- تفريغ
TelephonyRegistry
- تفريغ
WifiService
- تفريغ
ConnectivityService
- ملف تفريغ للمثيل
CarrierService
الخاص بحزمة الاتصال (إذا كان مرتبطًا) - مخزن مؤقت لسجلات الراديو
- تفريغ
SubscriptionManagerService
- تفريغ
- [C-1-5] يجب ألا يتضمن ما يلي في التقارير التي تم إنشاؤها:
- يشير هذا المصطلح إلى أي نوع من المعلومات غير المرتبطة بشكل مباشر بالاتصال. تصحيح الأخطاء.
- أي نوع من سجلات زيارات التطبيقات التي يثبّتها المستخدم أو الملفات الشخصية التفصيلية من التطبيقات/الحزم المثبتة من قبل المستخدم (لا بأس بالمعرّفات الفريدة، بينما لا بأس في استخدام أسماء الحزم لا).
- قد تحتوي على معلومات إضافية غير مرتبطة بأي مستخدم. وهويّتك. (مثل سجلات المورّدين).
إذا كانت عمليات تنفيذ الجهاز تتضمن معلومات إضافية (مثل سجلات البائع) في وأن المعلومات تحتوي على خصوصية/أمان/بطارية/مساحة تخزين/ذاكرة التأثير، فإنها:
- [C-SR-1] يُنصح بشدة بضبط إعدادات المطوّرين التلقائية على
غير مفعّل. ويفي تنفيذ مرجع AOSP هذا من خلال توفير
Enable verbose vendor logging
. في إعدادات المطوّر لتضمين سجلات البائعين الإضافية الخاصة بالجهاز في تقارير الأخطاء.
9.8.11. مشاركة وحدات تخزين البيانات الثنائية الكبيرة
Android، من خلال BlobStoreManager يسمح للتطبيقات بالمساهمة بالملفات الثنائية الكبيرة (BLOB) في النظام لتتم مشاركتها مع مجموعة من التطبيقات.
إذا كانت عمليات تنفيذ الجهاز تتوافق مع وحدات تخزين البيانات الثنائية الكبيرة المشتركة كما هو موضح في مستندات حزمة تطوير البرامج (SDK) وهي:
- [C-1-1] يجب عدم مشاركة وحدات ثنائية كبيرة تنتمي إلى تطبيقات خارج نطاقها المراد السماح به (أي نطاق الوصول الافتراضي وإمكانية الوصول والأوضاع التي يمكن تحديدها باستخدام BlobStoreManager.session#allowPackageAccess()، BlobStoreManager.session#allowSameSignatureAccess()، أو BlobStoreManager.session#allowPublicAccess() يجب عدم تعديله). يفي تنفيذ مرجع AOSP بالآتي: متطلبات المشروع.
- [C-1-2] يجب ألا يتم إرسال علامات التجزئة الآمنة من الجهاز أو مشاركة علامات التجزئة الآمنة مع التطبيقات الأخرى. وحدات تخزين البيانات الثنائية الكبيرة (التي تُستخدم للتحكم في الوصول).
9.8.12. Music Recognition
يدعم Android، من خلال System API MusicRecognitionManager آلية عمليات التنفيذ على الجهاز لطلب التعرف على الموسيقى وإعطائك سجلاً صوتيًا تفويض تطبيقات التعرف على الموسيقى إلى تطبيق متميز ينفذ واجهة برمجة تطبيقات MusicRecognitionService.
إذا كانت عمليات تنفيذ الجهاز تتضمن خدمة تنفِّذ System API MusicRecognitionManager أو أي خدمة خاصة بها تقوم ببث البيانات الصوتية الموضحة أعلاه، فإنها:
- [C-1-1] يجب أن يفرض وصول المتصل بـ MusicRecognitionManager
إذن "
MANAGE_MUSIC_RECOGNITION
" - [C-1-2] يجب أن تفرض عملية التعرف على موسيقى واحدة مثبتة مسبقًا تطبيق MusicRecognitionService.
- [C-1-3] يجب ألا يسمح للمستخدمين باستبدال MusicRecognitionManagerService أو MusicRecognitionService مع تطبيق أو خدمة يمكن للمستخدم تثبيتها.
- [C-1-4] يجب التأكد من أنه عند وصول MusicRecognitionManagerService إلى سجل الصوت وتعيد توجيهه إلى التطبيق الذي ينفذ MusicRecognitionService، يتم تتبع الوصول إلى الصوت من خلال استدعاءات AppOpsManager.noteOp / startOp:
إذا كانت تنفيذات الجهاز لـ MusicRecognitionManagerService أو وتخزِّن خدمة MusicRecognitionService أي بيانات صوتية تم تسجيلها، وهي:
- [C-2-1] يجب ألا يتم تخزين أي بصمات أصابع صوتية أو ملفات صوتية غير أصلية على القرص. أو في الذاكرة لمدة تزيد عن 14 يومًا.
- [C-2-2] يجب ألا تتم مشاركة هذه البيانات خارج نطاق MusicRecognitionService، باستثناء بموافقة صريحة من المستخدم في كل مرة تتم مشاركتها.
9.8.13. مدير الخصوصية في جهاز الاستشعار
إذا كانت عمليات تنفيذ الجهاز تتيح للمستخدم إمكانية إيقاف البرامج الكاميرا و/أو الميكروفون المستخدَم لتنفيذ الجهاز:
- [C-1-1] يجب أن يعرض بدقة "صحيح" عن supportsSensorToggle() طريقة واجهة برمجة التطبيقات.
- [C-1-2] يجب، عندما يحاول أحد التطبيقات الوصول إلى ميكروفون أو كاميرا محظورة، تقدم للمستخدم خصائص مستخدم لا يمكن إغلاقها وتظهر بوضوح يشير إلى أنّ جهاز الاستشعار محظور ويتطلّب اختيار المتابعة الحظر أو إزالة الحظر وفقًا لتنفيذ بروتوكول AOSP الذي يستوفي هذا المتطلب.
- [C-1-3] يجب أن يمرّر فقط إلى التطبيقات بيانات كاميرا وصوت فارغة (أو مزيّفة) وعدم الإبلاغ عن رمز خطأ لأنّ المستخدم لا يشغّل الكاميرا ولا الميكروفون عبر خصائص المستخدم المقدمة وفقًا للإرشادات [C-1-2] أعلاه.
بدء متطلبات جديدة
9.8.14 مدير بيانات الاعتماد
تمّت إزالة الموضوع.
9.8.15 عمليات تنفيذ واجهة برمجة التطبيقات في وضع الحماية
يوفّر Android، من خلال مجموعة من واجهات برمجة التطبيقات المفوَّضة، آلية لمعالجة المشاكل بشكل آمن. البيانات على مستوى نظام التشغيل والبيانات المحيطة يمكن تفويض عمليات المعالجة هذه إلى جهاز مثبت مسبقًا ذات الوصول الامتيازات وإمكانيات الاتصال المخفّضة، والمعروفة باسم تنفيذ واجهة برمجة التطبيقات في وضع الحماية.
أي تنفيذ لواجهة برمجة التطبيقات Sandboxed API:
- [C-0-1] يجب ألا يطلب إذن INTERNET.
- [C-0-2] يجب أن يصل إلى الإنترنت فقط من خلال واجهات برمجة التطبيقات المنظمة التي تدعمها عمليات تنفيذ مفتوحة المصدر ومتاحة للجميع تستخدم الحفاظ على الخصوصية الآلية، أو بشكل غير مباشر عبر واجهات برمجة تطبيقات Android SDK. إن الحفاظ على الخصوصية على أنها "تلك التي تسمح فقط بالتحليل بشكل مجمّع تمنع مطابقة الأحداث المسجّلة أو النتائج المشتقة مع مستخدمين فرديين"، لمنع أي بيانات لكل مستخدم من التدقيق فيها (على سبيل المثال، تنفيذها باستخدام تقنية الخصوصية التفاضلية مثل المرابي).
- [C-0-3] يجب أن يفصل بين الخدمات ومكونات النظام الأخرى
(مثل عدم ربط الخدمة أو أرقام تعريف عملية المشاركة) باستثناء
التالي:
- الاتصالات الهاتفية وجهات الاتصال وواجهة مستخدم النظام والوسائط
- [C-0-4] يجب ألا يسمح للمستخدمين باستبدال الخدمات بـ تطبيق أو خدمة قابلة للتثبيت من قِبل المستخدم
- [C-0-5] يجب أن يسمح فقط للخدمات المثبتة مسبقًا بتسجيل هذه البيانات. ما لم يتم تضمين إمكانية الاستبدال في AOSP (على سبيل المثال، التطبيقات المزوّدة بخدمة "مساعد Google").
- [C-0-6] يجب ألا يسمح بأي تطبيقات بخلاف الخدمات المثبَّتة مسبقًا تمكنهم من تسجيل مثل هذه البيانات. ما لم تكن إمكانية الالتقاط هذه باستخدام واجهة برمجة تطبيقات Android SDK.
- [C-0-7] يجب أن تتوفر قدرة المستخدم على إيقاف الخدمات.
- [C-0-8] يجب ألا يتم إغفال قدرة المستخدم على إدارة أذونات Android التي الخدمات وتتّبع نموذج أذونات Android موصوفة في الفقرة 9.1. الإذن.
9.8.16. البيانات المستمرة للصوت والكاميرا
بالإضافة إلى المتطلبات الموضحة في 9.8.2 التسجيل، 9.8.6 على مستوى نظام التشغيل والبيانات المحيطة وعمليات تنفيذ واجهة برمجة التطبيقات 9.8.15 Sandboxed API وعمليات التنفيذ التي الاستفادة من البيانات الصوتية التي يتم الحصول عليها في الخلفية (بشكل مستمر) من خلال AudioRecord أو SoundTrigger أو واجهات برمجة تطبيقات الصوت الأخرى أو بيانات الكاميرا التي تم الحصول عليها في الخلفية (باستمرار) من خلال CameraManager أو واجهات برمجة تطبيقات الكاميرا الأخرى:
- [C-0-1] يجب فرض مؤشر مطابق (عندما يكون الميكروفون و/أو الكاميرا
وفقًا للفقرة 9.8.2 التسجيل)، ما لم:
- يتم تنفيذ الوصول هذا في عملية تنفيذ في وضع الحماية (يُرجى الاطّلاع على تنفيذ واجهة برمجة التطبيقات 9.8.15 Sandboxed) من خلال حزمة تتضمن واحدًا أو المزيد من الأدوار التالية: System UI Intelligence System Ambient Audio Intelligence System Audio Intelligence مراقبة النظام System Text Intelligence أو الذكاء البصري للنظام.
- يتم الوصول من خلال وضع الحماية، ويتم تنفيذه
يتم الفرض من خلال آليات في AOSP (
HotwordDetectionService
،WearableSensingService
،VisualQueryDetector
). - يتم تنفيذ الوصول إلى الصوت لأغراض مساعدة من قِبل
تطبيق "مساعد Google" الذي يوفّر "
SOURCE_HOTWORD
" كمصدر صوت - يتم تنفيذ الوصول بواسطة النظام وتنفيذه باستخدام التعليمات البرمجية مفتوحة المصدر.
- [C-SR-1] يُنصح بشدة بطلب موافقة المستخدم على كل التي تستخدم هذه البيانات، ويتم إيقافها تلقائيًا.
- [C-SR-2] يُنصح بشدة بتطبيق العلاج نفسه (أي اتباع القيود الموضّحة في الفقرة 9.8.2 للتسجيل والبيانات على مستوى نظام التشغيل 9.8.6 والبيانات المحيطة 9.8.15 عمليات تنفيذ واجهة برمجة التطبيقات Sandboxed، و9.8.16 الصوت والكاميرا المستمران البيانات) إلى بيانات الكاميرا الواردة من جهاز قابل للارتداء عن بُعد.
إذا تم توفير بيانات الكاميرا من جهاز قابل للارتداء عن بُعد وتم الوصول إليها من خلال
نموذج غير مشفّر خارج نظام التشغيل Android، أو تنفيذ في وضع الحماية، أو في وضع الحماية
الوظيفة التي تم إنشاؤها من خلال WearableSensingManager
، وعندها:
- [C-1-1] يجب أن يشير إلى الجهاز القابل للارتداء عن بُعد ستعرض مؤشرًا إضافيًا هناك.
إذا كانت الأجهزة توفّر إمكانية التفاعل مع تطبيق "المساعد الرقمي" بدون الكلمة الرئيسية المعينة (إما التعامل مع استعلامات المستخدم العامة، أو تحليل حضور المستخدم من خلال الكاميرا):
- [C-2-1] يجب أن يضمن توفير هذا التنفيذ من خلال حزمة تحمل
الدور
android.app.role.ASSISTANT
. - [C-2-2] يجب أن يضمن استخدام هذه الطريقة لتنفيذ "
HotwordDetectionService
" و/أوVisualQueryDetectionService
واجهات برمجة تطبيقات Android.
9.8.17. Telemetry
يخزِّن Android سجلّات التطبيقات والنظام باستخدام واجهات برمجة التطبيقات InsightsLog API. تتم إدارة هذه السجلّات. عبر واجهات برمجة تطبيقات InsightsManager، والتي يمكن استخدامها في تطبيقات النظام المميزة.
يوفّر "مدير الإحصاءات" أيضًا وسيلة لجمع البيانات المصنّفة على أنّها متعلّقة بالخصوصية.
حساسة من الأجهزة باستخدام آلية الحفاظ على الخصوصية. وعلى وجه الخصوص،
توفّر واجهة برمجة التطبيقات StatsManager::query
إمكانية طلب البحث عن المقاييس المشروطة
الفئات المحددة
في "سجلّ الإحصاءات".
أي استعلام عن تنفيذ وجمع المقاييس المشروطة من مدير الإحصاءات:
- [C-0-1] يجب أن يكون التطبيق/التطبيق الوحيد على الجهاز وتجميد البيانات
الحصول على إذن
READ_RESTRICTED_STATS
- يجب أن يرسل [C-0-2] بيانات القياس عن بُعد وسجل الجهاز فقط باستخدام للحفاظ على الخصوصية. تم تحديد آلية الحفاظ على الخصوصية "كتلك التي تسمح فقط بالتحليل المجمّع وتمنع مطابقة الأحداث المسجلة أو النتائج المشتقة للمستخدمين الفرديين"، لمنع أي يجب التفكير جيدًا في البيانات لكل مستخدم (على سبيل المثال، تنفيذها باستخدام مقياس تفاضلي تكنولوجيا الخصوصية مثل RAPPOR).
- [C-0-3] يجب ألا تربط هذه البيانات بأي هوية مستخدم (مثل الحساب) على الجهاز.
- [C-0-4] يجب ألا تتم مشاركة هذه البيانات مع مكوّنات نظام التشغيل الأخرى غير المتوافقة المتطلبات الموضحة في القسم الحالي (9.8.17 الحفاظ على الخصوصية القياس عن بُعد).
- [C-0-5] يجب أن يوفر المستخدم القدرة على تفعيل/إيقاف الحفاظ على الخصوصية جمع بيانات القياس عن بُعد واستخدامها ومشاركتها.
- [C-0-6] يجب أن يوفر المستخدم القدرة على محو البيانات التي أداة التنفيذ إذا تم تخزين البيانات بأي شكل على الجهاز. في حال حذف المستخدم الذي اختار محو البيانات، يجب أن يزيل جميع البيانات المخزنة حاليًا على الجهاز.
- [C-0-7] يجب أن يفصح عن تنفيذ بروتوكول الحفاظ على الخصوصية الأساسي في مستودع مفتوح المصدر.
- [C-0-8 ]يجب فرض سياسات خروج البيانات في هذا القسم إلى بوابة جمع البيانات من البيانات في فئات المقاييس المشروطة المحدّدة في "سجلّ الإحصاءات".
إنهاء المتطلبات الجديدة
9.9. تشفير مساحة تخزين البيانات
يجب أن تستوفي جميع الأجهزة متطلبات الفقرة 9.9.1. الأجهزة التي تم تشغيلها على مستوى واجهة برمجة تطبيقات قبل مستوى هذا المستند هي معفاة من متطلبات الفقرتين 9.9.2 و9.9.3؛ بدلاً من ذلك، يجب أن يستوفي المتطلبات الواردة في الفقرة 9.9 من نظام التوافق مع Android. مستند تعريف يتوافق مع مستوى واجهة برمجة التطبيقات الذي تم تشغيل الجهاز عليه.
9.9.1. التشغيل المباشر
عمليات تنفيذ الأجهزة:
[C-0-1] يجب تنفيذ واجهات برمجة تطبيقات وضع التشغيل المباشر حتى إذا إلا أنّها لا تدعم تشفير مساحة التخزين.
[C-0-2]
ACTION_LOCKED_BOOT_COMPLETED
وACTION_USER_UNLOCKED
يجب أن يستمر بث الأهداف لإرسال إشارة إلى التطبيقات التي تتعرف على ميزة التمهيد المباشر. مواقع التخزين باستخدام تشفير الجهاز (DE) وتشفير بيانات الاعتماد (CE) هي متاحة للمستخدم.
9.9.2. متطلبات التشفير
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يشفّر التطبيق خاصًا
البيانات (قسم
/data
)، بالإضافة إلى قسم مساحة التخزين المشتركة في التطبيق (قسم/sdcard
) إذا كان جزءًا نهائيًا غير قابل للإزالة من الجهاز. - [C-0-2] يجب أن يفعّل تشفير تخزين البيانات تلقائيًا في ذلك الوقت أكمل المستخدم تجربة الإعداد الجاهزة.
[C-0-3] يجب أن يستوفي تشفير تخزين البيانات أعلاه من خلال تنفيذ أحد طريقتي التشفير التاليين:
- التشفير المستند إلى الملف (FBE) و تشفير البيانات الوصفية كما هو موضح في الفقرة 9.9.3.1.
- "التشفير على مستوى الحظر" لكل مستخدم كما هو موضَّح في الفقرة 9.9.3.2.
9.9.3. طرق التشفير
في حال تشفير عمليات تنفيذ الأجهزة، سيتم إجراء ما يلي:
- [C-1-1] يجب التمهيد دون تحدي المستخدم في ما يتعلق ببيانات الاعتماد
السماح للتطبيقات التي تستند إلى ميزة "التشغيل المباشر" بالوصول إلى مساحة التخزين المشفَّرة على الجهاز (DE)
بعد بث رسالة
ACTION_LOCKED_BOOT_COMPLETED
. - [C-1-2] يجب السماح بالوصول إلى وحدة تخزين بيانات الاعتماد المشفّرة (CE) فقط بعد
فتح قفل المستخدم للجهاز من خلال تقديم بيانات الاعتماد.
(مثل رمز المرور أو رقم التعريف الشخصي أو النقش أو بصمة الإصبع) و
ACTION_USER_UNLOCKED
. - [C-1-13] يجب ألا يتم توفير أي طريقة لفتح قفل مساحة التخزين المحمية بموجب بروتوكول CE. بدون بيانات الاعتماد التي يوفرها المستخدم أو مفتاح الضمان المسجل أو عند تنفيذ إعادة التشغيل بما يتوافق مع المتطلبات في القسم 9.9.4.
- [C-1-4] يجب استخدام التشغيل المتحقَّق منه.
9.9.3.1. تشفير مستند إلى الملفات باستخدام تشفير البيانات الوصفية
في حال كانت عمليات تنفيذ الأجهزة تستخدم "التشفير المستند إلى الملفات" مع "تشفير البيانات الوصفية"، وهي:
- [C-1-5] يجب تشفير محتوى الملفات والبيانات الوصفية لنظام الملفات باستخدام AES-256-XTS أو Adiantum. ويشير AES-256-XTS إلى معيار التشفير المتقدِّم بطول مفتاح تشفير 256 بت، يعمل في وضع XTS؛ بالطول الكامل هو 512 بت. تشير سمة "Adiantum" إلى Adiantum-XChaCha12-AES، على النحو المحدَّد في https://github.com/google/adiantum بيانات التعريف لنظام الملفات عبارة عن بيانات مثل الأحجام والملكية والأوضاع والسمات الموسّعة (xattrs).
- [C-1-6] يجب تشفير أسماء الملفات باستخدام AES-256-CBC-CTS وAES-256-HCTR2 أو Adiantum.
- [C-1-12] إذا كان الجهاز يتضمّن معيار التشفير المتقدّم (AES) تعليمات (مثل إضافات التشفير ARMv8 على الأجهزة المستندة إلى ARM) AES-NI على الأجهزة التي تستند إلى x86) ثم الخيارات المستندة إلى AES الواردة أعلاه لاسم الملف، ومحتوى الملفات، وتشفير البيانات الوصفية لنظام الملفات، وليس Adiantum.
- [C-1-13] يجب استخدام مفتاح تشفير قوي وغير قابل للعكس دالة الاشتقاق (مثل HKDF-SHA512) لاشتقاق أي مفاتيح فرعية مطلوبة (مثل لكل ملف) من مفتاحَي CE وDE. "القوية في التشفير غير قابل للعكس" يعني أن وظيفة الاشتقاق الرئيسية لها قوة أمان ما لا يقل عن 256 بت وتعمل كدالة عشوائية زائفة العائلة على إدخالاته.
- [C-1-14] يجب ألا يتم استخدام مفاتيح التشفير المستنِدة إلى الملفات (FBE) أو المفاتيح الفرعية نفسها لأغراض تشفير مختلفة (على سبيل المثال، لكلٍ من التشفير والمفتاح أو اشتقاقه أو في خوارزميتَي تشفير مختلفتين).
- [C-1-15] يجب أن يتأكّد من أنّ كل كتل المحتوى المشفَّرة التي لم يتم حذفها على مساحة التخزين الدائمة تم تشفيرها باستخدام مجموعات من مفاتيح التشفير متجه التهيئة (IV) الذي يعتمد على كل من الملف والإزاحة داخل الملف. إضافةً إلى ذلك، يجب أن تكون جميع هذه المجموعات مختلفة، إلا إذا يتم التشفير باستخدام جهاز تشفير مضمّن يتوافق فقط مع طول IV 32 بت.
- [C-1-16] يجب أن يتأكد من أنّ جميع أسماء الملفات المشفّرة التي لم يتم حذفها على نطاقات التخزين في أدلة مميزة تم تشفيرها باستخدام مجموعات مميزة من مفتاح التشفير ومتّجه الإعداد (IV).
[C-1-17] يجب أن يتأكد من أن جميع عمليات حظر البيانات الوصفية لنظام الملفات المشفرة على تم تشفير مساحة التخزين الدائمة باستخدام مجموعات مختلفة من مفاتيح التشفير ومتّجه التهيئة (IV).
المفاتيح التي تحمي مناطق التخزين المتوفرة في أوروبا والشرق الأوسط وأفريقيا والبيانات الوصفية لنظام الملفات:
- [C-1-7] يجب أن يكون مرتبطًا بالتشفير بوحدة تخزين مفاتيح مدعومة بالأجهزة. يجب ربط ملف تخزين المفاتيح هذا بـ "التشغيل المتحقّق منه" ومعدّات الجهاز جذور الثقة.
- [C-1-8] يجب ربط مفاتيح CE ببيانات اعتماد شاشة القفل لدى المستخدم.
- [C-1-9] يجب ربط مفاتيح CE برمز مرور تلقائي عندما لم يتم تحديد بيانات اعتماد لشاشة القفل.
- [C-1-10] يجب أن يكون فريدًا ومتميزًا، بمعنى آخر، لا يجب أن يكون CE أو DE لأي مستخدم يتطابق مع أي مفتاح من مفاتيح CE أو DE لمستخدم آخر.
- يجب أن يستخدم [C-1-11] رموز التشفير وأطوال المفاتيح وسائل النقل.
- [C-1-12] يجب محو البيانات بأمان أثناء فتح قفل برنامج الإقلاع وقفله كما هو موضَّح هنا.
يجب إنشاء تطبيقات أساسية مثبَّتة مسبقًا (مثل المنبّه والهاتف وMessenger) إمكانية التشغيل المباشر
يوفر مشروع برنامج مفتوح المصدر لنظام Android التنفيذ الأمثل يشير هذا المصطلح إلى عملية تشفير قائمة على الملف استنادًا إلى طريقة "fscrypt" الخاصة بنواة Linux. الخاصة بتشفير البيانات، من تشفير البيانات الوصفية على أساس نواة Linux "dm-default-key" الجديدة.
9.9.3.2. التشفير على مستوى الحظر لكل مستخدم
إذا كانت عمليات تنفيذ الأجهزة تستخدم تشفيرًا على مستوى الحظر لكل مستخدم، سيتم إجراء ما يلي:
- [C-1-1] يجب أن يتيح دعم المستخدمين المتعددين كما هو موضح في الفقرة 9.5.
- [C-1-2] يجب توفير أقسام لكل مستخدم، إما باستخدام أقسام أولية أو الأحجام المنطقية.
- [C-1-3] يجب أن يستخدم مفاتيح تشفير فريدة ومميزة لكل مستخدم لأجهزة الكتلة الأساسية.
[C-1-4] يجب استخدام AES-256-XTS للتشفير على مستوى الحظر للمستخدم الأقسام.
المفاتيح التي تحمي الأجهزة المشفَّرة على مستوى الحظر لكل مستخدم:
- [C-1-5] يجب أن يكون مرتبطًا بالتشفير بوحدة تخزين مفاتيح مدعومة بالأجهزة. يجب ربط ملف تخزين المفاتيح هذا بـ "التشغيل المتحقّق منه" ومعدّات الجهاز جذور الثقة.
- [C-1-6] يجب أن يكون مرتبطًا بشاشة قفل المستخدم المعني بيانات الاعتماد.
يمكن تنفيذ التشفير على مستوى الكتلة لكل مستخدم باستخدام نواة Linux "dm-crypt" عبر الأقسام لكل مستخدم.
9.9.4. الاستئناف عند إعادة التشغيل
تسمح ميزة "الاستئناف عند إعادة التشغيل" بفتح قفل مساحة تخزين CE لجميع التطبيقات، بما فيها تلك التي لا تتيح التشغيل المباشر بعد، وذلك بعد إعادة تشغيل الجهاز عبر الهواء. هذا النمط تمكّن المستخدمين من تلقّي الإشعارات من التطبيقات المثبّتة بعد إعادة التشغيل.
يجب أن يستمر تنفيذ عملية Resume-on-إعادة التشغيل لضمان أنه عند تقع في أيدي المهاجم، فمن الصعب للغاية أن يحدث ذلك المهاجم لاسترداد بيانات المستخدم المشفرة من خلال CE، حتى إذا كان الجهاز قيد التشغيل مفعَّل، تم فتح قفل وحدة تخزين CE، وفتح المستخدم قفل الجهاز بعد استلام عبر الهواء. لمقاومة الهجمات الداخلية، نفترض أيضًا أن المهاجم سيحصل على إذن الوصول لبث مفاتيح التوقيع المشفّر.
وعلى وجه التحديد:
[C-0-1] يجب ألا يكون تخزين CE غير قابل للقراءة حتى بالنسبة للمهاجم الذي يمتلك فعليًا الجهاز وتكون له الإمكانيات والقيود التالية:
- يمكن استخدام مفتاح التوقيع الخاص بأي مورّد أو شركة للتوقيع على أساس عشوائي. الرسائل.
- قد يتسبب في استلام الجهاز للتحديث الهوائي (OTA).
- تعديل تشغيل أي جهاز (AP أو الفلاش وما إلى ذلك) باستثناء بالتفصيل أدناه، ولكن هذا التعديل يتضمن تأخيرًا ساعة ودورة طاقة تتلف محتويات ذاكرة الوصول العشوائي.
- لا يمكن تعديل عملية تشغيل الأجهزة المقاومة للتلاعب (مثل Titan M).
- لا يمكن قراءة ذاكرة الوصول العشوائي للجهاز المباشر.
- تعذّر الحصول على بيانات اعتماد المستخدم (رقم التعريف الشخصي أو النقش أو كلمة المرور) أو أو تتسبب في إدخالها.
على سبيل المثال، تنفيذ الجهاز الذي ينفذ ويلتزم بجميع من الأوصاف المتوفّرة هنا سيكون متوافقًا مع [C-0-1].
9.10. سلامة الجهاز
تضمن المتطلبات التالية الشفافية في حالة سلامة الجهاز عمليات تنفيذ الأجهزة:
[C-0-1] يجب أن يتم الإبلاغ بشكل صحيح من خلال طريقة System API
PersistentDataBlockManager.getFlashLockState()
ما إذا كان برنامج الإقلاع تصاريح الولاية وميض صورة النظام.[C-0-2] يجب أن يوفّر التشغيل المتحقّق منه لسلامة الجهاز.
إذا سبق أن بدأت عمليات تنفيذ الجهاز بدون إتاحة التشغيل المتحقّق منه على إصدار سابق من Android ولا يمكن إضافة الدعم لهذا تحديث برنامج النظام، فقد يتم إعفاؤها من المتطلب.
"التشغيل المتحقّق منه" هو ميزة تضمن سلامة الجهاز. البرامج. إذا كانت عمليات تنفيذ الأجهزة تتوافق مع هذه الميزة، سيتم إجراء ما يلي:
- [C-1-1] يجب الإعلان عن علامة ميزة المنصة
android.software.verified_boot
- [C-1-2] يجب إجراء التحقق في كل تسلسل تمهيد.
- [C-1-3] يجب بدء عملية إثبات الهوية من مفتاح جهاز غير قابل للتغيير إلى جذور الثقة، وصولاً إلى قسم النظام.
- [C-1-4] يجب تنفيذ كل مرحلة من مراحل التحقّق للتحقق من السلامة. ومصداقية جميع وحدات البايت في المرحلة التالية قبل تنفيذ التعليمة البرمجية في المرحلة التالية.
- [C-1-5] يجب استخدام خوارزميات التحقق بنفس قوة خوارزميات التحقق الحالية التوصيات من المعهد الوطني للمعايير والتكنولوجيا (NIST) بشأن خوارزميات التجزئة (SHA-256) والمفتاح العام. الأحجام (RSA-2048).
- [C-1-6] يجب ألا يسمح بإكمال التمهيد عند إخفاق التحقق من النظام، ما لم يوافق المستخدم على محاولة التشغيل على أي حال، وفي هذه الحالة ستكون البيانات من يجب عدم استخدام أي وحدات تخزين لم يتم التحقق منها.
- [C-1-7] يجب عدم السماح بتعديل الأقسام التي تم التحقّق منها على الجهاز ما لم يفتح المستخدم قفل برنامج الإقلاع بشكل صريح.
- [C-SR-1] في حال وجود عدة شرائح منفصلة في الجهاز (مثل الراديو معالج صور متخصص)، فإن عملية التشغيل لكل شريحة من هذه الشرائح يُنصح بشدة بالتحقّق من كل مرحلة عند التشغيل.
- [C-1-8] يجب استخدام مساحة تخزين يمكن التلاعب بها: لتخزين ما إذا كان إذا كان برنامج الإقلاع غير مقفَل. تعني مساحة التخزين التي تظهر التلاعب في الذاكرة أنّ برنامج الإقلاع يمكنه اكتشاف ما إذا كان قد تم التلاعب بمساحة التخزين من داخل Android أم لا.
- [C-1-9] يجب أن يطلب من المستخدم أثناء استخدام الجهاز طلب تأكيد مادي قبل السماح بالنقل من برنامج الإقلاع وضع القفل إلى وضع فتح قفل برنامج الإقلاع.
- [C-1-10] يجب تنفيذ الحماية من العودة إلى الحالة السابقة للأقسام التي يستخدمها Android (مثل التشغيل وأقسام النظام) واستخدام وحدة التخزين التي يمكن إثبات التلاعب بها لتخزين البيانات الوصفية المستخدمة لتحديد الحد الأدنى المسموح به لإصدار نظام التشغيل.
- [C-1-11] يجب أن يمحو جميع بيانات المستخدم بأمان أثناء فتح قفل برنامج الإقلاع وفقًا للمعيار 9.12. حذف البيانات" (بما في ذلك قسم userdata أي مسافات NVRAM).
- [C-SR-2] يُنصَح باستخدامها بشدة للتحقّق من جميع ملفات APK الخاصة بالتطبيقات الحاصلة على امتياز والتي تتضمن سلسلة من الثقة المتجذرة في أقسام محمية بميزة "التشغيل المتحقّق منه".
- [C-SR-3] يُوصى بها بشدة للتحقق من أي عناصر قابلة للتنفيذ تم تحميلها بواسطة تطبيق امتياز من خارج ملف APK الخاص به (مثل الرموز البرمجية التي يتم تحميلها ديناميكيًا أو التعليمات البرمجية المجمّعة) قبل تنفيذها أو أوصي بشدة بعدم تنفيذها على الإطلاق.
- يجب تنفيذ الحماية من العودة إلى الحالة السابقة لأي مكوّن يتضمّن قاعدة البرامج الثابتة (مثل المودم والكاميرا) والتي يجب أن تستخدم وحدة تخزين تتيح إظهار التلاعب تخزين بيانات التعريف المستخدمة لتحديد الحد الأدنى من الإصدار المسموح به.
إذا تم إطلاق عمليات تنفيذ الجهاز بالفعل بدون دعم C-1-8 من خلال C-1-11 على إصدار سابق من Android ولا يمكنه إضافة دعم هذه المتطلبات بتحديث برامج النظام، فقد يتم إعفاؤها من متطلبات المشروع.
يوفر المشروع المفتوح المصدر لنظام Android عملية تنفيذ مفضّلة
هذه الميزة في external/avb/
المستودع الذي يمكن دمجه في برنامج الإقلاع المستخدَم للتحميل
Android
عمليات تنفيذ الأجهزة
إذا كان بإمكان عمليات تنفيذ الأجهزة التحقق من الملف على أساس كل صفحة، عندها:
[
ج-0-3فريق الدعم في C-2-1] التحقق من محتوى الملف بطريقة مشفرةمقابل بمفتاح موثوق بهبدون قراءة الملف بالكامل.[
C-0-4C-2-2] يجب ألا يسمح قراءة الطلبات في ملف محمي لتحقيق النجاح عند قراءة المحتوىعدم إجراء التحقُّق من خلال مفتاح موثوق بهلا يتم التحقق منها وفقًا [C-2-1] أعلاه.
بدء متطلبات جديدة
- [C-2-4] يجب عرض المجموع الاختباري للملف في O(1) للملفات المفعّلة.
إنهاء المتطلبات الجديدة
إذا سبق أن تم إطلاق عمليات تنفيذ الأجهزة بدون إمكانية التحقّق ملف المحتوى مقابل مفتاح موثوق به في إصدار Android سابق ولا يمكن إضافته دعم هذه الميزة من خلال تحديث برامج النظام، فقد يتم إعفاؤها عن المطلب. يوفر مشروع برنامج مفتوح المصدر لنظام Android الأساسي التطبيق المفضّل لهذه الميزة استنادًا إلى ميزة fs-verity في نواة Linux.
عمليات تنفيذ الأجهزة:
- [C-SR-4] يُنصَح باستخدامها بشدة لإتاحة واجهة برمجة التطبيقات للحماية من ميزة "التأكيد على Android".
إذا كانت عمليات تنفيذ الأجهزة تتوافق مع ميزة "التأكيد الآمن" من Android واجهة برمجة التطبيقات (API):
[C-3-1] يجب الإبلاغ عن
true
بشأنConfirmationPrompt.isSupported()
واجهة برمجة التطبيقات.[C-3-2] يجب أن يضمن هذا الرمز الذي يتم تشغيله في نظام التشغيل Android، بما في ذلك لا يمكن لأي نواة (kernel) أو ضارة أو غير ذلك، إنشاء استجابة إيجابية بدون تفاعل المستخدم.
[C-3-3] يجب أن يتأكد من تمكّن المستخدم من مراجعة المطلوبة حتى في حالة تعطُّل نظام التشغيل Android، بما في ذلك النواة، للاختراق.
9.11. المفاتيح وبيانات الاعتماد
نظام ملف تخزين مفاتيح Android تسمح لمطوّري التطبيقات بتخزين مفاتيح التشفير في حاوية واستخدامها في عمليات التشفير من خلال KeyChain API أو Keystore API. عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يسمح باستيراد 8192 مفتاحًا أو إنشاؤه على الأقل.
- [C-0-2] يجب أن تنفذ مصادقة شاشة القفل فاصلاً زمنيًا بين المحاولات الفاشلة. عند استخدام n لعدد المحاولات الفاشلة، يكون الوقت الفاصل الزمني يجب أن 30 ثانية على الأقل لمدة 9 < > 30- بالنسبة إلى n > 29، يجب ألا تقل قيمة الفاصل الزمني عن 30*2^دالة((n-30)/10)) ثانية أو 24 ساعة على الأقل، أيهما أصغر.
- يجب ألا يضع حدًا لعدد المفاتيح التي يمكن إنشاؤها.
بدء متطلبات جديدة
- [C-0-3] يجب أن يحدّ من عدد محاولات المصادقة الأساسية التي تعذّر تنفيذها.
- [C-SR-2] يُوصى بها بشدة لتنفيذ حد أقصى يبلغ 20 محاولات المصادقة الأساسية وفي حال وافق المستخدمون على "إعادة الضبط على الإعدادات الأصلية" بعد تجاوز حد تعذّر محاولات المصادقة الأولية.
إذا كانت عمليات تنفيذ الأجهزة تضيف طرق المصادقة أو تعدلها لإتاحة شاشة القفل إذا كانت تستند إلى سر معروف واستخدمت طريقة مصادقة جديدة باعتبارها طريقة آمنة لقفل الشاشة، فيكون ما يلي:
- [C-SR-3] يُنصح بشدة بأن يحتوي رقم التعريف الشخصي على 6 أرقام على الأقل، أو يعادل قصور 20 بت.
- [C-2-1] يجب ألا يسمح رقم التعريف الشخصي الذي يكون طوله أقل من 6 أرقام بإدخال البيانات تلقائيًا بدون تفاعل المستخدم لتجنب الكشف عن طول رقم التعريف الشخصي.
إنهاء المتطلبات الجديدة
عندما يكون تنفيذ الجهاز متوافقًا مع شاشة قفل آمنة:
- [C-1-1] يجب الاحتفاظ بنسخة احتياطية من تنفيذ ملف تخزين المفاتيح باستخدام ملف بيئة التنفيذ.
- [C-1-2] يجب أن يتم تنفيذ الترميزَين RSA وAES وECDSA وECDH (إذا كان IKeyMintDevice متوافقًا)، و3DES، خوارزميات تشفير HMAC وتجزئة MD5 وSHA1 وSHA-2 للتوافق بشكل صحيح مع منصات إدارة مفاتيح Android الخوارزميات في منطقة معزولة بشكل آمن عن التعليمات البرمجية التي تعمل على النواة kernel وما فوقها. يجب أن يحظر العزل الآمن جميع الآليات المحتملة الذي يمكن من خلاله لشفرة kernel أو أو userspace الوصول إلى الحالة الداخلية معزولة، بما في ذلك قانون الأسواق الرقمية. البرامج المفتوحة المصدر لنظام Android يفي المشروع (AOSP) بهذا المطلب باستخدام تنفيذ موثوق به، لكن حل آخر مستنِد إلى ARM TrustZone أو حلاً آمنًا تمت مراجعته من قِبل جهة خارجية تنفيذ عزل صحيح مستند إلى برنامج Hypervisor (مراقب الأجهزة الظاهرية) هو بديل الخيارات.
- [C-1-3] يجب إجراء مصادقة شاشة القفل في الجهاز بيئة التنفيذ وفقط عندما تكون ناجحة، تسمح ببروتوكول المصادقة التي سيتم استخدامها. يجب تخزين بيانات اعتماد شاشة القفل في تتيح لبيئة التنفيذ المعزولة فقط تنفيذ شاشة القفل المصادقة. يوفر المشروع المفتوح المصدر لنظام Android طبقة تجريد أجهزة البوابة (HAL) و Trusty، التي يمكن استخدامها لاستيفاء هذا الشرط.
- [C-1-4] يجب أن يتيح مصادقة المفتاح حيث يكون مفتاح توقيع المصادقة وتتم حمايتها بواسطة أجهزة آمنة ويتم التوقيع عليها في أجهزة آمنة. يجب مشاركة مفاتيح توقيع المصادقة عبر عدد كبير بما يكفي من الأجهزة لمنع استخدام المفاتيح كمعرّفات للأجهزة. اتجاه واحد من استيفاء هذا الشرط هو مشاركة مفتاح المصادقة نفسه ما لم إنتاج 100,000 وحدة على الأقل من رمز تخزين تعريفي معيّن. إذا كان لديك أكثر من 100,000 وحدة يتم إنتاج رمز تخزين تعريفي (SKU)، وقد يتم استخدام مفتاح مختلف لكل 100,000 وحدة.
يُرجى ملاحظة أنّه إذا كان قد تمّ تشغيل تنفيذ الجهاز على إصدار Android سابق
يتم إعفاء هذا الجهاز من طلب توفُّر ملف تخزين مفاتيح.
مدعومة ببيئة تنفيذ معزولة وتدعم المصادقة الرئيسية،
ما لم يتم الإعلان عن ميزة android.hardware.fingerprint
التي تتطلّب
ملف تخزين مفاتيح يعتمد على بيئة تنفيذ معزولة.
- [C-1-5] يجب أن يسمح للمستخدم باختيار مهلة السكون للانتقال من تم فتح قفله إلى حالة القفل، مع إدخال أدنى حد للمهلة المسموح بها يصل إلى 15 ثانية. أجهزة السيارات، التي تقفل الشاشة كلما كانت الوحدة الرئيسية على وضع إيقاف التشغيل أو تبديل المستخدم، فقد لا تشتمل على مهلة السكون التكوين.
- [C-1-6] يجب أن يتيح استخدام أي مما يلي:
- IKeymasterDevice 3.0،
- IKeymasterDevice 4.0،
- IKeymasterDevice 4.1،
- الإصدار 1 من IKeyMintDevice،
- الإصدار 2 من IKeyMintDevice.
- [C-SR-1] يُنصح بشدة بأن يتوافق مع الإصدار 1 من IKeyMintDevice.
9.11.1. شاشة القفل الآمنة والمصادقة والأجهزة الافتراضية
يتبع تنفيذ AOSP نموذج مصادقة متعدد المستويات حيث يمكن أن تدعم المصادقة الأساسية القائمة على مصنع المعرفة إما المقاييس الحيوية الثانوية القوية أو عن طريق وسائط ثلاثية أضعف.
عمليات تنفيذ الأجهزة:
[C-SR-1] يُوصى بشدة بضبط طريقة واحدة فقط مما يلي كمصادقة أساسية :
- رقم تعريف شخصي رقمي
- كلمة مرور أبجدية رقمية
نمط تمرير سريع على شبكة من نقاط 3×3 بالضبط
تجدر الإشارة إلى أنّ طرق المصادقة المذكورة أعلاه يُشار إليها بالأساليب المقترَحة التي ننصح بها طرق المصادقة الأساسية في هذا المستند.
بدء متطلبات جديدة
- [C-0-1] يجب أن يحدّ من عدد محاولات المصادقة الأساسية التي تعذّر تنفيذها.
- [C-SR-5] يوصى بشدة بتنفيذ حد أقصى يبلغ 20 محاولات المصادقة الأساسية وفي حال وافق المستخدمون على الميزة وفعّلوها إجراء "إعادة الضبط على الإعدادات الأصلية" بعد تجاوز حد تعذُّر اجتياز اختبارات الانتخابات التمهيدية محاولات المصادقة.
في حالة تعيين عمليات تنفيذ الجهاز لرقم تعريف شخصي رقمي كرقم التعريف الأساسي الموصى به طريقة المصادقة، ثم:
- [C-SR-6] يُنصح بشدة بأن يحتوي رقم التعريف الشخصي على 6 أرقام على الأقل، أو يعادل قصور 20 بت.
- [C-SR-7] يُنصح بشدة بعدم استخدام رقم تعريف شخصي يقل طوله عن 6 أرقام للسماح بالإدخال التلقائي بدون تفاعل المستخدم من أجل تجنُّب الكشف عن رقم التعريف الشخصي المنقار.
إنهاء المتطلبات الجديدة
في حال إضافة عمليات تنفيذ الجهاز إلى المصادقة الأساسية المقترَحة أو تعديلها واستخدام طريقة مصادقة جديدة كطريقة آمنة لقفل الشاشة، طريقة المصادقة الجديدة:
- [C-2-1] يجب أن تكون طريقة مصادقة المستخدم كما هو موضح في طلب مصادقة المستخدم لاستخدام المفتاح:
في حال إضافة طرق مصادقة أو تعديلها لإلغاء القفل في عمليات تنفيذ الأجهزة شاشة القفل إذا كانت تستند إلى سر معروف واستخدمت مصادقة جديدة يمكن التعامل معها كطريقة آمنة لقفل الشاشة:
- [C-3-1] يجب أن يكون قصور أقصر طول مسموح به للمدخلات أكبر من 10 بت.
- [C-3-2] يجب أن يكون الحد الأقصى لقصور جميع المدخلات الممكنة أكبر من 18 بت.
- [C-3-3] يجب ألا تحل طريقة المصادقة الجديدة محل أي من طرق المصادقة الأساسية المقترَحة (مثل رقم التعريف الشخصي والنقش وكلمة المرور) وتنفيذه وتقديمه في AOSP.
- [C-3-4] يجب تعطيل طريقة المصادقة الجديدة عندما عيَّن تطبيق "وحدة التحكّم بسياسة الجهاز" (DPC) كلمة المرور. متطلبات المشروع من خلال DevicePolicyManager.setrequiredPasswordComplexity() ذات ثابت تعقيد أكثر تقييدًا من password_COMPLEXITY_NONE أو من خلال DevicePolicyManager.setPasswordquality() ذات ثابت أكثر تقييدًا من password_QUALITY_BIOMETRIC_WEAK.
- [C-3-5] يجب أن تعود طرق المصادقة الجديدة إما إلى طرق المصادقة الأساسية الموصى بها (مثل رقم التعريف الشخصي والنقش كلمة المرور) مرة كل 72 ساعة أو أقل أو يتم الإفصاح عنها بوضوح للمستخدم أنه لن يتم نسخ بعض البيانات احتياطيًا للحفاظ على وخصوصية بياناتهم.
في حال إضافة عمليات تنفيذ الجهاز إلى المصادقة الأساسية المقترَحة أو تعديلها الطرق لفتح قفل الشاشة واستخدام طريقة مصادقة جديدة استنادًا إلى المقاييس الحيوية ليتم التعامل معها كوسيلة آمنة لقفل الشاشة، :
- يجب أن يستوفي [C-4-1] جميع المتطلبات الموضّحة في القسم. 7.3.10 بالنسبة إلى الفئة 1 (المعروفة سابقًا باسم الراحة).
- [C-4-2] يجب أن تتوفّر به آلية تراجع لاستخدام إحدى الأدوات طريقة مصادقة أولية تستند إلى سر معروف.
- [C-4-3] يجب أن يتم إيقافها والسماح فقط بالإعلانات الأساسية
المصادقة لفتح قفل الشاشة عندما تستخدم وحدة التحكّم بسياسة الجهاز (DPC)
قد وضع التطبيق سياسة ميزة حماية المفاتيح من خلال استدعاء الطريقة
DevicePolicyManager.setKeyguardDisabledFeatures()
مع أي من علامات المقاييس الحيوية المرتبطة بها (أيKEYGUARD_DISABLE_BIOMETRICS
،KEYGUARD_DISABLE_FINGERPRINT
،KEYGUARD_DISABLE_FACE
أوKEYGUARD_DISABLE_IRIS
).
إذا لم تستوفِ طرق المصادقة بالمقاييس الحيوية المتطلبات للفئة 3 (المعروفة سابقًا باسم قوية) كما هو موضّح في القسم 7.3.10:
- [C-5-1] يجب إيقاف الطرق إذا كانت "وحدة التحكّم بسياسة الجهاز" (DPC)
تطبيق قد عيّن سياسة الجودة لمتطلبات كلمة المرور عبر
DevicePolicyManager.setrequiredPasswordComplexity().
باستخدام حزمة تعقيد أكثر تقييدًا من
PASSWORD_COMPLEXITY_LOW
أو باستخدام DevicePolicyManager.setPasswordquality() أكثر مع ثابت جودة أكثر تقييدًا منPASSWORD_QUALITY_BIOMETRIC_WEAK
- [C-5-2] يجب أن يواجه المستخدم تحديًا للمشاركة في الانتخابات التمهيدية المصادقة (مثلاً: رقم التعريف الشخصي أو النقش أو كلمة المرور) كما هو موضّح في [C-1-7] [C-1-8] في القسم 7.3.10.
- [C-5-3] يجب عدم التعامل مع هذه الطرق كشاشة قفل آمنة، استيفاء المتطلبات التي تبدأ بـ C-8 في هذا القسم أدناه.
في حال إضافة طرق مصادقة أو تعديلها لإلغاء القفل في عمليات تنفيذ الأجهزة شاشة القفل وطريقة مصادقة جديدة تستند إلى رمز مميز مادي أو الموقع:
- [C-6-1] يجب أن تتوفر لديه آلية الرجوع لاستخدام إحدى الأدوات طرق مصادقة أولية تستند إلى سر معروف وتفي متطلبات التعامل مع التطبيق كشاشة قفل آمنة.
- [C-6-2] يجب أن يتم تعطيل الطريقة الجديدة والسماح فقط بواحدة من
طرق المصادقة الأساسية الموصى بها لإلغاء قفل الشاشة عند
حدَّد تطبيق وحدة التحكّم بسياسة الجهاز (DPC) السياسة من خلال أحد الخيارَين التاليَين:
- تشير رسالة الأشكال البيانية
DevicePolicyManager.setKeyguardDisabledFeatures(KEYGUARD_DISABLE_TRUST_AGENTS)
طريقة واحدة - تشير رسالة الأشكال البيانية
DevicePolicyManager.setPasswordQuality()
أكثر مع ثابت جودة أكثر تقييدًا منPASSWORD_QUALITY_NONE
DevicePolicyManager.setRequiredPasswordComplexity()
باستخدام حزمة تعقيد أكثر تقييدًا منPASSWORD_COMPLEXITY_NONE
- تشير رسالة الأشكال البيانية
- [C-6-3] يجب أن يواجه المستخدم أحد التحديات الأساسية الموصى بها طرق المصادقة (مثل رقم التعريف الشخصي والنقش وكلمة المرور) مرة واحدة على الأقل كل 4 ساعات أو أقل. عندما يلتقي الرمز المميز متطلبات عمليات تنفيذ TrustAgent في C-X وقيود المهلة المحددة في C-9-5 يتم تطبيقها بدلاً من ذلك.
- [C-6-4] يجب عدم التعامل مع الطريقة الجديدة كشاشة قفل آمنة ويجب اتبع القيود المدرجة في C-8 أدناه.
إذا كانت عمليات تنفيذ الأجهزة تتضمن شاشة قفل آمنة وتشمل شاشة واحدة أو أكثر
الوكيل المعتمد الذي يستخدم واجهة برمجة التطبيقات TrustAgentService
System API، فإنّه:
- [C-7-1] يجب أن يحتوي على مؤشر واضح في قائمة الإعدادات وعلى القفل. الشاشة عندما يتم تأجيل قفل الجهاز أو يمكن للوكلاء المعتمدين فتح قفله. على سبيل المثال، تستوفي AOSP هذا الشرط من خلال عرض وصف نصي "إعداد القفل تلقائيًا" و"يقفل زر التشغيل على الفور" في قائمة الإعدادات ورمز مميز على شاشة القفل.
- [C-7-2] يجب أن يلتزم بجميع واجهات برمجة تطبيقات الوكيل المعتمد وينفّذها بالكامل في
فئة
DevicePolicyManager
، مثلKEYGUARD_DISABLE_TRUST_AGENTS
ثابت. - [C-7-3] يجب ألا يتم تنفيذ
TrustAgentService.addEscrowToken()
بشكل كامل على جهاز يُستخدم كجهاز شخصي أساسي (مثلاً الأجهزة المحمولة باليد) ولكن قد يتم تنفيذ الدالة بالكامل على الجهاز عمليات التنفيذ التي تتم مشاركتها عادةً (مثل Android TV أو سيارات). - [C-7-4] يجب أن يشفّر كل الرموز المميزة المخزنة التي أضافها
TrustAgentService.addEscrowToken()
- [C-7-5] يجب عدم تخزين مفتاح التشفير أو الرمز المميز للضمان على الجهاز نفسه الذي يُستخدَم المفتاح عليه على سبيل المثال، يُسمح مفتاح مخزَّن على الهاتف لفتح قفل حساب مستخدم على التلفزيون. بالنسبة إلى أجهزة السيارات، لا يُسمح بتخزين الرمز المميّز للضمان. على أي جزء من المركبة.
- [C-7-6] يجب أن يخبر المستخدم بالآثار الأمنية قبل تمكين الرمز المميز للضمان لفك تشفير تخزين البيانات.
- [C-7-7] يجب أن تتوفّر به آلية تراجع لاستخدام إحدى الأدوات طرق المصادقة الأساسية.
[C-7-8] يجب أن يطلب المستخدم إجراء إحدى طرق المصادقة الأساسية الموصى بها (مثل: رقم التعريف الشخصي أو النقش أو كلمة المرور) مرة واحدة على الأقل كل 72 ساعة أو أقل إلا إذا كانت سلامة المستخدم (مثل تشتيت السائق) مصدر قلق.- [C-7-9] يجب أن يواجه المستخدم أحد التحديات الأساسية الموصى بها طرق المصادقة (مثل رقم التعريف الشخصي والنقش وكلمة المرور) كما هو موضح في [C-1-7] و[C-1-8] في القسم 7.3.10، ما لم حيث تكون سلامة المستخدم (مثل تشتيت السائق) مصدر قلق.
- [C-7-10] يجب ألّا يتم التعامل معه كشاشة قفل آمنة ويجب أن يتّبع القيود المدرجة في C-8 أدناه.
- [C-7-11] يجب عدم السماح لموظّفي الدعم الموثوق بهم على الأجهزة الشخصية الأساسية (على سبيل المثال: محمول باليد) لفتح قفل الجهاز ولا يمكن استخدامه إلا الإبقاء على الجهاز الذي سبق أن تم قفله في حالة فتح القفل لمدة تصل إلى 4 ساعات كحد أقصى. يُعد التنفيذ الافتراضي تستوفي TrustManagerService في AOSP هذا الشرط.
- [C-7-12] يجب أن يستخدم تشفيرًا آمنًا (مثل UKEY2) قناة اتصال لتمرير رمز الضمان من مساحة التخزين الجهاز إلى الجهاز المستهدف.
في حال إضافة طرق مصادقة أو تعديلها لإلغاء القفل في عمليات تنفيذ الأجهزة شاشة القفل التي ليست شاشة قفل آمنة كما هو موضح أعلاه، واستخدام طريقة مصادقة جديدة لفتح قفل قفل المفاتيح:
- [C-8-1] يجب إيقاف الطريقة الجديدة عند استخدام "وحدة التحكّم بسياسة الجهاز"
(DPC) قد حدد سياسة جودة كلمة المرور من خلال
DevicePolicyManager.setPasswordQuality()
أكثر مع ثابت جودة أكثر تقييدًا منPASSWORD_QUALITY_NONE
أو عن طريقDevicePolicyManager.setRequiredPasswordComplexity()
ذات ثابت تعقيد أكثر تقييدًا من "password_COMPLEXITY_NONE". - [C-8-2] يجب ألا يعيد المستخدمون ضبط موقّتات انتهاء صلاحية كلمة المرور التي تم ضبطها
DevicePolicyManager.setPasswordExpirationTimeout()
- [C-8-3] يجب ألا تعرض واجهة برمجة التطبيقات لاستخدامها من قبل تطبيقات الجهات الخارجية إلى لتغيير حالة القفل.
إذا كانت عمليات تنفيذ الجهاز تسمح للتطبيقات بإنشاء ثانوية
الشاشات الافتراضية
ولا تتوافق مع أحداث الإدخال المرتبطة، مثل عبر
VirtualDeviceManager
،
وهي:
- [C-9-1] يجب قفل هذه الشاشات الافتراضية الثانوية عندما يتم قفل الشاشة التلقائية، ويمكنك فتح قفل شاشات العرض الافتراضية الثانوية هذه عندما الشاشة التلقائية للجهاز مفتوحة.
في حال كانت عمليات تنفيذ الأجهزة تسمح للتطبيقات بإنشاء شاشات افتراضية ثانوية وتتيح إدخال البيانات المرتبطة الأحداث، مثل VirtualDeviceManager:
- [C-10-1] يجب إتاحة حالات القفل المنفصلة لكل جهاز افتراضي
- [C-10-2] يجب قطع اتصال جميع الأجهزة الافتراضية عند انتهاء مهلة عدم النشاط
- [C-10-3] يجب أن تتضمن مهلة عدم النشاط
- [C-10-4] يجب قفل جميع الشاشات عندما يبدأ المستخدم إلغاء التأمين، بما في ذلك من خلال القدرة على تحمّل تكاليف المستخدم عند شراء الأجهزة المحمولة (راجع القسم 2.2.5[9.11/H-1-2])
- [C-10-5] يجب أن تتوفّر لكل مستخدم مثيلات منفصلة للأجهزة الافتراضية.
- [C-10-6] يجب أن يوقِف إنشاء أحداث الإدخال المرتبطة عبر
VirtualDeviceManager
عند الإشارة إلى ذلك من خلالDevicePolicyManager.setNearbyAppStreamingPolicy
- [C-10-7] يجب استخدام حافظة منفصلة لكل جهاز افتراضي فقط (أو إيقاف الحافظة للأجهزة الافتراضية)
- [C-10-11] يجب إيقاف واجهة المستخدم للمصادقة على الأجهزة الافتراضية، بما في ذلك إدخال عامل المعرفة وطلب المقاييس الحيوية
- [C-10-12] يجب أن تقيّد الأهداف التي تبدأ من جهاز افتراضي للعرض على الجهاز الافتراضي نفسه فقط
- [C-10-13] يجب عدم استخدام حالة قفل الجهاز الافتراضي كمصادقة المستخدم
هو نظام تخزين مفاتيح Android. عرض
KeyGenParameterSpec.Builder.setUserAuthentication*
عندما تسمح عمليات تنفيذ الجهاز للمستخدم بنقل البيانات عامل المعرفة الخاص بالمصادقة من جهاز مصدر إلى جهاز مستهدف مثل الإعداد الأولي للجهاز المستهدَف، فإنها:
- [C-11-1] يجب تشفير عامل المعرفة باستخدام ضمانات الحماية المشابهة وتلك الموضحة في خدمة Google Cloud Key Vault ورقة عمل الأمان عند نقل عامل المعرفة من الجهاز المصدر إلى الجهاز المستهدف، بحيث لا يمكن فك تشفير عامل المعرفة عن بُعد أو استخدامه لفتح القفل عن بُعد أي من الجهازين.
- [C-11-2] يجب أن تطلب من المستخدم على الجهاز المصدر تأكيد عامل المعرفة الخاص بالجهاز المصدر قبل نقل عامل المعرفة إلى الجهاز المستهدف.
- [C-11-3] يجب أن يتوفّر على جهاز مستهدَف لا تتوفّر فيه أي مصادقة أساسية محدَّدة عامل المعرفة، اطلب من المستخدم تأكيد عامل المعرفة الذي تم نقله في الجهاز المستهدف قبل تعيين عامل المعرفة هذا كعامل أساسي عامل معرفة المصادقة للجهاز المستهدف وقبل أي بيانات يتم نقلها من جهاز مصدر.
إذا كانت عمليات تنفيذ الأجهزة تتضمن شاشة قفل آمنة وتشمل شاشة واحدة أو أكثر
الوكلاء المعتمدين، الذين يطلبون واجهة برمجة تطبيقات النظام TrustAgentService.grantTrust()
من خلال
العلامة FLAG_GRANT_TRUST_TEMPORARY_AND_RENEWABLE
بأنهم:
- [C-12-1] يجب فقط الاتصال بـ
grantTrust()
باستخدام العلامة عند الاتصال بـ تقريب الجهاز الفعلي بشاشة قفل خاصة به، وعندما يكون لدى المستخدم وصادقوا على هويتهم مقابل شاشة القفل تلك. يمكن للأجهزة القريبة استخدام آليات اكتشاف الجهاز أثناء حمله أو معصمك بعد فتح قفل الجهاز لمرة واحدة استيفاء متطلبات مصادقة المستخدم. - [C-12-2] يجب أن يتم وضع تنفيذ الجهاز في
TrustState.TRUSTABLE
. الحالة عندما تكون الشاشة مطفأة (عن طريق الضغط على زر أو عرض مثلاً مهلة) ولم يبطِل TrustAgent الثقة. رضا "برنامج شركاء YouTube (AOSP)" لهذا المطلب. - [C-12-3] يجب أن ينقل الجهاز من
TrustState.TRUSTABLE
إلى الحالةTrustState.TRUSTED
إذا كان TrustAgent لا يزال يمنح الثقة استنادًا إلى المتطلبات في C-12-1. - [C-12-4] يجب الاتصال بـ
TrustManagerService.revokeTrust()
- بعد مرور 24 ساعة كحد أقصى من منح الثقة، أو
- بعد مرور فترة عدم النشاط لمدة 8 ساعات
- إذا كانت عمليات التنفيذ لا تستخدم الأمان من خلال التشفير نطاق دقيق كما هو محدد في [C-12-5]، عندما يكون الاتصال الأساسي فقدان الجهاز المادي التقريبي.
- [C-12-5] تعتمد عمليات التنفيذ على نطاقات آمنة ودقيقة لتلبية
متطلبات [C-12-4] يجب أن تستخدم أحد الحلول التالية:
- عمليات التنفيذ باستخدام النطاق الفائق العرض (UWB):
- يجب أن تستوفي معايير المطابقة والاعتماد والدقة متطلبات المعايرة النطاق الفائق العرض (UWB) الموضّح في 7.4.9.
- يجب استخدام أحد أوضاع أمان P-STS الواردة في 7.4.9:
- عمليات التنفيذ باستخدام شبكات التعارف مع شبكات Wi-Fi (NAN):
- يجب أن يفي بمتطلبات الدقة في 2.2.1 [7.4.2.5/H-SR-1]، استخدم معدل نقل بيانات بتردد 160 ميغاهرتز (أو أعلى)، واتّبع خطوات إعداد القياس المحدّدة في معايرة الحضور:
- يجب استخدام LTF الآمن كما هو محدَّد في IEEE 802.11az.
- عمليات التنفيذ باستخدام النطاق الفائق العرض (UWB):
في حال كانت عمليات تنفيذ الأجهزة تسمح للتطبيقات بإنشاء شاشات افتراضية ثانوية وتتيح إدخال البيانات المرتبطة أحداث، مثل VirtualDeviceManager ولم يتم وضع علامة VIRTUAL_DISPLAY_FLAG_SECURE على الشاشات، فإنها:
- [C-13-8] يجب حظر الأنشطة التي تحتوي على السمة android:canDisplayOnRemoteDevices أو البيانات الوصفية android.activity.can_display_on_remote_devices على القيمة "خطأ" ومنعها من البدء على الجهاز الافتراضي الخاص بك.
- [C-13-9] يجب حظر الأنشطة والتي لا تتيح البث والتي تشير إلى أنها تعرض محتوى حساسًا، بما في ذلك من خلال SurfaceView#setSecure، FLAG_SECURE أو SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS، من على الجهاز الافتراضي.
[C-13-10] يجب إيقاف تثبيت التطبيقات التي يتم بدؤها من الأجهزة الافتراضية
إذا كانت عمليات تنفيذ الأجهزة تتيح حالات طاقة شاشة منفصلة من خلال
DeviceStateManager
وتتيح استخدام حالات منفصلة لقفل الشاشة من خلال
KeyguardDisplayManager
، وهي:
- [C-SR-2] يُوصى بها بشدة باستخدام اجتماع بيانات الاعتماد المتطلبات المحددة في الفقرة 9.11.1 أو اجتماع المقاييس الحيوية على الأقل مواصفات الفئة 1 المحددة في الفقرة 7.3.10 للسماح بمعايير الجودة إلغاء القفل من شاشة الجهاز الافتراضية.
- [C-SR-3] يُنصح بشدة بتقييد فتح قفل شاشة منفصلة من خلال مهلة عرض محددة
- [C-SR-4] يُنصَح باستخدامها بشدة للسماح للمستخدم بقفل جميع الشاشات على مستوى العالم من خلال إلغاء التأمين من الجهاز المحمول الأساسي.
9.11.2. جهاز strongBox
يتيح نظام تخزين مفاتيح Android لمطوّري التطبيقات تخزين مفاتيح التشفير في معالج آمن مخصص وكذلك بيئة التنفيذ المعزولة الموضحة أعلاه. مثل والمعالج الآمن المخصص يسمى "StrongBox". المتطلبات C-1-3 من خلال C-1-11 أدناه، حدِّد المتطلبات التي يجب أن يستوفيها الجهاز مؤهل كـ StrongBox.
عمليات تنفيذ الأجهزة التي تتضمّن معالجًا مخصَّصًا وآمنًا:
- [C-SR-1] يُنصح بها بشدة لدعم StrongBox. ستتأكد StrongBox من المحتمل أن تصبح شرطًا في إصدار مستقبلي.
في حال كانت عمليات تنفيذ الأجهزة تتوافق مع StrongBox، سيتم:
[C-1-1] يجب أن يذكر FEATURE_strongBOX_KEYSTORE.
[C-1-2] يجب أن يوفر أجهزة آمنة مخصصة تُستخدم لأغراض الدعم ملف تخزين المفاتيح ومصادقة المستخدم الآمنة. برنامج الأمان المخصّص ويمكن استخدام الأجهزة لأغراض أخرى أيضًا.
[C-1-3] يجب أن يحتوي على وحدة معالجة مركزية منفصلة لا تشارك أي ذاكرة تخزين مؤقت أو ذاكرة DRAM أو معالجات مساعدة أو غيرها من الموارد الأساسية من خلال معالج التطبيقات (AP).
[C-1-4] يجب التأكّد من أنّ أي أجهزة ملحقة تمت مشاركتها مع AP لا يمكنها تغيير معالجة StrongBox بأي شكل من الأشكال أو الحصول على أي معلومات من StrongBox. وقد تؤدي AP إلى إيقاف الوصول إلى StrongBox أو حظره.
[C-1-5] يجب أن تحتوي على ساعة داخلية بدقة معقولة (+-10%) والمحصّنة من التلاعب بواسطة AP.
[C-1-6] يجب أن يحتوي على منشئ أرقام عشوائية فعلي ناتج مخرجات موزَّعة بشكل موحّد ولا يمكن التنبؤ بها.
[C-1-7] يجب أن يتمتع بمقاومة العبث، بما في ذلك المقاومة ضد والاختراق المادي والأعطال.
[C-1-8] يجب أن يكون لديه مقاومة من قناة جانبية، بما في ذلك المقاومة ضد تسرُّب المعلومات عبر الطاقة والتوقيت والإشعاع الكهرومغناطيسي والحرارة قنوات جانب الإشعاع.
[C-1-9] يجب أن يحتوي على مساحة تخزين آمنة تضمن السرية وسلامة وأصالة واتساق وحداثة المحتوى. يجب ألا تكون وحدة التخزين قابلة للقراءة أو التغيير، باستثناء كما هو مسموح به من خلال واجهات برمجة تطبيقات StrongBox.
للتحقّق من الامتثال لمعيار [C-1-3] إلى [C-1-9]، يجب استخدام الجهاز عمليات التنفيذ:
- [C-1-10] يجب أن يتضمن الأجهزة المعتمدة وفقًا لـ ملف تعريف حماية IC الآمن BSI-CC-PP-0084-2014 أو ويتم تقييمها من قبل معمل اختبار معتمَد محليًا يضم يتم تقييم الثغرة الأمنية باحتمالية كبيرة للهجوم وفقًا لـ المعايير المشتركة لتطبيق احتمالية الهجوم على البطاقات الذكية
- [C-1-11] يجب أن يشتمل على البرامج الثابتة التي يتم تقييمها بواسطة مختبر اختبارات معتمَد على المستوى الوطني يضم أسلوب "الهجوم العالي" للثغرات الأمنية المحتملة وفقًا لـ المعايير المشتركة لتطبيق احتمالية الهجوم على البطاقات الذكية:
- [C-SR-2] يُوصى بشدة بتضمين الأجهزة باستخدام هدف الأمان ومستوى ضمان التقييم (EAL) 5، مزيد من المعلومات باستخدام AVA_VAN.5. من المرجح أن تحصل على شهادة EAL 5 شرطًا في إصدار مستقبلي.
- [C-SR-3] يُنصح بشدة بتوفير مقاومة للهجمات الداخلية (IAR)، وهو ما يعني أن شخصًا من الداخل لديه إمكانية الوصول إلى توقيع البرامج الثابتة لا يمكن للمفاتيح إنتاج برامج ثابتة تؤدي إلى تسرُّب جهاز StrongBox سرية، لتجاوز متطلبات الأمان الوظيفية أو تتيح الوصول إلى بيانات المستخدمين الحساسة. تتمثل الطريقة الموصى بها لتنفيذ لا تسمح ميزة IAR بتحديثات البرامج الثابتة إلا عند إدخال كلمة مرور المستخدم الأساسي. يتوفر عبر IAuthSecret HAL.
9.11.3. بيانات اعتماد الهوية
يتم تعريف نظام اعتماد الهوية وتحقيقه من خلال تنفيذ جميع
واجهات برمجة التطبيقات في
android.security.identity.*
طرد. تسمح واجهات برمجة التطبيقات هذه لمطوّري التطبيقات بتخزين هوية المستخدم واستردادها
المستندات. عمليات تنفيذ الأجهزة:
- يُنصَح بشدة بأن يستخدم [C-SR-1] "بيانات اعتماد الهوية" النظام.
في حال استخدام عمليات تنفيذ الأجهزة لـ Identity Credential System، سيتم ما يلي:
[C-1-1] يجب عرض قيمة غير خالية لـ IdentityCredentialStore#getInstance() .
[C-1-2] يجب أن ينفذ نظام بيانات اعتماد الهوية (على سبيل المثال،
android.security.identity.*
واجهات برمجة تطبيقات) مع رمز يتواصل مع جهة موثوق بها التطبيق في منطقة معزولة بشكل آمن عن التعليمات البرمجية التي تعمل على النواة kernel وما فوقها. يجب أن يحظر العزل الآمن جميع الآليات المحتملة الذي يمكن من خلاله لشفرة kernel أو أو userspace الوصول إلى الحالة الداخلية معزولة، بما في ذلك قانون الأسواق الرقمية.[C-1-3] عمليات التشفير اللازمة لتنفيذ Identity يجب أن يكون نظام بيانات الاعتماد (مثل واجهات برمجة تطبيقات
android.security.identity.*
) تنفيذه بالكامل في التطبيق الموثوق به ويجب أن يكون مادة المفتاح الخاص عدم مغادرة بيئة التنفيذ المعزولة مطلقًا ما لم يكن ذلك مطلوبًا تحديدًا من خلال واجهات برمجة التطبيقات ذات المستوى الأعلى (مثل createEphemeralKeypair() ).[C-1-4] يجب تنفيذ التطبيق الموثوق به بطريقة تجعل لن تتأثر خصائص الأمان (على سبيل المثال، لا يتم إصدار بيانات الاعتماد) ما لم يتم استيفاء شروط التحكم في الوصول، فلا يمكن إنشاء عناوين MAC البيانات العشوائية) حتى في حال إساءة أداء Android أو اختراقه.
يوفر "المشروع المفتوح المصدر لنظام Android" مرجعًا تنفيذ تطبيق موثوق به (libeic) التي يمكن استخدامها لتطبيق نظام بيانات اعتماد الهوية.
9.12. حذف البيانات
جميع عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن يوفّر للمستخدمين آلية لتنفيذ "إعادة الضبط على الإعدادات الأصلية".
- [C-0-2] يجب أن يحذف كل البيانات على نظام ملف بيانات المستخدم عند إجراء "إعادة الضبط على الإعدادات الأصلية".
- [C-0-3] يجب أن يحذف البيانات بطريقة تفي بالغرض والمعايير القياسية في المجال مثل معيار المعهد الوطني للمعايير والتكنولوجيا (NIST) SP800-88 عند إجراء عملية "بيانات المصنع" إعادة الضبط".
- [C-0-4] يجب تشغيل عملية "إعادة الضبط على الإعدادات الأصلية" أعلاه عند إعادة
DevicePolicyManager.wipeData()
يتم طلب واجهة برمجة التطبيقات من خلال تطبيق "وحدة التحكّم بسياسة الجهاز" الخاص بالمستخدم الأساسي. - قد يتم توفير خيار مسح البيانات بسرعة لإجراء مسح منطقي للبيانات فقط.
9.13. وضع التشغيل الآمن
يوفّر Android "وضع التشغيل الآمن"، الذي يتيح للمستخدمين بدء تشغيل وضع معيّن. الذي يتيح تشغيل تطبيقات النظام المثبَّتة مسبقًا فقط وجميع تطبيقات الجهات الخارجية إيقاف التطبيقات. وهذا الوضع، المعروف باسم "وضع التشغيل الآمن"، يوفر للمستخدم إمكانية إلغاء تثبيت تطبيقات الجهات الخارجية التي قد تتسبّب بضرر.
في ما يلي إجراءات تنفيذ الأجهزة:
- [C-SR-1] يُنصح بشدة بتنفيذ "وضع التشغيل الآمن".
إذا كانت عمليات تنفيذ الأجهزة تفعِّل "وضع التشغيل الآمن"، سينطبق ما يلي:
[C-1-1] يجب أن يوفر للمستخدم خيارًا الدخول في وضع التشغيل الآمن بطريقة لا تقاطعها جهات خارجية التطبيقات المثبّتة على الجهاز، إلا إذا كان التطبيق التابع لجهة خارجية وحدة التحكم في سياسة الجهاز وتعيين
UserManager.DISALLOW_SAFE_BOOT
وضع علامة عليه كصواب.[C-1-2] يجب أن يوفر للمستخدم القدرة على إلغاء تثبيت أي تطبيقات تابعة لجهات خارجية في الوضع الآمن.
يجب أن توفر للمستخدم خيارًا للدخول في وضع التشغيل الآمن من قائمة "التشغيل" باستخدام سير عمل يختلف عن سير عمل التشغيل العادي.
9.14. عزل أنظمة المركبات في السيارات
من المتوقَّع أن تتبادل أجهزة Android Automotive البيانات مع المركبات المهمة. والأنظمة الفرعية باستخدام HAL للمركبة لإرسال الرسائل وتلقيها عبر شبكات المركبات مثل حافلات كندا.
يمكن تأمين تبادل البيانات من خلال تنفيذ ميزات الأمان أسفل طبقات إطار عمل Android لمنع التفاعل الضار أو غير المقصود مع هذه الأنظمة الفرعية.
9.15. خطط الاشتراك
"خطط الاشتراك" مراجعة تفاصيل خطة علاقة الفوترة المقدّمة
بواسطة مشغل شبكة الجوال من خلال
SubscriptionManager.setSubscriptionPlans()
جميع عمليات تنفيذ الأجهزة:
- [C-0-1] يجب إرجاع خطط الاشتراك فقط إلى تطبيق مشغّل شبكة الجوّال الذي التي قدمها في الأصل.
- [C-0-2] يجب عدم الاحتفاظ بنسخة احتياطية من خطط الاشتراك أو تحميلها عن بُعد.
- [C-0-3] يجب أن يسمح بعمليات الإلغاء فقط، مثل
SubscriptionManager.setSubscriptionOverrideCongested()
، من تطبيق مشغّل شبكة الجوّال الذي يوفّر حاليًا خطط اشتراك صالحة
9.16. نقل بيانات التطبيق
إذا كانت عمليات تنفيذ الجهاز تتضمن إمكانية ترحيل البيانات من جهاز إلى على جهاز آخر، وألا تقصر بيانات التطبيق التي ينسخها على تم إعداده من قبل مطور التطبيق في البيان عبر android:fullBACKUPContent فإنهم:
- [C-1-1] يجب ألا يبدأ عمليات نقل بيانات التطبيق من الأجهزة التي لم يضبط المستخدم مصادقة أساسية عليها موصوفة في 9.11.1 تأمين شاشة القفل والمصادقة:
- [C-1-2] يجب تأكيد المصادقة الأساسية بشكل آمن على المصدر الجهاز والتأكيد مع نية المستخدم في نسخ البيانات إلى المصدر جهازك قبل نقل أي بيانات.
- [C-1-3] يجب استخدام مصادقة مفتاح الأمان لضمان أن كلاً من المصدر الجهاز والجهاز المستهدف في عملية النقل من جهاز إلى آخر. أجهزة Android الشرعية وأن يكون برنامج إقلاع مُقفَلًا فيها
- [C-1-4] يجب نقل بيانات التطبيق فقط إلى التطبيق نفسه على الجهاز المستهدف، يحمل نفس اسم الحزمة وشهادة التوقيع.
- يجب أن يظهر [C-1-5] إشارة إلى أنّ الجهاز المصدر يحتوي على بيانات: من خلال نقل البيانات من جهاز إلى آخر في قائمة الإعدادات مستخدم "لن يكون بالإمكان إزالة هذه الإشارة".
9.17. إطار عمل المحاكاة الافتراضية لنظام التشغيل Android
إذا كان الجهاز يتوافق مع واجهات برمجة تطبيقات إطار عمل المحاكاة الافتراضية على Android (android.system.virtualmachine.*
)، سينفّذ مضيف Android ما يلي:
- يجب أن يتوافق [C-1-1] مع جميع واجهات برمجة التطبيقات المحددة بواسطة
حزمة
android.system.virtualmachine
- [C-1-2] يجب ألا يُعدّل نظام التشغيل Android SELinux ونموذج الإذن الخاص إدارة الأجهزة الافتراضية المحمية (pVM):
- [C-1-3] يجب ألا يعدّل أو يحذف أو يستبدل القواعد الموجودة NOTallow ضمن النظام/سياسة واجهة المستخدم المقدّمة في مشروع البرامج المفتوحة المصدر لنظام Android (AOSP) والسياسة يجب أن يتم التوافق مع جميع قواعد "Neverallow"
- [C-1-4] يجب السماح بالرموز الموقَّعة من النظام الأساسي فقط
التطبيقات المميزة
يجب عدم السماح برمز غير موثوق به (مثل التطبيقات التابعة لجهات خارجية)لإنشاء تشغيلجهاز افتراضي محميمدير الشركاء (pVM) . ملاحظة: قد يتغير ذلك في إصدارات Android المستقبلية.
- [C-1-5] يجب ألا يسمح
بالجهاز الافتراضي المحميمدير الفيديو (pVM) لتنفيذ رمز برمجي وليس جزءًا من صورة المصنع أو تحديثاتها.أي شيء لا يشمله برنامج "التشغيل المُتحقّق منه على Android" (مثل الملفات التي تم تنزيلها من الإنترنت أو من مصدر غير معروف) يجب ألا يُسمح بتشغيله في مكتبة الجهاز الافتراضي:
بدء متطلبات جديدة
- [C-1-5] يجب أن تسمح فقط لوحدة افتراضية خاصة (pVM) لا يمكن تصحيح الأخطاء بها بتنفيذ التعليمات البرمجية من المصنع صورتها أو تحديثات النظام الأساسي الخاصة بها والتي تتضمن أيضًا أي تحديثات للأذونات التطبيقات.
إنهاء المتطلبات الجديدة
إذا كان الجهاز ينفِّذ دعمًا لواجهات برمجة تطبيقات إطار عمل المحاكاة الافتراضية لنظام التشغيل Android (android.system.virtualmachine.*
)، سيتم عندئذٍ تنفيذ أي جهاز جهاز افتراضي محمي.
أداة إدارة الأجهزة الجوّالة (PVM)
مثال:
- [C-2-1] يجب أن يكون قادرًا على تشغيل جميع أنظمة التشغيل المتاحة في
APEX للمحاكاة الافتراضية في
جهاز افتراضي محميمدير الفيديو (pVM) . - [C-2-2] يجب ألا يسمح
بالجهاز الافتراضي المحميمدير الفيديو (pVM) لتشغيل نظام تشغيل التي لم يتم توقيعها من قِبل أداة تنفيذ الجهاز أو مورِّد نظام التشغيل. - [C-2-3] يجب ألا يسمح
بالجهاز الافتراضي المحميمدير الفيديو (pVM) لتنفيذ البيانات كتعليمة برمجية (على سبيل المثال، SELinux nonallow execmem).
- [C-2-4] يجب ألا يعدّل أو يحذف أو يستبدل قواعد NOTallow الموجودة داخل نظام/sepolicy/microdroid المتوفّر في قائمة التطبيقات المفتوحة المصدر لنظام Android (AOSP).
- [C-2-5] يجب تنفيذ
الجهاز الافتراضي المحميمدير الفيديو (pVM) آليات الدفاع العميق (مثل SELinux لأجهزة pVM) حتى مع أنظمة التشغيل غير الصغيرة. - [C-2-6] يجب التأكد من تعذُّر تشغيل الجهاز الافتراضي (pVM)
ورفض تشغيل البرامج الثابتةفي حالتعذُّر عملية التحقق. لا يمكن التحقّق من صورالأولية التي سيتم تشغيل الجهاز الافتراضي عليها. يجب إثبات الملكية داخل الجهاز الافتراضي (VM). - [C-2-7] يجب التأكّد من تعذُّر تشغيل الجهاز الافتراضي (pVM)
ورفض البرامج الثابتةفي حال تم اختراق سلامة المثيل.img.
إذا أتاح الجهاز استخدام واجهات برمجة تطبيقات إطار عمل المحاكاة الافتراضية على Android (android.system.virtualmachine.*
)، سينفّذ برنامج Hypervisor (مراقب الأجهزة الظاهرية) ما يلي:
- [C-3-1] يجب أن تضمن حصر صفحات الذاكرة
لا يمكن الوصول إلى أحد الأجهزة الافتراضية (إما جهاز افتراضي (pVM) أو جهاز افتراضي مضيف) إلا من خلال الجهاز الافتراضي
الجهاز نفسه أو برنامج Hypervisor (مراقب الأجهزة الظاهرية)، وليس من خلال الأجهزة الظاهرية الأخرى، سواء
محمي أو غير محمي.
يجب ألا يسمح لأي جهاز افتراضي بالوصول إلى الصفحة الانتماء إلى شخص آخر (أي جهاز افتراضي (pVM) آخر أو برنامج Hypervisor (مراقب الأجهزة الظاهرية)، ما لم تشارك الصفحة بشكل صريح المالك. ويشمل ذلك الجهاز الافتراضي (VM) الخاص بالمضيف. وينطبق ذلك على عمليات الوصول إلى كل من وحدة المعالجة المركزية (CPU) ومنطقة السوق المحددة. - [C-3-2] يجب حجب بيانات الصفحة بعد استخدامها بواسطة جهاز كمبيوتر افتراضي وقبل إرجاعه إلى المضيف (على سبيل المثال، تعطل الجهاز الافتراضي).
- [C-
3-3SR-1] يُنصَح بشدة بالتأكّد منيجب أن يضمنتحميل البرامج الثابتة للأجهزة الافتراضية (pVM) وتنفيذها قبل أي رمز في جهاز افتراضي (pVM). - [C-3-4] يجب التأكّد من أنّ كل جهاز افتراضي يشتق مفتاح سرّي لكل جهاز افتراضي (VM) لا يمكن الحصول عليه إلّا من خلال مثيل VM المحدَّد والتغييرات التي يتم إجراؤها عند إعادة ضبط الجهاز على الإعدادات الأصلية وإجراء الاتصال عبر الهواء (OTA)
.
إذا كان الجهاز يتوافق مع واجهات برمجة تطبيقات إطار عمل المحاكاة الافتراضية على Android، ثم في جميع المجالات:
- [C-4-1] يجب ألا يتم توفير وظائف للأجهزة الافتراضية التي تسمح بتجاوز نموذج أمان Android
إذا كان الجهاز يتيح استخدام واجهات برمجة التطبيقات لإطار عمل المحاكاة الافتراضية على Android، يجب مراعاة ما يلي:
- يجب أن يكون [C-5-1] قادرًا على إتاحة ميزة "التجميع المعزول" ولكن قد يوقِف ميزة "التجميع المعزول" في عملية شحن الجهاز
لتحديث بيئة تشغيل ART.
إذا كان الجهاز يتيح استخدام واجهات برمجة تطبيقات إطار العمل الافتراضي على Android، يجب اتّباع الخطوات التالية في ما يخصّ "إدارة المفاتيح":
- [C-6-1] يجب أن جذر سلسلة DICE في نقطة لا يمكن للمستخدم تعديلها، حتى في الأجهزة غير المقفلة. (للتأكد من عدم انتحاله).
- [C-SR-2
6-2] يُنصَح بشدة باستخدام DICE كآلية اشتقاق سر لكل جهاز افتراضي.يجب تنفيذ DICE بشكل صحيح، أي تقديم القيم الصحيحة.
10. اختبار توافق البرامج
يجب أن تجتاز عمليات تنفيذ الأجهزة جميع الاختبارات الموضَّحة في هذا القسم. ومع ذلك، تجدر الإشارة إلى أنّه لا تتوفّر حزمة لاختبارات البرامج شاملة تمامًا. لهذا السبب، يُستحسن بشدة من منفّذي الأجهزة لتنفيذ ما يلي: لأقل عدد ممكن من التغييرات على المرجع التي يمكن تنفيذها على نظام Android من خلال مشروع مفتوح المصدر لنظام Android. سيقلل هذا من خطر إدخال أخطاء تؤدي إلى عدم التوافق تتطلب إعادة العمل وتحديثات محتملة للجهاز.
10.1. مجموعة أدوات اختبار التوافق
عمليات تنفيذ الأجهزة:
[C-0-1] يجب أن تجتاز مجموعة اختبار التوافق مع Android (CTS) المتاحة من مشروع Android مفتوح المصدر، باستخدام نموذج الشحن البرامج على الجهاز.
يجب أن يضمن [C-0-2] التوافق في حالات الغموض في CTS وأي إعادة تنفيذ أجزاء من رمز المصدر المرجعي.
تم تصميم CTS للتشغيل على جهاز فعلي. مثل أي برنامج، تمكنت CTS نفسه على أخطاء. سيتم إصدار إصدار CTS بشكل مستقل عن هذا ربما يتم إصدار تعريف التوافق والمراجعات المتعددة من CTS الإصدار 14 من نظام التشغيل Android
عمليات تنفيذ الأجهزة:
[C-0-3] يجب أن يجتاز أحدث إصدار من CTS متاح عند استخدام الجهاز البرنامج.
يجب استخدام تنفيذ المرجع في شجرة البرامج المفتوحة المصدر لنظام Android قدر الإمكان.
10.2. أداة التحقّق من CTS
أداة CTS Verifier مضمَّنة في "مجموعة أدوات اختبار التوافق" أن يتم تشغيله بواسطة مشغل بشري لاختبار الوظائف التي لا يمكن اختباره بواسطة نظام آلي، مثل الأداء الصحيح للكاميرا أجهزة الاستشعار.
عمليات تنفيذ الأجهزة:
- [C-0-1] يجب أن ينفّذ كل الحالات المناسبة بشكل صحيح في أداة التحقّق من CTS.
تُجري أداة CTS Verifier اختبارات للعديد من أنواع الأجهزة، بما فيها بعض الأجهزة. تكون اختيارية.
عمليات تنفيذ الأجهزة:
- [C-0-2] يجب أن يجتاز جميع اختبارات الأجهزة التي يمتلكها. على سبيل المثال، إذا كان لدى الجهاز مقياس تسارع، يجب أن ينفِّذ حالة اختبار مقياس التسارع في جهاز CTS Verifier.
حالات اختبار الميزات المُشار إليها على أنّها اختيارية في "تعريف التوافق" هذا قد يتم تخطي المستند أو حذفه.
- [C-0-2] يجب أن يتم تشغيل أداة CTS Verifier على كل جهاز وكل إصدار بشكل صحيح كما هو موضح أعلاه. ومع ذلك، وبما أنّ العديد من الإصدارات متشابهة إلى حدّ كبير، لا لا يُتوقع من القائمين على التنفيذ تشغيل أداة CTSVerifier بشكل صريح على تختلف في الطرق البسيطة فقط. وعلى وجه التحديد، عمليات تنفيذ الأجهزة التي عن عملية التنفيذ التي اجتازت أداة التحقق من CTS مجموعة اللغات المضمّنة والعلامات التجارية وما إلى ذلك. قد يتم حذف اختبار CTS Verifier.
11. برامج قابلة للتحديث
[C-0-1] يجب أن تتضمن عمليات تنفيذ الأجهزة آلية لاستبدال برنامج النظام بأكمله. لا تحتاج الآلية إلى تنفيذ "منشور" الترقيات، أي أنّه قد يكون عليك إعادة تشغيل الجهاز. ويمكن استخدام أي طريقة، بشرط أن تحل محل نموذج برنامج مثبت مسبقًا على الجهاز. على سبيل المثال، أي مما يلي مختلفة هذا المطلب:
- "عبر شبكة غير سلكيّة (OTA)" التي تم تنزيلها بدون اتصال بالإنترنت عن طريق إعادة التشغيل.
- "Tethered" التحديثات عبر USB من جهاز كمبيوتر مضيف.
- "بلا إنترنت" عن طريق إعادة التشغيل والتحديث من ملف على وحدة تخزين قابلة للإزالة.
[C-0-2] يجب أن تتيح آلية التحديث المستخدمة التحديثات بدون حجب بيانات المستخدم البيانات. أي أن آلية التحديث يجب أن تحتفظ بالبيانات الخاصة للتطبيق البيانات المشتركة للتطبيق. لاحظ أن برنامج Android الرئيسي يتضمن آلية تحديث تستوفي هذا الشرط.
[C-0-3] يجب توقيع التحديث بالكامل وآلية التحديث على الجهاز يجب التحقّق من التحديث والتوقيع مقابل مفتاح عام مخزَّن على الجهاز.
[C-SR-1] يُنصَح بشدة باستخدام آلية التوقيع لاختبار التحديث باستخدام SHA-256 والتحقق من صحة التجزئة مقابل المفتاح العام باستخدام ECDSA NIST P-256.
إذا كانت عمليات تنفيذ الأجهزة تتضمن دعمًا لبيانات لا تفرض تكلفة استخدام مثل 802.11 أو ملف شخصي للرقم PAN (شبكة المنطقة الشخصية) عبر البلوتوث، بعد ذلك، سيقومون بما يلي:
- [C-1-1] يجب إتاحة عمليات التنزيل عبر الهواء مع التحديث بلا اتصال بالإنترنت عن طريق إعادة التشغيل.
يجب أن تتحقق عمليات تنفيذ الأجهزة من أن صورة النظام متطابقة في النظام الثنائي إلى النتيجة المتوقعة بعد التحديث عبر الهواء. التحديث عبر الهواء المستند إلى الكتل عملية التنفيذ في "المشروع المفتوح المصدر لنظام Android" الذي أُضيف منذ إطلاق نظام Android 5.1، تستوفي هذا الشرط.
يجب أيضًا أن تتوافق عمليات تنفيذ الأجهزة مع تحديثات نظام A/B. ينفذ AOSP هذه الميزة باستخدام عنصر التحكم في التشغيل HAL.
إذا تم العثور على خطأ في تنفيذ الجهاز بعد إصداره، ولكن خلال فترة بقاء المنتج المعقولة التي يتم تحديدها بالتشاور مع فريق التوافق مع Android للتأثير في توافق الجهات الخارجية التطبيقات، ثم:
- [C-2-1] يجب على أداة تنفيذ الجهاز تصحيح الخطأ عبر أحد البرامج يتوفر تحديث يمكن تطبيقه وفقًا للآلية التي تم وصفها للتو.
يتضمّن Android ميزات تسمح لتطبيق "مالك الجهاز" (إن توفّر) التحكم في تثبيت تحديثات النظام. إذا كان النظام الفرعي لتحديث النظام في ما يتعلق بالأجهزة، يتم الإبلاغ عن android.software.device_admin بعد ذلك:
- يجب أن ينفِّذ [C-3-1] السلوك الموضّح في SystemUpdatePolicy. الصف.
12. سجل التغييرات في المستند
للحصول على ملخص بالتغييرات التي طرأت على تعريف التوافق في هذا الإصدار:
13. التواصل معنا
يمكنك الانضمام إلى منتدى التوافق مع Android وطلب توضيحات أو طرح أي مشكلات تعتقد أن الوثيقة لا الغلاف.