gpt4 book ai didi

android - 如何在不共享源代码的情况下创建和使用 Android 库?

转载 作者:行者123 更新时间:2023-11-29 21:46:35 25 4
gpt4 key购买 nike

我做了什么

我创建了一个库项目,其中包含多个带有自定义属性的自定义 View 。该库还包含用于测试 View 的测试布局。

我还阅读了:https://code.google.com/p/android/issues/detail?id=9656#c81

因此,在库的测试布局中,我确实使用了 http://schemas.android.com/apk/res-auto 命名空间。

我想做什么

然后我开始了一个新项目来使用这个库,并且在共享源代码时将这个库包含到这个项目中非常容易;在测试应用程序的主要 Activity 中,我可以使用 setContentView(R.layout.libactivity)

轻松扩展测试布局

但是,在关闭库项目并尝试使用库的 jar 后,事实证明很困难!

我在库的/bin 文件夹中找到了库 jar - 但它只包含类,没有资源。

然后我导出了一个库的 jar - 其中包含资源文件和 .class 文件。但是这是如何使用的?

具体问题

如何膨胀我包含在库中的 libactivity 测试 Activity ?

我知道在 stackoverflow 上有类似的问题 - 但它们似乎已经过时且相互冲突,因为 Google 使将资源文件包含在库中成为可能。

最佳答案

以下是我如何在不共享源代码的情况下创建库项目。它需要两个项目:基础库和发布库。

Base Library - 这是您放置所有源代码的地方,即您所有的 Activity 、自定义 View 等。如果需要,您可以将资源文件放入此库中,但事实并非如此需要。

Release Library - 包含基础库的 bin/文件夹中的 jar 以及您要包含的任何资源文件。如果您在基础库项目中包含了任何资源文件,则需要将它们复制到该项目中。

当您想要使用您的代码时,您可以像添加任何其他共享库一样添加发布库。您的源代码将可用,但会隐藏,因为它在 jar 文件中。唯一需要注意的是,您的资源文件将可见,因为它们位于共享库项目中。不幸的是,我找不到让这些不可见的方法。

因此,为了具体说明您的情况,您将把自定义 View 放在基础库项目中。测试布局将需要进入发布库项目。

您的第三个项目(一个用于测试库的项目)将只需要对发布库的引用,您应该可以开始了。

关于android - 如何在不共享源代码的情况下创建和使用 Android 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com