android项目混淆打包注意事项

最近做公司的项目,熬到了产品结束,为了代码的安全,于是自己开始琢磨着如何进行代码混淆,以下是自己的一些总结(通过一两天的搜索、看博客,自己终于实现了代码混淆,这是本人第一次混淆打包,其过程出现了很多错误,网上的所谓混淆的方法均试过,一些都或多或少存在问题,所以自己列举其中一些注意事项)

首先,android代码的混淆是为了进行对代码安全的处理,使即使通过反编译也难看懂;还有以下配置只是些基本配置,根据具体的报错及代码结构会有不同的配置信息,只能继续搜索解决了。


android项目的混淆,只需配置文件project.propertiesproguard-project.txt,都在项目的根目录下。


配置project.properties文件:

1.SDK版本:如果SDK 2.3之后的(我的项目是SDK 4.0的)只需解注掉proguard.config的配置即可,(具体的内容也应与实际生成项目时该文件的内容而定),如下:

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

若是2.3之前的SDK,那么配置信息是:

proguard.config=proguard.cfg

 

2.配置proguard-project.txt文件:

第三方lib包的添加语句:-libraryjars libs/your_useredjar

对包中所有类及方法不进行混淆处理语句:

-keep class com.cn21.cloudsalbum.client.**{*;}

对类及类中方法(这里举了公有方法及字段的例子)不进行混淆处理语句:

-keepclassmembers class fqcn.of.javascript.interface.for.webview { public *;}

忽略所有的错误警告:

-ignorewarnings

对某包下警告不提示:

-dontwarn android.support.**

 

具体举例如下(一般我们的项目都会携带有support-v4包):

#-ignorewarnings //这里注释掉了对所有的警告错误

-libraryjars libs\android-support-v4.jar

-libraryjars libs\Library.jar

 

#-dontwarn android.support.**

-keep class android.support.v4.**{*;}

-keep class android.annotation.**{*;}

 

配置自编写的包不进行混淆

-keep class com.cn21.cloudsalbum.client.**{*;}

-keep class com.cn21.cloudsalbum.client.json.**{*;}

Java代码混淆打包通常使用ProGuard工具。ProGuard是一个开源的Java代码优化和混淆工具,它可以对Java字节码进行优化、压缩和混淆,以提高应用程序的性能和安全性。 ProGuard可以删除未使用的类、字段和方法,减小应用程序的大小。它还可以重命名类、字段和方法的名称,使代码更难以理解和逆向工程。此外,ProGuard还提供了其他功能,如优化字节码、移除调试信息和处理异常。 以下是使用ProGuard进行Java代码混淆打包的示例: 1. 首先,确保你已经安装了Java开发工具包(JDK)和ProGuard工具。 2. 创建一个ProGuard配置文件(例如proguard.cfg),并在其中指定要混淆的类和规则。以下是一个简单的示例配置文件: ``` -injars input.jar -outjars output.jar -libraryjars /path/to/android.jar -keep public class com.example.MyClass { public static void main(java.lang.String[]); } ``` 在这个示例中,`input.jar`是输入的jar文件,`output.jar`是输出的混淆后的jar文件。`/path/to/android.jar`是Android SDK中的android.jar文件,用于保留Android框架的类和方法。`-keep`指令用于指定要保留的类和方法。 3. 执行以下命令来运行ProGuard并混淆打包你的Java代码: ``` proguard @proguard.cfg ``` 这将根据配置文件中的规则对代码进行混淆和优化,并生成混淆后的输出jar文件。 请注意,使用ProGuard进行代码混淆打包可能会导致一些问题,如代码错误、依赖关系问题和性能问题。因此,在使用ProGuard之前,建议先备份你的代码,并进行充分的测试和验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远ai不完

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值