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

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

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

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