(Android)如何将一个高复用性项目供其他项目使用(jar导出,导入,Is Library)(转)
我们做过一个项目,以后这个项目里的代码经常会被其他项目用到。对于这种复用性高的项目(后面称为“项目1”),要被其他项目使用(后面称为“项目2”),为了减少代码量,我们目前有两种方法。
一种方法是:将项目1打包成jar文件,导出,导入到项目2里,供项目2调用。
另一种方法:将项目1作为 Library供项目2调用。
一、jar导出,导入
1.jar导出
现在有一个现成的项目1
功能是竖立的SeekBar
这里面只有一个VerticalSeekBar类,无Activity和资源文件需要打包。
现在我们开始打包:
(1)右键工程选择导出:
(2)选择导出目标为:java->JAR文件:
(3)把一些不必要的文件勾选掉,如下图:
一般,不需要打入jar包的文件有:
1、/src/目录下的activity文件
2、根目录下的文件,.classpath, .project, manifest.xml, .properties, .cfg等
3、/bin/目录下的文件,如:manifest.xml, .dex, .apk, resources.ap_等
4、/bin/res目录
5、/res/drawable 相关的目录
6、/res/layout/ 目录
7、/res/menu/ 目录
到了这一步,己经完成。
上面就是讲解如何将Android项目导出为jar文件,其实这样做是没有问题的,因为这是普通生成jar文件的情况。
两种其他情况解决方法:
(1)要将Activity或者资源文件打包 :
暂时有两种解决办法:其一http://blog.csdn.net/xiaanming/article/details/9257853
其二项目1 Is Library(要把源码发给第三方,不安全)
(2)项目1本身已经包含第三方jar:
项目1 Is Library(要把源码发给第三方,不安全),后面“二”会详解。
直接用Eclipse将Android项目打包,难道就可以把依赖的jar文件或library关联起来了?似乎没有那么强大,经过网上查询,将整个项目打包是不允许的,调用会出错。
2.jar导入
(1)绝对路径方法:(绝对路径不推荐)
右击“项目”→选择Properties,在弹出的对话框左侧列表中选择Java Build Path,如下图所示:选择Add External JARs,就可以逐个(也可以选择多个jar,但是限制在同一个文件夹中)添加第三方引用jar包。
这种方式操作简便,但是每个要调用项目1的项目,都需要重新引入Jar包,Jar包不具有可重用性。jar包绝对地址也很容易出错,所以不推荐。
(2)自定义库方法(绝对路径不推荐):
这种方法虽然可以重复使用,但也是绝对路径,不推荐。
(3)放入自定义文件夹方法:(推荐)
在项目2根目录下新建文件夹(任意取名),然后将要导入的jar文件复制到这个文件夹里,然后:
检查不会报错。
这种方法虽然不可重复使用,但是简便,是相对路径,不易出错,推荐使用。
(4)把jar放入libs方法(相对路径,推荐)
与方法3比少了Add to Build Path 步骤,所以更加简便,也是相对路径,不易出错,推荐使用。(虽然不可重复使用)
二、Is Library(绝对路径)
我上网也查了很久,也看了一些博文,还是没有找到合适的解决方案。
有些是这么使用sdk的,在Android中有依赖jar的就不能再将其打包成jar文件了,我们可以将其作为library(库文件)让其他项目引用,例如多酷的sdk使用这样的library,是一个Android项目形式存在的。
多酷将其设置为Is Library
多酷提供的demo是这样引用的:
当项目1作为sdk被引入到项目2后,项目1的bin中会自动生成一个jar文件(这个jar文件最好不要直接导入)
对于SDK这一块我的理解还很浅,需要以后有时间再好好研究。如果大家有合适有效的方法,欢迎留言。如果有错误,欢迎指正。
参考:
http://blog.csdn.net/xiaanming/article/details/9257853