android studio 如何把依赖导出成 jar
反编译工具
第一步
用一个普通的app工程,引用所有的库,然后生成apk文件
第二步
把apk文件,改扩展名为zip,解压后,里面有几个*.dex文件,拷贝到dex-tool反编译工具目录下,
用命令:
d2j-dex2jar.bat -f classes.dex
反编译所有的dex文件为jar文件,把jar扩展名改为zip,然后用压缩软件打开,把里面无用的类删除掉,再改扩展名回jar
第三步,找出所有资源文件
应用库会自带资源文件,这些也得找出来

在project目录下,找到External Libraries,里面有所有依赖库,展开,能看到res,右键copy path,
拷贝下来res的路径,然后用以下c#代码,合并资源文件
[TestMethod]
public void copyRes()
{
string srcFolder = @"C:\Users\Jack\.gradle\caches\transforms-2\files-2.1\6a2e5ecc8c7c41647d2935ab32b14167\jetified-firebase-messaging-20.0.0\res";
string targetFolder = @"D:\test\jars\res"; var dirs = System.IO.Directory.GetDirectories(srcFolder);
foreach( var dir in dirs )
{
var name = Path.GetFileName(dir);
if (Directory.Exists(targetFolder + "\\" + name) == false)
Directory.CreateDirectory(targetFolder + "\\" + name); var files = Directory.GetFiles(dir);
foreach( var file in files )
{
var filename = Path.GetFileName(file);
var targetfile = targetFolder + "\\" + name + "\\" + filename;
if ( File.Exists( targetfile ) == false )
{
File.Copy(file, targetfile);
}
else if( Path.GetExtension(file) == ".xml" )
{
XmlDocument xmldoc1 = new XmlDocument();
xmldoc1.Load(file); XmlDocument xmldoc2 = new XmlDocument();
xmldoc2.Load(targetfile); if (xmldoc2.DocumentElement.InnerXml != xmldoc1.DocumentElement.InnerXml)
{
xmldoc2.DocumentElement.InnerXml += xmldoc1.DocumentElement.InnerXml; xmldoc2.Save(targetfile);
}
}
else
{ }
}
}
}
最后一步,AndroidManifest.xml文件
在app项目的 build\intermediates\merged_manifests\debug 目录下,找到AndroidManifest.xml 文件,把里面一些依赖库的内容,拷贝出来,这些也用得着
android studio 如何把依赖导出成 jar的更多相关文章
- Android tips(八)-->Android Studio打包apk,aar,jar包
文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java ...
- Android Studio打包apk,aar,jar包
转载请标明出处:一片枫叶的专栏 文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独 ...
- android studio 代码混淆如何忽略第三方jar包
日前在打包混淆包含第三方jar包的Android studio项目时 报出了各种错误,但是debug版本却能正常运行,于是怀疑android studio 打包的时候把第三方jar包给混淆了,第三方j ...
- Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系
Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...
- 如何在eclipse将程序导出成jar文件
如何在eclipse将程序导出成jar文件 听语音 | 浏览:916 | 更新:2015-08-22 17:57 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅为你的电脑系统,选个靠谱师傅 ...
- Android studio 项目(Project)依赖(非Module)
Android studio 项目(Project)依赖(非Module) 0. 前言 对于Module 级别的依赖大家都知道,今天说下Android Studio下的项目依赖. 场景: A Proj ...
- Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例
Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...
- 将Android Studio默认布局ConstraintLayout切换成LinearLayout
将Android Studio默认布局ConstraintLayout切换成LinearLayout 大部分人初次使用google android 扁平化布局ConstraintLayout都 ...
- Android Studio 解决 Gradle 依赖冲突的问题
Android Studio 解决 Gradle 依赖冲突的问题 参考链接: Android Studio(Gradle)解决库依赖冲突问题:http://www.mobibrw.com/2016/3 ...
- Android Studio 中 Gradle 依赖的统一管理(rootProjectt)
最近遇到Android Studio 中 Gradle 依赖的统一管理的不懂得地方,看大神的也没看懂,百度了一下,使用起来还挺方便 下面是链接,在这里我就不详细说明了, http://www.jian ...
随机推荐
- 万界星空科技电子电器装配行业云MES解决方案
电子电器装配属于劳动密集型.科技含量较高的行业,产品零部件种类繁多,生产组装困难,生产过程存在盲点,同时也决定了生产流水线多且对自动化水平要求较高. 万界星空科技提供的电子行业解决方案,从仓储管理.生 ...
- xml的语法总结
xml的语法总结
- Object类、String和StringBuffer、Math类、日期处理类
1.Object类 "万物皆对象":(1)从类和对象角度:任何具体事物都是一个对象,. (2)Object类,类似"东西".所有的类都继承了Object类. 使 ...
- 牛客刷java记录第5天
第一题,下列代码运行结果是? class X { Y y = new Y(); public X() { System.out.print("X"); } } class Y { ...
- javaScript正则截取自定义标签-javascript-zheng-ze-jie-qu-zi-ding-yi-biao-qian
title: javaScript正则截取自定义标签 date: 2021-12-29 17:31:48.448 updated: 2021-12-29 17:31:48.448 url: https ...
- 痞子衡嵌入式:在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤(MIPI DSI接口)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤. 我们知道 LCD 屏的接口有很多:DPI-RGB.MIPI DSI.DB ...
- Pikachu漏洞靶场 Sql Inject(SQL注入)
SQLi 哦,SQL注入漏洞,可怕的漏洞. 文章目录 SQLi 数字型注入(post) 字符型注入(get) 搜索型注入 xx型注入 "insert/update"注入 inser ...
- 用 Socket.D 替代原生 WebSocket 做前端开发
socket.d.js 是基于 websocket 包装的 socket.d 协议的实现.就是用 ws 传输数据,但功能更强大. 功能 原生 websocket socket.d 说明 listen ...
- JDK1.6中String类的坑,快让我裂开了…
摘要:JVM优化的目标就是:尽可能让对象都在新生代里分配和回收,尽量别让太多对象频繁进入老年代,避免频繁对老年代进行垃圾回收,同时给系统充足的内存大小,避免新生代频繁的进行垃圾回收. 本文分享自华为云 ...
- 带你读顶会论文丨基于溯源图的APT攻击检测
摘要:本次分享主要是作者对APT攻击部分顶会论文阅读的阶段性总结,将从四个方面开展. 本文分享自华为云社区<[论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结>,作者:eastm ...