כולל הודעות לגבי קוד פתוח

לפעמים Google Play Services כוללת ספריות קוד פתוח, או שתלויות בהן. כדי לעמוד בדרישות הרישיון של ספריות קוד פתוח, אתם כמפתחים אחראים להציג כראוי את ההודעות לגבי ספריות הקוד הפתוח שבהן נעשה שימוש באפליקציה.

Google Play Services כוללת קבוצת כלים שנועדו לתת למפתחים דרך קלה יותר לבטא את ההודעות שהם מקבלים מתוכנות קוד פתוח לגבי ספריות שמשמשות את האפליקציות שלהם. אחד מהכלים האלה הוא פלאגין של Gradle, שאוסף מונחי רישיון מספריות כלולות, כפי שהוצהר בקובצי ה-POM שלהן, ויוצר פעילות שאפשר להשתמש בה כדי להציג את התנאים האלה. מידע נוסף על האופן שבו הכלי מאתר וחבילות מידע על רישיון

הוספת הפלאגין של Gradle

בקובץ ה-build ברמת השורש, מבצעים את הפעולות הבאות:

  1. כוללים את מאגר Google Maven.
  2. מוסיפים את הפלאגין 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.1")

DSL מגניב

build.gradle

implementation 'com.google.android.gms:play-services-oss-licenses:17.0.1'

הצגת פרטי הרישיון

כשהאפליקציה נוצרת, הפלאגין של 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 בפרויקט האפליקציה. כשיש Maven POM, יש תלות ישירה באפליקציה, הפלאגין מעבד כל רכיב <licenses> ומטמיע את הקישור והשם של כל רישיון בנכס ב-Android שכלול באפליקציה.