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

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

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

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

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

  1. הכללת Google Maven מאגר הנתונים.
  2. מוסיפים את הפלאגין oss-licenses ליחסי התלות.

בקטע הקוד הבא מוצגים השלבים הבאים:

Kotlin DSL

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 בחלק העליון של הקובץ:

Kotlin DSL

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:

Kotlin DSL

build.gradle.kts

implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")

DSL מדליק

build.gradle

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 שכלולה באפליקציה.