Android学习心得(13) --- Android代码混淆

Posted cynchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android学习心得(13) --- Android代码混淆相关的知识,希望对你有一定的参考价值。

我在博客上发表一些我的android学习心得,希望对大家能有帮助。
这一篇我们讲述一下最新的ADT环境下怎样进行Android混淆


在新版本号的ADT创建项目时。混码的文件不再是proguard.cfg。 
而是project.properties和proguard-project.txt。 
我们把之前配置都配置好了。proguard已经在包括在sdk中了。

环境配置參考 Android学习心得(1) --- MAC下Android环境的搭建

新建一个项目的时候,会自己主动生成project.properties和proguard-project.txt文件。 
无需自己新建,假设你的项目无法自己主动生成,那么你就要检查一下你的ADT版本号了 

技术分享

假设须要对项目进行全局混码,仅仅须要进行一步操作:
将project.properties的中“#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt”
把“#”去掉就能够了。

技术分享
技术分享

 因为apk文件的混淆往往是伴随着文件的压缩和代码的优化问题,混淆的apk文件解压转换为jar文件。 
 使用ju-gui打开以后有一个不太引人注意的细节问题---当中找不到资源文件类。

利用这一特性。我们能够直接利用apktool解压apk文件。对其smali文件的文件名称进行分析。 假设存在一个或以上的资源的smali文件,就能够证明该apk文件没有混淆,反之。则说明已经是混淆过了的文件。 我们将没有混淆和混淆过的apk分别使用Eclipse导出并签名

參考Android学习心得(12) --- APK签名keystore
技术分享

分别通过dex2jar和jd-gui查看源码

技术分享
技术分享

明显的发现,第二个显示的源码已经被混淆过了,产生了a,b,c三个类。R.class已经不见了。

另外一个明显的差别是,混淆过后的apk大小是未混淆的apk三分之中的一个,代码往往经过压缩和优化。

技术分享





以上是关于Android学习心得(13) --- Android代码混淆的主要内容,如果未能解决你的问题,请参考以下文章

android基础篇学习心得

我的MYSQL学习心得 查看字段长度

2018-04-13web自动化学习心得

Android学习心得之 Linux下命令行Android开发环境的搭建

第9章 Android硬件抽象层 学习心得

Android开发学习之路-SnackBar使用心得