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. js自定义的简易滚动条

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 浅析js模板引擎

    js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTe ...

  3. AccessToMySql数据库的导入以及java生成.exe文件

    一.AccessToMySql 最近做了一个Access数据库导入MySql的小工具,期间遇到诸多问题,这里小计一下. 表名为cur_rec,共有5个字段 比较奇葩的是这个表居然是四个字段的联合主键, ...

  4. .Net_把文件数据添加到数据库中(面试题)

    一个文本文件含有如下内容: 4580616022644994|3000|赵涛 4580616022645017|6000|张屹 4580616022645090|3200|郑欣夏 上述文件每行为一个转 ...

  5. 鼠标滚动事件 - onmousewheel

    1.Jquery-MouseWheel jquery默认是不支持支持鼠标滚轮事件(mousewheel) jquery MouseWheel下载:https://github.com/jquery/j ...

  6. mac中eclipse安装openExplore插件

    插件地址:https://github.com/samsonw/OpenExplorer/downloads 将下载的jar包放入下面地址:应用程序->eclipse.app,右击->打开 ...

  7. hadoop文件系统浅析

    1.什么是分布式文件系统? 管理网络中跨多台计算机存储的文件系统称为分布式文件系统. 2.为什么需要分布式文件系统了? 原因很简单,当数据集的大小超过一台独立物理计算机的存储能力时候,就有必要对它进行 ...

  8. sqlDeveloper连接oracle

    1.解决oracle11g的ORA-12505问题 启动oraclehome92TNSlistener服务,启动oracleserviceXXXX,XXXX就是你的database SID. < ...

  9. YII2 运行概述(Overview)

    运行机制概述 每一次 Yii 应用开始处理 HTTP 请求时,它都会进行一个近似的流程. 用户提交指向 入口脚本 web/index.php 的请求. 入口脚本会加载 配置数组 并创建一个 应用 实例 ...

  10. /etc/fstab 文件解释

    /etc/fstab 文件解释 文件fstab包含了你的电脑上的存储设备及其文件系统的信息.它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的唯一文件. 这个文件的全路径是/etc/fstab ...