تتضمّن حِزم تطوير البرامج (SDK) في "خدمات Google Play" أحيانًا مكتبات مفتوحة المصدر أو تعتمد عليها. للامتثال لمتطلبات ترخيص مكتبات البرامج المفتوحة المصدر، تقع على المطوّر مسؤولية عرض الإشعارات الخاصة بمكتبات البرامج المفتوحة المصدر التي يستخدمها التطبيق بشكل مناسب.
تتضمّن "خدمات Google Play" مجموعة من الأدوات المصمَّمة لتسهيل عملية إبلاغ المطوّرين عن إشعارات البرامج المفتوحة المصدر (OSS) الخاصة بالمكتبات المستخدَمة في تطبيقاتهم. تجمع حزمة تطوير البرامج (SDK) الخاصة بـ oss-licenses-plugin
وoss-licenses في "خدمات Google Play" بنود الترخيص من المكتبات المضمّنة، كما هو موضّح في ملفات POM الخاصة بها، وتنشئ نشاطًا يمكن استخدامه لعرض هذه البنود. مزيد من المعلومات حول طريقة العثور على معلومات الترخيص وتجميعها
إضافة المكوّن الإضافي Gradle
في pluginManagement
من إعدادات مشروعك، اتّبِع الخطوات التالية:
- تضمين مستودع Google Maven
- حلّ مشكلة المكوّن الإضافي "
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.10.6") } } } }
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.10.6") } } } }
في ملف الإصدار على مستوى التطبيق، طبِّق المكوّن الإضافي من خلال إضافة السطر التالي ضمن البيان الحالي للمكوّن الإضافي 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.2.2")
Groovy DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.2.2'
عرض معلومات الترخيص
عند إنشاء تطبيقك، تعالج إضافة Gradle التراخيص وتضيفها إلى موارد تطبيقك. لعرض الترخيص بسهولة، يمكنك تشغيل نشاط توفّره مكتبة play-services-oss-licenses
في نقطة مناسبة في تطبيقك، كما هو موضّح في مقتطف الرمز البرمجي التالي:
Kotlin
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity ... // When the user selects an option to see the licenses: startActivity(Intent(this, OssLicensesMenuActivity::class.java))
Java
import com.google.android.gms.oss.licenses.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))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
تطبيق مظهر على النشاط
يمكنك تطبيق مظهر على النشاط ليتطابق مع المظهر المستخدَم في الأنشطة الأخرى لتطبيقك. لإجراء ذلك، أدرِج نشاط ترخيص المصدر المفتوح في عنصر
<activity>
ضمن ملف البيان الخاص بتطبيقك، كما هو موضّح في مقتطف الرمز البرمجي التالي:
<application android:theme="@style/AppTheme" ...> <activity android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity" android:theme="@style/AppTheme" /> <activity android:name="com.google.android.gms.oss.licenses.OssLicensesActivity" android:theme="@style/AppTheme" /> </application>
كيف يتم تحديد قائمة التراخيص؟
أثناء وقت التجميع، تفحص إضافة Gradle ملفات POM الخاصة بالاعتمادات في مشروع تطبيقك. عندما يكون هناك ملف Maven POM لتبعيات مباشرة للتطبيق، تعالج الإضافة كل عنصر <licenses>
وتضمّن رابط كل ترخيص وعنوانه في مادة عرض Android مضمّنة في تطبيقك.