مستوى واجهة برمجة التطبيقات: 5
Android 2.0 هو إصدار نظام أساسي رئيسي قابل للتوزيع على الهواتف المحمولة التي تعمل بنظام Android بدءًا من تشرين الثاني (نوفمبر) 2009. يتضمّن الإصدار ميزات جديدة للمستخدمين والمطوّرين، بالإضافة إلى تغييرات في واجهة برمجة تطبيقات إطار عمل Android.
تتوفّر منصّة Android 2.0 للمطوّرين كأحد المكونات التي يمكن تنزيلها لحزمة تطوير البرامج (SDK) لنظام التشغيل Android. يتضمّن النظام الأساسي القابل للتنزيل مكتبة Android وصورة نظام متوافقة بالكامل بالإضافة إلى مجموعة من تصميمات المحاكيات ونماذج التطبيقات وغيرها. النظام الأساسي القابل للتنزيل متوافق تمامًا ولا يتضمن مكتبات خارجية.
لبدء تطوير التطبيقات أو اختبارها على نظام Android 2.0 الأساسي، استخدِم حزمة تطوير البرامج (SDK) لنظام التشغيل Android وأداة AVD Manager لتنزيل النظام الأساسي في حزمة SDK.
أبرز الميزات في المنصة
للحصول على قائمة بالميزات الجديدة للمستخدمين وأهم الميزات في النظام الأساسي، اطّلِع على مستند أهم الميزات في نظام Android 2.0 الأساسي.
التطبيقات المضمنة
توفّر صورة النظام المضمّنة في المنصة القابلة للتنزيل التطبيقات التالية المضمّنة:
|
|
اللغات
توفّر صورة النظام المضمّنة في المنصة القابلة للتنزيل مجموعة متنوعة من اللغات المضمّنة. في بعض الحالات، تتوفّر سلاسل خاصة بمنطقة معيّنة للغات. وفي الحالات الأخرى، يتم استخدام إصدار تلقائي من اللغة. يمكنك الاطّلاع أدناه على اللغات المتوفرة في صورة نظام Android 2.0 (مع وصف اللغة language_country/region).
|
|
تطابق سلاسل واجهة المستخدم المترجمة اللغات التي يمكن الوصول إليها من خلال "الإعدادات".
مظاهر المحاكي
يتضمن النظام الأساسي القابل للتنزيل مجموعة من مظاهر المحاكيات التي يمكنك استخدامها لتصميم تطبيقك بأحجام شاشات ودرجات دقة مختلفة. مظاهر المحاكيات هي:
- QVGA (240x320، كثافة منخفضة، شاشة صغيرة)
- WQVGA (240×400، كثافة منخفضة، شاشة عادية)
- FWQVGA (240x432، كثافة منخفضة، شاشة عادية)
- HVGA (320×480، كثافة متوسطة، شاشة عادية)
- WVGA800 (480×800، كثافة عالية، شاشة عادية)
- WVGA854 (دقة عالية 480x854، شاشة عادية)
لمزيد من المعلومات حول كيفية تطوير تطبيق يعرض المحتوى ويعمل بشكل صحيح على جميع الأجهزة التي تعمل بنظام التشغيل Android، يُرجى الاطّلاع على مقالة إتاحة التطبيق على شاشات متعددة.
ميزات المطوّرين
تقدِّم الأقسام أدناه معلومات عن الميزات الجديدة لمطوّري البرامج والتي يقدِّمها مكوّن النظام الأساسي Android 2.0 القابل للتنزيل.
فريق دعم Ant
- توقيع التطبيق في وضع تصحيح الأخطاء ووضع الإصدار يتضمن التوقيع في وضع الإصدار دعمًا متكاملاً لتحسين
zipalign
. لمزيد من المعلومات، يمكنك الاطّلاع على توقيع طلباتك. - إضافة نظام إنشاء Ant جديد مع دعم مشاريع أداة قياس الأداء Emma (تغطية الرمز البرمجي)
واجهة برمجة تطبيقات إطار العمل
تقدّم الأقسام أدناه معلومات عن واجهة برمجة التطبيقات لإطار عمل التطبيق التي يوفّرها نظام التشغيل Android 2.0.
مستوى واجهة برمجة التطبيقات
يقدم النظام الأساسي Android 2.0 إصدارًا محدثًا من واجهة برمجة تطبيقات إطار العمل. كما هو الحال مع الإصدارات السابقة، تم منح واجهة برمجة التطبيقات Android 2.0 معرّفًا عدديًا - 5 - يتم تخزينه في النظام نفسه. ويتيح هذا المعرّف، الذي يُعرف باسم "مستوى واجهة برمجة التطبيقات"، للنظام تحديد ما إذا كان أحد التطبيقات متوافقًا مع النظام بشكل صحيح، قبل تثبيت التطبيق.
لاستخدام واجهات برمجة التطبيقات التي تم توفيرها في الإصدار 2.0 من نظام التشغيل Android في تطبيقك، يجب ضبط القيمة المناسبة "5" في سمات عنصر <uses-sdk>
ضمن بيان التطبيق.
لمزيد من المعلومات حول كيفية استخدام مستوى واجهة برمجة التطبيقات، يُرجى الاطّلاع على مستند مستويات واجهة برمجة التطبيقات.
ملخّص تغييرات واجهة برمجة التطبيقات
البلوتوث
- تفعيل البلوتوث أو إيقافه
- اكتشاف الأجهزة والخدمات
- الاتصال بجهاز عن بُعد باستخدام بروتوكول RFCOMM وإرسال البيانات أو تلقّيها
- الإعلان عن خدمات RFCOMM والاستماع إلى اتصال RFCOMM الوارد
محوِّلات المزامنة
- واجهات برمجة تطبيقات جديدة لمحوّلات المزامنة للاتصال بأي واجهة خلفية
مدير الحساب
- واجهة برمجة تطبيقات مركزية لإدارة الحسابات لتخزين الرموز المميّزة أو كلمات المرور الخاصة بعمليات المصادقة والوصول إليها بأمان
جهات الاتصال
- واجهات برمجة تطبيقات جديدة لجهات الاتصال تتيح الوصول إلى البيانات من حسابات متعددة
- تتيح واجهات برمجة التطبيقات الجديدة لإطار عمل "الاتصال السريع" للمطوّرين إنشاء شارات جهات اتصال في تطبيقاتهم. يؤدي النقر على الشارة إلى فتح نافذة تتضمّن قائمة بطرق التواصل مع الشخص بنقرة واحدة.
WebView
- الفئات المتوقّفة نهائيًا: UrlInterceptHandler وPlugin وPluginData وPluginList وUrlInterceptRegistry
الكاميرا
- مَعلمات جديدة لتأثير الألوان ووضع المشهد ووضع الفلاش ووضع التركيز وموازنة اللون الأبيض والدوران والإعدادات الأخرى
- واجهة ZoomCallback جديدة لتنفيذ الإجراءات عند تغيير مستوى التكبير/التصغير
الوسائط
- ينشئ MediaScanner الآن صورًا مصغّرة لجميع الصور عند إدراجها في MediaStore.
- واجهة برمجة تطبيقات جديدة للصور المصغّرة لاسترداد الصور المصغرة والفيديوهات عند الطلب.
إطار عمل آخر
- مظاهر نظام جديدة في android.R.style لعرض الأنشطة بسهولة فوق خلفية النظام الحالية أو إبقاء النشاط السابق مرئيًا في الخلفية
- تحلّ واجهة برمجة التطبيقات الجديدة WallpaperManager API محل واجهات برمجة التطبيقات السابقة للخلفيات وتوسّعها، وذلك للسماح للتطبيقات بطلب خلفية النظام وضبطها.
- واجهات برمجة تطبيقات جديدة للخدمة لمساعدة التطبيقات في التعامل بشكل صحيح مع دورة حياة الخدمة، لا سيما في حالات انخفاض ذاكرة الوصول العشوائي (RAM) التي قد يتم فيها إنهاء الخدمة أثناء تشغيلها
- تم إيقاف الإجراء Service.setForeground() نهائيًا، ولا يؤدي الآن إلى تنفيذ أي عملية بشكل فعّال. تم استبدال هذه الوظيفة بواجهة برمجة تطبيقات جديدة، وهي startForeground()، التي تساعد في ربط إشعار مستمر بحالة المقدّمة (وتتطلّب ذلك).
- بإمكان MotionEvent الآن الإبلاغ عن معلومات اللمس المتزامنة للأجهزة المتوافقة. يمكن تتبع ما يصل إلى ثلاث مؤشرات في وقت واحد.
- يحتوي KeyEvent على واجهات برمجة تطبيقات جديدة لإرسال المفاتيح للمساعدة في تنفيذ سلوك العمل عند الضغط والضغط مع الاستمرار، بالإضافة إلى آلية جديدة لإلغاء ضغطات المفاتيح (للمفاتيح الافتراضية).
- يحتوي WindowManager.LayoutParams على ثوابت جديدة تسمح للنافذة بتنشيط الشاشة عند عرضها وإظهار النافذة حتى إذا كانت الشاشة مقفلة. وهذا يسمح للتطبيقات بتنفيذ مهام أكثر دقة، مثل المنبهات التي من المفترض أن تعمل على تنشيط الجهاز.
- واجهات برمجة تطبيقات Intent جديدة تبث حالة إرساء الجهاز وتسمح للتطبيقات بتشغيل أنشطة خاصة عند وضع الجهاز على سطح مكتب أو قاعدة إرساء للسيارة
الأحداث الرئيسية التي يتم تنفيذها عند رفع إصبع المستخدم عن مفتاح
تم تصميم Android 2.0 للعمل على الأجهزة التي تستخدم مفاتيح افتراضية للصفحة الرئيسية و"القائمة" و"رجوع" و"البحث"، بدلاً من استخدام المفاتيح الخارجية. ولتوفير أفضل تجربة للمستخدم على هذه الأجهزة، ينفذ نظام Android الأساسي الآن هذه الأزرار عند الضغط على مفتاح السهم المتّجه للأعلى، بدلاً من مفتاح الضغط مع الاستمرار. ويساعد ذلك في منع أحداث الأزرار غير المقصودة ويسمح للمستخدم بالضغط على منطقة الزر ثم سحبها منها بدون إنشاء حدث.
من المفترض ألا يؤثر هذا التغيير في السلوك إلا في تطبيقك إذا كان يحظر أحداث الأزرار ويتّخذ إجراءً عند الضغط على مفتاح، بدلاً من رفع الضغط عنه. خاصة إذا كان تطبيقك يعترض مفتاح الرجوع، يجب التأكّد من أنّ تطبيقك يتعامل مع الأحداث الرئيسية بشكل صحيح.
بوجهٍ عام، لا يُنصح باعتراض مفتاح BACK في أحد التطبيقات، ومع ذلك، إذا كان تطبيقك يفعل ذلك ويُجري بعض الإجراءات عند الضغط على المفتاح بدلاً من رفع إصبعك عنه، عليك تعديل الرمز البرمجي.
إذا كان تطبيقك سيستخدم واجهات برمجة التطبيقات التي تم طرحها في Android 2.0 (المستوى 5 لواجهة برمجة التطبيقات)، يمكنك الاستفادة من واجهات برمجة التطبيقات الجديدة لإدارة أزواج أحداث المفاتيح:
- في حال اعتراض مفتاح "رجوع" في نشاط أو مربّع حوار، ما عليك سوى تطبيق طريقة
onBackPressed()
الجديدة. - إذا كنت تعترض مفتاح الرجوع في طريقة عرض، عليك تتبّع الحدث الرئيسي عند الضغط على مفتاح السهم المتّجه للأسفل (من خلال طريقة
startTracking()
الجديدة)، ثم استدعاء الإجراء في مفتاح السهم المتّجه للأعلى. إليك نمط يمكنك استخدامه:
Kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.repeatCount == 0) { event.startTracking() true } else { false } } ... else -> super.onKeyDown(keyCode, event) } } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.isTracking && !event.isCanceled) { // *** DO ACTION HERE *** true } else { false } } ... else -> super.onKeyUp(keyCode, event) } }
Java
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** DO ACTION HERE *** return true; } return super.onKeyUp(keyCode, event); }
إذا كنت تريد تحديث تطبيق قديم كي تعمل طريقة التعامل مع مفتاح الرجوع بشكل صحيح لكل من Android 2.0 وإصدارات النظام الأساسي الأقدم، يمكنك استخدام طريقة مشابهة لتلك الموضّحة أعلاه. يمكن للرمز البرمجي رصد حدث زر الاستهداف عند الضغط على مفتاح لأسفل، وتعيين علامة لتتبع الحدث الرئيسي، ومن ثم متابعة الحدث عند الضغط على المفتاح، وتنفيذ الإجراء المطلوب في حالة تعيين علامة التتبع. ستحتاج أيضًا إلى ملاحظة التغييرات التي طرأت على التركيز ومحو علامة التتبع عند اكتساب التركيز أو فقدانه.
تقرير الاختلافات في واجهات برمجة التطبيقات
لعرض تفصيلي حول تغييرات واجهة برمجة التطبيقات في Android 2.0 (المستوى 5 من واجهة برمجة التطبيقات)، مقارنةً بالإصدار السابق، يمكنك الاطّلاع على تقرير اختلافات واجهة برمجة التطبيقات.