اتجاه التطبيق ونسبة العرض إلى الارتفاع وإمكانية تغيير حجمه

تعمل تطبيقات Android على جميع أنواع الأجهزة، مثل الهواتف والأجهزة اللوحية والهواتف القابلة للطي وأجهزة ChromeOS والسيارات وأجهزة التلفزيون وحتى أجهزة الواقع الممتد (XR). وللتكيّف مع هذه البيئة المتنوعة، يجب أن يتوافق تطبيقك مع جميع أشكال الأجهزة وأحجام الشاشات.

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

  • الأجهزة اللوحية
  • الشاشات الداخلية للأجهزة القابلة للطيّ ذات الشاشات الكبيرة
  • العرض في نافذة على أجهزة الكمبيوتر (على جميع أشكال الأجهزة)

يمكن تغيير حجم التطبيقات التي تستهدف المستوى 36 من واجهة برمجة التطبيقات، كما يمكنها الدخول إلى وضع النوافذ المتعددة (ما يعادل resizeableActivity="true") إذا كان أصغر عرض للشاشة أكبر من أو يساوي 600 وحدة بكسل مستقلة الكثافة.

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

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

التغييرات

يتم تجاهل سمات البيان وواجهات برمجة التطبيقات التالية في التطبيقات التي تستهدف الإصدار Android 16 (المستوى 36 لواجهة برمجة التطبيقات) على الشاشات الكبيرة:

السمة أو واجهة برمجة التطبيقات القيم التي تم تجاهلها
screenOrientation portrait، landscape، reversePortrait، reverseLandscape، sensorPortrait، sensorLandscape، userPortrait، userLandscape
resizeableActivity الكل
minAspectRatio الكل
maxAspectRatio الكل
setRequestedOrientation()

getRequestedOrientation()
portrait، landscape، reversePortrait، reverseLandscape، sensorPortrait، sensorLandscape، userPortrait، userLandscape

الاستثناءات

تشمل الاستثناءات من التغييرات في Android 16 ما يلي:

  • الشاشات الأصغر من sw600dp (معظم الهواتف والهواتف القابلة للطي والشاشات الخارجية للهواتف القابلة للطي ذات الشاشات الكبيرة)

  • الألعاب (استنادًا إلى علامة android:appCategory)

    انشر لعبتك باستخدام "مجموعة حزمات تطبيق Android" وميزة "توقيع التطبيق" من Play، ما يتيح لـ Google Play إدارة العلامة وتوفير مزايا حِزم التطبيقات تلقائيًا. اطّلِع أيضًا على نظرة عامة على بيان التطبيق.

  • موافقة المستخدم على السلوك التلقائي للتطبيق في إعدادات نسبة العرض إلى الارتفاع

إيقاف

لإيقاف سلوك مستوى واجهة برمجة التطبيقات 36، يجب الإفصاح عن ملف بيان PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY.

لإيقاف ميزة معيّنة، اضبط الموقع في عنصر <activity>:

<activity ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</activity>

لإيقاف الميزة في تطبيقك بالكامل، اضبط السمة في عنصر <application>:

<application ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</application>

الاختبارات

لاختبار ما إذا كان تطبيقك سيتأثر بالتغييرات في Android 16، استخدِم محاكيَي Pixel Tablet وPixel Fold في "استوديو Android" واضبط targetSdkPreview = "Baklava" في ملف build.gradle الخاص بوحدة تطبيقك.

أو استخدِم إطار عمل توافق التطبيقات على أجهزة الاختبار من خلال تفعيل العلامة UNIVERSAL_RESIZABLE_BY_DEFAULT (راجِع أدوات إطار عمل التوافق).

يمكنك إعداد الاختبارات تلقائيًا باستخدام إطار عمل الاختبار Espresso وواجهات برمجة التطبيقات الخاصة بالاختبار في Jetpack Compose.

دليل التنفيذ

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

قائمة التحقّق من مدى الاستعداد

استخدِم قائمة التحقّق التالية للمساعدة في ضمان استعداد تطبيقك للتغييرات في Android 16:

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

للحصول على دليل عملي حول إنشاء تصميمات متجاوبة في Compose، اطّلِع على الدرس التطبيقي حول الترميز إنشاء تطبيقات متجاوبة باستخدام Jetpack Compose. إذا كنت بصدد نقل بيانات تطبيق يستخدم طرق العرض، اطّلِع على استراتيجية استخدام Compose.

المخطط الزمني

  • ‫Android 16 (2025): تتوفّر تجربة أساسية على الأجهزة ذات الشاشات الكبيرة (أصغر عرض للشاشة ≥ 600 وحدة بكسل مستقلة الكثافة) لجميع الاتجاهات ونِسب العرض إلى الارتفاع وإمكانية تغيير حجم التطبيقات التي تستهدف المستوى 36 لواجهة برمجة التطبيقات. ومع ذلك، يمكن للمطوّرين إيقاف هذه الميزة.
مستوى واجهة برمجة التطبيقات المستهدف الأجهزة المشمولة يُسمح للمطوّرين بإيقاف الميزة
‫36 (الإصدار 16 من نظام التشغيل Android) الأجهزة ذات الشاشات الكبيرة (أصغر عرض للشاشة >= 600 وحدة بكسل مستقلة عن الكثافة) نعم

تختلف المواعيد النهائية لاستهداف مستويات معيّنة من واجهة برمجة التطبيقات حسب متجر التطبيقات. سيشترط Google Play أن تستهدف التطبيقات المستوى 36 لواجهة برمجة التطبيقات اعتبارًا من آب (أغسطس) 2026.

مراجع إضافية