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. Javascript 中的神器——Promise
  2. [javascript]模拟汉诺塔
  3. unity3d插件Daikon Forge GUI 中文教程2-基础控件Label的使用
  4. pbfunc外部函数扩展应用-直接在Datawindow中生成QR二维码,非图片方式
  5. jQuery 事件的命名空间
  6. 笔记11:GDI 制作数字验证码
  7. Ubuntu 14.04 Remmina远程桌面连接Windows计算机
  8. lucene建立索引的过程
  9. HDU_1241——石油探索DFS
  10. 创建一个简单的配置android编译环境的脚本
  11. SharePoint 2013 讨论板列表"Connect to Outlook" 不可用解决方案
  12. SQLite学习手册(目录)
  13. Python基础-类的探讨(class)
  14. Html5移动端页面自适应百分比布局
  15. pat1051-1060
  16. a标签中的onclick和href的使用
  17. “Nested exception: 前言中不允许有内容"错误处理
  18. window7利用Nexus搭建maven私有服务器
  19. 定义类型别名(typedef,using)
  20. 使用swagger 生成 Flask RESTful API

热门文章

  1. hive的使用和深化理解
  2. 依赖注入框架Autofac源码阅读指南
  3. oracle 启用归档日志
  4. 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇06:移动版优化指南》--本系列完结
  5. work2
  6. Java之文件的随机访问和读写RandomAccessFile
  7. hdoj 2817 A sequence of numbers【快速幂】
  8. Oracle- PL/SQL DEV的远程配置
  9. CAS Proxy 的相关文章
  10. cocos2d-x 屏幕坐标系和OPenGL坐标系转换