توافق الجهاز

الإعلانات

نظرة عامه توافق الجهاز

 

 

توافق الجهاز

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

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

لتسهيل سعيك نحو تحقيق هذا الهدف، يوفر الأندرويد إطار تطبيق فعّال يمكنك من خلاله توفير مصادر تطبيقات..

ذات تكوينات محددة في ملفات ثابتة (مثل توفير مخططات XML مختلفة لأحجام مختلفة من الشاشه).

يقوم الأندرويد بعد ذلك بتحميل المصادر المناسبة بناءً على التكوين الحالي للجهاز.

لذلك مع بعض التخطيط المسبق لتصميم تطبيقك وبعض مصادر التطبيق الإضافية.

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

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

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

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

 

 

 

 

ماذا يعني “التوافق”؟


أثناء قراءتك المزيد عن تطوير الأندرويد، ستواجه على الأرجح مصطلح “التوافق” في حالات مختلفة. هناك نوعان من التوافق:

التوافق مع الجهاز والتوافق مع التطبيق.

لأن الأندرويد مشروع مفتوح المصدر، يمكن لأي شركة مصنعة للأجهزة إنشاء جهاز يعمل بنظام تشغيل الأندرويد.

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

يتم تحديد التفاصيل الدقيقة لبيئة تنفيذ الأندرويد، من خلال برنامج توافق الأندرويد، ويجب أن يجتاز كل جهاز حزمة إختبار التوافق (CTS) ليتم إعتباره متوافقاً.

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

لذا، يمكنك الإطمئنان إلى أن المستخدمين الذين ثبتوا تطبيقك من خلال قوقل بلي، يستخدمون جهاز متوافق مع نظام الأندرويد بكل تأكيد.

ومع ذلك، عليك الأخذ في الإعتبار ما إذا كان تطبيقك متوافقاً مع كل تكوين محتمل للجهاز.

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

على سبيل المثال، قد لا تحتوي بعض الأجهزة على مستشعر بوصلة.

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

 

 

 

 

التحكم في إتاحة تطبيقك للأجهزة


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

بعض الخصائص تعتمد على مكونات الجهاز (مثل مستشعر البوصلة)، وبعضها تعتمد على البرامج (مثل الواجهة الرسومية للتطبيقات)، وبعضها يعتمد على إصدار النظام.

لا يدعم كل جهاز، كل الخصائص، لذا قد تحتاج إلى التحكم في إتاحة تطبيقك للأجهزة بناءً على الخصائص المطلوبة لتطبيقك.

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

في معظم الحالات، يمكنك القيام بذلك عن طريق تعطيل الخصائص الإختيارية أثناء التشغيل وتوفير مصادر للتطبيق مع بدائل

لتكوينات مختلفة (مثل مخططات مختلفة لأحجام مختلفة للشاشة).

ولكن إذا لزم الأمر، يمكنك تقييد إمكانية إتاحة تطبيقك للأجهزة، من خلال متجر قوقل بلي بناءً على خصائص الجهاز التالية:

 

 

 

خصائص الجهاز


حتى تتمكن من إدارة، إمكانية إتاحة تطبيقك بناءً على خصائص الجهاز.

يحدد الأندرويد معرّفات للخصائص لأي من خصائص الجهاز (هاردوير – سوفتوير) والتي قد لا تكون متاحة على كافة الأجهزة.

على سبيل المثال، معرّف الخاصية لجهاز إستشعار البوصلة هو FEATURE_SENSOR_COMPASS ومعرّف الخاصية لواجهة التطبيقات الرسومية هو FEATURE_APP_WIDGETS.

إذا لزم الأمر، يمكنك منع المستخدمين من تثبيت تطبيقك عندما لا تتوفر على أجهزتهم خاصية معينة، من خلال الإعلان عنها

بإستخدام عنصر <uses-feature> في ملف إيضاح تطبيقك.

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

مستشعر البوصلة، كخاصية مطلوبة في وسم الإيضاح التالي:

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

إذا لم تتوفر بالجهاز جميع الخصائص التي يتطلبها تطبيقك، فلن يتمكن المستخدم من تثبيته.

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

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

على سبيل المثال، يمكنك الإستعلام عما إذا كانت الخاصية متوفرة أم لا عن طريق إستدعاء ()hasSystemFeature على النحو التالي:

KOTLIN

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device does not have a compass, turn off the compass feature
    disableCompassFeature()
}

JAVA

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device does not have a compass, turn off the compass feature
    disableCompassFeature();
}

 

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

 

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

يمكنك تعطيل التصفية بناءً على هذه الخاصية وجعل تطبيقك متاحاً للأجهزة التي لا تحتوي على بلوتوث عن طريق تعيين السمة المطلوبة على “خطأ” في الوسم <uses-feature>.

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

 

 

توافق الجهاز

 

إصدار النظام


قد تعمل الأجهزة المختلفة على إصدارات مختلفة من نظام الأندرويد، مثل أندرويد 4.0 أو أندرويد 4.4.

غالباً ما يضيف كل إصدار تالي للنظام، واجهات برمجة تطبيقات جديدة، غير متوفرة في الإصدار السابق.

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

مثال ، مستوى واجهة برمجة التطبيقات 1 على أندرويد 1.0 ومستوى واجهة برمجة التطبيقات 19 على أندرويد 4.4.

يتيح لك مستوى واجهة برمجة التطبيقات الإعلان عن الحد الأدنى للإصدار الذي يتوافق معه تطبيقك، وذلك بإستخدام وسم الإيضاح  <uses-sdk> وسمته minSdkVersion .

مثال، تمت إضافة واجهات برمجة تطبيقات موفر التقويم، في إصدار الأندرويد 4.0 (API 14).

إذا كان تطبيقك لا يعمل بدون واجهات برمجة التطبيقات هذه، فيجب عليك إعلان مستوى واجهة برمجة التطبيقات، 14 كأدنى إصدار مدعوم لتطبيقك.

تحدد سمة minSdkVersion الحد الأدنى للإصدار الذي يتوافق معه تطبيقك وتحدد السمة targetSdkVersion أعلى إصدار تم تحسين تطبيقك للعمل عليه.

مع ذلك، أحذر من أن يتم تجاوز السمات في العنصر <usess-sdk> بواسطة الخصائص المطابقة في ملف build.gradle.

لذا لو كنت تستخدم أندرويد ستوديو، يجب عليك تحديد قيم minSdkVersion و targetSdkVersion بدلاً من ذلك:

android {
  defaultConfig {
    applicationId 'com.example.myapp'

    // Defines the minimum API level required to run the app.
    minSdkVersion 15

    // Specifies the API level used to test the app.
    targetSdkVersion 28

    ...
  }
}

 

لمزيد من المعلومات حول ملف build.gradle، اقرأ حول كيفية تكوين ملفك.

 

كل نسخة تاليه من الأندرويد توفر توافق للتطبيقات التي تم إنشاؤها بإستخدام واجهات برمجة التطبيقات لإصدارات النظام السابقة.

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

 

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

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

على سبيل المثال، من بين التغييرات السلوكية في أندرويد 4.4، التنبيهات التي تم إنشاؤها بإستخدام واجهات برمجة التطبيقات AlarmManager أصبحت الآن غير دقيقة بشكلٍ إفتراضي.

لذلك يمكن للنظام دمج تنبيهات التطبيق والحفاظ على طاقة النظام، ولكن سيحتفظ النظام بسلوك واجهة برمجة التطبيقات السابق لتطبيقك إذا كانت واجهة برمجة التطبيقات المستهدفه ذات مستوى أقل من “19”.

 

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

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

في هذه الحالة، قم بتعيين minSdkVersion على أقل قيمة ممكنة للوظيفة الأساسية لتطبيقك، ثم قارن إصدار النظام الحالي SDK_INT .

بأحد ثوابت اسم الكود، في Build.VERSION_CODES الذي يتوافق مع، مستوى واجهة برمجة التطبيقات التي تريد التحقق منها. مثال:

KOTLIN

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag/drop features that use <code><a href="/reference/android/content/ClipboardManager.html">ClipboardManager</a></code> APIs
    disableDragAndDrop()
}

JAVA

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag/drop features that use <code><a href="/reference/android/content/ClipboardManager.html">ClipboardManager</a></code> APIs
    disableDragAndDrop();
}

 

 

توافق الجهاز

 

تكوين الشاشة


يعمل الأندرويد على أجهزة بأحجام مختلفة، من الهواتف إلى الأجهزة اللوحية وأجهزة التلفاز.

لتصنيف الأجهزة حسب نوع الشاشة، يحدد الأندرويد خاصيتين لكل جهاز: حجم الشاشة (الحجم الفعلي للشاشة)..

وكثافة الشاشة (الكثافة المادية لوحدات البكسل على الشاشة، والمعروفة بأسم DPI (نقطه لكل أنش)).

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

  • أربعة أحجام عامة: صغيرة ، عادية ، كبيرة ، و أكبر.
  • والعديد من الكثافات العامة: mdpi (متوسطه) ، hdpi (عاليه) ، xhdpi (أعلى) ، xxhdpi (أعلى أعلى كثافه) ، وغيرها.

بشكلٍ إفتراضي، يتوافق تطبيقك مع جميع أحجام الشاشات والكثافات، لأن النظام يجري التعديلات المناسبة..

على مخطط واجهة المستخدم ومصادر الصور لكل شاشه عند الضرورة.

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

للحصول على معلومات حول كيفية إنشاء مصادر بديلة للشاشات المختلفة، وكيفية تقييد تطبيقك على أحجام شاشات معينة عند الضرورة، اقرأ دعم الشاشات المختلفة.

 

 

 

توافق الجهاز

 

التحكم في إمكانية توفر تطبيقك لأسباب مهنيه


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

مثال، من غير المحتمل أن يكون أحد التطبيقات التي تعرض جداول مواعيد القطارات لمترو أنفاق لندن، مفيداً للمستخدمين في خارج المملكة المتحدة.

لمثل هذه الحالات، يوفر متجر قوقل بلي في وحدة التحكم خيارات التصفية..

التي تتيح لك التحكم في مدى توفر تطبيقك، لأسباب غير تقنيه، مثل لغة المستخدم أو مشغل شبكة الجوال.

التصفية بناء على التوافق التقني (مثل مكونات الأجهزة المطلوبة)، تعتمد دائماً على المعلومات الموجودة داخل ملف APK.

ولكن التصفية للأسباب الغير تقنية (مثل الموقع الجغرافي) يتم التعامل معها دائماً في وحدة تحكم قوقل بلي.

 

 

توافق الجهاز

أكمل القراءة عن:


توفير المصادر
هي معلومات حول كيفية تنظيم تطبيقات الأندرويد، إلى مصادر تطبيقات منفصلة عن كود التطبيق.

بما في ذلك كيفية توفير مصادر بديلة لتكوينات معينة للجهاز.

التصفية على قوقل بلي
معلومات حول الطرق المختلفة التي يمكن لقوقل بلي أن يمنع بها من تثبيت تطبيقك على مختلف الأجهزة.

 

قد تكون مهتماً أيضاً بـ:


أذونات النظام
كيفية قيام الأندرويد بتقييد وصول التطبيقات إلى واجهات برمجة تطبيقات معينة.

بإستخدام نظام أذونات يتطلب موافقة المستخدم لتطبيقك لكي يستخدم واجهات برمجة التطبيقات هذه.

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

الإعلانات