代码混淆是为了防止反编译。如果没有对代码混淆,那么其他人很容易就可以得到你的项目中的所有代码。而混淆之后,其他人就没那么容易获得了。

保护软件有着双重意义: 一是保护软件的知识产权 (intellectual property), 防止被人盗用; 二是保护软件中可能隐含的诸如技术漏洞等私密信息, 防止被人利用。 就保护思路而言, 目前主要有两条: 一条是加密 (encryption), 另一条是代码混淆 (obfuscation)。 两者的主要区别是前者需解密 (decryption), 后者则不需要——因为后者只是将代码换成普通人难以读懂、 在计算机上却仍能运行, 且功能相同的形式, 很多网站采用的 JavaScript 代码混淆就是很好的例子。

ProGuard

官方网站

ProGuard是最流行的Java字节码优化器。它使Java和Android应用程序的体积缩小了90%,速度提高了20%。ProGuard还通过混淆类,字段和方法的名称来提供最小的保护,以防止逆向工程。

ProGuard可以免费使用来处理您的应用程序,无论是否商业。ProGuard代码本身受版权保护,并根据GNU通用公共许可证(GPL)版本2进行分配。该用户手册也受版权保护,并且只能以其原始形式与未经修改的代码一起重新分发。

看一下 https://www.guardsquare.com/en/products/proguard/manual/gui