据我了解,分发我的应用程序的三种方式是通过Jar,Android Library和Android Library Project。
Jar - 不能包含资源或XML布局(所以这对我而言)
Android库 - 我真的不知道这是如何运作的,但Google API使用它......
Android图书馆计划 - 包含资源,但允许客户端自由控制代码,因为它是作为源分发的。
如果我要创建一个需要绘图和XML文件的封闭源应用程序,我想将其分发给其他Android程序员,我应该使用什么?有人可以指导我创建一个关于创建 Android库的教程吗?
答案 0 :(得分:10)
有关您的项目到底受欢迎的详细信息。我的理解是你想要销售一个库(开发人员可以在他们的应用程序中集成的一组组件/工具),而不会泄露消息来源。
如您所述,您不能在Jar文件中包含资源/资源。
Android库项目会强制您让源代码“可见”。适当的许可条款可以帮助您对源代码使用进行法律限制,但是......好吧,您知道人们对许可证的处理方式......也许一些代码混淆(不是公开的可见方法)可能有所帮助。
我不确定< uses-library>中包含“共享库”的方式工作,但实例已经看到系统依赖(地图API仅适用于“官方”谷歌接受的设备,Sprint Evo前置摄像头......)可能需要在系统内构建。也许某些root权限可以帮助添加一个,但这必须在使用您的库的应用程序想要运行的EACH设备上完成...
答案 1 :(得分:5)
为什么不尝试以下几行:
创建一个Android Eclipse项目(不标记为库),或者只是一个Java Eclipse项目,用于填充所有代码。这将不包含任何XML / PNG资源,仅包含Java代码。制作一个构建文件(例如Ant),以便生成一个Jar。
创建一个Android库Eclipse项目(这个 标记为库),填充所有XML / PNG资源。此外,在此项目中,从上述项目中向输出Jar添加 plain Jar参考。
作为混淆Jar的替代方法,您可以跳过它,只是模糊整个Android库项目输出,因为这将适用于Jar和实际的库输出。请务必明确保留所有公共API。这里的优点是跳过构建脚本中的手动proguard实现,并使用已在Android Eclipse中实现的实现。
答案 2 :(得分:3)
android开发者文档有一篇关于Android库的文章:
更新:http://developer.android.com/tools/projects/index.html#LibraryProjects
答案 3 :(得分:2)
首先,我认为如果你想发布你的项目,你希望它们在Android设备上运行的程序..所以你可能想要以.apk格式发布它们。当你创建一个apk包时,你对它的内容没有任何限制。你的资源和布局必须在其中,因为没有它们你的应用程序将无法运行..如果我是你,我会先查看android项目导出教程。
http://developer.android.com/guide/publishing/app-signing.html
在此页面中,它解释了发布和签署应用程序的方法。您可以查看此内容。
答案 4 :(得分:1)
您可以像开放意图(http://www.openintents.org/en/applications)那样创建一个Android项目,这样当您将其导出为apk时,其他开发人员可以在其代码中调用它。
希望这有帮助。
答案 5 :(得分:0)