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

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

الإصدار Android 3.2 (HONEYCOMB_MR2) هو إصدار نظام أساسي تزايدي يضيف للمستخدمين والمطورين. تقدّم الأقسام أدناه نظرة عامة. من الميزات الجديدة وواجهات برمجة تطبيقات المطورين.

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

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

الميزات الجديدة للمستخدم

  • تحسينات لمجموعة أكبر من الأجهزة اللوحية

    يتضمن Android 3.2 مجموعة متنوعة من التحسينات على مستوى النظام لضمان تجربة مستخدم رائعة على مجموعة أكبر من الأجهزة اللوحية.

  • تكبير التوافق مع التطبيقات ذات الحجم الثابت

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

  • مزامنة الوسائط من بطاقة SD

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

الميزات الجديدة لمطوّري البرامج

  • واجهة برمجة تطبيقات موسعة لإدارة دعم الشاشات

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

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

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

واجهات برمجة التطبيقات لدعم الشاشات

يقدّم Android 3.2 شاشات جديدة تتوافق مع واجهات برمجة التطبيقات التي تمنحك المزيد من التحكم في كيفية عرض تطبيقاتهم عبر أحجام الشاشات المختلفة. تعتمد واجهة برمجة التطبيقات هذه على واجهة برمجة التطبيقات الحالية لدعم الشاشات، بما في ذلك واجهة برمجة التطبيقات كثافة شاشة معمَّمة، ولكنها توسّع نطاقه مع القدرة على استهداف نطاقات شاشات محددة حسب أبعادها، ويتم قياسها وحدات بكسل مستقلة الكثافة (مثل 600 بكسل مستقل الكثافة أو بعرض 720 بكسل مستقل الكثافة)، بدلاً من حسب أحجام الشاشة المعممة (مثل كبيرة أو كبيرة جدًا)

عند تصميم واجهة مستخدم تطبيق ما، لا يزال بإمكانك الاعتماد على النظام الأساسي الكثافة التجريدية، مما يعني أن التطبيقات لن تحتاج إلى للتعويض عن الاختلافات في كثافة وحدات البكسل الفعلية عبر الأجهزة. إِنْتَ تصميم واجهة مستخدم التطبيق وفقًا للمقدار الأفقي أو الرأسي المساحة المتوفرة. تعبر المنصة عن مقدار المساحة المتاحة باستخدام ثلاث الخصائص: smallestالعرض وwidth و height.

  • إن أصغر عرض للشاشة هو الحد الأدنى الأساسي لحجمها، بوحدات بكسل مستقلة الكثافة ("dp") لارتفاع الشاشة أو العرض، فهو الأقصر بين الاثنين. بالنسبة للشاشة ذات الاتجاه العمودي، عادةً ما يعتمد أصغر عرض على عرضه، بينما يعتمد في الاتجاه الأفقي على ارتفاعه. وفي جميع الحالات، يتم اشتقاق أصغر عرض من خاصية ثابتة الشاشة ولا تتغير القيمة، بغض النظر عن الاتجاه. أصغر عرض مهمًا للتطبيقات لأنه يمثل أقصر عرض ممكن الذي سيلزم رسم واجهة مستخدم التطبيق فيها، ولا يشمل ذلك مناطق الشاشة حجزه من قبل النظام.
  • في المقابل، يمثل كل من width وheight للشاشة المساحة الأفقية أو الرأسية الحالية المتاحة لتخطيط التطبيق، تم قياسها بتنسيق "dp" ولا يشمل تلك الوحدات مناطق الشاشة التي حجزها النظام. يُعد العرض يتغيّر ارتفاع الشاشة عندما يبدِّل المستخدم الاتجاه بين الوضع الأفقي وعمودي.

تم تصميم واجهة برمجة التطبيقات التي تدعم الشاشات الجديدة للسماح لك بإدارة واجهة مستخدم التطبيق وفقًا لأصغر عرض للشاشة الحالية. يمكنك أيضًا إدارة واجهة مستخدم وفقًا للعرض أو الارتفاع الحالي حسب الحاجة ولهذه الأغراض، ستعمل واجهة برمجة التطبيقات الأدوات التالية:

  • مؤهِّلات موارد جديدة لاستهداف التخطيطات والموارد الأخرى الحد الأدنى للأصغر للعرض أو العرض أو الارتفاع،
  • سمات جديدة في البيان لتحديد الحد الأقصى المسموح به في التطبيق نطاق توافق الشاشة

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

ونظرًا لأن واجهة برمجة التطبيقات الجديدة تتيح لك استهداف الشاشات بشكل مباشر أكثر من خلال أصغر عرض، والعرض والارتفاع، فمن المفيد أن تفهم النموذج الخصائص المختلفة لأنواع الشاشات المختلفة. يعرض الجدول أدناه بعض أمثلة، يتم قياسها بـ "dp" الوحدات.

الجدول 1. الأجهزة المعتادة ذات الكثافة والحجم بالوحدة بكسل مستقلة الكثافة (dp).

النوع الكثافة (المعمَّمة) الأبعاد (dp) أصغر عرض (dp)
الهاتف الأساسي mdpi 320×480 320
جهاز لوحي صغير/هاتف كبير mdpi 480×800 480
جهاز لوحي مقاس 7 بوصات mdpi 600 × 1024 600
جهاز لوحي مقاس 10 بوصات mdpi 800×1280 800

تقدِّم الأقسام أدناه مزيدًا من المعلومات عن مؤهِّلات الشاشة الجديدة. وسمات البيان. للحصول على معلومات كاملة حول كيفية استخدام الشاشة واجهة برمجة تطبيقات الدعم، راجع دعم واجهات برمجة التطبيقات المتعددة الشاشات:

مؤهِّلات جديدة لموارد دعم الشاشات

تتيح لك مؤهِّلات الموارد الجديدة في Android 3.2 استهداف تصميماتك بشكل أفضل لمجموعات أحجام الشاشات. باستخدام المؤهلات، يمكنك إنشاء موارد التكوينات المصممة للحد الأدنى المحدد لأصغر عرض أو عرض حالي أو الارتفاع الحالي، مُقاسًا بوحدات بكسل مستقلة الكثافة.

في ما يلي المؤهلات الجديدة:

  • swNNNdp — تحدّد الحد الأدنى لعرض أصغر يجب استخدام المورد، وقياسه بـ "dp". الوحدات. كما ذكرنا أعلاه، يكون أصغر عرض للشاشة ثابتًا، بصرف النظر عن الاتجاه. أمثلة: "sw320dp" و"sw720dp" و"sw720dp"
  • wNNNdp وhNNNdp — لتحديد الحد الأدنى العرض أو الارتفاع الذي يجب استخدام المورد عليه، ويتم قياسه بـ "dp" الوحدات. بالنسبة المذكور أعلاه، يعتمد عرض الشاشة وارتفاعها على اتجاه الشاشة ويتغير كلما تغير الاتجاه. أمثلة: "w320dp" وw720dp" و"h1024dp"

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

استنادًا إلى السمات النموذجية المذكورة سابقًا، في ما يلي بعض الأمثلة على كيفية يمكنك استخدام المؤهلات الجديدة وهي:

res/layout/main_activity.xml   # For phones
res/layout-sw600dp/main_activity.xml   # For 7” tablets
res/layout-sw720dp/main_activity.xml   # For 10” tablets
res/layout-w600dp/main_activity.xml   # Multi-pane when enough width
res/layout-sw600dp-w720dp/main_activity.xml   # For large width

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

res/layout/main_activity.xml   # For phones
res/layout-xlarge/main_activity.xml   # For pre-3.2 tablets
res/layout-sw600dp/main_activity.xml   # For 3.2 and up tablets

للحصول على معلومات كاملة عن كيفية استخدام المؤهلات الجديدة، راجع استخدام المؤهلات الجديدة مؤهِّلات الحجم

سمات جديدة لبيان التوافق مع حجم الشاشة

يوفّر إطار العمل مجموعة جديدة من سمات بيان <supports-screens> التي تتيح يمكنك إدارة دعم تطبيقك لأحجام الشاشات المختلفة. ويمكنك على وجه التحديد تحديد الشاشات الأكبر والأصغر التي يتم عرض تطبيقك عليها تم تصميمه للتشغيل، بالإضافة إلى أكبر شاشة تم تصميمها عليها بدون الحاجة إلى شاشة جديدة للنظام وضع التوافق. مثل مؤهلات الموارد الموضحة أعلاه، يمثل العنصر الجديد بسمات البيان التي تحدد نطاق الشاشات التي يتوافق معها التطبيق، كما هو محدد في أصغر عرض.

في ما يلي سمات البيان الجديدة المتوافقة مع الشاشة:

  • android:compatibleWidthLimitDp="numDp" — هذه تحديد الحد الأقصى لعرض أصغر عرض له بدون الحاجة إلى وضع التوافق. إذا كانت الشاشة الحالية أكبر من القيمة المحددة، يعرض النظام التطبيق في الوضع العادي غير أنه تسمح للمستخدم بالتبديل اختياريًا إلى وضع التوافق من خلال إعداد في شريط النظام.
  • android:largestWidthLimitDp="numDp" — هذه تحديد الحد الأقصى لعرض أصغر عرض له تم تصميمه للتشغيل. إذا كانت الشاشة الحالية أكبر من القيمة المحددة، يفرض النظام دخول التطبيق إلى وضع التوافق مع الشاشة، لضمان العرض على الشاشة الحالية.
  • android:requiresSmallestWidthDp="numDp" — هذه تحديد الحد الأدنى لعرض التطبيق الذي تشغيله. إذا كانت الشاشة الحالية أصغر من القيمة المحددة، فسيبدأ النظام التطبيق غير متوافق مع الجهاز، لكنه لا يمنعه من تثبيته وتشغيله.

ملاحظة: لا يُجري Google Play فلترة حاليًا. تطبيقات تستند إلى أي من السمات الواردة أعلاه. سيكون دعم التصفية تمت إضافتها في إصدار نظام أساسي لاحق. التطبيقات التي تتطلب للفلترة استنادًا إلى حجم الشاشة، يمكن استخدام سمة <supports-screens> الحالية ذات الصلة.

للحصول على معلومات كاملة عن كيفية استخدام السمات الجديدة، راجع بيان دعم حجم الشاشة

وضع التوافق مع الشاشة

يوفّر Android 3.2 وضعًا جديدًا للتوافق مع الشاشة للتطبيقات الإعلان صراحةً أنهم لا يدعمون الشاشات الكبيرة مثل الشاشة الموجودة الذي يشغلونه. ميزة "التكبير/التصغير" الجديدة هذه يتم قياسه بالبكسل — فهو لعرض التطبيق في مساحة شاشة أصغر ثم تغيير حجم وحدات البكسل لملء الشاشة الحالية.

يوفّر النظام تلقائيًا وضع التوافق مع الشاشة كخيار للمستخدمين في التطبيقات. التي تتطلب ذلك. يمكن للمستخدمين تفعيل وضع التكبير أو التصغير وإيقافه باستخدام عنصر تحكُّم متاح. في شريط النظام.

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

ملاحظة: للحصول على معلومات مهمة حول كيفية للتحكم في وضع التوافق في تطبيقاتك، يُرجى مراجعة مقالة الوضع الجديد للتطبيقات على الشاشات الكبيرة على Android مدونة Developers.

كثافة شاشة جديدة لأجهزة التلفزيون التي تبلغ دقتها 720p والأجهزة المشابهة

لتلبية احتياجات التطبيقات التي تعمل على أجهزة تلفزيون بدقة 720 بكسل أو ما شابه ذلك ذات كثافة معتدلة، يقدم Android 3.2 كثافة معممة جديدة، tvdpi، مع نقطة لكل بوصة تقريبية تبلغ 213. يمكن للتطبيقات إجراء طلب بحث عن بالكثافة الجديدة في densityDpi ويمكنها استخدام مؤهل tvdpi الجديد لوضع علامة على الموارد الخاصة بأجهزة التلفزيون أجهزة مشابهة. مثلاً:

res/drawable-tvdpi/my_icon.png   # Bitmap for tv density

وبوجه عام، يجب ألا تحتاج التطبيقات إلى العمل بهذه الكثافة. في الحالات إذا كانت الشاشة تحتاج إلى الإخراج بدقة 720p، يمكن تغيير حجم عناصر واجهة المستخدم. تلقائيًا بواسطة المنصة

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

  • أجزاء
    • تحمل فئة Fragment.SavedState الجديدة الولاية المعلومات التي تم استردادها من مثيل مجزأ من خلال saveFragmentInstanceState()
    • الطريقة الجديدة saveFragmentInstanceState() تحفظ حالة المثيل الحالية الجزء المعين. يمكن استخدام الحالة لاحقًا عند إنشاء مثيل جديد على الجزء الذي يتطابق مع الحالة الحالية.
    • الطريقة الجديدة setInitialSavedState() لتعيين حالة الحفظ الأولية لجزء عند إنشائها لأول مرة.
    • تعمل طريقة معاودة الاتصال onViewCreated() الجديدة على إبلاغ الجزء الذي onCreateView() ولكن قبل استعادة أي حالة محفوظة في العرض.
    • تحدِّد طريقة isDetached() ما إذا كان فصل الجزء صراحةً عن واجهة المستخدم.
    • attach() جديد وdetach() تتيح للتطبيق إعادة إرفاق الأجزاء أو فصلها في واجهة المستخدم.
    • تتيح لك طريقة جديدة من طرق التحميل الزائدة في "setCustomAnimations()" ضبط صورة متحركة محدّدة الموارد لتشغيل عمليات الدخول والخروج، وعلى وجه التحديد عند وكسر المكدس الخلفي. ولا تراعي عملية التنفيذ الحالية لمعرفة السلوك المختلف للأجزاء عند تمييز المكدس الخلفي.
  • معلومات حجم الشاشة في ActivityInfo وApplicationInfo
  • أدوات مساعدة للحصول على حجم العرض من WindowManager
    • تتيح الطريقتان الجديدتان getSize() وgetRectSize() للتطبيقات الحصول على الحجم الأولي للشاشة.
  • "صورة مجسَّمة" جديدة وعلنية أنماط
    • تعرض المنصة الآن مجموعة متنوعة من "الصور المجسمّة" العلنية أنماط للنص، والتطبيقات المصغّرة لشريط الإجراءات وعلامات التبويب وغير ذلك عرض يمكنك R.style للاطّلاع على القائمة الكاملة.
  • LocalActivityManager وActivityGroup و تم إيقاف LocalActivityManager نهائيًا الآن.
    • يجب أن تستخدم التطبيقات الجديدة "أجزاء" بدلاً من هذه الفئات. إلى مواصلة العمل على إصدارات سابقة من المنصة، يمكنك استخدام الإصدار 4 المكتبة (مكتبة التوافق)، متوفّرة في حزمة تطوير البرامج (SDK) لنظام التشغيل Android. دعم الإصدار 4 توفر المكتبة إصدارًا من واجهة برمجة تطبيقات Fragment API يتوافق مع Android 1.6 (المستوى 4)
    • للتطبيقات التي يتم تطويرها مقابل الإصدار Android 3.0 (مستوى واجهة برمجة التطبيقات) 11) أو أعلى، يتم عادةً عرض علامات التبويب في واجهة المستخدم باستخدام واجهة ActionBar.newTab() وواجهات برمجة التطبيقات ذات الصلة لوضع علامات التبويب داخل منطقة شريط الإجراءات الخاص بها.

إطار عمل الوسائط

  • يمكن الآن للتطبيقات التي تستخدم مزوّد وسائط النظام الأساسي (MediaStore) قراءة بيانات الوسائط مباشرةً من بطاقة SD قابلة للإزالة، في حال كان الجهاز متوافقًا معها يمكن للتطبيقات أيضًا مع ملفات بطاقة SD مباشرةً، باستخدام واجهة برمجة تطبيقات MTP.

الرسومات

إطار عمل أداة IME

  • طريقة getModifiers() جديدة من أجل استرداد الحالة الحالية لمفاتيح التعديل.

إطار عمل USB

  • طريقة getRawDescriptors() جديدة من أجل استرداد واصفات USB الأولية للجهاز. يمكنك استخدام صفحة إلى وسائل الوصف غير المتاحة مباشرة عبر من واجهات برمجة التطبيقات.

الشبكة

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

برامج الخدمات الأساسية

  • مرافق قطع الأراضي
  • Binder وIBinder
    • الطريقة الجديدة dumpAsync() في Binder وIBinder السماح للتطبيقات تفريغ في ملف محدد، مع التأكد من تنفيذ الهدف بشكل غير متزامن.
    • إنّ رمز معاملة بروتوكول IBinder الجديد TWEET_TRANSACTION يتيح للتطبيقات إرسال تغريدات. إلى الكائن المستهدف.

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

يضيف النظام الأساسي ثوابتًا جديدة لميزات الأجهزة يمكنك الإفصاح عنها. في بيانات التطبيقات، لإبلاغ الجهات الخارجية، مثل Google تشغيل إمكانيات الأجهزة والبرامج المطلوبة. أنت تعلن عن هذه وثابت الخصائص الأخرى في عناصر بيان <uses-feature>.

يفلتر Google Play التطبيقات استنادًا إلى سمات <uses-feature>، لضمان توفّرها فقط على الأجهزة التي يتم استيفاء متطلباتها عليها.

  • الثوابت في الميزة للمتطلبات الأفقية أو الرأسية

    يقدّم Android 3.2 ثوابتًا جديدة في الميزات تسمح للتطبيقات بتحديد ما إذا كانت تتطلب العرض في الاتجاه الأفقي أو الاتجاه العمودي أو كليهما. يشير تعريف هذه الثوابت إلى أنه يجب عدم تثبيت التطبيق على جهاز لا يوفر الاتجاه المرتبط. وبالعكس، إذا لم يتم تعريف أحد الثوابت أو كليهما، يشير ذلك إلى أن التطبيق لا يفضِّل الاتجاهات غير المعلَن عنها وقد يتم تثبيته على جهاز لا يوفّر تلك الاتجاهات.

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

    إذا كان أي من الأنشطة المُعلن عنها في طلب البيان يتم تنفيذها في اتجاه معين، باستخدام السمة android:screenOrientation، يُقرّ هذا أيضًا أنّ التطبيق هذا الاتجاه.

  • ثوابت الخصائص الأخرى

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

للحصول على عرض تفصيلي لجميع تغييرات واجهة برمجة التطبيقات في Android 3.2 (واجهة برمجة التطبيقات المستوى 13)، راجِع واجهة برمجة التطبيقات تقرير الاختلافات

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

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

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

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