5

在 Android 项目之间共享代码和资源的标准建议是使用库。如果(a)共享代码更改很多,或者(b)您的计算机速度不够快,我个人认为这种方法效果不佳。

我也不想部署多个 APK,这在我使用依赖项目(即 Java 构建路径、项目选项卡)时似乎是必要的。

另一方面,使用 Eclipse 链接源代码功能共享源代码文件夹效果很好(Java 构建路径、源选项卡、链接源按钮),但是对于以下两个问题:

1)我不能使用相同的技术来共享资源。我可以创建指向资源父文件夹的链接,但是事情变得不稳定并且共享资源没有被编译(我使用的是 ADT 21)。

2)然后我决定将共享资源复制到每个项目中,但这也不起作用。共享代码无法导入其资源的副本,因为它不知道使用它的项目的包名。我一直使用的解决方案是动态访问资源,但是随着资源数量的增长,这变得很麻烦。

所以,我需要(1)或(2)的解决方案,否则我将不得不回到图书馆项目。(或者也许还有另一个我没有想到的选择?)

4

1 回答 1

4

你真正的问题是(2)。修复 (1) 将消除一些复制,但您仍然会遇到 (2) 的问题。

不幸的是,这真的是不可能的。有一些花哨的步法可以使库项目的多个包成为可能,如果没有库项目,就没有获得相同结果的好方法。项目中的任何内容res/都可以通过该项目的R类访问,包括您复制的资源。

我一直在使用的解决方案是动态访问资源

我用getIdentifier(). 这当然有效。另一种方法是让托管应用程序提供资源 ID 作为库代码的参数——这是 Android SDK 本身使用的模式。这在运行时比基于反射的速度更快getIdentifier(),并且它为托管应用程序提供了更多的灵活性,但您最终会根据需要向您的方法和构造函数添加一堆参数以提供各种特定于项目的R值。

于 2012-11-23T23:01:20.457 回答