Android以编程方式从jar中检索许可证信息

时间:2016-06-30 16:33:59

标签: java android gradle jar

在我们的(Android / IOS)应用程序中,我们使用各种第三方库,例如GSON(适用于Android)。在IOS中,可以从POD读取数据(示例许可证信息)并在应用程序中显示它。

有没有办法在Android / Gradle中做类似的事情?

为了澄清,使用Gradle I编译以下依赖项:

compile 'com.koushikdutta.ion:ion:2.1.+'
compile 'com.google.code.gson:gson:2.6.+'

我想在我的应用程序中显示一个显示LICENSE文件的屏幕

https://github.com/google/gson/blob/master/LICENSE https://github.com/koush/ion/blob/master/LICENSE

许可证检索不需要在应用程序的Java代码中进行,它可以在编译时完成,在Gradle中使用这种逻辑:

为每个依赖包  检查LICENSE文件  将LICENSE文件连接到res / licenses.txt ENDFOR

在应用程序中,有一些代码可以显示licenses.txt(或者如果需要,还可以是licenses.xml)

如果需要,我可以提供在IOS中如何完成此方法的方法。

1 个答案:

答案 0 :(得分:1)

我会回复旧帖子。最近添加了一个用于执行此操作的库。 https://developers.google.com/android/guides/opensource

这些包括Gradle插件“com.google.gms.oss.licenses.plugin”,用于从依赖库的pom获取许可证信息, 它由“play-services-oss-licenses”库组成,它提供Activity来显示许可证。

通过将其添加到依赖项并构建它,将在app / src / main / res / raw目录中生成一个文件,该文件列出了项目所依赖的库的许可证信息。

之后,您可以通过调用Activity来显示许可证列表屏幕,如下所示。

import com.google.android.gms.oss.licenses.OssLicensesMenuActivity

val intent = Intent(this, OssLicensesMenuActivity::class.java)
intent.putExtra("title", "Open source license")
startActivity(intent)