反编译工具

dex-tools-2.1-SNAPSHOT

第一步

用一个普通的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的更多相关文章

  1. Android tips(八)-->Android Studio打包apk,aar,jar包

    文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java ...

  2. Android Studio打包apk,aar,jar包

    转载请标明出处:一片枫叶的专栏 文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独 ...

  3. android studio 代码混淆如何忽略第三方jar包

    日前在打包混淆包含第三方jar包的Android studio项目时 报出了各种错误,但是debug版本却能正常运行,于是怀疑android studio 打包的时候把第三方jar包给混淆了,第三方j ...

  4. Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

    Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...

  5. 如何在eclipse将程序导出成jar文件

    如何在eclipse将程序导出成jar文件 听语音 | 浏览:916 | 更新:2015-08-22 17:57 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅为你的电脑系统,选个靠谱师傅 ...

  6. Android studio 项目(Project)依赖(非Module)

    Android studio 项目(Project)依赖(非Module) 0. 前言 对于Module 级别的依赖大家都知道,今天说下Android Studio下的项目依赖. 场景: A Proj ...

  7. Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例

    Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...

  8. 将Android Studio默认布局ConstraintLayout切换成LinearLayout

    将Android Studio默认布局ConstraintLayout切换成LinearLayout     大部分人初次使用google android 扁平化布局ConstraintLayout都 ...

  9. Android Studio 解决 Gradle 依赖冲突的问题

    Android Studio 解决 Gradle 依赖冲突的问题 参考链接: Android Studio(Gradle)解决库依赖冲突问题:http://www.mobibrw.com/2016/3 ...

  10. Android Studio 中 Gradle 依赖的统一管理(rootProjectt)

    最近遇到Android Studio 中 Gradle 依赖的统一管理的不懂得地方,看大神的也没看懂,百度了一下,使用起来还挺方便 下面是链接,在这里我就不详细说明了, http://www.jian ...

随机推荐

  1. Asp .Net Core 集成 FluentValidation 强类型验证规则库

    目录 入门程序 安装 案例:登录 验证器 内置验证器 自定义验证器 编写自定义验证器 可重复使用的属性验证器 本地化 DI 自动验证 官网:https://docs.fluentvalidation. ...

  2. Python——Html(内联框架<iframe>)

    <iframe>(内联框架)是 HTML 中的一个标签,用于在当前文档中嵌入另一个文档.它提供了一种将一个 HTML 文档嵌套到另一个文档的方式,允许在一个页面中显示另一个页面的内容.以下 ...

  3. C语言基础之因子分解

    要求: 从键盘输入一个正整数,然后将该整数分解为1和各个质因子的相乘,如果输入的整数本身就是质数,则应分解为1和该数本身相乘. 输出格式: 因子分解,因子由小到大输出. 如:1* 2* 2* 3 代码 ...

  4. P4928 [MtOI2018]衣服?身外之物! 题解

    题意 gcd 共有 \(n\) 件衣服,编号为 \(A_1,A_2,\cdots A_n\). 每一件衣服分别拥有颜色值和清洗时间,他在每一件衣服穿完以后都会将其送去清洗,而这件衣服当天所拥有的舒适感 ...

  5. 第十部分_Shell脚本之函数

    函数 1. 什么是函数? shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数 给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能 2. 如何定义函数? 方法1 ...

  6. APP搜索如何又快又准?

    摘要:搜索的概念深入人心,但做好一个体验绝佳的搜索服务并不是一件容易的事. 本文分享自华为云社区<云搜索服务在APP搜索场景的应用>,作者:写代码的贺大师 搜索无处不在,尤其是在移动互联的 ...

  7. 分析内部运行机制,教你解决Redis性能问题

    摘要:聚焦Redis的性能分析,思考Redis 可以通过哪些机制来提高性能,当性能瓶颈发生的时候,我们又能做出哪些优化策略,最终确保业务系统的稳定运行. 本文分享自华为云社区<分析内部运行机制, ...

  8. 火山引擎ByteHouse:4000字总结,Serverless在OLAP领域应用的五点思考

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 作为云计算的下一个迭代,Serverless可以使开发者更专注于构建产品中的应用,而无需考虑底层堆栈问题.伴随着近 ...

  9. Python pdf 转 图片

    安装依赖 D:\OpenSource\Python>pip install pdf2image pillow -i https://pypi.tuna.tsinghua.edu.cn/simpl ...

  10. CentOS 硬盘扩容

    首先在虚机内将硬盘空间扩大,Hyper-V 需要将检查点删除 查看物理卷和卷组,并将物理卷加入到卷组 lvextend -l +100%FREE /dev/centos/root    #将剩余空间添 ...