关键代码task class_jar(type: Jar) {

from "build/intermediates/classes/release/" //核心,将.class 文件编译成Jar包

from 'src/main/aidl/'

destinationDir = file('build/libs')

exclude('/android')

archiveName 'AAA.jar'

}

class_jar.dependsOn(build)

gradle全部代码如下:apply plugin: 'com.android.library'

android {

compileSdkVersion 25

buildToolsVersion "26.0.2"

defaultConfig {

minSdkVersion 16

targetSdkVersion 19

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

}

}

}

dependencies {

compile 'com.android.support:support-v4:25.3.1'

}

task class_jar(type: Jar) {

from "build/intermediates/classes/release/" //核心,将.class 文件编译成Jar包

from 'src/main/aidl/'

destinationDir = file('build/libs')

exclude('/android')

archiveName 'AAA.jar'

}

class_jar.dependsOn(build)

下面来详细解释一下这个配置的含义。当在gradle文件中添加下面的代码并点击Sync Project with Gradle File之后,android studio中的gradle project中的命令中会生成一个class_jar。

点击class_jar,底部的Run会自动弹出,会开始在project视图下的app/build/libs目录下生成AAA.jar文件。

class_jar是Task名字。

destinationDir用来定义jar存放位置。

from 表示打包的文件目录

exclude用来过滤掉build/intermediates/classes/release/android这个文件夹(这个文件夹打包进去的话使用jar包的时候会出错)。

archiveName 对生成的jar包进行命名

dependsOn  表示class_jar这个Task依赖于build。

B.dependsOn A, 这意味着,只要我执行task B,task A都会先执行。

参考资料:

Gradle实践之自定义打包jar+Log开关自动关闭

http://unclechen.github.io/2015/10/25/Gradle%E5%AE%9E%E8%B7%B5%E4%B9%8B%E6%89%93%E5%8C%85jar+Log%E5%BC%80%E5%85%B3%E8%87%AA%E5%8A%A8%E5%85%B3%E9%97%AD/

Android Gradle 自定义Task 详解

http://www.cnblogs.com/zhaoyanjun/p/7988965.html

SDK封装AIDL访问Native Service

https://www.jianshu.com/p/f7a77b6bd817

android 使用jar里 aidl,Android Studio中用gradle打包带AIDL文件的jar文件相关推荐

  1. Android Studio 使用 Gradle 打包 Jar

    Android Studio 打 Jar 包一直是一个麻烦的事,按照网上现有的教程,打包一个混淆的 jar 需要完成下列步骤: 1.将 plugin 修改为 library 后 build 出 aar ...

  2. 利用 Android Studio 和 Gradle 打包多版本APK

    视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html ==================================== ...

  3. MyEclipse使用总结——使用MyEclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  4. java打包带有外部jar,Eclipse使用总结——使用Eclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  5. Android开发Android studio之gradle打包apk重命名的方法

    老套路,先看效果图: 首先第一步在gradle里面(跟android同级)写个获取当前时间的方法如下: //获取时间的方法 GMT+8代表北京时间,下面两个方法都可以 static def getNo ...

  6. Uniapp中使用高德地图,并在android studio中离线打包

    Uniapp中使用高德地图,并在android studio中离线打包 带高德地图功能的Uniapp的android离线打包 1. Uniapp中使用高德地图的方式 2. 高德地图中申请key 3. ...

  7. 【我的Android进阶之旅】Android 混淆文件资源分类整理之二:将混淆文件拆分成更小粒度的混淆文件

    在我2017年的文章[我的Android进阶之旅]Android 混淆文件资源分类整理中,我已经提及过. 之前将所有的混淆都配置在一个 proguard-rules.pro 这个Android Stu ...

  8. android dagger2 懒加载,Android Dagger依赖注入框架浅析

    今天接触了Dagger这套android的依赖注入框架(DI框架),感觉跟Spring 的IOC差不多吧.这个框架它的好处是它没有采用反射技术(Spring是用反射的),而是用预编译技术,因为基于反射 ...

  9. 用Gradle打包出jar文件 前面我们说过,在Android Studio里面使用Gradle来打包应用程序,一般都是build出来一个apk文件。但是有的同学是做实现层的开发,不直接做View层

    用Gradle打包出jar文件 前面我们说过,在Android Studio里面使用Gradle来打包应用程序,一般都是build出来一个apk文件.但是有的同学是做实现层的开发,不直接做View层的 ...

最新文章

  1. PLOS Biology: 发现一种固氮玉米
  2. 《多处理器编程的艺术》读书笔记(2)--- 互斥
  3. Navicat Premium 11.1.9在Linux系统下的安装
  4. mysql 通过sock来登陆
  5. android source镜像源_说要替代安卓的Fuchsia OS,国内镜像上线了!
  6. java内部类写法_Java学习-内部类
  7. J2ME下访问.net的webservice
  8. 【docker】第一节:centos安装docker
  9. 2021 元宇宙研究报告!
  10. 大学计算机思维导图_【21计算机考研】改考408+1!上海电力大学翻倍扩招,仍考数据结构!...
  11. CGContextRef使用简要教程
  12. PHP--heredoc语法结构定义字符串
  13. 【5】线性反馈移位寄存器
  14. 计算机232接口接线,RS232串口接线原理介绍
  15. 如何获取ppt内的视频文件
  16. 《银行业金融机构数据治理指引》解读及解决方案建议
  17. 平时的工作如何体现一个人的技术深度?
  18. linux监控工具 go实现,Gotop:另一个 TUI 图形活动监视器,使用 Go 编写
  19. 数据结构——竞选海报
  20. 【微信小程序】点击图标跳转页面

热门文章

  1. 如何用LSTM自编码器进行极端事件预测?(含Python代码)
  2. 一文带你看懂Springboot核心功能及优缺点
  3. Python的 5 种高级用法,效率提升没毛病!
  4. 漫画:阿里巴巴四十大盗的故事-背包问题
  5. Spring基础专题——第十一章(高级注解编程完结)
  6. k8s概念入门之control-manager-针对1.1.版本阅读
  7. golang源码分析-启动过程概述
  8. celery源码分析-worker初始化分析(下)
  9. Linux之绝对路径和相对路径
  10. Qt之两种初始化QListWidget的方法