为Android开发创建库?

时间:2010-09-14 12:25:57

标签: android packages adt

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

通常,我将类文件打包成一个JAR文件,任何其他开发人员都可以将它添加到类路径中并使用打包的类。

我如何使用Android项目做到这一点?我已经阅读了有关Android库项目的内容,但正如文档所述,它们无法打包到JAR中,但会与引用库项目的项目一起编译。这意味着我还必须分发源代码。

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

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

3 个答案:

答案 0 :(得分:5)

  

我已经阅读了有关Android图书馆项目的内容,但正如文档所述,它们不可能   打包到JAR中,但将与引用该库的项目一起编译   项目。这意味着我还必须分发源代码。

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

  

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

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

答案 1 :(得分:0)

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

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

假设您的库包名称为com.example.mylib。

对我而言,这不起作用。

答案 2 :(得分:0)