我可以在不使用库的情况下在Android项目之间共享代码和资源吗?

前端之家收集整理的这篇文章主要介绍了我可以在不使用库的情况下在Android项目之间共享代码和资源吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

共享代码和标准的标准建议Android项目之间的资源是使用库.就个人而言,如果(a)共享代码发生了很大变化,或者(b)您的计算机速度不够快,我发现这种方法效果不佳.

我也不想进入部署多个APK,这在我使用依赖项目(即Java Build Path,Projects选项卡)时似乎是必要的.

另一方面,使用Eclipse链接功能共享源代码文件效果很好(Java Build Path,Source选项卡,Link Source按钮),但是对于这两个问题:

1)我不能使用相同的技术来共享资源.我可以创建资源父文件夹的链接,但事情变得很糟糕,共享资源不会被编译(我正在使用ADT 21).

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

所以,我需要(1)或(2)的解决方案,否则我将不得不回到图书馆项目. (或许我还有其他选择没有想过?)

最佳答案
你真正的问题是(2).修复(1)将消除一些复制,但你仍然会遇到(2)的问题.

不幸的是,这真的是不可能的.有一些花哨的步法可以使用库项目实现多个包,并且没有很好的方法可以在没有库项目的情况下获得相同的结果. res / of project中的任何内容都是通过该项目的R类访问的,包括您复制的资源.

The solution I’ve been using is to access the resources dynamically

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

猜你在找的Android相关文章