לפעמים 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 Services, כפי שמוצג באיור 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 שכלול באפליקציה.