这两天公司组织旅游了,刚升级的SDK2.3只是装上了还没细看。今天一看,呵呵,有收获了。

2.3SDK的两个新特点:

1.刚安装上2.3时,查看sdk目录,发现在<SDK_PATH>/tools下新增了一文件夹“proguard”,如下图,我就在想是不是Google终于官方对proguard考虑进去了。理论上,对java的混淆都是可以的,但关键在于如何编写proguard的混淆脚本。

2.使用SDK2.3后,新建的工程下和之前相比,都会多了一个文件“proguard.cfg”。一打开,相当惊喜,这就是混淆所需的proguard脚本啊。

如下图:

其代码如下:

-optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; }

从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件。

并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考<proguard_path>/examples中的例子及注释。)

好了,进行得差不多了,下面就来看看如何真正的生成混淆APK吧。这儿又得提醒一下,SDK新的特性在文档里都是有的,所以文档很重要。

查看SDK2.3的文档,在路径“<androidSDK_path>/docs/guide/developing/tools/proguard.html”的“Enabling ProGuard ”中是这样描述的:

To enable ProGuard so that it runs as part of an Ant or Eclipse build, set the proguard.config property in the <project_root>/default.properties file. The path can be an absolute path or a path relative to the project's root.

好的,那就这样做吧。

在工程的"default.properties"中添加这样一句话“proguard.config=proguard.cfg”,如下图:

这样就已经设置好ADT的混淆操作了。接下来就是正常的打包和签名了。。

下图是我混淆SDK Demo中自带的Notepad效果图:

哈哈,你也去试下吧。


本文内容归CSDN博客博主Sodino 所有
转载请注明出处:http://blog.csdn.net/sodino/archive/2010/12/13/6072914.aspx

[Android]混淆Android代码相关推荐

  1. java还原混淆代码,android混淆 android如何将混淆代码还原?

    android studio的混淆文件是哪个曾几何时,我们做了世上那最柔情的人,为一朵花低眉,为一朵云驻足,为一滴雨感动. 关于代码混淆的作用,就不多解释了,整个过程大致如下:在app下的build. ...

  2. Android混淆那些事儿

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 博客园:追风917 Android混淆 Android混淆是Android开发者经常使用的一种用于代码防止被反编译的常见 ...

  3. android 混淆规则作用,Android混淆规则

    简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码 ...

  4. android命令行工具 混淆,Android 混淆代码学习以及Android加密工具--APKProtect的使用ZZ...

    一:情景分析 有时候看到其他应用App的一些效果很炫,或者是功能实现很好就想着参考参考,于是乎,下载APK----反编译APK---查看源码....,但是悲剧来了....源码都是些a,b,c...等等 ...

  5. android 常用混淆,Android常用的代码混淆整理【原创】

    android里的代码混淆是比不可少的东西,下面就贴一些常用的代码混淆. #指定代码的压缩级别 -optimizationpasses 5 #包明不混合大小写 -dontusemixedcasecla ...

  6. android 代码签名apk,[Android]混淆代码后生成带签名的apk

    Android从2.3的SDK开始,将ProGuard混淆代码的功能加入了进来. 我们可以从android sdk的tools目录下看到有一个proguard目录.说明具有了代码混淆的功能. 至于如何 ...

  7. [转]Android 项目的代码混淆,Android proguard 使用说明

    简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码 ...

  8. android代码混淆作用,Android分享:代码混淆那些事

    1) 前言 ProGuard是一个开源的Java代码混淆器.它可以混淆Android项目里面的java代码,对的,你没看错,仅仅是java代码.它是无法混淆Native代码,资源文件drawable. ...

  9. android默认代码混淆,Android SDK默认混淆配置文件

    一.介绍 通常情况下编译后的字节码包含了大量调试信息(如源类名/行号等) 混淆代码就能删除这些调试信息,并用无意义字符替换所有名字,增加反编译难度! ProGuard是一个混淆代码的开源项目,主要作用 ...

最新文章

  1. springboot 集成jpa_基于Spring Boot+JPA Restful 风格的数据
  2. (转)Linux(Centos)之安装Java JDK及注意事项
  3. 有关/etc/resolv.conf、/etc/hosts、/etc/sysconfig/network
  4. mysql 保留5位小数_小猿圈分享-MySQL保留几位小数的4种方法
  5. PHP: stdclass, 数组转成对象
  6. 三层交换和二层交换之间的端口聚合
  7. RAC性能分析 - gc buffer busy acquire 等待事件
  8. 耦合天线测试软件,以CPL天线为W-Fi装置实现无线耦合测试
  9. zbbz的lisp_学习LISP语言的体会
  10. [转载]GRADS画图
  11. 开启密钥轮换(仅适用由密钥管理服务生成的密钥)
  12. UA PHYS515 电磁理论I 麦克斯韦方程组基础6 说明真空中电磁波传播速度等于光速
  13. java工资多少 程序员薪资很高吗?
  14. 【每日随笔】2021 年终总结 ( 学习和博客 | 技术学习方向 | 专业学习方向 | 写博客的技巧总结 | 工作成果 | 2022 年展望及职业规划 | 对 CSDN 的建议和期望 )
  15. python气象卫星云图解析_python下载卫星云图合成gif的方法示例
  16. 每日分享,三款纯jquery移动端日期时间选择插件
  17. 基于STM32的智慧矿山之矿井安全监控终端的设计与实现
  18. 机器视觉丨环形无影光源丨原理及打光案例
  19. ora-00119和ora-00132问题的解决方法
  20. 不少专车司机考虑退出

热门文章

  1. UNIX环境高级编程源码
  2. 2022.7.14 花旗银行外包面试
  3. 【unity】维护一个changelog
  4. 设计模式—单例模式(饿汉式、懒汉式)
  5. 项目awesome-semantic-segmentation-pytorch以及FCN、Unet、deeplabv1、deeplabv2、deeplabv3、deeplabv3+的网络
  6. long型转String(*)
  7. 杭州区块链技术与应用联合会简报
  8. pycharm快速注释快捷键
  9. js函数表达式与函数声明_何时使用函数声明与函数表达式
  10. 数据集下载地址(转)