APK瘦身

主要从一下三方面来瘦身:

1. Java 源代码

  1. ,这方面主要是通过最简洁的代码实现最直接的功能,还有就是提出上线前不必要的java代码,可以使用UCDector进行分析,从而对代码进行清理。

  2. ,使用混淆器Proguard:

    混淆器是在编译时对你的代码进行混淆、优化、压缩的强有力工具。它能够减少Apk大小的主要特性是tree-shaking,它会遍历你所有的代码路径,检测出那些没用的代码片段,所有这些多余的代码片段,都会从最终的APK文件中被剔除。混淆器同时也会对你的文件、类、接口进行重命名,保证代码尽可能的轻量级。

2. 资源文件(resources/assets)

1) ,适合的resources

只支持 hdpi, xhdpi ,xxhdpi:

它涵盖了80%的用户;

其次,xxxhdpi是为了适应未来而存在的,而不是现在;

最后,我根本不关心糟糕的低分辨率的设备。

2) ,最小化resources配置

依赖的第三方库文件自带一些对你的应用毫无用处的资源;从 Android Gradle Plugin 0.7开始,通过resConfig 和 resConfigs以及默认的配置选项,你可修改构建系统的配置信息。DSL阻止打包工具打包那些不符合app的资源配置

    1 defaultConfig {
2 // ...
3 resConfigs "en", "de", "fr", "it"
4 resConfigs "nodpi", "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"
5 }

3) ,压缩图像

打包工具自带图片无损压缩算法,例如,一张不超过256色的真彩色的PNG图片可能会通过调色板被转换成8位的PNG。这可能减少你的资源的大小。在Google上可以搜索到一些PNG压缩处理的工具,比如pngquant, ImageAlpha 和 ImageOptim。当然也可以通过在线的压缩网站将美工的切图进行压缩(https://tinypng.com);此处有个批量进行图片压缩的工具(http://blog.csdn.net/visualcatsharp/article/details/17137405)。

另外,Android平台上一种特有的图片格式.9,也可以节约空间。

4) ,尽可能多的复用

在手机上开发应用,可能最重要的就是学会“复用”了。在ListView或RecyclerView中,“复用”使得滚动过程很流畅。同时“复用”也能够帮助你减少APK文件的大小。例如,在新的Android L版本中使用android:tint以及android:tintMode,或者使用适用于所有版本的ColorFilter,能够为assets重新配色。

参考:http://greenrobot.me/devpost/putting-your-apks-on-diet/,但是也添加了自己的理解和想法

APK瘦身的更多相关文章

  1. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  2. APK瘦身记,如何实现高达53%的压缩效果

    作者:非戈@阿里移动安全 1.我是怎么思考这件事情的 APK是Android系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很多方法和规律. ...

  3. APK瘦身实践

    首发地址:http://www.jayfeng.com/2015/12/29/APK%E7%98%A6%E8%BA%AB%E5%AE%9E%E8%B7%B5/ 因为推广的需要,公司需要把APK的大小再 ...

  4. Android APK 瘦身 - JOOX Music项目实战

    导语 JOOX Music是腾讯海外布局的一个音乐产品,2014年发布以来已经成为5个国家和地区排名第一的音乐App.东南亚是JOOX Music的主要发行地区,由于JOOX Music所面对的市场存 ...

  5. Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  6. Android性能优化系列之apk瘦身

    Android性能优化系列之布局优化 Android性能优化系列之内存优化 为什么APK要瘦身.APK越大,在下载安装过程中.他们耗费的流量会越多,安装等待时间也会越长:对于产品本身,意味着下载转化率 ...

  7. 39、apk瘦身(转载)

    本文转自::Android开发中文站 » 关于APK瘦身值得分享的一些经验 从APK的文件结构说起 APK在安装和更新之前都需要经过网络将其下载到手机,如果APK越大消耗的流量就会越多,特别是对于使用 ...

  8. 安卓APK瘦身

    之前打包的时候直接就用eclipse或者android studio直接生成签名文件,并没有关心大小问题,近期有人问我有没有对APK进行瘦身.对这方面内容一致没有关注过,今天试用了各种方式把项目签名a ...

  9. APK瘦身-是时候给App进行减负了

    前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装.前一段时间我司某一App进行APK的瘦身,最终也达到了减小10M的目标,现做一个简单的总结记录. ...

随机推荐

  1. ZIP文件解压

    public class DZip { /// <summary> /// 压缩为ZIP文件 /// </summary> public void Zip(string dir ...

  2. 关于解决“No matching provisioning profiles found”问题-ios

    xcode7之后真机调试就可以不需要调试证书了,但其中也会遇到一些问题令人挠头搔耳.记录下来是给自己提供方便,也为初遇到此问题的人提供解答,利人利己的事情我做!   上图: 图一 本人有一种视警号为e ...

  3. Hash算法冲突解决方法分析

    采用开放定址法处理散列表的冲突时,其平均查找长度?  高于链接法处理冲突 低于二分查找 开放定址法:一旦发生冲突,就去寻找下一个空的散列地址,只要散列地址够大,空的地址总会找到 链地址法: 一旦发生冲 ...

  4. TCP网络编程小结

    一.套接字编程基础 1.套接字地址结构 通用的地址结构是 struct sockaddr{ unsigned short sa_family; ]; } IPv4的套接字地址结构是 struct in ...

  5. 让上下两个DIV块之间有一定距离或没有距离

    1.若想上下DIV块之间距离,只需设定:在CSS里设置DIV标签各属性参数为0div{margin:0;border:0;padding:0;}这里就设置了DIV标签CSS属性相当于初始化了DIV标签 ...

  6. Flask -- 入门

    安装virtualenv 作用:可以为一个项目单独提供一份Python的安装,安全  pip install virtualenv 使用virtualenv为MyProject项目安装Python,并 ...

  7. 命令窗口修改编码,CMD编码修改方法

    cmd中的编码方式为ANSI,若中文不是此编码方式则会出现乱码.作为程序员,会经常使用命令窗口查看执行日志,但是有时编码格式不对,大部分都是UTF8,在网上搜索了不少方法,很多没什么用,在这里教一个具 ...

  8. java中的静态代码块等执行顺序

    http://www.cnblogs.com/naruto469/p/3608459.html public class Print { 2 3 public Print(String s){ 4 S ...

  9. hdu_5768_Lucky7(中国剩余定理+容斥)

    题目链接:hdu_5768_Lucky7 题意: 给你一个区间,问你这个区间内是7的倍数,并且满足%a[i]不等于w[i]的数的个数 乍一看以为是数位DP,仔细看看条件,发现要用中国剩余定理,然后容斥 ...

  10. iOS 的 APP 如何适应 iPhone 5s/6/6Plus 三种屏幕的尺寸?

    初代iPhone 2007年,初代iPhone发布,屏幕的宽高是 320 x 480 像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone 3GS也保持不变. 那时编写iOS的App( ...