jar包制作

来源:互联网 发布:java招聘 编辑:程序博客网 时间:2024/05/20 19:29

打包成apk是安卓开发的最终目的,但是打包成jar包,将自己常用的方法、类、资源文件以及接口等进行封装,可以达到简化开发的目的。

一、用AS制作jar包

1.1、编译自动生成的jar包以及aar文件

新建一个Android library的model,操作:file->new->new model->Android Library(举例取名mylibrary),然后在需要运行的model中dependency添加model依赖,即compile project(':mylibrary')。当你编译完工程后其实library的所有java文件已经生成了包含class 的classes.jar包,build之后可以在mylibrary->build->intermediates->bundles->debug/default/release->classes.jar中找到,缺点是只有类文件而没有资源文件。同时我们在路径mylibrary/build/outputs/aar/中可以找到aar文件(用法跟jar包一样放在libs文件夹添加依赖即可,而且类与资源都有。其文件结构为压缩文件,可以改成zip结构,打开找到jar文件,但是aar没有jar包通用)



 2.2、Gradle编写task解决没有资源文件的问题

在mylibrary的Gradle中编写代码

lintOptions {        abortOnError false    }    task buildMyJar(type: Jar) {//    //导出的jar文件名称//    archiveName = 'TestApp.jar'//    //从哪个目录打包jar//    from('build/intermediates/classes/debug')//    //导出的jar文件的存放目录(未指定则默认存放在build/libs下)//    destinationDir = file('build/libs')//    //去掉不要的类//    exclude('org/loader/mylibrary/BuildConfig.class')//    exclude('org/loader/mylibrary/BuildConfig\$*.class')//    exclude('**/R.class')//    exclude('**/R\$*.class')//    //需要打包的类//    include('org/loader/mylibrary/*.class')//    from fileTree(dir: 'src/main',includes: ['assets/**'])//    include('assets/**')        from zipTree(file('build/intermediates/bundles/debug/classes.jar'))        from fileTree(dir:'src/main',includes:['assets/**'])        from fileTree(dir:'src/main',includes:['res/**'])        baseName+"liuxingyu123"        destinationDir=file("build")    }
rebuild之后,选择右侧的gradle,点击工程->Tasks->other->buildMyJar即可,之后会在mylibrary->build->mylibrary.jar中找到jar包,里面含有资源文件

二、用eclipse制作jar包

这个比较简单,右键你的model或者项目选择export ->java ->jar即可

最后记得jar包中非调用的地方一般是要混淆

原创粉丝点击