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.**{*;}
首先,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.**{*;}
相关文章推荐
- android项目混淆打包注意事项
- android项目混淆打包注意事项
- Android项目外接高德地图代码混淆注意事项
- Eclipse实现Android混淆打包注意事项
- Android项目外接高德地图代码混淆注意事项
- Android项目外接高德地图代码混淆注意事项
- cocos2dx3.X项目重写(番外篇)3.X打包apk的注意事项
- Android 混淆注意事项
- 在Android 项目时的防止Memory leak 要注意的事项
- 在Android 项目时的防止Memory leak 要注意的事项
- android webview中调用了js的时候混淆注意事项
- Android 混淆注意事项
- Android混淆注意事项
- SVN 管理Android项目中eclipse的设置和注意事项
- android 反编译 混淆过程中注意事项
- cocos2dx ios打包android注意事项
- J2ME项目移植到Android平台六大注意事项
- cocos2d-2.0-x-2.0.4 android项目搭建注意事项
- 使用Tortoise SVN版本控制Android项目in eclipse的注意事项
- 在Android 项目时的防止Memory leak 要注意的事项