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