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