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

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

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

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

أبرز الميزات في المنصة

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

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

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

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

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

التغييرات في واجهة برمجة التطبيقات Framework API

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

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

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

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

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

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

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

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

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

الرسومات

الوسائط

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

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

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

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

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

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

تتيح واجهات برمجة التطبيقات الجديدة لإدارة سياسات الجهاز للمطوّرين كتابة تطبيقات "مدير الجهاز" التي يمكنها التحكّم في ميزات أمان الجهاز، مثل الحد الأدنى لقوة كلمة المرور ومسح البيانات وما إلى ذلك. يمكن للمستخدمين اختيار المشرفين الذين تم تفعيلهم على أجهزتهم. لمزيد من المعلومات، اطّلِع على android.app.admin أو مثال رمز التطبيق في DeviceAdminSample.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> قيمة منطقية تحدِّد ما إذا كان سيتم إيقاف تحسينات برنامج التجميع أثناء التنفيذ عند تشغيل التطبيق.

الأذونات

  • 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 من واجهة برمجة التطبيقات)، يُرجى الاطّلاع على تقرير اختلافات واجهة برمجة التطبيقات.