2010-07-15 53 views
38

据我所知,分发我的应用程序的三种方式是通过Jar,Android库和Android库项目。Jar,Android库和Android库项目之间的差异

- 不能包含资源或XML布局(所以这是出于对我来说)

的Android库 - 我真的不知道这是如何工作,但谷歌API使用它...

Android Library Project - 包含资源,但允许客户端自由控制代码,因为它是以源代码的形式分发的。

如果我要创建一个需要drawable和XML文件的封闭源代码应用程序,我想将其分发给其他Android程序员,我应该使用什么?有人可以指导我创建一个教程Android库

+0

您仍然可以分发源代码,但许可证可以允许修改和重新分发。 – ognian 2010-07-15 06:09:52

+0

我不知道你的意思。你指的是什么? – jax 2010-07-15 10:41:23

+0

好像你正试图发布一个图书馆而不是一个应用程序。我认为这是造成一些混乱。 – skorulis 2010-09-07 06:35:28

回答

2

首先,我认为,如果你想发布你的项目,你希望他们在一个工作,计划android设备..所以你可能想要发布他们的.apk格式。当你创建一个apk包时,你对它的内容没有任何限制。你的资源和布局必须在它里面,因为你的应用程序在没有它们的情况下不能工作。如果我是你,我会首先查看android项目导出教程。

http://developer.android.com/guide/publishing/app-signing.html

在这个页面就说明出版的方法和签署您的应用程序。你可以看看这个。

+0

APK是一个编译的项目。这不允许其他程序员使用我创建的库。 – jax 2010-08-13 06:09:29

+0

@jax你有没有找到你非常有趣的问题的答案?我遇到这个帖子寻找类似的解决方案。如果您还没有,@Ertan建议的APK方法可能是唯一的解决方案(即将您的“库”作为活动或服务发布)。 – an00b 2011-06-13 16:44:54

10

有关您的项目究竟受到欢迎的更多详细信息。我的理解是,你想出售一个库(一组开发者可以集成到他们的应用程序中的组件/工具),而不需要公开源代码。

如您所述,您不能在Jar文件中包含资产/资源。

Android Library Project会迫使你让源代码“可见”。正确的授权条款可以帮助你将法律围绕着源代码的使用,但是......你知道人们用许可证做什么......也许有些代码混淆(而不是公众可见的方法)可能会有所帮助。

我不知道包含<“共享库”如何使用图书馆>工作,但已经看到的例子是依赖于系统的(地图API仅适用于“官方”谷歌接受设备,Sprint公司的Evo的前置摄像头...),可能需要在系统内部构建。也许一些root权限可以帮助添加一个,但是这必须在每个使用你的库的应用程序上运行的设备上完成...

+0

是否存在我们可以像jar一样导出的Android库项目的压缩版本? Basicaly,一个** **资产/资源的jar **。 – Pacerier 2014-11-14 04:54:08

0

我也同意Kevin的想法创建一个混淆的android图书馆。在这种情况下,您必须记住列出的一些考虑因素here。否则,如果您有其他想法,请随时分享。

5

为什么不尝试一些大意如下:

  1. 创建一个Android Eclipse项目(标记为库),或者只是一个Java的Eclipse项目在哪里的东西所有的代码。这将会包含任何XML/PNG资源,只有Java代码而不是。创建一个构建文件(例如Ant)以便生成一个Jar。

    • 您可能还会尝试将proguard添加到构建中,以便混淆非公开部分的代码。
  2. 创建一个Android库Eclipse项目(这一个标记为库),其中充塞你所有的XML/PNG资源。另外,在这个项目中,添加一个明确的对上述项目的输出Jar的Jar引用。

    • 也许在这里您应该标记要导出的引用,以供图书馆客户端使用。

作为替代混淆的Jar,你可能会跳过,只是混淆完整的Android库项目的输出,因为这将为罐和实际库同时输出工作。只要确保明确保持所有您的公共API。这里的优点是跳过构建脚本中的手动proguard实现,并使用已在Android Eclipse中实现的那个。

1

您可以像开放意图(http://www.openintents.org/en/applications)那样创建一个Android项目,这样当您将它作为apk导出时,其他开发人员可以在其代码中调用它。

希望这会有所帮助。