تعريف التوافق مع Android 4.1

تعريف التوافق مع Android 4.1
المراجعة 3
تاريخ التعديل الأخير: 24 حزيران (يونيو) 2013
حقوق الطبع والنشر © 2012، Google Inc. جميع الحقوق محفوظة.
[email protected]
جدول المحتويات
1. المقدّمة
2- الموارد
3- البرامج
3.1. توافقواجهة برمجة التطبيقات المُدارة
3.2. توافق واجهة برمجة التطبيقات
3.2.1. الأذونات
3.2.2. إنشاء المعلَمات
3.2.3. توافق النوايا
3.2.3.1. Intentsالأساسية للتطبيق
3.2.3.2. Intent Overrides
3.2.3.3. مساحات أسماء Intent
3.2.3.4. Broadcast Intents
3.3. توافق واجهات برمجة التطبيقات الأصلية
3.3.1 واجهات التطبيقات الثنائية
3.4. توافق الويب
3.4.1. توافق WebView
3.4.2. توافق المتصفّح
3.5. التوافق السلوكي لواجهة برمجة التطبيقات
3.6. مساحات أسماء واجهة برمجة التطبيقات
3.7. توافق الآلة الافتراضية
3.8. توافق واجهة المستخدم
3.8.1 تطبيقات المصغّرات
3.8.2 الإشعارات
3.8.3. ابحث عن
3.8.4. الرسائل المنبثقة
3.8.5. المظاهر
3.8.6. Live Wal papers
3.8.7. أحدث إصدارلتطبيق Display
3.8.8. إعدادات إدارة الإدخال
3.8.9. Lock Screen Remote Control (التحكم عن بُعد في شاشة القفل)
3.9 Device Administration (إدارة الجهاز)
3.10 Accessibility (تسهيل الاستخدام)
3.11 Text-to-Speech (تحويل النص إلى كلام)
4. توافق حزمة التطبيق
5- التوافق مع الوسائط المتعددة
5.1. برامج ترميز الوسائط
5.2. ترميز الفيديو
5.3. التسجيل الصوتي
5.4. وقت استجابة الصوت
5.5 بروتوكولات الشبكة
6- توافق أدوات المطوّرين
7. توافق الأجهزة
7.1. الشاشة والرسومات
7.1.1. إعدادات الشاشةعلى
7.1.2. مقاييس الشبكة الإعلانية
7.1.3. اتجاه الشاشة
7.1.4. تسريع الرسومات ثنائية الأبعاد والثلاثية الأبعاد
7
.1.5. وضع التوافق للتطبيقات القديمة
7.1.6. أنواع الشاشة
7.1.7. تكنولوجيا الشاشة
7.2. فيالأجهزة
7.2.1. لوحة المفاتيح
7.2.2. التنقّل بدون لمس
7.2.3. مفاتيح التنقّل
7.2.4. إدخال الشاشة التي تعمل باللمس
7.2.5. إدخال باللمس مزوَّر
7.2.6. الميكروفون
7.3. أجهزة الاستشعار
7.3.1. مقياس التسارع

7.3.1. مقياس التسارع
7.3.2. مقياس المغناطيسية
7.3.3. نظام تحديد المواقع العالمي (GPS)
7.3.4. Gyroscope
7.3.5. مقياس الضغط الجوي
7.3.6. مقياس الحرارة
7.3.7. مقياس الإضاءة
7.3.8. أداة استشعار التقارب
7.4. إمكانية الاتصال بالبيانات
7.4.1. الاتصال الهاتفي
7.4.2. IEEE 802.11 (WiFi)
7.4.2.1. Wi-Fi Direct
7.4.3. البلوتوث
7.4.4. تكنولوجيا الاتصال القصير المدى
7.4.5. الحدّ الأدنى لإمكانات الشبكة
7.5. الكاميرات
7.5.1. الكاميرا الخلفية
7.5.2. الكاميرا الأمامية
7.5.3. سلوك Camera API
7.5.4. اتجاه الكاميرا
7.6. الذاكرة ومساحة التخزين
7.6.1. الحدّ الأدنى للذاكرة ومساحة التخزين
7.6.2. مساحة التخزين المشترَكة للتطبيق
7.7. USB
8. توافق الأداء
9- توافق نموذج الأمان
9.1. الأذونات
9.2. معرّف المستخدم وفصل العمليات
9.3. أذونات نظام الملفات
9.4. بيئات التنفيذ البديلة
10- اختبار التوافق مع البرامج
10.1. مجموعة أدوات اختبار التوافق
10.2. CTS Verifier
10.3. التطبيقات المرجعية
11. البرامج القابلة للتحديث
12. التواصل معنا
الملحق (أ) - إجراءات اختبار البلوتوث

1- مقدّمة
يسرد هذا المستند المتطلبات التي يجب استيفاؤها لكي تكون الأجهزة 
متوافقة مع Android 4.1.
يتم استخدام "يجب" و"يجب عدم" و"مطلوب" و"يجب " و"يجب  عدم" و"يجب" و"يجب عدم"
"مُستحسَن" و"يجوز" و "اختياري" وفقًا لمعيار IETF المحدَّد في RFC2119
[الموارد، 1].
وفقًا للاستخدام في هذا المستند، يشير مصطلح "منفذ الجهاز" أو "منفذ" إلى شخص أو
مؤسسة تطوّر حلّاً للأجهزة/البرامج يعمل بنظام Android 4.1. "تنفيذ
الجهاز" أو "التنفيذ" هو الحلّ للأجهزة/البرامج الذي تم تطويره.
لكي يكون التطبيق متوافقًا مع Android 4.1، يجب أن تستوفي عمليات تنفيذ التطبيق 
المتطلبات الموضّحة في تعريف التوافق هذا، بما في ذلك أي مستندات
تم دمجها من خلال الإشارة.
في حال عدم توفّر أي معلومات أو في حال عدم وضوح أو اكتمال هذا التعريف أو اختبارات البرامج الموضّحة في الفقرة 10، تقع مسؤولية ضمان 
التوافق مع عمليات التنفيذ الحالية على عاتق مطوّرالجهاز.

لهذا السبب، يُعدّ "المشروع المفتوح المصدر لنظام Android" [المراجع، 3] الإصدار المرجعي
 والإصدار المفضّل من Android. ننصحبشدة 
مطوّري الأجهزة باستناد عمليات التنفيذ إلى أكبر قدر ممكن من 
الرمز المصدر "الأساسي" المتاح من "المشروع المفتوح المصدر لنظام Android".
 على الرغم من أنّه يمكن نظريًا استبدال بعض 
المكوّنات بعمليات تنفيذ بديلة، لا ننصح بهذه 
الممارسة بشدة، لأنّ اجتياز اختبارات البرامج سيصبح أكثر 
صعوبة. تقع على عاتق منفذ التطبيق مسؤولية ضمان التوافق السلوكي الكامل مع الإصدار العادي من Android، بما في ذلك وغير ذلك 
مجموعة اختبار التوافق.
 أخيرًا، يُرجى العِلم أنّ هذا المستند يحظر بوضوح بعض عمليات استبدال المكونات و
التعديلات.
2- الموارد
1-  مستويات متطلبات RFC2119 من IETF: http://www.ietf.org/rfc/rfc2119.txt
2-  نظرة عامة حول برنامج التوافق مع Android:
http://source.android.com/compatibility/index.html
3.  مشروع Android المفتوح المصدر: http://source.android.com/
4-  تعريفات واجهة برمجة التطبيقات ومستنداتها:
http://developer.android.com/reference/packages.html
5-  مرجع أذونات Android:
http://developer.android.com/reference/android/Manifest.permission.html
6.  مرجع android.os.Build:
http://developer.android.com/reference/android/os/Build.html
7-  سلسلات الإصدارات المطلوبة لنظام Android 4.1:
http://source.android.com/compatibility/4.1/versions.html
8.  Renderscript:
http://developer.android.com/guide/topics/graphics/renderscript.html
9.  تسريع الأجهزة:
http://developer.android.com/guide/topics/graphics/hardware-accel.html
10.  فئة android.webkit.WebView:
http://developer.android.com/reference/android/webkit/WebView.html
11.  HTML5: http://www.whatwg.org/specs/web-apps/current-work/multipage/
12.  إمكانات HTML5 بلا إنترنت: http://dev.w3.org/html5/spec/Overview.html#offline
13.  علامة فيديو HTML5: http://dev.w3.org/html5/spec/Overview.html#video
14.  HTML5/W3C geolocation API: http://www.w3.org/TR/geolocation-API/
15.  HTML5/W3C webdatabase API: http://www.w3.org/TR/webdatabase/
16.  HTML5/W3C IndexedDB API: http://www.w3.org/TR/IndexedDB/
17.  مواصفات آلة Dalvik الافتراضية: متوفّرة في رمز مصدر Android، على
dalvik/docs
18.  تطبيقات التطبيقات المصغّرة:
http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
19.  الإشعارات:
http://developer.android.com/guide/topics/ui/notifiers/notifications.html
20.  مراجع التطبيق: http://code.google.com/android/reference/available-
resources.html
21.  دليل نمط رمز شريط الحالة:
http://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html
22.  Search Manager:
http://developer.android.com/reference/android/app/SearchManager.html
23.  الرسائل المنبثقة: http://developer.android.com/reference/android/widget/Toast.html
24.  المظاهر: http://developer.android.com/guide/topics/ui/themes.html

25.  فئة R.style: http://developer.android.com/reference/android/R.style.html
26.  خلفيات Wal المتغيّرة: http://developer.android.com/resources/articles/live-
wal papers.html
27.  إدارة أجهزة Android:
http://developer.android.com/guide/topics/admin/device-admin.html
28.  فئة android.app.admin.DevicePolicyManager:
http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html
29.  واجهات برمجة التطبيقات لـ Android Accessibility Service:
http://developer.android.com/reference/android/accessibilityservice/package-
summary.html
30.  واجهات برمجة التطبيقات للتسهيل الاستخدام في Android:
http://developer.android.com/reference/android/view/accessibility/package-
summary.html
31.  مشروع Eyes Free: http://code.google.com/p/eyes-free
32.  واجهات برمجة التطبيقات لتحويل النص إلى كلام:
http://developer.android.com/reference/android/speech/tts/package-
summary.html
33.  مستندات الأدوات المرجعية (لـ adb وaapt وddms):
http://developer.android.com/guide/developing/tools/index.html
34.  وصف ملف apk لنظام Android:
http://developer.android.com/guide/topics/fundamentals.html
35.  ملفات البيان: http://developer.android.com/guide/topics/manifest/manifest-
intro.html
36.  أداة اختبار Monkey:
https://developer.android.com/studio/test/other-testing-tools/monkey
37.  فئة android.content.pm.PackageManager وميزات الأجهزة
في Android:
http://developer.android.com/reference/android/content/pm/PackageManager.html
38.  إتاحة استخدام شاشات متعدّدة:
http://developer.android.com/guide/practices/screens_support.html
39.  android.util.DisplayMetrics:
http://developer.android.com/reference/android/util/DisplayMetrics.html
40.  android.content.res.Configuration:
http://developer.android.com/reference/android/content/res/Configuration.html
41.  android.hardware.SensorEvent:
http://developer.android.com/reference/android/hardware/SensorEvent.html
42.  واجهة برمجة التطبيقات للبلوتوث:
http://developer.android.com/reference/android/bluetooth/package-summary.html
43.  بروتوكول دفع NDEF: http://source.android.com/compatibility/ndef-push-
protocol.pdf
44.  MIFARE MF1S503X: http://www.nxp.com/documents/data_sheet/MF1S503x.pdf
45.  MIFARE MF1S703X: http://www.nxp.com/documents/data_sheet/MF1S703x.pdf
46.  MIFARE MF0ICU1: http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf
47.  MIFARE MF0ICU2:
http://www.nxp.com/documents/short_data_sheet/MF0ICU2_SDS.pdf
48.  MIFARE AN130511:
http://www.nxp.com/documents/application_note/AN130511.pdf
49.  MIFARE AN130411:
http://www.nxp.com/documents/application_note/AN130411.pdf
50.  Camera orientation API:
http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)
51.  android.hardware.Camera:
http://developer.android.com/reference/android/hardware/Camera.html
52.  ملحقات Android المفتوحة:
http://developer.android.com/guide/topics/usb/accessory.html
53.  USB Host API: http://developer.android.com/guide/topics/usb/host.html
54.  مرجع أمان Android والأذونات:
http://developer.android.com/guide/topics/security/security.html
55.  تطبيقات Android: http://code.google.com/p/apps-for-android
56.  فئة android.app.DownloadManager:
http://developer.android.com/reference/android/app/DownloadManager.html
57.  Android File Transfer: http://www.android.com/filetransfer
58.  تنسيقات الوسائط في Android: http://developer.android.com/guide/appendix/media-
formats.html
59.  بروتوكول Draft لبث الوسائط عبر بروتوكول HTTP: http://tools.ietf.org/html/draft-pantos-http-
live-streaming-03
60.  NFC Connection Handover: http://www.nfc-
forum.org/specs/spec_list/#conn_handover
61.  الاقتران الآمن والبسيط عبر البلوتوث باستخدام NFC: http://www.nfc-
forum.org/resources/AppDocs/NFCForum_AD_BTSSP_1_0.pdf
62.  Wifi Multicast API:
http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html

63.  Action Assist:
http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST
64.  مواصفات الشحن عبر USB:
http://www.usb.org/developers/devclass_docs/USB_Battery_Charging_1.2.pdf
65.  Android Beam: http://developer.android.com/guide/topics/nfc/nfc.html
66.  مكبّر صوت USB في Android:
http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO
67.  إعدادات المشاركة عبر NFC في Android:
http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS
68.  Wifi Direct (Wifi P2P):
http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html
69.  Media Remote Control Client:
http://developer.android.com/reference/android/media/RemoteControlClient.html
70.  Motion Event API:
http://developer.android.com/reference/android/view/MotionEvent.html
71.  إعدادات إدخال اللمس: http://source.android.com/tech/input/touch-
devices.html
تم استخراج العديد من هذه المراجع بشكل مباشر أو غير مباشر من حزمة SDK لنظام Android 4.1،
و ستتطابق وظيفيًا مع المعلومات الواردة في مستندات حزمة SDK. في أيّ
حالات يتعارض فيها تعريف التوافق هذا أو مجموعة أدوات اختبار التوافق مع
 مستندات حزمة SDK، تُعتبَر مستندات حزمة SDK هي المرجعية. أي
تفاصيل فنية مقدَّمة في المراجع المضمّنة أعلاه تُعتبر من خلال
التضمين جزءًا من تعريف التوافق هذا.
3- البرامج
3.1. توافق واجهات برمجة التطبيقات المُدارة
بيئة التنفيذ المُدارة (المستندة إلى Dalvik) هي الوسيط الأساسي لتطبيقات Android
. واجهة برمجة تطبيقات Android هي مجموعة من
واجهات نظام Android المكشوفة للتطبيقات التي تُشغَّل في بيئة الأجهزة الافتراضية المُدارة
. يجب أن توفّر عمليات التنفيذ على الأجهزة عمليات تنفيذ كاملة،
 بما في ذلك جميع السلوكيات الموثَّقة لأي واجهة برمجة تطبيقات موثَّقة تعرضها حزمة تطوير البرامج (SDK) لنظام Android
 4.1 [المراجع، 4].
يجب ألا تحذف عمليات تنفيذ التطبيقات على الأجهزةأي واجهات برمجة تطبيقات مُدارة أو تُغيّر واجهات برمجة التطبيقات أو
 التوقيعات أو تخرج عن السلوك المُسجّل أو تُدرِج عمليات لا تؤدي إلى أي نتيجة، إلا في الحالات التي يسمح بها
 تحديدًا هذا التعريف للتوافق.
يسمح تعريف التوافق هذا بحذف بعض أنواع الأجهزة التي يتضمن Android
 واجهات برمجة التطبيقات من خلال عمليات تنفيذ الأجهزة. في مثل هذه الحالات، يجب
 أن تظل واجهات برمجة التطبيقات متوفّرة وتتصرّف بطريقة معقولة. اطّلِع على الفقرة 7 لمعرفة 
المتطلبات المحددة لهذا السيناريو.
3.2. توافق واجهات برمجة التطبيقات "غير الحاسمة"
بالإضافة إلى واجهات برمجة التطبيقات المُدارة من القسم 3.1، يشتمل Android أيضًا على واجهة برمجة تطبيقات "غير حاسمة" مُهمّة 
في وقت التشغيل فقط، على شكل عناصر مثل Intents والأذونات و
العناصر المشابهة لتطبيقات Android التي لا يمكن فرضها في وقت تجميع التطبيق
.
3.2.1. الأذونات
يجب أن توفّر جهات تنفيذ التطبيقات جميع الثوابت للأذونات وتعمل على فرضها على النحو 
الموضّح في صفحة مرجع الأذونات [المراجع، 5]. يُرجى العِلم أنّ القسم 10
يسرد متطلبات إضافية متعلّقة بنموذج أمان Android.
3.2.2. مَعلمات الإصدار
تتضمّن واجهات برمجة تطبيقات Android عددًا من الثوابت في فئة android.os.Build
[Resources, 6] المخصّصة لوصف الجهاز الحالي. لتوفير قيم متسقة
ومفيدة في جميع عمليات تنفيذ الأجهزة، يتضمّن الجدول أدناه 
قيودًا إضافية على تنسيقات هذه القيم التي يجب أن تلتزم بها عمليات تنفيذ الأجهزة
.
المَعلمة
التعليقات
يشير هذا الحقل إلى إصدار نظام Android الذي يتم تنفيذه حاليًا، بتنسيق يمكن لشخص عادي قراءته. يجب أن يحتوي هذا الحقل على 
android.os.Build.VERSION.RELEASE
من قيم السلسلة المحدّدة في [Resources, 7].
يشير هذا المَعلمة إلى إصدار نظام Android الذي يتم تنفيذه حاليًا، بتنسيق يمكن لرمز التطبيق التابعة لجهة خارجية الوصول إليه.
android.os.Build.VERSION.SDK
بالنسبة إلى Android 4.1، يجب أن يحتوي هذا المَعلمة على القيمة الصحيحة 16.

إصدار نظام التشغيل Android الذي يتم تنفيذه حاليًا، بتنسيق يمكن لرمز التطبيق التابع لجهة خارجية الوصول إليه
android.os.Build.VERSION.SDK_INT
بالنسبة إلى Android 4.1، يجب أن يحتوي هذا الحقل على القيمة الصحيحة 16.
قيمة يختارها منفذ الجهاز لتحديد الإصدار المحدد من نظام Android
 الذي يتم تنفيذه حاليًا، بتنسيق يسهل قراءته. يجب عدم إعادة استخدام هذه القيمة لإصدارات مختلفة تتوفّر لـ
android.os.Build.VERSION.INCREMENTAL
المستخدمين النهائيين. ومن الاستخدامات الشائعة لهذا الحقل الإشارة إلى رقم الإصدار أو معرّف تغيير نظام إدارة المصدر الذي
تم استخدامه لإنشاء الإصدار. لا توجد متطلبات محددة لتنسيق هذا الحقل، باستثناء أنّه يجب
ألا يكون قيمة فارغة أو سلسلة فارغة ("").
قيمة يختارها منفذ الجهاز لتحديد الأجهزة الداخلية المحددة التي يستخدمها الجهاز، ب
تنسيق يسهل قراءته من الاستخدامات المحتمَلة لهذا الحقل الإشارة إلى الإصدار المحدّد لللوحة التي تشغّل
android.os.Build.BOARD
الجهاز. يجب أن تكون قيمة هذا الحقل قابلة للترميز بترميز ASCI بسعة 7 بت وتتطابق مع التعبير العادي
"^[a-zA-Z0-9.,_-]+$".
قيمة يختارها منفذ الجهاز لتحديد اسم الشركة أو المؤسسة أو الشخص أو غيرهم
 الذين أنتجوا الجهاز، بتنسيق يسهل قراءته من الاستخدامات المحتمَلة لهذا الحقل الإشارة إلى المصنع الأصلي
android.os.Build.BRAND
و/أو شركة الاتصال التي باعت الجهاز. يجب أن تكون قيمة هذا الحقل قابلة للترميز بترميز ASCI بسعة 7 بت وأن تطابق 
التعبير العادي "^[a-zA-Z0-9.,_-]+$".
اسم مجموعة التعليمات (نوع وحدة المعالجة المركزية + اتفاقية ABI) للترميز التلقائي. راجِع  الفقرة 3.3: توافق واجهة برمجة التطبيقات المضمّنة
android.os.Build.CPU_ABI
.
اسم مجموعة التعليمات الثانية (نوع وحدة المعالجة المركزية + اتفاقية ABI) للرمز البرمجي الأصلي راجِع  القسم 3.3: التوافق مع
android.os.Build.CPU_ABI2
API البرمجي.
قيمة يختارها مُنفِّذ الجهاز لتحديد الإعداد أو الإصدار المحدد للجسم
android.os.Build.DEVICE
(يُشار إلى هذا الاسم أحيانًا بـ "التصميم الصناعي") للجهاز. يجب أن تكون قيمة هذا الحقل قابلة للترميز باستخدام 
ASCI بسعة 7 بت وتتطابق مع التعبير العادي "^[a-zA-Z0-9.,_-]+$".
سلسلة تُعرّف هذه الإصدارة بشكل فريد ويجب أن يكون مفهومًا للبشر بدرجة معقولة. ويجب أن يتّبع هذا
النمط: 
$(BRAND)/$(PRODUCT)/$(DEVICE):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)
على سبيل المثال: 
android.os.Build.FINGERPRINT
acme/mydevice/generic:4.1/JRN53/3359:userdebug/test-keys
يجب ألا يتضمّن معرف الجهاز أحرف مسافات بيضاء. إذا تضمّنت الحقول الأخرى المضمّنة في النموذج أعلاه
أحرف مسافات بيضاء، يجب استبدالها في بصمة الإصدار بحرف آخر، مثل 
الشرطة السفلية ("_"). يجب أن تكون قيمة هذا الحقل قابلة للترميز بترميز ASCI بسعة 7 بت.
اسم الأجهزة (من سطر أوامر النواة أو /proc) يجب أن يكون 
android.os.Build.HARDWARE
مفهومًا بشكل معقول للمستخدمين. يجب أن تكون قيمة هذا الحقل قابلة للترميز بترميز ASCI بسعة 7 بت وتتطابق مع التعبير العادي "^[a-
zA-Z0-9.,_-]+$".
سلسلة تُعرِّف بشكلٍ فريد المضيف الذي تم إنشاء الإصدار عليه، بتنسيق يمكن لشخص عادي قراءته لا تفرض 
android.os.Build.HOST
متطلبات على التنسيق المحدد لهذا الحقل، باستثناء أنّه يجب ألا يكون قيمة فارغة أو سلسلة فارغة ("").
معرّف اختاره مُنفِّذ الجهاز للإشارة إلى إصدار معيّن، بتنسيق يمكن للشخص قراءته. يمكن أن يكون
هذا الحقل مطابقًا لـ android.os.Build.VERSION.INCREMENTAL، ولكن يجب أن يكون 
android.os.Build.ID
ذا قيمة مفيدة للمستخدمين الأخيرين لتمييز إصدارات البرامج. يجب أن تكون قيمة هذا الحقل قابلة للترميز
بترميز ASCI بسعة 7 بت وأن تطابق التعبير العادي "^[a-zA-Z0-9.,_-]+$".
الاسم التجاري للمصنّع الأصلي للجهاز الذي ينتمي إليه المنتج. لا توجد متطلبات على
android.os.Build.MANUFACTURER
التنسيق المحدد لهذا الحقل، باستثناء أنّه يجب ألا يكون قيمة فارغة أو سلسلة فارغة ("").
قيمة يختارها مُنفِّذ الجهاز وتحتوي على اسم الجهاز على النحو المعروف للمستخدم الأخير. يجب أن يكون 
android.os.Build.MODEL
 هو الاسم نفسه الذي يتم تسويق الجهاز بموجبه وبيعه للمستخدمين النهائيين. لا توجد 
متطلبات محددة لتنسيق هذا الحقل، باستثناء أنّه يجب ألا يكون قيمة فارغة أو سلسلة فارغة ("").
قيمة يختارها مطوّر الجهاز وتحتوي على اسم التطوير أو الاسم الرمزي للمنتج
android.os.Build.PRODUCT
(رمز التخزين التعريفي). يجب أن يكون مفهومًا للمستخدمين، ولكن لا يكون مقصودًا بالضرورة لعرضه على المستخدمين النهائيين. يجب أن تكون قيمة هذا
الحقل قابلة للترميز بترميز ASCI بسعة 7 بت وأن تطابق التعبير العادي "^[a-zA-Z0-9.,_-]+$".
الرقم التسلسلي للمعدات، إن توفّر. يجب أن تكون قيمة هذا الحقل قابلة للترميز بترميز ASCI بسعة 7 بت وأن تطابق
android.os.Build.SERIAL
التعبير العادي "^([a-zA-Z0-9]{0,20})$".
قائمة مفصولة بفاصلة للعلامات التي اختارها منفذ الجهاز لتوضيح الإصدار بدقة على سبيل المثال، "unsigned,debug" في
android.os.Build.TAGS
. يجب أن تكون قيمة هذا الحقل قابلة للترميز بترميز ASCI بسعة 7 بت وتتطابق مع 
التعبير العادي "^[a-zA-Z0-9.,_-]+$".
android.os.Build.TIME
قيمة تمثّل الطابع الزمني لوقت إنشاء الإصدار
قيمة يختارها منفذ الجهاز تحدد إعدادات وقت التشغيل للإصدار. يجب أن يحتوي هذا الحقل
 على إحدى القيم المتوافقة مع الإعدادات الثلاثة النموذجية لوقت تشغيل Android: "user"،
android.os.Build.TYPE
"userdebug"، أو "eng". يجب أن تكون قيمة هذا الحقل قابلة للترميز بترميز ASCI بسعة 7 بت وأن تطابق 
التعبير العادي "^[a-zA-Z0-9.,_-]+$".
اسم أو رقم تعريف مستخدم (أو مستخدم مبرمَج) أنشأ الإصدار لا توجد متطلبات على
android.os.Build.USER
التنسيق المحدد لهذا الحقل، باستثناء أنّه يجب ألا يكون قيمة فارغة أو سلسلة فارغة ("").
3.2.3. توافق Intent
يجب أن تلتزم عمليات تنفيذ التطبيقات بنظام Intent المرتبط بأجهزة Android على النحو

الموضّح في الأقسام أدناه. يُقصد بـ "الالتزام" أنّه على مطوّر التطبيق 
توفير نشاط أو خدمة Android تحدّد فلتر أهداف مطابقًا و
ترتبط بالسلوك الصحيح وتنفّذه لكل نمط أهداف محدد.
3.2.3.1. Intents للتطبيقات الأساسية
يحدِّد مشروع Android upstream عددًا من التطبيقات الأساسية، مثل جهات الاتصال
والتقويم ومعرض الصور ومشغِّل الموسيقى وما إلى ذلك. يجوز لمُنفِّذِي الأجهزة استبدال
هذه التطبيقات بإصدارات بديلة.
ومع ذلك، يجب أن تلتزم أي إصدارات بديلة بأنماط Intent نفسها المتوفّرة
 في المشروع الأساسي. على سبيل المثال، إذا كان الجهاز يحتوي على مشغّل موسيقى بديل،
يجب أن يحترم الجهاز نمط Intent الذي تصدره التطبيقات التابعة لجهات خارجية لاختيار أغنية.
تُعد التطبيقات التالية تطبيقات أساسية لنظام Android:
ساعة المكتب
المتصفّح
التقويم
جهات الاتصال
المعرض
البحث العمومي
المشغِّل
الموسيقى
الإعدادات
تتضمّن تطبيقات نظام Android الأساسية مكونات مختلفة لنشاط أو خدمة
تُعدّ "عامة". أي أنّ السمة "android:exported" قد لا تكون متوفّرة، أو
قد يكون لها القيمة "true".
بالنسبة إلى كل نشاط أو خدمة محدَّدَين في أحد تطبيقات نظام Android الأساسية التي لم يتم
وضع علامة "غير عام" عليهما من خلال السمة android:exported بالقيمة "false"، يجب أن تتضمن عمليات
تنفيذ التطبيق على الجهاز مكوّنًا من النوع نفسه ينفِّذ
أنماط فلتر الأهداف نفسها مثل تطبيق نظام Android الأساسي.
بمعنى آخر، يجوز أن تحلّ عمليات تنفيذ التطبيق على الجهاز مكان تطبيقات نظام Android الأساسية،
ولكن في هذه الحالة، يجب أن تتوافق عمليات تنفيذ التطبيق على الجهاز مع جميع أنماط الأهداف المحدَّدة
من خلال كل تطبيق نظام Android أساسي يتم استبداله.
3.2.3.2. إلغاء Intent
بما أنّ Android هو منصّة قابلة للتوسيع، يجب أن تسمح عمليات تنفيذ الأجهزة بإلغاء كل نمط Intent
 المُشار إليه في الفقرة 3.2.3.2 من خلال تطبيقات تابعة لجهات خارجية. يسمح
الإصدار الأحدث من الإصدار المفتوح لنظام Android بهذا تلقائيًا، ويجب على
مطوّري التطبيقات عدم منح امتيازات خاصة لتطبيقات النظام لاستخدام 
نماذج Intent هذه، أو منع التطبيقات التابعة لجهات خارجية من الربط بهذه النماذج واستخدامها.
 ويشمل هذا الحظر تحديدًا ولكن ليس حصرًا
إيقاف واجهة مستخدم "أداة الاختيار" التي تسمح للمستخدم باختيار أحد 
التطبيقات المتعددة التي تعالج نمط Intent نفسه.
ومع ذلك، قد توفّر عمليات تنفيذ الأجهزة أنشطة تلقائية لأشكال معيّنة من عناوين URL
 (مثل http://play.google.com) إذا كان النشاط التلقائي يوفّر فلترًا أكثر تحديدًا
 لعنوان URL البيانات. على سبيل المثال، فلتر النوايا الذي يحدّد معرّف المورد المطلق للبيانات
"http://www.android.com" يكون أكثر تحديدًا من فلتر المتصفّح لـ "http://". يجب أن توفّر عمليات تنفيذ التطبيقات على الأجهزة واجهة مستخدم للمستخدمين لتعديل النشاط التلقائي
 للنوايا.

3.2.3.3. مساحات أسماء Intent
يجب ألا تتضمن عمليات تنفيذ الأجهزة أي مكوّن Android يتوافق مع أيّ
نمط جديد لIntent أو Intent البث باستخدام سلسلة ACTION أو CATEGORY أو سلسلة مفتاح أخرى
 في مساحة الاسم android.* أو com.android.*. يجب ألا يضمّن مطوّرو الأجهزة 
أي مكونات Android تلتزم بأي نماذج جديدة لطلبات Intent أو Broadcast Intent
باستخدام سلسلة مفتاح ACTION أو CATEGORY أو سلسلة مفتاح أخرى في مساحة حزمة تعود إلى
مؤسسة أخرى. يجب ألا يغيّر مطوّرو الأجهزة أو يوسّعوا أيًا من نماذج Intent
 التي تستخدمها التطبيقات الأساسية المُدرَجة في الفقرة 3.2.3.1. يجوز لعمليات تنفيذ التطبيقات على الأجهزة
تضمين نماذج Intent باستخدام مساحات أسماء مرتبطة بوضوح وبشكل واضح ب
مؤسستها الخاصة.
يشبه هذا الحظر الحظر الموضَّح لفصول لغة Java في الفقرة
3.6.
3.2.3.4. بث المهام
تعتمد التطبيقات التابعة لجهات خارجية على المنصة لبث مهام معيّنة لإعلامها

بالتغييرات في بيئة الأجهزة أو البرامج. يجب أن تبث الأجهزة المتوافقة مع Android
 Intents البث العلني استجابةً لأحداث
 النظام المناسبة. يتم وصف إشارات البث في مستندات حزمة تطوير البرامج (SDK).
3.3. توافق واجهات برمجة التطبيقات الأصلية
3.3.1 واجهات التطبيقات الثنائية
يمكن للرمز المُدار الذي يعمل في Dalvik التحويل إلى رمز برمجي أصلي مُقدَّم في ملف التطبيق
.apk كملف ELF ‎ .so من المجمَّع لبنية أجهزة الجهاز المعنية.
بما أنّ الرمز البرمجي الأصلي يعتمد بشكلٍ كبير على تكنولوجيا المعالج الأساسية، يحدِّد نظام Android
 عددًا من واجهات التطبيقات الثنائية (ABIs) في مجموعة تطوير البرامج (NDK) لنظام Android، في الملف
docs/CPU-ARCH-ABIS.html. إذا كان تطبيق الجهاز متوافقًا مع واحد أو أكثر
من معرّفات ABI المحدّدة، يجب أن يتوافق مع مجموعة تطوير البرامج (NDK) لنظام Android، على النحو الموضّح أدناه.
إذا كان تطبيق الجهاز يتضمّن دعمًا لواجهة التطبيق الثنائية (ABI) لنظام Android، يجب أن:
يتضمّن دعمًا للرموز البرمجية التي تُشغّل في البيئة المُدارة لتحويلها إلى
رموز برمجية أصلية، باستخدام معاني واجهة Java البرمجية الأصلية (JNI)
يكون متوافقًا مع الرمز المصدر (أي متوافقًا مع الرأس) ومتوافقًا مع الثنائي (ل
واجهة التطبيق الثنائية) مع كل مكتبة مطلوب استخدامها في القائمة أدناه
يُبلِغ بدقة عن واجهة التطبيق الثنائية (ABI) الأصلية المتوافقة
مع الجهاز، من خلال واجهة برمجة التطبيقات android.os.Build.CPU_ABI
يُبلِغ فقط عن واجهات التطبيق الثنائية المُوثَّقة في أحدث إصدار من
مجموعة تطوير البرامج (NDK) لنظام Android، في الملف docs/CPU-ARCH-ABIS.txt
يجب إنشاءه باستخدام الرمز المصدر وملفات الرأس المتوفّرة في
المشروع المفتوح المصدر لنظام Android
يجب توفُّر واجهات برمجة التطبيقات للرموز البرمجية الأصلية التالية للتطبيقات التي تضمّن رموزًا برمجية أصلية:
libc (مكتبة C)
libm (مكتبة الرياضيات)
الحدّ الأدنى من الدعم للغة C++
واجهة JNI
liblog (تسجيل النشاط في Android)
libz (ضغط Zlib)
libdl (الرابط الديناميكي)
libGLESv1_CM.so (OpenGL ES 1.0)
libGLESv2.so (OpenGL ES 2.0)
libEGL.so (إدارة سطح OpenGL الأصلي)
libjnigraphics.so
libOpenSLES.so (دعم الصوت OpenSL ES 1.0.1)
libOpenMAXAL.so (دعم OpenMAX AL 1.0.1)
libandroid.so (دعم نشاط Android الأصلي)
دعم OpenGL، على النحو الموضّح أدناه
يُرجى العِلم أنّ الإصدارات المستقبلية من مجموعة تطوير البرامج (NDK) لنظام Android قد توفّر دعمًا لواجهات تطبيق ثنائية (ABI) إضافية.
 إذا لم يكن تطبيق الجهاز متوافقًا مع معرّف بنية أساسية محدّد مسبقًا، 
يجب عدم الإبلاغ عن توافقه مع أي معرّف بنية أساسية على الإطلاق .
إنّ التوافق مع الرموز البرمجية التلقائية هو تحدٍّ. لهذا السبب، يجب التذكير بأنّه 
يُنصح بشدة لمطوّري الأجهزة باستخدام عمليات الطرح
 للمكتبات المُدرَجة أعلاه للمساعدة في ضمان التوافق.
3.4. توافق الويب
3.4.1. توافق WebView
يستخدم الإصدار المفتوح المصدر من Android محرك عرض WebKit ل
تنفيذ android.webkit.WebView. بما أنّه من غير الممكن تطوير 
مجموعة اختبارات شاملة لنظام عرض الويب، يجب على مطوّري الأجهزة استخدام
الإصدار المحدد من WebKit في تنفيذ WebView. على وجه التحديد:
يجب أن تستند عمليات تنفيذ android.webkit.WebView لعمليات تنفيذ الأجهزة 
إلى الإصدار 534.30 من WebKit من شجرة الإصدارات السابقة لمشروع Android المفتوح المصدر
لنظام Android 4.1. يتضمّن هذا الإصدار مجموعة معيّنة من 
إصلاحات الوظائف والأمان لـ WebView. يجوز لمطوّري التطبيقات على الأجهزة إدراج تخصيصات لتطبيق 
WebKit، ولكن يجب ألا تؤدي أي من هذه التخصيصات إلى تغيير 
سلوك WebView، بما في ذلك سلوك العرض.
يجب أن تكون سلسلة وكيل المستخدِم التي يعرضها WebView بهذا التنسيق:
Mozilla/5.0 (Linux; U; Android $(VERSION); $(LOCALE); $(MODEL)
Build/$(BUILD)) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.1
Mobile Safari/534.30
يجب أن تكون قيمة سلسلة $(VERSION) متطابقة مع القيمة في

يجب أن تكون قيمة سلسلة $(VERSION) متطابقة مع القيمة في
android.os.Build.VERSION.RELEASE
يجب أن تكون قيمة سلسلة $(LOCALE) متطابقة مع المعيار ISO لترميز
رمز البلد واللغة، ويجب أن تشير إلى اللغة
المحددة حاليًا على الجهاز
يجب أن تكون قيمة سلسلة $(MODEL) متطابقة مع القيمة في
android.os.Build.MODEL
يجب أن تكون قيمة سلسلة $(BUILD) متطابقة مع القيمة في
android.os.Build.ID
يجوز لتطبيقات الأجهزة حذف كلمة Mobile في سلسلة وكيل المستخدِم
يجب أن يتضمّن مكوّن WebView دعمًا لأكبر قدر ممكّن من HTML5
[Resources, 11] على الأقل، يجب أن تتوافق عمليات تنفيذ التطبيقات على الأجهزة مع كل من
واجهات برمجة التطبيقات هذه المرتبطة بHTML5 في WebView:
ذاكرة التطبيق المؤقتة/العمل بلا اتصال  بالإنترنت [المراجع، 12]
علامة