לפעמים שירותי Google Play כוללים ספריות של קוד פתוח, או תלויים בהן. כדי לעמוד בדרישות הרישיון של ספריות הקוד הפתוח, המפתחים אחראים להציג כהלכה את ההודעות של ספריות הקוד הפתוח שבהן משתמשת האפליקציה שלכם.
חבילת Google Play Services כוללת קבוצה של כלים שנועדו לתת למפתחים דרך קלה יותר לבטא את ההודעות על תוכנות קוד פתוח של ספריות שנעשה בהן שימוש באפליקציות שלהם. אחד מהכלים האלה הוא פלאגין של Gradle שאוסף מונחים של רישיונות מספריות כלולות, כפי שמוצהר בקובצי ה-POM שלהם. הדוח יוצר פעילות שבה ניתן להשתמש כדי להציג את התנאים האלה. מידע נוסף על האופן שבו הכלי מוצא ומפרט מידע על רישיונות.
הוספת הפלאגין של Gradle
בקובץ build ברמה הבסיסית, מבצעים את הפעולות הבאות:
- הוסיפו את מאגר Google Maven.
- צריך להוסיף את הפלאגין
oss-licenses
ליחסי התלות.
קטע הקוד הבא מציג את השלבים הבאים:
מספר DSL של Kotlin
build.gradle.kts
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 מגניב
build.gradle
buildscript { repositories { ... google() // maven { url "https://maven.google.com" } for Gradle <= 3 } dependencies { ... classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6' } }
בקובץ ה-build ברמת האפליקציה, מתקינים את הפלאגין על ידי הוספת השורה הבאה מתחת להצהרה הקיימת של הפלאגין com.android.application
בחלק העליון של הקובץ:
מספר DSL של Kotlin
app/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
DSL מגניב
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
תוכלו לצפות בקוד של הפלאגין הזה ב-GitHub.
הוספת הספרייה לאפליקציה
בקטע dependencies
של קובץ ה-build ברמת האפליקציה, מוסיפים תלות בספרייה oss-licenses
:
מספר DSL של Kotlin
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.0.0")
DSL מגניב
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.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 סורק את יחסי התלות של הפרויקט בפרויקט האפליקציה. כש-Maven POM קיים עבור תלות ישירה של האפליקציה, הפלאגין מעבד כל אלמנט <licenses>
ומטמיע את הקישור והשם של כל רישיון בנכס Android שכלול באפליקציה.