کیتهای توسعه نرمافزار «خدمات Google Play» گاهی شامل کتابخانههای متنباز هستند یا به آنها وابسته هستند. برای رعایت الزامات پروانه کتابخانههای متنباز، شما بهعنوان توسعهدهنده مسئول نمایش مناسب اعلانهای مربوط به کتابخانههای متنباز مورداستفاده برنامهتان هستید.
«خدمات Google Play» شامل مجموعهای از ابزارها است که برای ارائه روشی آسانتر به توسعهدهندگان برای بیان اعلامیههای نرمافزار متنباز (OSS) کتابخانههای استفادهشده در برنامههایشان طراحی شده است. «کیت توسعه نرمافزار» oss-licenses-plugin و «خدمات Google Play»
oss-licenses شرایط پروانه را از کتابخانههای گنجاندهشده جمعآوری میکنند، همانطور که در
فایلهای 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.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.2")
Groovy DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.5.2'
نمایش اطلاعات پروانه
وقتی برنامهتان ساخته میشود، افزایه 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));
وقتی فعالیت راهاندازی میشود، فهرستی از کتابخانههای متنباز را که در برنامهتان کامپایل شده است نمایش میدهد، ازجمله کتابخانههایی که برنامه استفاده میکند، همانطور که در شکل ۱ نشان داده شده است. کاربران میتوانند روی نام کتابخانه تکضرب بزنند تا اطلاعات تکمیلی پروانه آن کتابخانه را مشاهده کنند.
شکل ۱. فعالیت منو پروانهها فهرست انتخابی از کتابخانههای متنباز را که برنامه استفاده میکند نشان میدهد.
تنظیم عنوان فعالیت
بهطور پیشفرض، فعالیت نمایشدادهشده عنوان «پروانههای متنباز» را دارد. میتوانید با فراخوانی setActivityTitle()،
عنوان فعالیت را سفارشیسازی کنید،
همانطور که در تکهکد زیر نشان داده شده است:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
جاوا
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
اعمال زمینه برای فعالیت
بسته به اینکه برنامه شما از «طرح زمینهای Material 3» یا طرح زمینهای مبتنی بر XML استفاده میکند، روشهای مختلفی برای اعمال طرح زمینه در OssLicensesMenuActivity وجود دارد.
برنامههایی که از 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 که
همراه با برنامه شما ارائه میشود جاسازی میکند.