我在博客上发表一些我的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代码混淆(1)的更多相关文章

  1. 【Android学习入门】Android studio基本设置

    1.背景设置 依次选择File->Settings-->Appearance & Behaviour->Apprearance,然后勾选 show line number. ...

  2. android 常用第三方包的代码混淆

    首先在:project.properties 文件下,启动代码混淆 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:pro ...

  3. Android项目外接高德地图代码混淆注意事项

    如今好多项目中都加入了第三方jar包,可是最大的问题就是打包的时候代码混淆报错,下面是高德地图混淆报错解决方式: 在proguard-project.txt中加入例如以下代码: -libraryjar ...

  4. Android 学习第13课,android 实现发送短信的功能

    1. 界面布局 界面代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

  5. 我的android学习经历13

    ToggleButton控件的使用 ToggleButton控件看名字就可以知道它是一个 “开关” 控件,也就是有两种不同状态的按钮. 主要的特别属性有三个: android:textOn=" ...

  6. android学习笔记13——ExpandableListView

    ExpandableListView==>可展开的列表组件 ==> ExpandableListView是ListView的子类,对其进行了扩展,其将应用中的列表项分为几组,每组中又包含多 ...

  7. Android 学习心得 TextView 添加垂直滚动条

    XMl文件中: 添加android:scrollbars="vertical" 添加android:maxLines="10"  //设置一页最多显示10行 a ...

  8. 【Android学习】《Android开发视频教程》第一季笔记

    视频地址: http://study.163.com/course/courseMain.htm?courseId=207001 课时5    Activity基础概念 1.Android开发技术结构 ...

  9. Android学习系列(38)--Android源码下载和编译

    前面多篇文章介绍到如何下载和编译Android或者CM源码,不过一直都是放在<拓展系列>里.随着学习的深入,android源码是非常有参考和学习价值,强烈推荐大家都去下载,编译,学习,所以 ...

随机推荐

  1. NSURLSession 和 NSURLConnection 的比较

    一.NSURLConnection 1.iOS2.0出现,iOS9.0后废弃的网络请求发送方式 2.可以在初始化时确定发送同步还是异步的请求,并且可以选择执行队列. +(void)sendAsynch ...

  2. Comet反向ajax技术实现客服聊天系统

    说明:Comet反向Ajax是在看了燕十八老师的视频以后,结合他讲解的例子,自己用ajax+java实现了一遍.在这里把代码贴出来,以供大家学习.同时,ajax轮询技术也可以用在消息推送的功能中,下次 ...

  3. [转]"RDLC"报表-参数传递及主从报表

    本文转自:http://www.cnblogs.com/yjmyzz/archive/2011/09/19/2180940.html 今天继续学习RDLC报表的“参数传递”及“主从报表” 一.先创建D ...

  4. BZOJ 2101 DP+优化

    思路: http://www.cnblogs.com/exponent/archive/2011/08/14/2137849.html f[i,i+len]=sum[i,i+len]-min(f[i+ ...

  5. resultType和resultMap区别,,,1-1一个订单只能对应一个用户,1对多,一个用户对应多个订单

    -----------------1-多

  6. 安卓使用ImageView显示OpenCV-Mat

    Android 的Application-native调试暂时还只能进行主线程调试,在GDB里面,运行于子线程的OpenCv数据处理过程不能直接调试,OPenCV-Native函数    public ...

  7. [Intermediate Algorithm] - Arguments Optional

    题目 创建一个计算两个参数之和的 function.如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果. 例如,add(2, 3) 应该返回 5,而 ...

  8. Mysql正则

    摘自:http://www.runoob.com/mysql/mysql-regexp.html 模式 描述 ^ 匹配输入字符串的开始位置.如果设置了 RegExp 对象的 Multiline 属性, ...

  9. C#遍历/反射 属性/字段

    public static string SortParam<T>(T t) { string tStr = string.Empty; if (t == null) { return s ...

  10. (转)基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用

    http://www.cnblogs.com/wuhuacong/p/4759564.html 在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理& ...