تتضمّن "خدمات Google Play" أحيانًا مكتبات مفتوحة المصدر أو تعتمد عليها. للالتزام بمتطلبات ترخيص المكتبات المفتوحة المصدر، تتحمّل أنت بصفتك مطوِّرًا مسؤولية عرض الإشعارات بشكل مناسب للمكتبات المفتوحة المصدر التي يستخدمها تطبيقك.
تتضمن "خدمات Google Play" مجموعة من الأدوات المصمَّمة لمنح المطوّرين طريقة أسهل للتعبير عن إشعارات البرامج المفتوحة المصدر الخاصة بالمكتبات المستخدمة في تطبيقاتهم. وإحدى هذه الأدوات هي مكوّن إضافي من Gradle يجمع بنود الترخيص من المكتبات المضمّنة، كما هو موضح في ملفات POM، وينشئ نشاطًا يمكن استخدامه لعرض هذه البنود. تعرَّف على المزيد من المعلومات حول كيفية عثور الأداة على معلومات الترخيص والحصول على حِزمها.
إضافة المكوّن الإضافي Gradle
في ملف الإصدار على مستوى الجذر، نفِّذ ما يلي:
- ضمِّن مستودع Google Maven.
- يمكنك إضافة المكوّن الإضافي
oss-licenses
إلى العناصر التابعة.
يعرض مقتطف الرمز التالي الخطوات التالية:
لغة Kotlin DSL
buildscript { repositories { ... google() // maven { url("https://maven.google.com") } for Gradle <= 3 } dependencies { ... classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") } }
DSL رائعة
buildscript { repositories { ... google() // maven { url "https://maven.google.com" } for Gradle <= 3 } dependencies { ... classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6' } }
في ملف التصميم على مستوى التطبيق، طبِّق المكوِّن الإضافي عن طريق إضافة السطر التالي
ضمن التعريف الحالي للمكوّن الإضافي com.android.application
في أعلى الملف:
لغة Kotlin DSL
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
DSL رائعة
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
يمكنك عرض الرمز لهذا المكون الإضافي على GitHub.
إضافة المكتبة إلى تطبيقك
في القسم dependencies
من ملف الإصدار على مستوى التطبيق، أضِف اعتمادية إلى مكتبة oss-licenses
:
لغة Kotlin DSL
implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
DSL رائعة
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));
عند إطلاق هذا النشاط، يعرض قائمة بمكتبات مفتوحة المصدر تم تجميعها في تطبيقك، بما في ذلك المكتبات التي تشكل جزءًا من خدمات Google Play، كما هو موضّح في الشكل 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 مرتبطة بشكل مباشر بالتطبيق، يعالج المكوّن الإضافي
كل عنصر من عناصر <licenses>
ويضمّن الرابط والعنوان لكل ترخيص في مادة عرض Android
مضمّنة في تطبيقك.