您的位置:首页 > 移动开发 > Android开发

android项目混淆打包注意事项

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

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

对android项目的混淆,只需配置文件project.properties和proguard-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.**{*;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: