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

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

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

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

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

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

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

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

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

لاستخدام واجهة برمجة التطبيقات SIP API، يجب أن تطلب التطبيقات إذنًا من المستخدم من خلال تقديم بيان عن <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 في حزمة android.nfc. الفئات الرئيسية هي:

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

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

لاستخدام واجهة برمجة التطبيقات NFC، يجب أن تطلب التطبيقات إذنًا من المستخدم عن طريق تعريف <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.

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

  • يتضمّن هذا الإعداد معلَمات جديدة للكاميرات، مثل البعد البؤري ووضع التركيز الحد الأقصى/الحد الأدنى لمعاينة عدد اللقطات في الثانية 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 في أحد التطبيقات، يرصد الإطار الزمني الصارم ويُعلم المطوّر بنشاط القرص أو الشبكة غير المقصود الذي قد يؤدي إلى خفض أداء التطبيق، مثل النشاط الذي يحدث في سلسلة المهام الرئيسية للتطبيق (حيث يتم تلقّي عمليات واجهة المستخدم وعرض الرسومات المتحركة أيضًا). يمكن للمطوّرين تقييم مشاكل استخدام الشبكة والقرص التي تم رصدها في StrictMode وإصلاحها إذا لزم الأمر، ما يحافظ على استجابة السلسلة الرئيسية بشكلٍ أفضل ويمنع عرض مربّعات حوار ANR للمستخدمين.

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

لمزيد من المعلومات عن كيفية استخدام StrictMode لتحسين التطبيق، يُرجى الاطّلاع على مستندات الصف ورمز النموذج على الرابط 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 إجراءً جديدًا للنوايا، وهو PLAY_FROM_SEARCH، يتيح للتطبيق البحث عن وسائط موسيقية و تشغيل المحتوى تلقائيًا من النتيجة متى أمكن ذلك. على سبيل المثال، يمكن أن ينشط التطبيق Intent هذا كنتيجة لطلب التعرّف على الصوت الاستماع إلى الموسيقى.
    • تتم أيضًا إضافة علامة MEDIA_IGNORE_FILENAME جديدة من قِبل "MediaStore" لإعلام الوسائط. ماسح ضوئي لتجاهل الوسائط في الدليل الذي يحتوي على الأدلة الفرعية. ويمكن لمطوّري البرامج استخدام هذا الخيار لتجنُّب ظهور رسومات في المعرض وبالمثل، سيتم منع ظهور أصوات التطبيق والموسيقى في قائمة تشغيل الموسيقى التطبيق.
    • يضيف موفِّر خدمة "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 (Opaque Binary Blob). على الرغم من توفّر ملف OBB في الإصدار 2.3 من نظام التشغيل Android، لن تتوفّر أدوات التطوير لإنشاء ملفات OBB وإدارتها إلا في أوائل عام 2011.
    • يضيف نظام Android 2.3 الأساسي الدعم الرسمي للأجهزة التي لا تستخدم بطاقات SD (على الرغم من أنها توفر قسمًا افتراضيًا لبطاقة SD، عندما لا يكون هناك بطاقة SD). توفّر الطريقة isExternalStorageRemovable() للتطبيقات ميزة رائعة، وهي تحديد ما إذا كانت بطاقة SD متوفّرة.

    مدير الحزم

    • ثوابت جديدة للإعلان عن ميزات الأجهزة والبرامج. اطّلِع على القائمة في قسم ثوابت الميزات الجديدة أدناه.
    • تُضيف PackageInfo حقلَي firstInstallTime وlastUpdateTime جديدَين لتخزين وقت تثبيت الحزمة وآخر تعديل لها.
    • طريقة getProviderInfo() جديدة لاسترداد جميع المعلومات المعروفة عن فئة معيّنة لمزوّدي المحتوى

    الاتصالات الهاتفية

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

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

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

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

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

    Dalvik Runtime

    عناصر وصفات جديدة في البيان

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

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

    • com.android.permission.SET_ALARM: للسماح لتطبيق ببث رسالة Intent لضبط منبّه للمستخدم نشاط يعالج إجراء Intent من النوع SET_ALARM يجب أن يطلبوا هذا الإذن.
    • 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 على الجهاز.
    • android.software.sip.voip - يستخدم التطبيق خدمة Voice over Internet Protocol (VoIP) المستندة إلى بروتوكول بدء الجلسة (SIP) على الجهاز.
    • android.hardware.touchscreen.multitouch.jazzhand — يستخدم التطبيق إمكانات اللمس المتعدد النقاط المتقدمة على شاشة الجهاز، لتتبع خمس نقاط أو أكثر بشكلٍ مستقل تمامًا.

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

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

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

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

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

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

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