想要彻底反编译一个已知的apk文件,拿到手后,顺序应该是首先反编译出资源文件,找到AndroidManifest.xml文件,然后找到启动的activity文件,这个是关键,因为这个是改变不了的。有了这个启动activity文件,然后根据自己反编译出的代码,判断需要反编译的具体的activity和具体的xml文件。反编译valuse文件中夹中有个public.xml文件这个文件是资源文件生成的id值,是16进制的,但是你反编译出来的代码文件是10进制的,自己转化下。最后建议将资源文件和代码文件导入到新建的as工程中,利用as强大的功能可以尽快定位到你需要参照的代码。被混淆过得文件,代码文件的命名都是以字母或者数字来命名的。想弄懂逻辑关系需要花点时间了,但是你可以参考到别人很多的思路。在这里不是建议大家去一味的抄袭和copy别人的代码,而是借鉴的态度。另外一方面安卓程序员们发布的apk文件一定要经过混淆,如果有技术实力给自己的apk文件加壳。加过壳的apk文件就能够真正去对抗反编译,破解的人了。
注意事项1:有时候反编译出来的有.1的方法其实应该是类的写法后缀。$1
2:this.this$0代表的是调用this的外部类。