博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(Android)如何将一个高复用性项目供其他项目使用(jar导出,导入,Is Library)(转)...
阅读量:5939 次
发布时间:2019-06-19

本文共 1675 字,大约阅读时间需要 5 分钟。

    我们做过一个项目,以后这个项目里的代码经常会被其他项目用到。对于这种复用性高的项目(后面称为“项目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或者资源文件打包 :

暂时有两种解决办法:其一    

                            其二项目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这一块我的理解还很浅,需要以后有时间再好好研究。如果大家有合适有效的方法,欢迎留言。如果有错误,欢迎指正。

 

 

 

参考:

转载于:https://www.cnblogs.com/android-for-dh/p/4438526.html

你可能感兴趣的文章
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
apache prefork模式优化错误
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
JS页面刷新保持数据不丢失
查看>>
清橙A1202&Bzoj2201:彩色圆环
查看>>
使用data pump工具的准备
查看>>
springMVC---级联属性
查看>>
get和post区别
查看>>
crontab执行shell脚本日志中出现乱码
查看>>