1. 当前是有些工具比如apktool,dextojar等是可以对我们android安装包进行反编译,获得源码的。为了减少被别人破解,导致源码泄露,程序被别人盗取代码,等等。我们需要对代码进行混淆,android的sdk中为我们提供了ProGuard这个工具,可以对代码进行混淆(一般是用无意义的名字来重命名),以及去除没有使用到的代码,对程序进行优化和压缩,这样可以增加你想的难度。最近我做的项目,是我去配置的混淆配置,因此研究了一下,这里分享一下。

2. 上面说到去除没有使用到的代码,对程序进行优化和压缩:这是程序的瘦身

apk瘦身一般有两条线,

  1. 去除无用的代码,例如引用一个比较大的lib,只使用了其中很少的功能。其他无用的代码可以想办法去掉
  2. 去除无用的资源文件,可能是第三方lib中的,也有可能是开发中引入了无用的资源

去除无用代码

当然是Proguard了!

gradle plug 0.14.0, runProguard 更名为minifyEnabled

去除无用资源

Android Gradle plug从0.14.0开始,支持自动去除没有使用的资源。

不过,这个开关是默认关闭的。可以在build type使用 shrinkResources true 开启。 要注意,这个功能的使用依赖于code shrinking, 所以minifyEnabled也必须打开。

  1. Support for automatic removal of unused resources

  2. Off by default for now, enable by setting shrinkResources to true in your release build types. Requires minifyEnabled as well.

具体配置如下

android {
buildTypes {
release {
minifyEnabled true
shrinkResources true
}
}
}

效果

以我正在开发的一个app为例

  • 使用前2.02MB

  • 使用后1.90MB

效果明显!

最新文章

  1. NIO初识
  2. mpdf部署到linux环境中遇到的问题
  3. IDoc
  4. OC之Block的用法和实现委托
  5. VS默认环境设置
  6. SRM 609(1-250pt, 1-500pt)
  7. Swift--基础(一)基本类型 符号 字符串(不熟的地方)
  8. 杭州电子科技大学Online Judge 之 “确定比赛名次(ID1285)”解题报告
  9. Haproxy基于ACL做访问控制
  10. java log4j基本配置及日志级别配置详解
  11. [Educational Codeforces Round#22]
  12. (简单)华为荣耀4A SCL-TL00的usb调试模式在哪里打开的方法
  13. Tomcat 多个虚拟主机配置方法
  14. linux 下zip的用法实例
  15. jQuery插件开发进阶
  16. python 爬虫-2
  17. 学习 google file system 心得体会
  18. vba的一个File操作类
  19. Python学习笔记18-发送邮件
  20. SQL语句(二十)—— 数据库安全性

热门文章

  1. 2.Spring的Bean生命周期和组装方式
  2. 小众软件:录屏局部放大神器 ZoomIt
  3. Python入妖4-----Request库的基本使用
  4. vue的watch详细用法
  5. vue router路由(三)
  6. spring webapp的配置文件放置在项目外的方法
  7. java替换word表格2007
  8. 在使用clone()时id保持一致
  9. Ubuntu 16.04下安装Charles抓包工具
  10. git 摘要