一直以来对于android的项目就没有进行混淆,因为就算混淆了也不能混淆 Activity,Service,BroadcastReceiver 这些类,所以别人反编译也能分析出来。并且自己的代码本来就没有什么牛逼哄哄的地方,因此更没有混淆的理由了。但是最近研究android越多,反编译越多,发现大多数应用都是混淆了的,在分析源码的时候,发现也有一定掩人耳目的价值,故自己也尝试了一下混淆。

  

  我的ADT 版本是 10,因此混淆是有的,我也不知道从 ADT 哪个版本开始有 proguard,因此你要保证你的 “sdk目录\tools\” 下有 proguard 这个文件夹。

  现在我们在 eclipse 中新建一个项目,一般都会出现 proguard.cfg 这个文件。这个文件 便是我们的混淆脚本文件,好在的是 ADT 提供了懒人解决方案,因此一般乃至于大多数情况下,我们是不需要更改这个 混淆脚本文件。当然如果你想要知道更多有关 proguard 以及混淆脚本的知识可以访问你安装好的SDK文档:

你的SDK安装目录\docs\guide\developing\tools\proguard.html

  

  这里我使用Samples 中的 NotePad 举例

  

  大家可能注意到了,没有 proguard.cfg 这个混淆脚本文件,没关系,我们从其他项目中复制一个过来。

  然后我们在 default.properties 这个文件里添加一句代码,让编译器在 release 的时候自动运行 ProGuard 调用proguard.cfg 脚本进行混淆

  

  由于在 Debug 下,不可能会有人会混淆代码,因此这只在release中有效。

  接下来我们导出此项目的未签名apk

  

  然后,我们使用 dex2jar 把本apk中的dex转为jar,再用 jd-gui 进行反编译查看,下面我们就可以发现,我们的apk已经混淆了,HOHO~~~

  

  Have fun!

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  5. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  6. Android之贴图-----
  7. [置顶] 玩转pandaboard之linaro对于Android的编译上的一些优化
  8. Android存储子系统
  9. Android(安卓)Intent Scheme URLs攻击

随机推荐

  1. gcc手动编译android可执行程序
  2. android初涉JNI
  3. Android各个Support Library介绍
  4. Android热修复——简单实现
  5. Google nexus 6p android 8.0——>androi
  6. Android日历操作
  7. 一步一步教你如何在android使用tesseract
  8. JNI 防混淆 Android(安卓)proguard
  9. android View长按事件简单写法
  10. Android(安卓)开发工具(以后持续更新)