这两个讲的比较详细
反编译:http://blog.youkuaiyun.com/sunboy_2050/article/details/6727581
防反编译:http://blog.youkuaiyun.com/sunboy_2050/article/details/6727640
总结:
(1)需要看java源码就用dex2jar工具把解压出的APK中的classes.dex文件编译成jar文件,然后再用随便什么jar反编译工具来看就可以看到源码了,但是如果APK打包的时候用java代码混淆的工具proguard混淆代码的话,出来的源码如下
这样就很难看清楚逻辑了,在网上找了一下,现在还没找到很好的解决办法
(2)需要APK中源码以外的资料,图片的话直接解压APK就出来了,xml的话用apktool工具,
反编译用:apktool d -s c:\soft\xxx.apk c:\soft\source。命令格式:apktool d [opts] <file.apk> [dir]
d代表解码,[opts]代表选项,-s选项代表不解码源文件。
重新把编译后的文件夹打包成apk:apktool.bat b [dir](你编译出来文件夹)
打包后会在你[dir]编译出来的文件夹下生成2个文件夹build文件夹和dist文件夹,打包后的apk在dist文件夹中
(3)关于代码混淆工具proguard的使用和配置,这个http://blog.sina.com.cn/s/blog_7a8d6d9801010w1j.html说的比较详细,
关于proguard工具配置后的问题和bug:http://www.2cto.com/kf/201205/131137.html,还有这个使用要注意的地方http://my.oschina.net/banxi/blog/55622