2010-09-14 68 views
4

我对Android开发非常陌生,但我对Java和Eclipse有一些经验。我正在寻找创建可以在我自己的项目中使用的可重用库(控件,帮助器,“标准”活动等)的方法,但也可以在不公开源代码的情况下将其分发给其他开发人员。为Android开发创建库?

通常,我会将类文件打包到JAR文件中,其他开发人员可以将其添加到类路径中并使用打包的类。

我该如何做到这一点与Android项目?我已经阅读过关于Android库项目的内容,但正如文档所述,它们不能被打包到JAR中,而是会与引用库项目的项目一起编译。这意味着我也必须分发源代码。

我也读过this post,它询问了同样的问题,但没有提供令人满意的答案。

因此:是否有一种编译和打包一组类和其他文件(包括XML布局,资源和东西)的方法,并且只分发那个没有任何源代码的包,以便它可以被“引用”并用于像任何其他开发人员的JAR文件?

回答

5

我读过关于Android库项目,但作为文件指出,他们不能 打包成一个JAR,但会引用这些库 项目的项目一起编译。这意味着我也必须分发源代码。

不正确。它确实需要一些额外的打包工作,但是您可以将代码编译为JAR并将JAR分发到库项目的libs/目录中。

所以:有编译和打包了一组类和其他文件(包括 XML布局,资源和材料)的一种方式,因此它可以被“引用没有任何源只分发包 码“并且像其他开发人员使用的JAR文件一样使用?

使用Android库项目。我有some stuff written up here,它描述了更多的封装选项,以及遵循其中描述的约定的一些“包裹”的指针。

+0

谢谢,这似乎正是我要找的。尽管我只是简单阅读了一遍,但我会将你的答案标记为已接受的答案,因为它似乎确实让我处于某个地方:-) – 2010-09-14 12:43:35

+0

@Thorsten Dittmar:请随时向我发送关于遇到的问题的反馈,通过'cw-android' Google Group。对于采用图书馆项目作为基础的这种材料来说,这是一个相当近期(并且草率的)重写,我相信我需要在这里添加更多信息。 – CommonsWare 2010-09-14 12:45:15

+0

@CommonsWare它看起来你引用的链接不再有效。有没有其他地方可以找到这些信息?如果信息不是太多,可以在这里发布一些信息。 – 2011-12-12 19:17:56

0

Thanx为您的解决方案。根据我的理解,您仍然无法从libary代码中访问库专用的资源。因此,假定您的库在库中的res/values下有一个名为“my_lib_resource”的字符串资源。你将它与源代码捆绑在一起。

int id = res.getIdentifier("com.example.mylib:string/my_lib_resource",null,null) 

假设你的库包的名字是com.example.mylib:你能使用类似从库源代码访问该资源。

对我来说这是行不通的。依赖管理