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. android service文章转载

    郑重转载几篇网络文章: Android Service使用 http://www.cnblogs.com/linlf03/archive/2013/06/14/3135273.html Android ...

  2. Stash安装和破解

    参考资料: http://www.unxmail.com/?p=590 上篇介绍了,Atlassian Stash v2.12.1 破解版的下载, 有同学不会安装. 我重新整理了下文档. 表述我的安装 ...

  3. java 图形界面 Socket编程

    一.使用图形界面实现客户端服务器端的通信: 上代码: 服务器端代码: package cn.MyNET; import java.io.*; import java.net.*; import jav ...

  4. Python - 字母算术谜题

    如: SEND + MORE == MONEY  9567  + 1085  == 10652 字母和数字一一对应 首字母不为0 解法: import re from itertools import ...

  5. QTP连接MySQL

    1.首先安装mysql数据驱动,qtp在windows系统下操作连接mysql,所以下载mysql-connector-odbc-   5.1.8-win32.msi 下载地址:http://mysq ...

  6. ReactiveCocoa总结

    RAC三部曲,1创建信号,2订阅信号,3发送信号, 信号类: RACSiganl // 1.创建信号    RACSignal *siganl = [RACSignal createSignal:^R ...

  7. data Mining with Weka: Trailer More Data Mining with Weka 用weka 进行数据挖掘 Weka 用weka 进行更多数据挖掘

    https://www.youtube.com/user/WekaMOOC 大学公开课  视频教程 weka 入门教程 data Mining with Weka: Trailer  More Dat ...

  8. hdu_1429_胜利大逃亡(续)(BFS状压)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 题意:迷宫的加强版,迷宫里有钥匙和门,问在指定的时间下能否逃出 题解:用二进制位来记录是否有该门 ...

  9. debia下安装libjpeg

    今天在编译时遇到如下问题: configure: error: no usable libjpeg; please install libjpeg devel package or equivalen ...

  10. Eclipse报错 due to restriction on required library C:/Java/jdk1.7.51/jre/lib/rt.jar 解决方案

    Eclipse报错 due to restriction on required library C:/Java/jdk1.6.0_10/jre/lib/rt.jar 解决方案 Eclipse 编译时 ...