Android应用声明Open Source Licenses

本文从下面链接翻译过来:

Open Source Notices

包括开源须知

每个开发人员都有责任适当地显示须知,以符合开源库的许可要求。 Google Play服务有时包括或依赖开源库。
从11.2.0版开始,Google Play服务包含一组工具,旨在为开发人员提供一种更轻松的方式来表达其应用程序中使用的库的开源软件声明。 它包括一个Gradle插件,该插件从其POM文件中声明的所包含库中收集许可条款,以及一个可用于显示这些条款的Activity

添加Gradle插件

在根级别的build.gradle中,确保您正在使用Google Maven存储库,并将oss-licenses插件添加到依赖项中:

buildscript {
  repositories {
    // ...
    google()  // maven { url "https://maven.google.com" } for Gradle <= 3
  }
  dependencies {
    // ...
    // Add this line:
    classpath 'com.google.android.gms:oss-licenses-plugin:0.10.1'
  }

在您的应用app/build.gradle中,在这个文件的顶部添加下面代码来使用插件:

apply plugin: 'com.google.android.gms.oss-licenses-plugin'

插件的代码可以在github上查看。

将库添加到您的应用

在app/build.gradle的dependencies部分,添加oss-licenses库的依赖:

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

显示许可证信息

在构建应用程序时,Gradle插件将处理许可证并将其添加到应用程序资源中。 为了轻松显示它们,您可以在应用程序的适当位置触发play-services-oss-licenses库提供的Activity:

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服务。 轻触库名称将显示该库的其他许可证信息。

设置Activity的标题

您还可以设置显示的Activity的标题:

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));

如何确定许可证

Gradle插件在编译时扫描项目的POM依赖项。 当存在与应用程序直接相关的Maven POM时,插件将处理<licenses>元素,并将每个许可证的链接和标题嵌入最终应用程序APK中的Android资产中。

Note: The list of licenses also includes the full license text of any library that is depended upon by the transitive closure of Google Play services libraries used by the app, i.e. any open source libraries used to create the Google Play services libraries compiled into the app.

发布了18 篇原创文章 · 获赞 3 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章