目录
前言
为什么需要反编译?
- 反编译apk。例如市面上有很多优秀的apk,实现了一些很优秀的功能,而这些功能无法轻易google到的时候,我们可以通过反编译apk来查看一下这些优秀功能的实现。(好像有点无耻,但是本着一些技术的心,而不是为了盈利,我觉得可以接受)。
- 反编译jar包。例如我现在的工作是系统移植,经常会遇到由于编译系统造成的奇怪问题,这个时候有能力反编译framework目录下的jar包是很有用处的。
需要声明的是:
本篇文章只讲述Android反编译工具的使用,不涉及原理的讲解。(ps:主要是因为很多原理性的东西我也搞不清楚,不想误人子弟!)
工具
俗话说“工欲善其事,必先利其器”,想反编译Android,我们需要下面四个强大的工具(ps:这几个工具均可以跨平台):
流程图
在Android开发中,一般会遇到apk、jar包和odex文件需要进行反编译。我先用一张流程图描述一下反编译流程和其中需要使用到的反编译工具。