تتضمّن حِزم تطوير البرامج (SDK) لـ "خدمات Google Play" أحيانًا مكتبات مفتوحة المصدر أو تعتمد عليها. للالتزام بمتطلبات ترخيص المكتبات المفتوحة المصدر، تقع على عاتقك بدورك كمطوّر مسؤولية عرض الإشعارات الخاصة بالمكتبات المفتوحة المصدر التي يستخدمها تطبيقك بشكل مناسب.
تتضمّن "خدمات Google Play" مجموعة من الأدوات المصمّمة لتزويد المطوّرين بطريقة سهلة لعرض إشعارات البرامج المفتوحة المصدر للمكتبات المستخدَمة في تطبيقاتهم. تجمع حِزم SDK لـ oss-licenses-plugin
و"خدمات Google Play"
التي تتضمّن تراخيص البرامج المفتوحة المصدر بنود الترخيص من المكتبات المضمّنة، كما هو موضّح في
ملفات POM، وتنشئ
نشاطًا
يمكن استخدامه لعرض هذه البنود. كيفية عثور الأداة على معلومات الترخيص وتجميعها
إضافة المكوّن الإضافي Gradle
في pluginManagement
من إعدادات مشروعك، اتّبِع الخطوات التالية:
- أدرِج مستودع Google Maven.
- حلّ مشكلة المكوّن الإضافي
oss-licenses
فيPluginManagement
يوضِّح مقتطف الرمز التالي هذه الخطوات:
لغة Kotlin المحددة من جهة العميل
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 المحددة من جهة العميل
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 المحددة من جهة العميل
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
Groovy DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.1.0'
عرض معلومات الترخيص
عند إنشاء تطبيقك، يعالج المكوّن الإضافي 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 المضمّنة في تطبيقك.