AndroidStudio 项目打包成jar
一.步骤(AndroidStudio):
1.像平常一个样新建一个项目(步骤省略):
2.(在步骤1的基础上)点击File-->New-->New Module—>选择[Android]
(http://lib.csdn.net/base/android "Android知识库") Library-->点击Next(如下图:)
生成新library module 结果如下:
新建test 项目中会自动引入该Module (app下的build.gradle):
添加 implementation project(':librarytest')
3.生成jar:
librarytest module 工程中建一个工具类
(1)在librarydemo工程下的build.gradle中加上:
task makeJar(type: Copy) {
//这行表示如果你已经打过一次包了,再进行打包则把原来的包删掉
delete 'build/libs/test.jar'
//这行表示要打包的文件的路径,根据下面的内容,其实是该路径下的classes.jar
from('build/intermediates/packaged-classes/release/')
//这行表示打包完毕后包的生成路径,也就是生成的包存在哪
into('build/libs/')
//看到这行,如果你对分包有了解的话,你就可以看出来这行它只是将一些类打包了
include('classes.jar')
rename ('classes.jar', 'test.jar')
}
makeJar.dependsOn(build)
(2)terminal 命令行 使用 gradlew makeJar 打jar
(3) 生成的jar如下图:
二、使用jar和arr:
二者区别:
jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
aar: 包含jar包和资源文件,如图片等所有res中的文件。
个人觉得还是用as提供的aar包比较好,编译完就生成了aar了,不用担心资源问题,
- aar使用:
导入aar(jar一样):
(1) app下的build.gradle 添加如图所示,
repositories {
flatDir {
dirs 'libs'
}
}
implementation (name:'librarytest',ext:'aar')
(2) Sync Now 一下,看到如下:
-
jar导入:
导入jar(同arr一样)-->选中jar-->右键-->点击Add As Library-->点击Ok
- 声明:打出来的jar只有源代码的.class 文件,不包含资源文件
有人会想怎么把资源(图片,布局,string等)打进jar包呢?
例如:jar中有一个activity用到了布局文件和图片资源,那么怎么办呢?
解决如下:由于打包出来的jar只有源代码的.class 文件,不包含资源文件,我们就把jar包中用到的资源放到你使用
该jar的工程里面。然后通过反射即可,具体参考该篇文章实现: