Android端代码打包成jar包和aar形式:

首先,jar包的形式和aar形式有什么区别?

1、打包之后生成的文件地址:

*.jar:库/build/intermediates/bundles/debug(release)/classes.jar

*.aar:库/build/outputs/aar/libraryname.aar

区别:jar包只包含了classes文件,不包含资源文件;aar不仅包含了classes文件,还包含资源文件

并且,aar的这个可以发布到maven库,然后使用者直接通过更改版本号就可以获取到最新的aar文件

有一篇文章讲的还不错,但是对于更详细的内容可能有点少,导致踩坑了,具体链接见:http://www.voidcn.com/blog/q610098308/article/p-6059440.html

然后,jar包打包方式及最终打出来之后的具体使用

首先需要进入到的目录是:

然后这里其实就是:首先进入到主目录-build-intermediates-classes-debug目录中,直接调用jar cvf 生成的jar包名称 要添加的.class文件

具体如上面所示:jar cvf classes.jar com/ganji/android/LeakUploadService* com/ganji/android/UploadThread.class,其中classes.jar就代表 要生成的jar包名称;然后后面跟的com/ganji/android/LeakUploadService*代表要添加的class文件(可能存在LeakUploadService.class,如果有内在函数的话,可能还会存在LeakUploadService$1.class这样的形式,可以通过*来作为通配符进行匹配),如果有多个文件可以通过加空格进行多个文件的区分,就类似上面的格式,jar cvf classes.jar A.class B.class C.class

然后之后会在debug这个目录下生成你需要的jar包,如果需要配置版本号的话,后面查询相关资料再做补充

最后,aar包打包方式及最终打出来之后的具体使用:

aar形式的打包,首先在Android工程里面通过File-New-New Module

之后选择:

之后可以把module的这个名字改成自己想要的即可,比如test:

之后你看到的这个android library的这个test的module的结构是这样的:

然后自己的需要,在java-main下面将需要最终构建成aar包的文件放进去之后,然后这里记得,要把AndroidManifest.xml中的文件,将android:label="@string/app_name"这一项内容去掉,否则其他APP在调用这个的时候,就会遇到AndroidManifest.xml的文件会存在冲突(和其他的app自己的AndroidManifest.xml文件);同时如果需要用到

之后build-Rebuild Project,编译整个工程就会自动生成aar包,具体路径就在:新建的Module-build-outputs-aar的这个目录下,如下方的图所示:

——————————————————————————————————————————》》》

aar打包结束之后,就是其他的app使用这个aar文件,首先,将这个aar的文件拷贝到libs目录下,然后在工程主目录的build.gradle里面配置dependencies文件,配置例如:

compile(name:'test-1.0', ext:'aar'),这个test-1.0就是导入到libs下面的这个名字,上面生成的aar的名字其实是可以修改的,完整的build.gradle文件如下:

apply plugin: 'com.android.application'

repositories {
flatDir { dirs 'libs'} // 引入AAR
}
dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
compile(name:'leakupload-1.0', ext:'aar')
}
android {
compileSdkVersion ANDROID_BUILD_SDK_VERSION as int
buildToolsVersion '21.1.2' compileOptions {
encoding "UTF-8"
}
defaultConfig {
// Enabling multidex support.
applicationId "com.ganji.mytest"
} lintOptions {
checkReleaseBuilds false
abortOnError false
} dexOptions {
jumboMode = true
javaMaxHeapSize "2g"
//preDexLibraries = false
} buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
signingConfig signingConfigs.release // 签名
shrinkResources true // 去除未使用资源
minifyEnabled true // 混淆、去除未使用类
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
}
}
}

然后:会提示sync now,或者直接点击:这个按钮,点击同步之后,就会将这个aar的内容同步出来,在java-main中的代码里有import这个aar的,import正确的话代码的错误提示就会消失,同时在External libraries中也会出现这个aar文件的结构。

出现的aar结构见下方:然后就说明添加成功了,具体调试和使用就是后话了

——————》》将aar发布到maven上,比如发布到maven私服上之后具体如何调用,见下方:

【Android端】代码打包成jar包/aar形式的更多相关文章

  1. Android studio 将 Module 打包成 Jar 包

    整理记录 AndroidStudio 把一个 module 项目打包成 jar 包. 一.默认自动生成的 jar 包 众所周知 android studio 会在library所依赖的 app运行 或 ...

  2. [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目

    (1)项目导入JAR包:1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面.2.右键点击项目,Bulid Path->Configure Build Path3.在设置Libraie ...

  3. 使用ANT将Android打包成Jar包

    本文主要实现使用ANT,将Android项目打包成jar,为方便其他项目使用. ANT可以去官网下载(http://ant.apache.org/) 先介绍打包的步骤,打包脚本下方贴出 步骤: 1,将 ...

  4. java代码打包成jar以及转换为exe

    教你如何把java代码打包成jar文件以及转换为exe可执行文件 1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有 ...

  5. maven把项目打包成jar包后找不到velocity模板的bug

    使用springmvc 开发时候要实现发送velcotiy模板邮件,在配置正常后,在本地测试正常后,使用maven打包成jar包后,报以下错误, Caused by: org.apache.veloc ...

  6. 将Java代码打包成jar文件转换为.exe可执行程序方法

    ​ 做完学生管理系统后我想将代码打包成一个可执行程序,那样就可以直接点击在Windows下运行了,下面就跟大家分享下打包方法. 将Java的代码转换成 .exe 文件需要先把代码打包成 jar 文件然 ...

  7. [Java] Java 打包成jar包 和 解压jar包

    解压jar包 jar xf xxx.jar 打包成jar包 方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] ...

  8. 【spring boot】idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到(转)

    转自:https://www.cnblogs.com/sxdcgaq8080/p/7727249.html   接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p ...

  9. springboot打包成jar包后找不到xml,找不到主类的解决方法

    springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...

随机推荐

  1. 机器学习进阶-案例实战-图像全景拼接-书籍SIFT特征点连接 1.cv2.drawMatches(对两个图像的关键点进行连线操作)

    1.cv2.drawMatches(imageA, kpsA, imageB, kpsB, matches[:10], None, flags=2)  # 对两个图像关键点进行连线操作 参数说明:im ...

  2. Pythagorean Triples 707C

    Katya studies in a fifth grade. Recently her class studied right triangles and the Pythagorean theor ...

  3. python环境和工具

    1.版本问题 python2.X和python3.X是不兼容,所以选择如果选择了2.X版本,那么为了避免兼容性的问题,在以后使用其他python库或者工具时,也需要选择相对应的版本. 下载地址:htt ...

  4. Linux命令:history

    显示历史(执行过的)命令. history [n] history -c history -d offset history -anrw [filename] history -p arg [arg ...

  5. Centos 下安装VIM编辑器

    我们在安装完Centos后,它默认的是安装了VI编辑器,VIM是没有安装的,所以我们在使用vim test.txt时会提示: vim command not found ... 这就是说明我们的Lin ...

  6. Oracle重建表空间操作实例

    由于环境维护或者性能测试需要,经常需要对表空间进行重建操作.重建表空间操作主要分3中情况介绍,分别是业务表空间.临时表空间和回滚段表空间的重建. 重建业务表空间 由于业务规划要求,重建后的业务表空间名 ...

  7. 一个关于EasyUI超恶心的BUG。。。Cannot read property 'options' of undefined

    控制台Console抛出的异常: jquery.easyui.min.js:9148 Uncaught TypeError: Cannot read property 'options' of und ...

  8. Java swing 项目写成bat文件

    java  -Dfile.encoding=GBK -Xms512m -Xmx512m -cp .;.\lib\*  com.bozhirui.show.TableIn 以上为bat 文件的所有内容 ...

  9. springboot 整合task定时任务

    一步:在启动类中加入     加入就会调用定时了. //开启定时任务 开启后就可以被扫描到   @EnableScheduling 二步:建一个tasks工具包 都会被扫描到的了 有三个类 Async ...

  10. 制作基于U盘启动和网络常识

    一.制作基于U盘启动的操作系统盘1.准备相关的软件和硬件 下载软件并安装到[电脑]中 ——大白菜.老毛桃 硬件——U盘(空的) 2.插入U盘,点击桌面上的[大白菜装机版]打开大白菜, 点击[一键制作U ...