واجهات برمجة تطبيقات Android 2.3

مستوى واجهة برمجة التطبيقات: 9

بالنسبة للمطوّرين، يتوفّر نظام التشغيل Android 2.3 (GINGERBREAD) كمكوِّن قابل للتنزيل لحزمة تطوير البرامج (SDK) لنظام التشغيل Android. وتشتمل المنصة القابلة للتنزيل على مكتبة Android وصورة نظام، بالإضافة إلى مجموعة من مظاهر المحاكيات وغير ذلك. لبدء تطوير التطبيقات أو اختبارها على الإصدار 2.3 من نظام التشغيل Android، استخدِم "مدير تطوير البرامج (SDK) لنظام التشغيل Android" لتنزيل النظام الأساسي إلى حزمة تطوير البرامج (SDK).

نظرة عامة على واجهة برمجة التطبيقات

تقدم الأقسام أدناه نظرة عامة فنية على الميزات الجديدة للمطوّرين في الإصدار 2.3، بما في ذلك الميزات والتغييرات الجديدة في واجهة برمجة التطبيقات لإطار العمل منذ الإصدار السابق.

بروتوكول الصوت على الإنترنت (VoIP) المستنِد إلى SIP

يشتمل النظام الأساسي الآن على حزمة من بروتوكول SIP وواجهة برمجة تطبيقات لإطار العمل تتيح للمطوّرين إنشاء تطبيقات للاتصال الهاتفي على الإنترنت. باستخدام واجهة برمجة التطبيقات، يمكن للتطبيقات توفير ميزات اتصال صوتي بدون الحاجة إلى إدارة الجلسات أو التواصل على مستوى وسيلة النقل أو الصوت، ويتم التعامل مع هذه الميزات بشفافية من خلال واجهة برمجة تطبيقات SIP وخدماتها في النظام الأساسي.

تتوفر SIP API في حزمة android.net.sip. الفئة الأساسية هي SipManager، والتي تستخدمها التطبيقات لإعداد ملفات SIP وإدارتها، ثم بدء المكالمات الصوتية وتلقّي المكالمات الصوتية. بمجرد إجراء مكالمة صوتية، يمكن للتطبيقات كتم صوت المكالمات وتفعيل وضع مكبّر الصوت وإرسال نغمات التردد المتعدد الثنائي النغمات (DTMF) والمزيد. ويمكن للتطبيقات أيضًا استخدام SipManager لإنشاء اتصالات SIP عامة.

تتوفّر حزمة SIP الأساسية من النظام الأساسي وخدماتها على الأجهزة وفقًا لتقدير الشركة المصنّعة ومشغّل شبكة الجوّال المرتبط بها. لهذا السبب، يجب أن تستخدم التطبيقات طريقة isApiSupported() للتحقّق مما إذا كان دعم SIP متاحًا، وذلك قبل إطلاع المستخدمين على وظائف الاتصال.

لاستخدام واجهة برمجة تطبيقات SIP، يجب أن تطلب التطبيقات إذنًا من المستخدم من خلال الإعلان عن <uses-permission android:name="android.permission.INTERNET"> و<uses-permission android:name="android.permission.USE_SIP"> في ملفَّي البيان.

بالإضافة إلى ذلك، يمكن للمطوّرين طلب إجراء فلترة على Google Play كي لا يتمكّن المستخدمون من العثور على تطبيقاتهم إذا كانت أجهزتهم لا تتضمّن حزمة SIP وخدماتها للنظام الأساسي. لطلب الفلترة، يُرجى إضافة <uses-feature android:name="android.software.sip" android:required="true"> و<uses-feature android:name="android.software.sip.voip"> إلى بيان التطبيق.

لمزيد من المعلومات، يُرجى الاطّلاع على دليل المطوِّر الخاص بـ SIP.

الاتصال القصير المدى (NFC)

يشتمل الإصدار Android 2.3 على حزمة NFC وواجهة برمجة تطبيقات لإطار العمل تتيح للمطورين قراءة علامات NDEF التي يتم اكتشافها عندما يلمس مستخدم جهازًا تم تفعيل NFC عليه لوضع علامة على العناصر المضمنة في الملصقات والملصقات الذكية وحتى الأجهزة الأخرى.

يوفّر النظام الأساسي خدمات NFC الأساسية التي تعمل مع أجهزة الجهاز لاكتشاف العلامات عندما تدخل في النطاق. عند اكتشاف علامة، ترسل النظام الأساسي إشعارًا إلى التطبيقات عن طريق بث Intent وإلحاق رسائل NDEF التابعة للعلامة بـ Intent كعناصر إضافية. ويمكن للتطبيقات إنشاء فلاتر الأهداف للتعرّف على العلامات والرسائل المستهدَفة والتعامل معها. على سبيل المثال، بعد تلقّي علامة حسب Intent، تستخرج التطبيقات رسائل NDEF أو تخزّنها أو تنبّه المستخدم أو تتعامل معها بطرق أخرى.

تتوفر واجهة برمجة التطبيقات NFC API في حزمة android.nfc. والفئات الرئيسية هي:

  • NfcAdapter، الذي يمثّل جهاز NFC على الجهاز.
  • NdefMessage، الذي يمثّل رسالة بيانات NDEF، والتنسيق العادي الذي يتم فيه نقل "السجلات" التي تحمل البيانات بين الأجهزة والعلامات. يمكن أن تتلقّى التطبيقات هذه الرسائل من أهداف ACTION_TAG_DISCOVERED.
  • NdefRecord، يتم تقديمها في NdefMessage، وتصف هذه السمة نوع البيانات التي تتم مشاركتها وتنقل البيانات نفسها.

يعتمد اتصال NFC على التكنولوجيا اللاسلكية في مكونات الجهاز، لذلك يتم تحديد الدعم لميزات NFC في النظام الأساسي على أجهزة معينة من قِبل الشركات المُصنِّعة لها. لتحديد إمكانية استخدام تقنية NFC على الجهاز الحالي، يمكن للتطبيقات الاتصال بـ isEnabled() لإجراء طلب بحث عن NfcAdapter. ومع ذلك، تكون واجهة برمجة تطبيقات NFC موجودة دائمًا بغض النظر عن دعم الأجهزة الأساسية.

لاستخدام واجهة برمجة التطبيقات NFC API، يجب أن تطلب التطبيقات إذنًا من المستخدم من خلال إدراج <uses-permission android:name="android.permission.NFC"> في ملفات البيان.

بالإضافة إلى ذلك، يمكن للمطوّرين طلب فلترة على Google Play كي لا يتمكّن المستخدمون من العثور على تطبيقاتهم التي لا تتوافق أجهزتهم مع تكنولوجيا NFC. لطلب الفلترة، يُرجى إضافة <uses-feature android:name="android.hardware.nfc" android:required="true"> إلى ملف بيان التطبيق.

للاطّلاع على نموذج تطبيق يستخدم NFC API، يمكنك مراجعة NFCDemo.

الجيروسكوب وأجهزة الاستشعار الأخرى

يضيف Android 2.3 إمكانية استخدام النظام الأساسي وواجهة برمجة التطبيقات للعديد من أنواع القراءة الجديدة للمستشعرات، مثل الجيروسكوب ومتجه الدوران والتسارع الخطي والجاذبية ومقياس الضغط الجوي. يمكن للمطورين استخدام قراءات المستشعر الجديدة لإنشاء تطبيقات تستجيب بسرعة وسلاسة للتغييرات الدقيقة في موضع الجهاز والحركة. تُبلغ واجهة برمجة تطبيقات الاستشعار عن الجيروسكوب والتغييرات الأخرى التي تطرأ على أدوات الاستشعار في التطبيقات المهتمة، سواء كانت قيد التشغيل في إطار عمل التطبيق أو في رمز برمجي أصلي.

تجدر الإشارة إلى أنّ المجموعة المحدّدة من أدوات الاستشعار المتوفرة على أي جهاز معيّن تختلف وفقًا لتقدير الشركة المصنّعة.

يمكن للمطوّرين طلب إجراء فلترة على Google Play لكي لا يتمكّن المستخدمون من العثور على تطبيقاتهم إذا كانت أجهزتهم لا توفّر أداة استشعار الجيروسكوب. ولإجراء ذلك، أضِف <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true"> إلى بيان التطبيق.

للحصول على تفاصيل حول واجهة برمجة التطبيقات، يُرجى مراجعة Sensor.

إمكانية استخدام عدة كاميرات

ويمكن للتطبيقات الآن الاستفادة من أي كاميرات متاحة على الجهاز لالتقاط صور أو تصوير فيديوهات. تتيح السمة Camera للتطبيقات الاستعلام عن عدد الكاميرات المتاحة والخصائص الفريدة لكل منها.

  • تحتفظ فئة Camera.CameraInfo الجديدة بخصائص وضع الكاميرا (الاتجاه أو الواجهة الأمامية أو الخلفية).
  • إنّ الطريقتَين الجديدتَين getNumberOfCameras() وgetCameraInfo() في الفئة Camera تتيحان للتطبيقات طلب البحث عن الكاميرات وفتح الكاميرا التي تحتاج إليها.
  • تتيح طريقة get() الجديدة للتطبيقات استرداد رمز CamcorderProfile لكاميرا معيّنة.
  • تتيح ميزة "getJpegEncodingQualityParameter()" الجديدة للتطبيقات الحصول على مستوى جودة التقاط الصور الثابتة لكاميرا معيّنة.

لإلقاء نظرة على رمز نموذجي للدخول إلى كاميرا أمامية، يمكنك الاطّلاع على CameraPreview.java في نموذج تطبيق ApiDemos.

تضيف واجهة برمجة تطبيقات الكاميرا أيضًا ما يلي:

  • معلَمات جديدة للكاميرات، تشمل مسافة التركيز ووضع التركيز ومعاينة الحد الأقصى/الحدّ الأدنى للقطات في الثانية تم استخدام getFocusDistances() وgetPreviewFpsRange() وgetSupportedPreviewFpsRange() جديدة للحصول على معلَمات الكاميرا، بالإضافة إلى setPreviewFpsRange() لضبط عدد اللقطات في الثانية للمعاينة.

تأثيرات صوتية قابلة للمزج

يتيح الإطار الإعلامي للنظام الأساسي استخدام التأثيرات الصوتية العالمية الجديدة أو حسب كل مقطع صوتي، بما في ذلك تعزيز الجهير والأصوات الافتراضية لسمّاعات الرأس ومعادلة الأصوات والصدى.

للاطّلاع على رمز نموذجي للتأثيرات الصوتية، يمكنك الاطّلاع على audioFxDemo.java في نموذج تطبيق ApiDemos.

يضيف إطار العمل الإعلامي أيضًا ما يلي:

  • دعم جديد لعلامة الارتفاع في بيانات EXIF الوصفية لملفات JPEG. طريقة getAltitude() الجديدة لاسترداد قيمة علامة ارتفاع EXIF.
  • تتيح طريقة setOrientationHint() الجديدة للتطبيق إعلام MediaRecorder بالاتجاه أثناء التقاط الفيديو.

تطبيق إدارة التنزيل

يشتمل النظام الأساسي على خدمة نظام "DownloadManager" جديدة تعالج عمليات تنزيل HTTP التي تستغرق وقتًا طويلاً. يمكن أن تطلب التطبيقات تنزيل معرف الموارد المنتظم (URI) إلى ملف وجهة معين. سيُجري DownloadManager عملية التنزيل في الخلفية مع الاهتمام بتفاعلات HTTP وإعادة محاولة التنزيل بعد حدوث حالات تعذُّر الاتصال أو عند حدوث تغييرات في الاتصال وعمليات إعادة تشغيل النظام.

  • ويمكن للتطبيقات الحصول على نسخة افتراضية من الفئة DownloadManager من خلال طلب الرمز getSystemService(String) واجتياز DOWNLOAD_SERVICE. ويجب أن تسجِّل التطبيقات التي تطلب عمليات التنزيل من خلال واجهة برمجة التطبيقات هذه جهاز استقبال البث لـ ACTION_NOTIFICATION_CLICKED لكي يتم التعامل معه بشكل مناسب عندما ينقر المستخدم على عملية تنزيل قيد التشغيل في الإشعار أو من واجهة مستخدم عمليات التنزيل.
  • تتيح الفئة DownloadManager.Request للتطبيق توفير جميع المعلومات اللازمة لطلب تنزيل جديد، مثل معرّف الموارد المنتظم (URI) للطلب ووجهة التنزيل. ويكون عنوان URI للطلب هو المعلمة الوحيدة المطلوبة. ملاحظة: وجهة التنزيل التلقائية هي وحدة تخزين مشتركة حيث يمكن للنظام حذف ملفك إذا كان يحتاج إلى استرداد مساحة معيّنة لاستخدام النظام. للحصول على مساحة تخزين دائمة للتنزيل، حدِّد وجهة تنزيل على مساحة تخزين خارجية (راجِع setDestinationUri(Uri)).
  • توفر الفئة DownloadManager.Query طرقًا تسمح لطلب بحث التطبيق بعمليات التنزيل النشطة وفلترتها.

الوضع الصارم

لمساعدة المطورين على مراقبة أداء تطبيقاتهم وتحسينه، يقدم النظام الأساسي منشأة نظام جديدة تسمى StrictMode. وعند تنفيذه في أحد التطبيقات، يكتشف StrictMode الإشارة إلى مطوّر البرامج بنشاط غير مقصود على القرص أو الشبكة والذي قد يؤدي إلى انخفاض مستوى أداء التطبيق، مثل النشاط الذي يحدث في سلسلة التعليمات الرئيسية للتطبيق (حيث يتم تلقي عمليات واجهة المستخدم وكذلك يتم إجراء رسوم متحركة). يمكن للمطوّرين تقييم مشاكل استخدام الشبكة والقرص التي تم طرحها في StrictMode وتصحيحها إذا لزم الأمر، ما يُبقي سلسلة التعليمات الرئيسية أكثر استجابة ومنع عرض مربّعات حوار ANR للمستخدمين.

  • إن StrictMode هي الفئة الأساسية وهي نقطة التكامل الرئيسية مع النظام والجهاز الافتراضي. توفّر الفئة طرقًا ملائمة لإدارة سياسات سلسلة التعليمات والجهاز الافتراضي (VM) التي تنطبق على المثيل.
  • يتضمّن StrictMode.ThreadPolicy وStrictMode.VmPolicy السياسات التي تحدّدها وتطبّقها على مثيلات سلاسل المحادثات والأجهزة الافتراضية.

للحصول على مزيد من المعلومات حول كيفية استخدام ExactMode لتحسين تطبيقك، يمكنك الاطّلاع على مستندات الصف ونموذج الرمز على android.os.StrictMode.

إطار عمل واجهة المستخدم

  • دعم التمرير الزائد
    • دعم جديد للتمرير الزائد في طرق العرض والتطبيقات المصغَّرة. في طرق العرض، يمكن للتطبيقات تفعيل/إيقاف التمرير الزائد لعرض معيّن، وضبط وضع التمرير الزائد، والتحكّم في مسافة التمرير الزائد، والتعامل مع نتائج التمرير الزائد.
    • في التطبيقات المصغَّرة، يمكن للتطبيقات التحكم في خصائص التمرير الزائد مثل الصور المتحركة، وظهر زنبرك، ومسافة التمرير الزائد. لمزيد من المعلومات، يمكنك الاطّلاع على "android.view.View" و"android.widget.OverScroller".
    • توفّر السمة ViewConfiguration أيضًا الطريقتَين getScaledOverflingDistance() وgetScaledOverscrollDistance().
    • السمات الجديدة overScrollMode وoverScrollFooter وoverScrollHeader لعناصر <ListView>، للتحكم في سلوك التمرير الزائد.
  • إتاحة الفلترة باللمس
    • دعم جديد للتصفية باللمس، والتي تتيح للتطبيق تحسين أمان الملفات الشخصية التي تتيح الوصول إلى وظائف حساسة. على سبيل المثال، تُعد ميزة الفلترة باللمس خيارًا مناسبًا لضمان أمان الإجراءات التي يتّخذها المستخدم، مثل منح إذن أو إجراء عملية شراء أو النقر على إعلان. لمعرفة التفاصيل، يُرجى الاطّلاع على عرض وثائق الصف.
    • سمة filterTouchesWhenObscured جديدة لعناصر العرض، توضح ما إذا كان يجب فلترة اللمسات عندما تحجب نافذة العرض نافذة مرئية أخرى. وعند ضبط هذه السياسة على "true"، لن يتم لمس الشاشة عند ظهور إشعار منبثق أو مربع حوار أو نافذة أخرى أعلى نافذة العرض. لمزيد من التفاصيل، يُرجى الاطّلاع على عرض وثائق الأمان.

    للاطّلاع على الرمز النموذجي للفلترة التي تعمل باللمس، يُرجى الاطّلاع على SecureView.java في نموذج تطبيق ApiDemos.

  • إدارة محسّنة للفعاليات
    • فئة أساسية جديدة لأحداث الإدخال، InputEvent. وتوفر الفئة طرقًا تسمح للتطبيقات بتحديد معنى الحدث، مثلاً عن طريق الاستعلام عن جهاز enterDevice الذي تم إنشاء الحدث منه. KeyEvent وMotionEvent هما فئتان فرعيتان من InputEvent.
    • فئة أساسية جديدة لأجهزة الإدخال: InputDevice تخزن الفئة معلومات حول إمكانات جهاز إدخال معين وتوفر طرقًا تسمح للتطبيقات بتحديد كيفية تفسير الأحداث من جهاز الإدخال.
  • أحداث الحركة المحسّنة
    • تم توسيع واجهة برمجة التطبيقات MotionEvent لتتضمّن معلومات "معرّف المؤشر"، التي تتيح للتطبيقات تتبُّع الأصابع الفردية أثناء تحرّكها للأعلى وللأسفل. تضيف الفئة مجموعة متنوعة من الطرق التي تتيح للتطبيق العمل بكفاءة مع الأحداث المتحركة.
    • أصبح نظام الإدخال لديه الآن منطق لإنشاء أحداث حركة باستخدام معلومات معرّف المؤشر الجديدة وتجميع المعرفات مع انخفاض المؤشرات الجديدة. يتتبع النظام عدة معرفات للمؤشرات بشكل منفصل أثناء حدث الحركة، ويضمن الاستمرارية المناسبة للمؤشرات من خلال تقييم المسافة بين المجموعة الأخيرة والتالية من المؤشرات.
  • عناصر التحكّم في اختيار النص
    • تتيح طريقة setComposingRegion الجديدة للتطبيق وضع علامة على منطقة من النص تشير إلى أنّها تتضمّن نصًا مُنشئًا، ما يُحافظ على النمط الحالي. تعرض طريقة getSelectedText النص المحدَّد إلى التطبيق. تتوفّر الطرق في BaseInputConnection وInputConnection وInputConnectionWrapper.
    • وهي السمات textSelectHandle وtextSelectHandleLeft وtextSelectHandleRight وtextSelectHandleWindowStyle الجديدة للسمات <TextView>، للإشارة إلى العناصر القابلة للرسم التي سيتم استخدامها لعرض علامات الارتساء لاختيار النص ونمط النافذة التي تتضمن النافذة.
  • عناصر التحكّم في النشاط
  • أنماط نص الإشعارات والرموز
  • شاشات كبيرة جدًا

    يدعم النظام الأساسي الآن أحجام الشاشات الكبيرة جدًا، مثل تلك التي قد تكون موجودة على الأجهزة اللوحية. ويمكن للمطوّرين الإشارة إلى أنّ تطبيقاتهم مصمّمة لإتاحة أحجام الشاشات الكبيرة جدًا من خلال إضافة عنصر <supports screens ... android:xlargeScreens="true"> إلى ملفات البيان. يمكن للتطبيقات استخدام مؤهِّل جديد للموارد، xlarge، لوضع علامة على الموارد الخاصة بالشاشات الكبيرة جدًا. للحصول على تفاصيل حول كيفية إتاحة أحجام الشاشات الكبيرة جدًا وغيرها، يُرجى الاطّلاع على إتاحة الشاشات المتعددة.

    الرسومات

    موفّرو المحتوى

    • فئة جديدة من مزودي خدمة AlarmClock لضبط الإنذار أو التعامل مع الإنذار. يحتوي مقدّم الخدمة على إجراء ACTION_SET_ALARM Intent وعناصر إضافية يمكن استخدامها لبدء نشاط من أجل ضبط منبّه جديد في تطبيق المنبّه. على التطبيقات التي تريد الحصول على هدف SET_ALARM إنشاء نشاط يتطلب الحصول على إذن SET_ALARM. على التطبيقات التي تريد إنشاء منبّه جديد استخدام Context.startActivity()، ليتمكّن المستخدم من اختيار تطبيق المنبّه المرسَل.
    • يتيح MediaStore إجراء Intent جديد، وهو PLAY_FROM_SEARCH، والذي يسمح للتطبيق بالبحث عن الوسائط الموسيقية وتشغيل المحتوى تلقائيًا من النتيجة عندما يكون ذلك ممكنًا. على سبيل المثال، يمكن لتطبيق ما تنشيط Intent هذا نتيجة أمر التعرّف على الصوت للاستماع إلى الموسيقى.
    • يضيف MediaStore أيضًا علامة MEDIA_IGNORE_FILENAME جديدة تطلب من برنامج مسح الوسائط تجاهل الوسائط في الدليل الذي يحتوي على الوسائط وأدلته الفرعية. يمكن للمطوّرين استخدام هذا الإذن لتجنّب ظهور رسومات في المعرض وكذلك منع ظهور الأصوات والموسيقى في التطبيق في تطبيق YouTube Music.
    • يضيف موفِّر خدمة "Settings" إجراءَي النشاط الجديدَين APPLICATION_DETAILS_SETTINGS وMANAGE_ALL_APPLICATIONS_SETTINGS، واللذين يتيحان لأحد التطبيقات عرض شاشة تفاصيل تطبيق معيّن أو عرض شاشة "إدارة التطبيقات".
    • يضيف موفِّر خدمة ContactsContract نوع بيانات ContactsContract.CommonDataKinds.SipAddress لتخزين عنوان SIP (الاتصال الهاتفي على الإنترنت) لجهة الاتصال.

    الموقع الجغرافي

    • يتتبّع LocationManager الآن طلبات التطبيق التي تؤدي إلى عمليات قفل التنشيط أو قفل Wi-Fi وفقًا لفئة WorkSource التي يديرها النظام وتحدد التطبيق.

      تعمل LocationManager على تتبُّع جميع البرامج التي تطلب التحديثات الدورية، وتخبر موفّري الخدمة بها بصفتها معلَمة WorkSource، عند ضبط الحدّ الأدنى لأوقات التحديث. يستخدم موفِّر الموقع الجغرافي للشبكة WorkSource لتتبُّع أقفال التنشيط وقفل شبكة Wi-Fi التي يبدأها التطبيق ويضيفها إلى استخدام التطبيق للبطارية والذي تم الإبلاغ عنه في "إدارة التطبيقات".

    • يضيف LocationManager العديد من الطرق الجديدة التي تسمح لـ "سجلّ النشاط" بتلقّي تحديثات الموقع الجغرافي الدورية أو لمرة واحدة استنادًا إلى المعايير المحدّدة (انظر أدناه).
    • تتيح فئة Criteria الجديدة للتطبيق تحديد مجموعة من المعايير لاختيار مزوِّد خدمة الموقع الجغرافي. على سبيل المثال، قد يتم ترتيب مقدّمي الخدمات وفقًا للدقة واستخدام الطاقة والقدرة على الإبلاغ عن الارتفاع والسرعة ونسبة الاتجاه والتكلفة النقدية.

    سعة التخزين

    • يضيف نظام التشغيل Android 2.3 واجهة برمجة تطبيقات StorageManager جديدة تتوافق مع ملفات OBB (الثنائي الفائق العرض (Blob)). على الرغم من توفُّر دعم النظام الأساسي لمعيار OBB في Android 2.3، لن تكون أدوات التطوير لإنشاء ملفات OBB وإدارتها متاحة حتى أوائل عام 2011.
    • يتيح نظام Android 2.3 الأساسي دعمًا رسميًا للأجهزة التي لا تتضمّن بطاقات SD (على الرغم من أنّها توفّر قسمًا افتراضيًا على بطاقة SD، وذلك في حال عدم توفّر بطاقة SD فعلية). وهي إحدى الطرق المريحة، isExternalStorageRemovable()، التي تتيح للتطبيقات تحديد ما إذا كانت بطاقة SD فعلية متوفرة أم لا.

    مدير الحزم

    التلفونية

    • تضيف TelephonyManager القيمة NETWORK_TYPE_EVDO_B الثابتة لتحديد نوع الشبكة CDMA EVDO Rev B.
    • تعرض طريقة getPsc() الجديدة رمز التشابك الأساسي لخلية العرض على شبكة النظام العالمي لاتصالات الجوال عن بعد (UMTS).

    الوصول الأصلي إلى النوافذ ومراحل نشاط النشاط

    يعرض Android 2.3 مجموعة واسعة من واجهات برمجة التطبيقات للتطبيقات التي تستخدم رموزًا برمجية أصلية. تشمل فئات الإطار التي تهمك مثل هذه التطبيقات ما يلي:

    • NativeActivity هو نوع جديد من فئات النشاط، يتم تنفيذ معاودة الاتصال خلال مراحل نشاطها مباشرةً بلغة البرمجة الأصلية. يتم تشغيل NativeActivity ورمزه الأصلي الأساسي في النظام مثل الأنشطة الأخرى، وتحديدًا يتم تنفيذها في عملية نظام تطبيق Android ويتم تنفيذها على سلسلة واجهة المستخدم الرئيسية للتطبيق، وتتلقّى هذه الأنشطة معاودة الاتصال خلال مراحل النشاط مثلما يتم في الأنشطة الأخرى.
    • تتيح واجهة معاودة الاتصال وفئة InputQueue الجديدة استخدام الرموز البرمجية الأصلية لإدارة قائمة انتظار الأحداث.
    • تتيح واجهة SurfaceHolder.Callback2 الجديدة إمكانية استخدام الرموز الأصلية لإدارة SurfaceHolder.
    • تتيح طريقة takeInputQueue وtakeSurface() الجديدة في Window للرموز البرمجية الأصلية إدارة الأحداث ومساحات العرض.

    للحصول على المعلومات الكاملة حول استخدام الرموز البرمجية الأصلية أو تنزيل NDK، راجع صفحة Android NDK.

    وقت تشغيل "دالفيك"

    عناصر وسمات بيان جديدة

    • السمة xlargeScreens الجديدة للعنصر <supports-screens>، للإشارة إلى ما إذا كان التطبيق يتيح استخدام عوامل أشكال الشاشات الكبيرة جدًا لمزيد من التفاصيل، راجع دعم الشاشات المتعددة.
    • القيم الجديدة للسمة android:screenOrientation في العنصر <activity>:
      • "reverseLandscape" — يريد النشاط أن تكون الشاشة في الاتجاه الأفقي، وفي الاتجاه المعاكس من الوضع الأفقي العادي.
      • "reversePortrait" - يريد "النشاط" أن تكون الشاشة في الاتجاه العمودي في الاتجاه المعاكس من الوضع العمودي العادي.
      • "sensorLandscape" — يريد "النشاط" أن تكون الشاشة في الاتجاه الأفقي، لكن يمكنه استخدام أداة الاستشعار لتغيير الاتجاه الذي تتجه إليه الشاشة.
      • "sensorPortrait" — يريد "النشاط" أن تكون الشاشة في الاتجاه الرأسي، لكن يمكنه استخدام أداة الاستشعار لتغيير الاتجاه الذي تتجه إليه الشاشة.
      • "fullSensor" — يتم تحديد الاتجاه من خلال أداة استشعار الاتجاه المادي: سيتم تدوير الشاشة بناءً على طريقة المستخدم في تحريك الجهاز. ويسمح هذا الإجراء بأي من التدوير الأربع الممكنة، بغض النظر عن الإجراء الذي ينفّذه الجهاز في العادة (على سبيل المثال، لن تستخدم بعض الأجهزة عادةً الدوران بزاوية 180 درجة).

    الأذونات الجديدة

    • com.android.permission.SET_ALARM — يسمح هذا الإذن لتطبيق ببث Intent لضبط منبّه للمستخدم. إنّ النشاط الذي يعالج إجراء SET_ALARM Intent يجب أن يتطلّب هذا الإذن.
    • android.permission.USE_SIP — يسمح هذا الإذن للتطبيق باستخدام SIP API لإجراء مكالمات على الإنترنت أو تلقّيها.
    • android.permission.NFC — يتيح هذا الإذن للتطبيق استخدام NFC API لقراءة علامات NFC.

    الميزات الثابتة الجديدة

    يضيف النظام الأساسي العديد من ميزات الأجهزة الجديدة التي يمكن للمطوّرين الإعلان عنها في بيانات التطبيقات على أنّها مطلوبة من تطبيقاتهم. يتيح ذلك للمطوّرين التحكم في كيفية فلترة تطبيقاتهم عند نشرها على Google Play.

    • android.hardware.audio.low_latency: يستخدم التطبيق مسارًا صوتيًا ذا وقت استجابة منخفض على الجهاز وهو حساس للتأخير أو التأخر في إدخال الصوت أو إخراجه.
    • android.hardware.camera.front — يستخدم التطبيق كاميرا أمامية على الجهاز.
    • android.hardware.nfc — يستخدم التطبيق ميزات راديو NFC في الجهاز.
    • android.hardware.sensor.barometer — يستخدم التطبيق مقياس الضغط الجوي في الجهاز.
    • android.hardware.sensor.gyroscope — يستخدم التطبيق أداة استشعار الجيروسكوب في الجهاز.
    • android.software.sip — يستخدم التطبيق واجهة برمجة التطبيقات SIP API على الجهاز.
    • android.software.sip.voip — يستخدم التطبيق خدمة VoIP مستندة إلى بروتوكول SIP على الجهاز.
    • android.hardware.touchscreen.multitouch.jazzhand — يستخدم التطبيق إمكانات اللمس المتعدّد النقاط المتقدّمة على شاشة الجهاز، لتتبُّع خمس نقاط أو أكثر بشكل مستقلّ بالكامل.

    للحصول على المعلومات الكاملة حول كيفية الإفصاح عن الميزات واستخدامها للفلترة، يمكنك الاطّلاع على مستندات <uses-feature>.

    تقرير الاختلافات في واجهة برمجة التطبيقات

    للحصول على عرض تفصيلي لجميع التغييرات في واجهة برمجة التطبيقات في Android 2.3 (المستوى 9)، يمكنك الاطلاع على تقرير اختلافات واجهة برمجة التطبيقات.

    مستوى واجهة برمجة التطبيقات

    يقدم نظام Android 2.3 إصدارًا محدّثًا من واجهة برمجة التطبيقات لإطار العمل. يتم تخصيص معرّف عدد صحيح لواجهة برمجة التطبيقات Android 2.3 وهو 9، ويتم تخزينه في النظام نفسه. هذا المعرف، الذي يُطلق عليه "مستوى واجهة برمجة التطبيقات"، يسمح للنظام بتحديد ما إذا كان التطبيق متوافقًا مع النظام أم لا، وذلك قبل تثبيته.

    لاستخدام واجهات برمجة التطبيقات التي تم تقديمها في الإصدار Android 2.3 ضمن تطبيقك، عليك تجميع التطبيق مقابل مكتبة Android المتوفرة في النظام الأساسي Android 2.3 SDK. بناءً على احتياجاتك، قد تحتاج أيضًا إلى إضافة السمة android:minSdkVersion="9" إلى العنصر <uses-sdk> في بيان التطبيق. إذا كان تطبيقك مصمّمًا للتشغيل على Android 2.3 والإصدارات الأحدث فقط، فإن الإعلان عن السمة يمنع تثبيت التطبيق على الإصدارات السابقة من النظام الأساسي.

    للمزيد من المعلومات، يُرجى قراءة المقالة ما هو مستوى واجهة برمجة التطبيقات؟