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

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

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

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

أهم تفاصيل المنصة

للحصول على قائمة بميزات المستخدم الجديدة وأهمّ الميزات المتعلّقة بالنظام الأساسي، يُرجى الاطّلاع على مستند أهم ميزات Android 2.2 Platform.

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

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

لاستخدام واجهات برمجة التطبيقات التي تم تقديمها في الإصدار Android 2.2 في تطبيقك، عليك ضبط القيمة المناسبة "8" في سمات android:minSdkVersion للعنصر <uses-sdk> في بيان التطبيق.

لمزيد من المعلومات حول كيفية استخدام مستوى واجهة برمجة التطبيقات، يُرجى الاطّلاع على مستند مستويات واجهة برمجة التطبيقات.

تغييرات إطار عمل واجهة برمجة التطبيقات

تقدم الأقسام أدناه معلومات عن التغييرات التي تم إجراؤها على واجهة برمجة التطبيقات لإطار عمل التطبيق والتي يوفرها النظام الأساسي Android 2.2.

تثبيت التطبيق على وسائط مساحة التخزين الخارجية

يسمح نظام Android الأساسي الآن للتطبيقات بطلب التثبيت على وسائط تخزين خارجية للجهاز (مثل بطاقة SD)، كبديل للتثبيت على ذاكرة الجهاز الداخلية.

يمكن لمطوّري التطبيقات التعبير عن موقع التثبيت المفضّل لتطبيقاتهم باستخدام سمة جديدة <manifest> في ملف البيان، android:installLocation. وتتيح السمة ثلاث قيم: "internalOnly" و"preferExternal" و "auto". أثناء التثبيت، يتحقّق النظام من قيمة android:installLocation ويثبّت التطبيق .apk وفقًا للموقع الجغرافي المفضّل، إن أمكن. في حال طلب التطبيق تثبيتًا خارجيًا، يثبّته النظام في قسم مشفّر خاص في الوسائط الخارجية. عند تثبيت

يثبّت النظام تلقائيًا جميع التطبيقات على الذاكرة الداخلية للجهاز، باستثناء تلك التي تطلب تثبيتًا خارجيًا بشكل صريح. يعني ذلك أنّ النظام سيثبّت دائمًا التطبيقات القديمة على ذاكرة داخلية، بسبب عدم إمكانية وصولها إلى السمة android:installLocation. ومع ذلك، من الممكن ضبط تطبيق قديم وتجميعه بحيث يتم تثبيته داخليًا على الإصدارات القديمة من النظام الأساسي وخارجيًا على أنظمة التشغيل Android 2.2 والإصدارات الأحدث، إذا لزم الأمر.

يُرجى ملاحظة أنّ طلب التثبيت على الوسائط الخارجية للجهاز ليس مناسبًا لجميع التطبيقات، لا سيما أنّ الوسائط الخارجية قد تكون قابلة للإزالة، وقد يؤدي إلغاء تثبيتها/إعادة تثبيتها إلى حدوث خلل في تجربة المستخدم وإعدادات النظام.

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

الغرض هو الاحتفاظ بنسخة احتياطية من البيانات.

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

الرسومات

الوسائط

  • واجهات برمجة تطبيقات جديدة في android.media.AudioManager لإدارة تركيز الصوت والتحكم في النقل وفقدان تركيز الصوت المؤقت وتجنب التداخل
  • هدف جديد للبث من أجل توجيه الصوت إلى SCO: يتضمّن "ACTION_SCO_AUDIO_STATE_CHANGED" مع ميزات إضافية تشير إلى الحالة الجديدة.
  • واجهات برمجة تطبيقات جديدة في SoundPool لرصد اكتمال تحميل الصوت
  • واجهات برمجة تطبيقات جديدة في SoundPool لإيقافها مؤقتًا واستئنافها تلقائيًا
  • واجهات برمجة تطبيقات جديدة في MediaRecorder لتحديد إعدادات الصوت لعدد القنوات ومعدلات الترميز وأخذ العينات ومعدل أخذ العينات.
  • واجهات برمجة تطبيقات جديدة لإضافة الملفات إلى قاعدة بيانات الوسائط، بحيث يتم فحصها تلقائيًا يمكنك الاطّلاع على MediaScannerConnection.scanFile وMediaScannerConnection.OnScanCompletedListener.

محركات التعرّف على الكلام والتعرّف على الجهات الخارجية

  • يوفر النظام الأساسي واجهات برمجة تطبيقات جديدة للتعرف على الكلام والتي تسمح للتطبيقات بالحصول على تفاعل أكثر ثراءً مع أداة التعرف على الصوت المتاحة. على سبيل المثال، تكفي واجهات برمجة التطبيقات لدمج التعرف على الصوت بشكل عميق في أداة IME.
  • توفّر المنصّة أيضًا فئة أساسية RecognitionService تتيح للمطوّرين التابعين لجهات خارجية إنشاء محركات التعرّف على المكوّنات الإضافية.
  • واجهة RecognitionListener جديدة لتلقّي عمليات معاودة الاتصال.
  • إضافات RecognizerIntent الجديدة التي تسمح لتطبيق مقدِّم الطلب بتحديد تفاصيل اللغة المفضّلة، والحد الأدنى لطولها بالمللي ثانية، وما إلى ذلك.

كاميرا وكاميرا فيديو

  • تغييرات على واجهة برمجة تطبيقات معاينة الكاميرا لتحسين كفاءة مسار المعاينة
  • اتجاه عرض جديد للكاميرا (يمكن أن يعمل الآن في الاتجاه العمودي).
  • واجهات برمجة تطبيقات جديدة في android.hardware.Camera لإدارة مستوى التكبير/التصغير.
  • واجهات برمجة تطبيقات جديدة android.hardware.Camera.Parameters لطلب البحث عن إعدادات كاميرا الجهاز وضبطها، مثل البعد البؤري والتعرّض للضوء ومستوى التكبير/التصغير وزاوية الرؤية وغير ذلك
  • أداة thumbnail جديدة للصور المصغّرة للفيديوهات والصور.
  • تتيح الفئتان الجديدتان CamcorderProfile وCamcorderProfile للتطبيقات تحديد إمكانيات الكاميرا للأجهزة.
  • دعم جديد في android.media.ExifInterface لاسترداد نظام تحديد المواقع العالمي (GPS) والبعد البؤري.

مدير سياسة الجهاز

تسمح واجهات برمجة التطبيقات الجديدة لإدارة سياسة الجهاز للمطوّرين بكتابة تطبيقات "مشرف الجهاز" التي يمكنها التحكّم في ميزات أمان الجهاز، مثل الحدّ الأدنى لقوة كلمة المرور وحجب البيانات وما إلى ذلك. ويمكن للمستخدمين تحديد المشرفين الذين تم تمكينهم على أجهزتهم. لمزيد من المعلومات، يُرجى الاطّلاع على فئات android.app.admin أو مثال على رمز التطبيق في DeviceAdminعيّن.java.

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

  • إنّ وضعَي واجهة المستخدم الجديدَين "وضع السيارة" و "الوضع الليلي" وUiModeManager يسمحان للتطبيقات بضبط واجهة المستخدم الخاصة بالتطبيق لأوضاع المستخدمين المحدّدة.
  • ScaleGestureDetector جديدة تسمح لـ "المشاهدات" باكتشاف إيماءات التحويل التي تتضمن أكثر من مؤشر واحد (اللمس المتعدد) باستخدام أحداث MotionEvents المُقدّمة.
  • التحسينات على طريقة إعداد تقارير عن أحداث اللمس المتعدد في عناصر MotionEvent
  • تمت إعادة تسمية سمة التنسيق fill_parent لتصبح match_parent. يؤثر هذا التغيير في رمزَي XML وJava (راجِع ViewGroup.LayoutParams). يُرجى العلم بأنّ النظام الأساسي سيستمر في قبول استخدامات fill_parent في التطبيقات القديمة.
  • تسمح سمات التنسيق الجديدة tabStripEnabled وtabStripRight وtabStripLeft للمطوّرين بتخصيص الشريط السفلي من TabWidgets.
  • دعم أفضل لمربعات الحوار المُدارة في "النشاط".

الحسابات والمزامنة

  • تتيح لك الطريقة الجديدة AddPeriodicSync() جدولة مزامنة دورية مع حساب ومرجع معيّن وعناصر إضافية بالوتيرة المحدّدة.

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

  • لتحديد موقع التثبيت المفضّل للتطبيق (راجِع تثبيت التطبيق على وسائط التخزين الخارجية أعلاه):
    • السمة android:installLocation الجديدة للعنصر <manifest> يحدِّد موقع التثبيت التلقائي الذي يحدده التطبيق.
  • لإدارة الاحتفاظ بنسخة احتياطية من بيانات المستخدمين (راجِع مدير النسخ الاحتياطي أعلاه للحصول على مزيد من المعلومات):
    • السمة android:backupAgent الجديدة للعنصر <application> تحدد اسم مكوِّن الفئة الفرعية BackupAgent التي يوفرها التطبيق للتعامل مع عمليات النسخ الاحتياطي/الاستعادة، إن وجدت.
    • السمة android:restoreAnyVersion الجديدة للعنصر <application> قيمة منطقية تشير إلى ما إذا كان التطبيق مُعدًّا لمحاولة استعادة أي مجموعة بيانات تم الاحتفاظ بنسخة احتياطية منها، حتى إذا كانت النسخة الاحتياطية ظاهرة من إصدار أحدث من التطبيق مقارنةً بالإصدار المثبَّت حاليًا على الجهاز
  • لإدارة برنامج التجميع أثناء التشغيل (JIT) للنظام الأساسي:
    • السمة android:vmSafeMode الجديدة للعنصر <application> قيمة منطقية تحدّد ما إذا كان سيتم إيقاف تحسينات برنامج التجميع أثناء التشغيل (JIT) عند تشغيل التطبيق.

الأذونات

  • android.permission.BIND_DEVICE_ADMIN — يجب أن يطلب أي مستقبل بث لإدارة الجهاز هذا الإذن لضمان تفاعل النظام فقط معه.
  • android.permission.KILL_BACKGROUND_PROCESSES - للسماح لتطبيق بالاتصال بـ killBackgroundProcesses(String).
  • android.permission.BIND_WALLPAPER: يجب أن يطلب أي WallpaperService هذا الإذن، لضمان أنّ النظام وحده هو من يتفاعل معه.
  • android.permission.SET_TIME - للسماح لأحد التطبيقات بضبط وقت النظام.

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

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