مستوى واجهة برمجة التطبيقات: 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()
لضبط عدد اللقطات في الثانية للمعاينة.
تأثيرات صوتية قابلة للمزج
يتيح الإطار الإعلامي للنظام الأساسي استخدام التأثيرات الصوتية العالمية الجديدة أو حسب كل مقطع صوتي، بما في ذلك تعزيز الجهير والأصوات الافتراضية لسمّاعات الرأس ومعادلة الأصوات والصدى.
- توفّر حزمة
android.media.audiofx
الجديدة واجهة برمجة التطبيقات للوصول إلى التأثيرات الصوتية. - إنّ
AudioEffect
الجديدة هي الفئة الأساسية للتحكّم في التأثيرات الصوتية التي يوفّرها إطار العمل الصوتي في Android. - معرّف جديد للجلسة الصوتية يتيح للتطبيق ربط مجموعة من المؤثرات الصوتية بمثيل
AudioTrack
أوMediaPlayer
. - تتيح لك دالة إنشاء فئة
AudioTrack
إنشاءAudioTrack
باستخدام رقم تعريف جلسة محدّد. طرقattachAuxEffect()
وgetAudioSessionId()
وsetAuxEffectSendLevel()
جديدة. - الطرق
attachAuxEffect()
وgetAudioSessionId()
وsetAudioSessionId(int)
وsetAuxEffectSendLevel()
الجديدة والأنواع المتوافقة.
للاطّلاع على رمز نموذجي للتأثيرات الصوتية، يمكنك الاطّلاع على 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>
، للإشارة إلى العناصر القابلة للرسم التي سيتم استخدامها لعرض علامات الارتساء لاختيار النص ونمط النافذة التي تتضمن النافذة.
- تتيح طريقة
- عناصر التحكّم في النشاط
- يضيف
ActivityInfo
ثوابت جديدة لإدارة اتجاه النشاط:SCREEN_ORIENTATION_FULL_SENSOR
وSCREEN_ORIENTATION_REVERSE_LANDSCAPE
وSCREEN_ORIENTATION_REVERSE_PORTRAIT
وSCREEN_ORIENTATION_SENSOR_LANDSCAPE
وSCREEN_ORIENTATION_SENSOR_PORTRAIT
. - قيمة ثابتة جديدة للحقل "
IMPORTANCE_PERCEPTIBLE
" للحقلimportance
فيActivityManager.RunningAppProcessInfo
. تشير القيمة إلى أن عملية معينة تقوم بتشغيل شيء يُعد مدركًا بشكل نشط للمستخدم. على سبيل المثال، تطبيق يقوم بتشغيل موسيقى في الخلفية. - تم الآن إيقاف طريقة Activity.setPersistent(boolean) لوضع علامة "مستمر" على أحد الأنشطة، وأصبح التنفيذ غير مفعّل.
- يضيف
- أنماط نص الإشعارات والرموز
- تم توفير ميزات جديدة في
TextAppearance.StatusBar.EventContent
وTextAppearance.StatusBar.EventContent.Title
وTextAppearance.StatusBar.Icon
وTextAppearance.StatusBar.Title
لإدارة نمط الإشعارات.
- تم توفير ميزات جديدة في
- تتم إضافة طُرق OpenGL ES 2.0 المتبقية
glDrawElements()
وglVertexAttribPointer()
في الفئةandroid.opengl.GLES20
. - وتتوافق هذه الميزة مع تنسيق
YV12
بكسل، بتنسيق YCrCb 4:2:0 اللوحي. - فئة جديدة من مزودي خدمة
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 فعلية متوفرة أم لا. - ثوابت جديدة للإعلان عن ميزات الأجهزة والبرامج راجِع القائمة في قسم الثوابت الجديدة للميزات أدناه.
- تضيف
PackageInfo
حقولfirstInstallTime
وlastUpdateTime
جديدة تخزّن وقت تثبيت الحزمة وآخر تحديث. - طريقة
getProviderInfo()
جديدة لاسترداد جميع المعلومات المعروفة حول فئة معيّنة من موفِّر المحتوى. - تضيف
TelephonyManager
القيمةNETWORK_TYPE_EVDO_B
الثابتة لتحديد نوع الشبكة CDMA EVDO Rev B. - تعرض طريقة
getPsc()
الجديدة رمز التشابك الأساسي لخلية العرض على شبكة النظام العالمي لاتصالات الجوال عن بعد (UMTS). NativeActivity
هو نوع جديد من فئات النشاط، يتم تنفيذ معاودة الاتصال خلال مراحل نشاطها مباشرةً بلغة البرمجة الأصلية. يتم تشغيلNativeActivity
ورمزه الأصلي الأساسي في النظام مثل الأنشطة الأخرى، وتحديدًا يتم تنفيذها في عملية نظام تطبيق Android ويتم تنفيذها على سلسلة واجهة المستخدم الرئيسية للتطبيق، وتتلقّى هذه الأنشطة معاودة الاتصال خلال مراحل النشاط مثلما يتم في الأنشطة الأخرى.- تتيح واجهة معاودة الاتصال وفئة
InputQueue
الجديدة استخدام الرموز البرمجية الأصلية لإدارة قائمة انتظار الأحداث. - تتيح واجهة
SurfaceHolder.Callback2
الجديدة إمكانية استخدام الرموز الأصلية لإدارةSurfaceHolder
. - تتيح طريقة
takeInputQueue
وtakeSurface()
الجديدة فيWindow
للرموز البرمجية الأصلية إدارة الأحداث ومساحات العرض. - تزيل السمة
dalvik.system
العديد من الصفوف التي تم إيقافها نهائيًا في السابق. - مكتبات دالفيك الأساسية:
- المجموعات الجديدة:
ArrayDeque
، وNavigableMap
، وConcurrentSkipListMap
، وLinkedBlockingDeque
- أدوات
Arrays
الجديدة:binarySearch()
وcopyOf()
وcopyOfRange()
وغيرها. CookieManager
لحساب "HttpURLConnection
"- واجهات برمجة تطبيقات أكثر اكتمالاً للشبكات:
InterfaceAddress
وNetworkInterface
وIDN
- عناصر التحكّم في القراءة والكتابة على
File
String.isEmpty()
Normalizer
وNormalizer.Form
- تم تحسين مقابس خادم
javax.net.ssl
.
- المجموعات الجديدة:
- السمة
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.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
— يستخدم التطبيق إمكانات اللمس المتعدّد النقاط المتقدّمة على شاشة الجهاز، لتتبُّع خمس نقاط أو أكثر بشكل مستقلّ بالكامل.
شاشات كبيرة جدًا
يدعم النظام الأساسي الآن أحجام الشاشات الكبيرة جدًا، مثل
تلك التي قد تكون موجودة على الأجهزة اللوحية. ويمكن للمطوّرين الإشارة إلى أنّ تطبيقاتهم مصمّمة لإتاحة أحجام الشاشات الكبيرة جدًا من خلال إضافة عنصر <supports
screens ... android:xlargeScreens="true">
إلى ملفات البيان. يمكن للتطبيقات استخدام مؤهِّل جديد للموارد، xlarge
، لوضع علامة على الموارد الخاصة بالشاشات الكبيرة جدًا. للحصول على تفاصيل حول كيفية إتاحة أحجام الشاشات الكبيرة جدًا وغيرها، يُرجى الاطّلاع على إتاحة الشاشات المتعددة.
الرسومات
موفّرو المحتوى
الموقع الجغرافي
سعة التخزين
مدير الحزم
التلفونية
الوصول الأصلي إلى النوافذ ومراحل نشاط النشاط
يعرض Android 2.3 مجموعة واسعة من واجهات برمجة التطبيقات للتطبيقات التي تستخدم رموزًا برمجية أصلية. تشمل فئات الإطار التي تهمك مثل هذه التطبيقات ما يلي:
للحصول على المعلومات الكاملة حول استخدام الرموز البرمجية الأصلية أو تنزيل NDK، راجع صفحة Android NDK.
وقت تشغيل "دالفيك"
عناصر وسمات بيان جديدة
الأذونات الجديدة
الميزات الثابتة الجديدة
يضيف النظام الأساسي العديد من ميزات الأجهزة الجديدة التي يمكن للمطوّرين الإعلان عنها في بيانات التطبيقات على أنّها مطلوبة من تطبيقاتهم. يتيح ذلك للمطوّرين التحكم في كيفية فلترة تطبيقاتهم عند نشرها على Google Play.
للحصول على المعلومات الكاملة حول كيفية الإفصاح عن الميزات واستخدامها للفلترة، يمكنك الاطّلاع على مستندات <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 والإصدارات الأحدث فقط، فإن الإعلان عن السمة يمنع تثبيت التطبيق على الإصدارات السابقة من النظام الأساسي.
للمزيد من المعلومات، يُرجى قراءة المقالة ما هو مستوى واجهة برمجة التطبيقات؟