防止Android代码被反编译的方法
由于apk是Android虚拟机加载的,它有一定的规范,加密apk后Dalvik无法识别apk了。
完全避免是不可能的,总有人能够破解你的代码。但还是有几种方式来提高被反编译获取代码的难度。
提高反编译难度的几种方式:
1. 关键代码使用jni调用本地代码,用c或c++编写,相对于class文件,so相对比较难于反编译。
缺点是很多搞java的程序员不太熟悉如何写c或c++代码,同时本地代码很难调试。出错容易导致整个虚拟机死掉,用户感受不好。
2. 混淆java代码。混淆是不改变代码逻辑的情况下,增加无用代码,或者重命名,使反编译后的源代码难于看懂。
网上开源的java代码混淆工具较多,自己上网找吧。一般是用ant的方式来编译的。