包含開放原始碼聲明

Google Play 服務有時包含或需要使用開放原始碼程式庫。 遵守開放原始碼程式庫的授權規定, 開發人員應負責妥善顯示公開聲明 應用程式使用的原始碼程式庫

Google Play 服務包含一套工具 這樣就能輕鬆表達出所用程式庫的開放原始碼軟體聲明 他們的應用程式。其中一項是 Gradle 外掛程式,可收集授權條款 擷取在 POM 檔案中宣告的程式庫,然後 活動 可用來顯示這些字詞進一步瞭解這項工具如何尋找 並封裝授權資訊

新增 Gradle 外掛程式

在根層級建構檔案中,執行以下操作:

  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'
  }
}

在應用程式層級的建構檔案中,新增下列程式碼以套用外掛程式 位於 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'
}

您可以查看 程式碼 外掛程式

在應用程式中加入程式庫

在應用程式層級建構檔案的 dependencies 部分,新增 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 依附元件 專案。如果 Maven POM 存在應用程式的直接依附元件,外掛程式 會處理每個 <licenses> 元素,並在 Android 資產中嵌入每個授權的連結和名稱 。