android2.3的SDK开始在eclipse中支持代码混淆功能(理论上java都支持混淆,但关键在于如何编写proguard的混淆脚本,2.3的SDK使用简单的配置就可以实现混淆)。使用SDK2.3后,新建的工程下和之前相比,都会多了一个文件“proguard.cfg”。这个文件就是混淆所需的proguard脚本。在工程的"default.properties"中添加这样一句话“proguard.config=proguard.cfg”即可实现混淆(如下图)。


       android4.0SDK,ADT14或者更高版本,项目中没有default.properties文件,只有project.properties文件,找到project.properties文件即可。该文件中有以下两行:


# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): # proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt


              根据这段说明,只要将proguard.config前面的#去掉(下图),就可以利用ProGuard来混淆代码了!


      默认的设置是不带优化功能的,下面代码可优化混淆:

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



proguard 配置

最常用的配置选项
-dontwarn 缺省proguard 会检查每一个引用是否正确,但是第三方库里面往往有些不会用到的类,没有正确引用。如果不配置的话,系统就会报错。
-keep 指定的类和类成员被保留作为 入口 。
-keepclassmembers 指定的类成员被保留。
-keepclasseswithmembers 指定的类和类成员被保留,假如指定的类成员存在的话。


使用的JNI、jar时更应该考虑混淆的配置。


混淆更多配置请参考:

http://developer.android.com/tools/help/proguard.html#configuring


/** * @author 张兴业 *  http://blog.csdn.net/xyz_lmn *  android开发进阶群: 241395671 */



更多相关文章

  1. Android(安卓)虚拟机Dalvik、Android各种java包功能、Android相
  2. android实现横竖屏不间断播放文件
  3. Android(安卓)mediaplayer 播放本地音乐文件
  4. NDK与JNI的基础与基本配置和使用
  5. Android(安卓)Kotlin使用指南
  6. Android内置应用到系统的方法总结
  7. Android6.0 ueventd
  8. Android(安卓)NDK开发(一)——ndk-build编译生成so库文件并使用
  9. NPM 和webpack 的基础使用

随机推荐

  1. android嵌入式底层开发教程
  2. Android开发之Serializable 和 Parcelabl
  3. Android(安卓)ProgressBar的使用!
  4. 2012 年新推出的 Android(非游戏)应用中,哪
  5. android视频监控的解决方案探讨
  6. 使用HTML来生产Android界面
  7. android混淆代码bug跟踪
  8. android onPause()和onStop()区别
  9. Android(安卓)WebView内容宽度自适应
  10. Android(安卓)动画有拖影