إمكانات الجهاز لمليارات الأشخاص

الوصول إلى مستخدمين جدد يعني توفير مجموعة متزايدة من إصدارات أنظمة Android الأساسية ومواصفات الأجهزة. لتحسين تجربة المستخدم، يمكنك تحسين الإعدادات الشائعة لذاكرة الوصول العشوائي (RAM) وأحجام الشاشات ودرجات الدقة.

دعم أحجام الشاشات المتعددة

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

استخدام وحدات بكسل مستقلة الكثافة (dp)

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

اختبار النصوص والرسومات على كثافة شاشة ldpi و mdpi

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

اختبار التنسيقات على الشاشات الصغيرة والمتوسطة الحجم

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

توفير التوافق مع الأنظمة القديمة

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

يجب ضبط targetSdkVersion وminSdkVersion بشكل مناسب.

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

استخدام مكتبات دعم Android

  • تأكّد من أنّ تطبيقك يقدّم تجربة متّسقة على جميع إصدارات نظام التشغيل باستخدام مكتبة دعم Android. توفّر هذه المكتبة إصدارات متوافقة مع الأنظمة القديمة من واجهات برمجة تطبيقات إطار عمل Android، بالإضافة إلى ميزات لا تتوفّر إلا من خلال واجهات برمجة تطبيقات المكتبة، مثل AppCompatActivity وMaterial Design Support Library.
  • ومن أبرز الأمثلة على ذلك:
    • مكتبة دعم الإصدارَين 4 و7: العديد من واجهات برمجة التطبيقات لأُطر العمل المخصّصة لإصدارات Android القديمة مثل ViewPager وActionBar وRecyclerView وPalette.
    • مكتبة دعم "التصميم المتعدد الأبعاد": واجهات برمجة تطبيقات تُتيح إضافة أنماط ومكوّنات "التصميم المتعدد الأبعاد" إلى تطبيقاتك.
    • مكتبة دعم Multidex: تُتيح هذه المكتبة للتطبيقات الكبيرة التي تحتوي على أكثر من 65 ألف طريقة. وقد يحدث ذلك إذا كان تطبيقك يستخدم العديد من المكتبات.
  • ولمزيد من المعلومات حول مكتبات الدعم المتاحة، يُرجى الاطّلاع على قسم ميزات المكتبات المتوفرة في موقع مطوّري تطبيقات Android.

استخدام "خدمات Google Play"

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

استخدام الذاكرة بكفاءة

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

تقليل استخدام الذاكرة على الأجهزة المنخفضة التكلفة

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

تجنُّب العمليات الطويلة المدى

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

قياس استخدام الذاكرة

يوفر استوديو Android أدوات قياس الأداء وتحليل الذاكرة، ما يتيح لك قياس استخدام الذاكرة في وقت التشغيل. يتيح لك قياس أداء بصمة الذاكرة لتطبيقك إمكانية مراقبة استخدام الذاكرة على إصدارات متعددة من التطبيق. ويمكن أن يساعد ذلك في رصد النمو غير المقصود لبصمة الذاكرة. استخدِم أداة "تحليل الذاكرة" لإجراء ما يلي:

  • تعرّف على ما إذا كانت أنماط أحداث جمع البيانات غير المرغوب فيها (GC) قد تكون سببًا في حدوث مشاكل في الأداء.
  • حدِّد أنواع العناصر التي يتم تخصيصها بشكل غير متوقّع أو غير ضروري أو يتم تخصيصها.
  • حدد مكان المشكلة في التعليمات البرمجية الخاصة بك.

لمزيد من المعلومات حول قياس استخدام الذاكرة، يمكنك الاطّلاع على عرض الذاكرة غير الضرورية والتوزيعات باستخدام أداة تحليل الذاكرة.

التحسين للأجهزة التي تعمل بنظام التشغيل Android (إصدار Go)

يقدّم نظام Android (الإصدار Go) تجربة محسَّنة للأجهزة البسيطة التي لا تحتوي على ذاكرة وصول عشوائي (RAM) بسعة 1 غيغابايت أو أكثر، والتي تبدأ بالإصدار Android Oreo (إصدار Go). لضمان عمل تطبيقك بشكل رائع على أجهزة Android (الإصدار Go)، يجب مراعاة الإرشادات التالية:

  • يجب أن يكون targetSdkVersion أحدث إصدار من Android. لا تعمل أجهزة Android (الإصدار Go) إلا بنظام التشغيل Android Oreo (واجهة برمجة التطبيقات 27 أو إصدار أحدث).
  • يجب أن يعمل التطبيق بسلاسة على الأجهزة التي تحتوي على ذاكرة وصول عشوائي (RAM) بسعة 1 غيغابايت أو أقل. لا تنسَ تحسينات الذاكرة المدرَجة في قسم استخدام الذاكرة بكفاءة أعلاه واستخدِم مؤشرات Android الحيوية لتحديد السلوكيات السيئة وإصلاحها، مثل العرض البطيء والإطارات الثابتة.
  • قد تكون ميزة نافذة ضمن النافذة (PIP) غير مفعّلة على الأجهزة. قبل أن يستخدم تطبيقك نافذة ضمن النافذة (PIP)، يجب التأكّد من توفّرها من خلال الاتصال على الرقم hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE).
  • يجب أن يكون حجم التطبيق على الجهاز أقل من 40 ميغابايت.
  • يجب ألا يتجاوز حجم المجموعة التناسبية (PSS) لاستخدام ذاكرة الوصول العشوائي للتطبيق 90 ميغابايت. بالنسبة إلى الألعاب، يجب ألا يتجاوز استخدام PSS لذاكرة الوصول العشوائي في اللعبة 150 ميغابايت. لمزيد من المعلومات حول خدمة PSS، يمكنك الاطّلاع على دليل التحقيق في استخدام ذاكرة الوصول العشوائي (RAM).
  • يجب أن يكون وقت بدء تشغيل التطبيق الحد الأدنى وأقل من 5 ثوانٍ.
  • قد يتم إيقاف SYSTEM_ALERT_WINDOW (الذي يسمح للتطبيقات برسم نافذة فوق التطبيقات الأخرى) على أجهزة Android Go التي تحتوي على ذاكرة وصول عشوائي منخفضة. قبل التغطية على تطبيقات أخرى، تحقّق مما إذا كان تطبيقك حاصلاً على هذا الإذن من خلال استدعاء Settings.canDrawOverlays(). إذا لم يتمكّن تطبيقك من الحصول على الإذن، عليك خفض مستوى أداء تطبيقك على نحو ملائم حتى يتمكّن المستخدم من مواصلة استخدام تطبيقك، ويمكن أن يكون ذلك عن طريق إيقاف الميزة التي تتطلّب إذن SYSTEM_ALERT_WINDOW.

ننصح معظم المطوّرين بتحسين تطبيقاتهم الحالية، والتي ستكون متاحة على جميع أجهزة Android (الإصدار Go)، لأنّ تشغيل تطبيقك بسرعة أكبر واستخدام أقل للبيانات سيعود بالفائدة على جمهورك بالكامل. يمكنك استخدام ميزة ملفات APK متعددة في Play Console لتوزيع حزمة APK محدّدة لأجهزة Android (الإصدار Go)، ولكن يجب عدم إجراء ذلك إلا بدون التأثير سلبًا في تجربة الاستخدام (على سبيل المثال، تجنُّب إزالة الميزات). يجب أن يعرِّف ملف APK الذي يستهدف أجهزة Android (الإصدار Go) <uses-feature android:name="android.hardware.ram.low" android:required="true">، وأن يستهدف مستوى واجهة برمجة تطبيقات 26 على الأقل، وأن يكون لديه رمز إصدار أعلى من رمز إصدار APK الذي يعمل بإصدار غير Go.

مراجع إضافية

لمعرفة المزيد من المعلومات حول دعم مجموعة متنوعة من الأجهزة، اطلع على المرجع التالي:

مشاركات المدونة