Jar,Android库和Android库项目之间的区别
据我所知,分发我的应用程序的三种方式是通过Jar,Android库和Android库项目。
jar子 – 不能包含资源或XML布局(所以这对我来说)
Android的库 – 我真的不知道这是如何工作,但谷歌API使用它…
Android库项目 – 包含资源,但允许客户端自由控制代码,因为它是作为源代码分发的。
如果我要创build一个需要drawable和XML文件的封闭源代码的应用程序,我想分发给其他Android程序员,我该用什么? 有人可以指导我创build一个Android库教程吗?
有关您的项目究竟受到欢迎的更多细节。 我的理解是,你想卖一个库(一组组件/工具开发人员可以在他们的应用程序集成),而不透露来源。
正如你所说的,你不能在Jar文件中包含资源/资源。
一个Android库项目会迫使你让源代码“可见”。 适当的授权条款可以帮助你把法律围绕源代码的使用,但是…呃,你知道人们在做什么许可证…也许一些代码混淆(不公开的可见方法)可以帮助。
我不清楚<uses-library>包含的“共享库”是如何工作的,但是这个例子看起来依赖于系统(地图API只能在“Google官方”接受的设备上使用,Sprint Evo前置摄像头……)并可能需要在系统内build立。 也许一些root权限可以帮助添加一个,但是这将不得不在每个使用你的库的应用程序想要运行的设备上完成…
为什么不按照以下方法尝试一下:
-
创build一个Android Eclipse项目( 不标记为库),或者只是一个Java Eclipse项目,在其中填充所有代码。 这将不包含任何XML / PNG资源,只包含Java代码。 创build一个构build文件(例如Ant),以便生成一个Jar。
- 您也可以尝试将proguard添加到构build中,以混淆非公开部分的代码。
-
创build一个Android库Eclipse项目(这个被标记为库)在哪里填充所有的XML / PNG资源。 另外,在这个项目中,从上述项目中添加一个纯 Jar引用到输出Jar。
- 也许在这里你也应该标出要导出的参考资料,以供图书馆客户使用。
作为对Jar进行模糊处理的替代方法,您可以跳过该模式,只是对整个Android库项目输出进行模糊处理,因为这对于Jar和实际的库输出都是适用的。 只要确保明确保留所有的公共API。 这样做的好处是跳过构build脚本中的手动proguard实现,并使用Android Eclipse中已经实现的那个。
Android开发者文档有关于Android库的文章:
更新: http : //developer.android.com/tools/projects/index.html#LibraryProjects
首先,我认为,如果你想发布你的项目,你想让他们在Android设备上工作的程序。所以你可能想要发布他们的.apk格式。 而当你创build一个apk包时,你对它的内容没有任何限制。 您的资源和布局必须在其中,因为您的应用程序不会没有他们的工作..如果我是你,我会首先检查出的Android项目导出教程。
http://developer.android.com/guide/publishing/app-signing.html
在这个页面上,它解释了发布和签名你的应用程序的方法..你可以看看这个。
您可以创build一个类似开放意图(http://www.openintents.org/en/applications)的Android项目,以便当您将其导出为apk时,其他开发人员可以在其代码中调用它。;
希望这可以帮助。
我也同意凯文在创build一个混淆的android库的想法。 在这种情况下,你必须记住这里列出的一些考虑因素。 否则,如果您有其他想法,请随时分享。
- RuntimeException:你的内容必须有一个ListView,它的id属性是'android.R.id.list'
- 什么是一个应用程序可以使用的RAM的最大数量?
- 新的GoogleloginAndroid
- Android中的date和时间更改监听器?
- Android Studio无法通过错误org.gradle.process.internal.ExecException进行debugging
- Android Studio中的XML属性顺序
- Android支持回声46.0.0与Android Studio 2.3
- Android:意图的setFlags和addFlags之间有什么区别
- 如果在Android中安装了特定应用程序,则从浏览器中检测