לפעמים Google Play Services כוללת ספריות קוד פתוח, או תלויה בהן. כדי לעמוד בדרישות הרישיון של ספריות קוד פתוח, עליך האחראים להצגה הולמת של ההודעות ספריות המקור שבהן האפליקציה שלך משתמשת.
Google Play Services כוללת קבוצת כלים שנועדה לתת למפתחים דרך קלה יותר לבטא את הודעות התוכנה בקוד פתוח של הספריות שבהן משתמשים של האפליקציות שלהם. אחד מהכלים האלה הוא פלאגין של Gradle שאוסף תנאי רישיון מספריות כלולות, כפי שהוצהר בקובצי POM שלהן, ויוצרת פעילות שבו אפשר להשתמש כדי להציג את המונחים האלה. מידע נוסף על האופן שבו הכלי מוצא ומידע על הרישיון לחבילות.
הוספת הפלאגין של Gradle
בקובץ ה-build ברמה הבסיסית, מבצעים את הפעולות הבאות:
- הכללת 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' } }
בקובץ ה-build ברמת האפליקציה, מוסיפים את השורה הבאה כדי להחיל את הפלאגין.
בכפוף להצהרה הקיימת של הפלאגין 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
בקובץ ה-build ברמת האפליקציה, מוסיפים תלות בספרייה 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
פרויקט. כשקיים POM של Maven ל תלות ישירה באפליקציה, הפלאגין
מעבד כל <licenses>
ומטמיע את הקישור והשם של כל רישיון בנכס Android
שכלולה באפליקציה.