反编译 apk 以学习研究相关实现——Fuubo 波纹动画实现

原创 2016年06月02日 01:53:21

必先利其器

需要用到的核心工具集是 apktooldex2jarjd-gui,其中 apktool 用于获取资源文件,dex2jar & jd-gui 用于获取 Java 代码。除此之外你还需要文本编辑器、解压缩软件,等。

WORK THROUGH

笔者从酷安网下载了 Fuubo 的 apk 文件 me.imid.fuubo-4.1.apk

首先获取资源文件,图片、xml 布局等等。一行命令就好。
文中不写命令的相对路径了,默认你已经配置好了环境变量,或者使用了绝对路径。

$ apktool d me.imid.fuubo-4.1.apk # d for decompile
I: Using Apktool 2.0.3 on me.imid.fuubo-4.1.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: <placeholder-to-hide-real-path>/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

apktool 比较过分,把 Java 代码直接反编译成了 smali 文件。字节码与今天主题无关,以下我们将获取 Java 源码。不过,如果你对 bytecode 非常感兴趣,我觉得 developerWorks 的一篇教程 讲的不错,而 Java bytecode instruction listings 词条 可以作为速查表。
dex2jar 不仅可以把 dex 文件转换为 samli (d2j-dex2smali.sh),也可以转换为 jar (d2j-dex2jar.sh)。

$ unzip me.imid.fuubo-4.1.apk -d output # 解压后的输出文件在 ./output/ 文件夹下
(omitting output…)
$ cd output
$ d2j-dex2jar.sh classes.dex
dex2jar classes.dex -> ./classes-dex2jar.jar
$ jd-gui classes-dex2jar.jar

这时你已经能看到 Java 代码了,点击 jd-gui 界面中的 File - Save All Sources,把所有源码保存到一个压缩包中,解压得到的压缩文件即可看到源码目录结构。需要注意的是,源项目使用的第三方库的代码,也被反编译到这个压缩包中了。
有的时候,比如闲鱼APP,解压 apk 会得到多个 dex 文件,那么对每个 dex 都要用 d2j 和 jd-gui 进行处理。

WORK LIKE A CHARM

通常通过字符串查找比较方便,但是 Fuubo 波纹动画的页面没有标识性的字符串。还好动画出现在运行应用之始,通过入口 Activity 开始往下找,还是很轻松地找到了。
通过对反编译后的代码的分析,最终找到 me.imid.fuubo.widget.SpreadView。在 me.imid.fuubo-4.1/res/layout/activity_login.xml 中有布局示例,在 me.imid.fuubo.ui.activity.LoginActivity 中有代码调用方法,剩下的都一目了然了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

超酷的计步器APP(一)——炫酷功能实现,自定义水波纹特效、自定义炫酷开始按钮、属性动画的综合体验

超酷的计步器APP——炫酷功能实现,自定义水波纹特效、自定义炫酷开始按钮、属性动画的综合体验 好久没写博客了,没给大家分享技术了,真是有些惭愧。这段时间我在找工作,今年Android的行情也不怎么...
  • m366917
  • m366917
  • 2016年10月31日 00:50
  • 2709

APK反编译——学习记录

转:详情请参考http://blog.csdn.net/ysc123shift/article/details/52985435 使用apktool.bat apktool.jar cmd...

Android学习总结——APK打包过程与反编译

注:以下操作假定也设置好PATH 1. APK文件介绍 *.apk实际是一个rar格式的压缩包。 内容: classes.dex : 所有的*.class字节码被重新编译,并组合成了clas...

Android开发学习总结(六)—— APK反编译

学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或...

Mac下反编译APK相关资料

apktool、dex2jar、jd-gui oat2dexes

apk的反编译、汉化、修改,实现sd2flash,修改smali文件

这篇文章是针对Android系统的产品而言(而不是只针对原道产品),不过,我只有一台N5p那就发这儿了(貌视坛子里没有技术区)。如果是打酱油的高手路过,请继续去打酱油,当然也欢迎围观。vivi_an首...
  • firener
  • firener
  • 2011年03月04日 00:04
  • 119

android apk的反编译的相关操作

反编译

反编译 apk的相关工具

apk 反编译的相关工具
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:反编译 apk 以学习研究相关实现——Fuubo 波纹动画实现
举报原因:
原因补充:

(最多只允许输入30个字)