إتاحة إصدارات مختلفة من النظام الأساسي

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

استخدِم معالج مشروع جديد في "استوديو Android" لمعرفة توزيع التطبيقات النشطة على أجهزة تعمل بكل إصدار من إصدارات Android. ويعتمد هذا التوزيع على عدد الأجهزة التي انتقل إلى متجر Google Play. وبشكلٍ عام، ننصح بإتاحة حوالي% 90 من الأجهزة النشطة، بينما يستهدف تطبيقك إلى أحدث إصدار.

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

تحديد الحد الأدنى لمستويات واجهة برمجة التطبيقات واستهدافها

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

مثلاً:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
    ...
</manifest>

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

التحقّق من إصدار النظام في وقت التشغيل

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

Kotlin

private fun setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        actionBar.setDisplayHomeAsUpEnabled(true)
    }
}

Java

private void setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

ملاحظة: عند تحليل موارد XML، يتجاهل Android ملفات XML. السمات غير المتوافقة مع الجهاز الحالي. لذا يمكنك استخدام سمات XML بأمان لا تتوافق إلا مع الإصدارات الأحدث دون القلق بشأن تعطُّل الإصدارات القديمة مواجهة هذا الرمز. على سبيل المثال، إذا قمت بتعيين targetSdkVersion="11"، يتضمّن تطبيقك ActionBar تلقائيًا على الإصدار 3.0 من نظام التشغيل Android والإصدارات الأحدث. لإضافة عناصر القائمة إلى شريط الإجراءات، عليك ضبط android:showAsAction="ifRoom" في ملف XML الخاص بمورد القائمة. من الآمن إجراء ذلك في ملف XML متعدد الإصدارات، نظرًا لأن الإصدارات القديمة من Android تتجاهل showAsAction (أي أنّك لست بحاجة إلى سمة منفصلة الإصدار في res/menu-v11/).

استخدام أنماط ومظاهر النظام الأساسي

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

لجعل نشاطك يبدو كمربّع حوار:

<activity android:theme="@android:style/Theme.Dialog">

لجعل نشاطك له خلفية شفافة:

<activity android:theme="@android:style/Theme.Translucent">

لتطبيق المظهر المخصّص المحدَّد في /res/values/styles.xml:

<activity android:theme="@style/CustomTheme">

لتطبيق مظهر على تطبيقك بالكامل (جميع الأنشطة)، أضِف android:theme سمة إلى العنصر <application>:

<application android:theme="@style/CustomTheme">

للحصول على مزيد من المعلومات حول إنشاء المظاهر واستخدامها، اقرأ دليل الأنماط والمظاهر.