二、参考链接: Android APK反编译详解(附图):http://blog.csdn.net/ithomer/article/details/6727581 该记事本原帖地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=161309
需要用到个工具:(强烈建议下最新版本的,上面文章中的链接里有个子链接版本不是最新,结果反编译出来各种问题,花了好几个小时才解决) dex2jar(google code):http://code.google.com/p/dex2jar/downloads/list jdgui(google code):http://code.google.com/p/innlab/downloads/list 三、反编译步骤: 步骤一:打开如上链接所述:将apk后缀修改为zip并解压,得到classes.dex,有些classes.dex文件会报病毒,关闭杀毒软件(原因不详,可能是由于该应用内置了广告,广告当中含有病毒,慎重)。它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.15文件夹。
在命令行下定位到dex2jar.bat所在目录,(如何定位:如果放在F盘,则直接输入F: 然后输入 cd [目标目录])
运行
dex2jar.bat classes.dex
生成
classes_dex2jar.jar
然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了。
步骤二:apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
下载上述反编译工具包,打开apk2java目录下的apktool1.4.1文件夹,内含三个文件:aapt.exe,apktool.bat,apktool.jar
注:里面的apktool_bk.jar是备份的老版本,最好用最新的apktool.jar
在命令行下定位到apktool.bat文件夹,输入以下命令:apktool.bat d -f abc123.apk abc123,如下图:
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
上图中,apktool.bat 命令行解释:apktool.bat d -f [apk文件 ] [输出文件夹]
上面就是咱们反编译的内容了,具体我都是拷贝自上面的文章,同时,给出新版本dex2jar链接
http://download.csdn.net/detail/fu222cs98/6980279
四、编译过程中的问题(重点来了)
啊,我编译完成了,代码全部复制了,可是eclipse跑不了怎么办,各种bug怎么办....好吧。这就需要足够的耐心和细心了。如果你下的APK内容够大,够多,那么难度还是相当大的,该应用的还是相对简单的,对我等初学者来说,还是很幸福的。
问题一:
出现这种情况怎么办(注:Ad.class为广告类,可忽略):
解决办法:
找到R.class 赋值上面的数字找到对应的赋值,然后你就控件什么的 你就 R.id.**** 布局什么的 你就R.layout.****
问题二:
如图:return怎么会在while(true)里面,这明显不科学好伐!!!!
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
解决办法:
细读上下文吧,可怜的孩纸最后的结果其实是这样的:
根本就没必要return好嘛!!!
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
类似的还有:
这叫什么事儿嘛!!!for里面带return是几个意思,if(); 又是怎么个情况,我和我的小伙伴很捉急啊。
解决办法:
细读上下文吧,咱也没办法了......
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
注意:在layout布局文件中,咱们拷贝的同时别忘记修改里面自定义控件的前缀名如图:
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
基本内容就这些啦,这些东东花了我一个下午加一个晚上的时间,哎,划不来啊,早知道下别的开源的记事本了。后来发现这个效果也就这样~~~
附上,我测试的APK文件,以及我已经反编译并通过的源代码,供各位参考使用(强烈建议自己研究一番,不研究不知道,一研究吓一跳,可以学到不少东西):该程序仅供学习使用!!!!!!!严禁用于商业用途啊啊啊啊啊啊,我木有取得原作者的许可啊啊啊啊
http://download.csdn.net/detail/fu222cs98/6980463
另外,有木有朋友晓得一些大牛大神的android博客呀。俺好好拜读拜读。要是有大神愿意留言并略微指导的话,小弟感激不尽啊,小弟还想升任总经理,出任CEO,迎娶白富美,走上人生事业的巅峰的~~
end