تتضمّن حزم تطوير البرامج (SDK) لخدمات Google Play أحيانًا مكتبات مفتوحة المصدر أو تعتمد عليها. للالتزام بمتطلبات ترخيص المكتبات المفتوحة المصدر، تقع عليك كمطوّر مسؤولية عرض الإشعارات بشكل مناسب للمكتبات المفتوحة المصدر التي يستخدمها تطبيقك.
تتضمّن "خدمات Google Play" مجموعة من الأدوات المصمّمة لتزويد المطوّرين بطريقة أسهل للتعبير عن إشعارات البرامج المفتوحة المصدر (OSS) للمكتبات المستخدَمة في تطبيقاتهم. تجمع حزمة تطوير البرامج (SDK) oss-licenses-plugin وحزمة تطوير البرامج (SDK) لتراخيص البرامج المفتوحة المصدر في "خدمات Google Play" بنود الترخيص من المكتبات المضمّنة، كما هو موضّح في ملفات POM، وتنشئ نشاطًا يمكن استخدامه لعرض هذه البنود. مزيد من المعلومات حول كيفية عثور الأداة على معلومات الترخيص وتجميعها
إضافة مكوّن Gradle الإضافي
في pluginManagement من إعدادات مشروعك، اتّبِع الخطوات التالية:
- أدرِج مستودع Maven من Google.
- حلّ مشكلة المكوّن الإضافي "
oss-licenses" في "PluginManagement"
يوضّح مقتطف الرمز التالي هذه الخطوات:
Kotlin DSL
settings.gradle.kts
pluginManagement { repositories { ... google() } resolutionStrategy { eachPlugin { if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") { useModule("com.google.android.gms:oss-licenses-plugin:0.13.0") } } } }
Groovy DSL
build.gradle
pluginManagement { repositories { ... google() } resolutionStrategy { eachPlugin { if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") { useModule("com.google.android.gms:oss-licenses-plugin:0.13.0") } } } }
في ملف الإصدار على مستوى التطبيق، طبِّق المكوّن الإضافي من خلال إضافة السطر التالي
أسفل البيان الحالي للمكوّن الإضافي com.android.application في
أعلى الملف:
Kotlin DSL
app/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Groovy DSL
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
يمكنك عرض الرمز لهذا المكوّن الإضافي على GitHub.
إضافة مكتبة play-services-oss-licenses إلى تطبيقك
في قسم dependencies من ملف الإصدار على مستوى التطبيق، أضِف تبعية على مكتبة play-services-oss-licenses:
Kotlin DSL
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.5.3")
Groovy DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.5.3'
عرض معلومات الترخيص
عند إنشاء تطبيقك، يعالج المكوّن الإضافي Gradle التراخيص ويضيفها إلى موارد تطبيقك. لعرض الترخيص بسهولة، يمكنك بدء نشاط توفّره مكتبة play-services-oss-licenses في نقطة مناسبة في تطبيقك، كما هو موضّح في مقتطف الرمز التالي:
Kotlin
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity ... // When the user selects an option to see the licenses: startActivity(Intent(this, OssLicensesMenuActivity::class.java))
جافا
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity; ... // When the user selects an option to see the licenses: startActivity(new Intent(this, OssLicensesMenuActivity.class));
عند تشغيل النشاط، يعرض قائمة بالمكتبات المفتوحة المصدر التي تم تجميعها في تطبيقك، بما في ذلك المكتبات التي يستخدمها التطبيق، كما هو موضّح في الشكل 1. يمكن للمستخدمين النقر على اسم مكتبة لعرض معلومات الترخيص الإضافية لهذه المكتبة.
الشكل 1: يعرض نشاط قائمة التراخيص قائمة قابلة للاختيار من مكتبات البرامج مفتوحة المصدر التي يستخدمها التطبيق.
ضبط عنوان النشاط
بشكل تلقائي، يحمل النشاط المعروض العنوان "تراخيص البرامج المفتوحة المصدر". يمكنك
تخصيص عنوان النشاط من خلال استدعاء
setActivityTitle()،
كما هو موضّح في مقتطف الرمز التالي:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
جافا
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
تطبيق مظهر على النشاط
تتوفّر طرق مختلفة لتطبيق مظهر على OssLicensesMenuActivity،
وذلك حسب ما إذا كان تطبيقك يستخدم Material 3 أو مظاهر مستندة إلى XML.
التطبيقات التي تستخدم Material 3
بالنسبة إلى التطبيقات التي تستخدم Material 3، يمكنك استدعاء الإجراء
setTheme()
لتطبيق مظهر مخصّص على النشاط، كما هو موضّح في مقتطف الرمز
التالي:
Kotlin
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography) startActivity(Intent(this, OssLicensesMenuActivity::class.java))
جافا
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity; ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography); startActivity(new Intent(this, OssLicensesMenuActivity.class));
التطبيقات التي تستخدم مظاهر XML
بالنسبة إلى التطبيقات التي تستخدم مظاهر XML، يمكنك تطبيق مظهر على النشاط في ملف البيان ليتطابق مع المظهر المستخدَم في أنشطة تطبيقك الأخرى. لإجراء ذلك،
أدرِج نشاط ترخيص البرامج المفتوحة المصدر في عنصر <activity> ضمن
ملف بيان تطبيقك، كما هو موضّح في مقتطف الرمز التالي:
<application android:theme="@style/AppTheme" ...> <activity android:name="com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity" tools:replace="android:theme" android:theme="@style/AppTheme" /> </application>
كيفية تحديد قائمة التراخيص
أثناء وقت التجميع، يفحص المكوّن الإضافي لنظام Gradle تبعيات نموذج العناصر (POM) لمشروع تطبيقك. عند توفّر ملف Maven POM لتبعية مباشرة للتطبيق، يعالج المكوّن الإضافي كل عنصر <licenses> ويضمّن رابط كل ترخيص وعنوانه في مادة عرض Android المضمّنة في تطبيقك.