1)开启minifyEnabled

开启混淆,删除没用的java文件

2)开启shrinkResources

去除无用资源

3)resConfigs “zh”

删除无用的语言资源

4)使用tinypng有损压缩

TinyPNG使用一种智能有损压缩技术(通过降低图片中的颜色数量,来减少存储图片所需要的数据)来降低PNG图片的大小

TinyPNG将PNG图片压缩成8位的PNG(而不是24位),所以它的压缩比例非常高

http://tinypng.com

5)对于非透明的大图,png转换为jpg格式

格式工厂转换

6)使用webp格式

定义:一种支持有损压缩和无损压缩的图片文件格式

兼容和使用:从Android 4.0+开始原生支持,但是不支持包含透明度,直到android4.2.1+才开始显示透明度的webp

7)根据Gooble的测试,无损压缩后的Webp比PNG文件少了45%的文件大小,即时这些PNG文件经过其他压缩工具压缩之后,Webp还是可以减少28%的文件大小

优势:PNG转Webp的压缩率要高于PNG原图压缩率,同样支持有损与无损压缩。

  转换后的Webp体积大幅减少,图片质量也得到保障(同时肉眼几乎无法看到差异)

  转换后的Webp支持Alpha透明和24-bit颜色数,不存在PNG8色彩不够丰富和在浏览器中可能会出现毛边的问题

8)使用shape文件替换图片

  <?xml version="1.0" encoding="utf-8"?>

9)切图使用一套图即可

  适配主流的分辨率1280*720

缩减APK包大小的更多相关文章

  1. Android如何缩减APK包大小

    代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs. 使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小. native c ...

  2. 6.关于Xamarin Android对APK包大小的处理

    降低学习成本是每个.NET传教士义务与责任. 建立生态,保护生态,见者有份. 对于apk 包的大小大家都是很敏感的,虽然现在安卓手机的性能和存储越来越厉害了.本着能少一点是一点的态度,我们还是要深入理 ...

  3. 减少apk包大小的一种思路

    现在apk大小主要是决定于两个:一个是图片一个是.SO文件(这个尽量用release包),而对于图片,既要越小,又要保持质量. 之前是PNG --> JPG, 现在直接是PNG ---> ...

  4. UE4 减少APK包的大小

    本文依据官方文档 Reducing APK Package Size整理而来,不过我会陆续添加自己减少包大小的心得. ETC1 纹理 当使用ETC1打Android包时,注意ETC1是不会压缩带Alp ...

  5. apk瘦身(包大小优化)

    最近太忙好久没有写随笔,放假才有空写写随笔. 最近在项目中一直在做包大小优化 随着业务需求的增加,包大小是忍不住的往上涨 为了提高应用市场下载转化率,一直在优化包大小 首先 分析你的apk中占比的主要 ...

  6. 把玩Alpine linux(二):APK包管理器

    导读 Alpine Linux非常精简,开机内存占用也在二三十兆大,没有拆箱即用,就需要我们自己去做一些了解和配置 Alpine Linux的优劣 优势 Alpine Linux的Docker镜像特点 ...

  7. 计算apk包的安装之后占用空间以及运行时占用内存

    1.统计结果如下 计算apk安装占用空间大小方式 为了方式apk包运行时出现缓存数据等对空间计算造成影响.应该先进行安装,然后分别计算空间变化 所有apk包安装完毕后再运行 开启两个cmd窗口 第一个 ...

  8. Unity - Apk包的代码与资源提取

    最近在研究如何给Unity游戏进行加密,让别人不能轻易破解你的apk包,不过网上的加密方法都是有对应的破解方法~_~!!结果加密方法没找到好的,逆向工程倒会了不少.今天就来讲解如何提取一个没做任何保护 ...

  9. Android程序进行混淆,在导出签名apk包时出错!

    今天终于完成了近一个月的App开发工作,对程序进行混淆导出签名apk包时,却出现了如下的错误: Proguard returned with error code 1. See console Not ...

随机推荐

  1. scrapy_全站爬取

    如何查询scrapy有哪些模版? scrapy genspider –list 如何创建crawl模版? scrapy genspider -t crawl 域名 scrapy genspider - ...

  2. Hibernate (二)

    1 一级缓存的引入 示例: @Test public void testUpdate(){ Configuration configuration = new Configuration().conf ...

  3. 【转】awk数组操作

    转自:http://blog.csdn.net/wangran51/article/details/9168361 用awk进行文本处理,少不了就是它的数组处理.那么awk数组有那些特点,一般常见运算 ...

  4. Java多线程优化方法及使用方式

    一.多线程介绍 在编程中,我们不可逃避的会遇到多线程的编程问题,因为在大多数的业务系统中需要并发处理,如果是在并发的场景中,多线程就非常重要了.另外,我们在面试的时候,面试官通常也会问到我们关于多线程 ...

  5. Jenkins初识

    Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 功能 Jenkins功能包括 ...

  6. Linux 系统监控常用命令

    简介 列举操作系统级监控常用的几个方法,建议收藏使用 CPU top 命令可用于监控系统整体负载,包括cpu.内存使用等,能够实时显示系统中各个进程的资源占用状况 输出样例 top - 19:37:4 ...

  7. 一个 div 手写红绿灯- 分别用css3 和 js 实现

    [要求] 一个div,配合 css3 或者 js 实现红绿灯切换的效果. [思路] 使用 css3,要实现红绿灯颜色的变换必然要用到 animation 动画,通过 keyframes 控制颜色的渐变 ...

  8. Cypher查询语言--Neo4j 入门 (一)

    目录 操作符 参数 标识符 注解 Start 通过id绑定点 通过id绑定关系 通过id绑定多个节点 所有节点 通过索引查询获取节点 通过索引查询获取关系 多个开始点  Cypher是一个描述性的图形 ...

  9. 从源码安装go 1.2.2

    获取代码 以下命令会创建一个go目录.切换到相应目录,并且确保当前位置不存在go目录,运行命令: hg clone -r release https://go.googlecode.com/hg/ g ...

  10. Windows远程桌面卡的解决办法

    Windows远程桌面卡的解决办法 如果在网络没有什么大问题的情况下,可以尝试以下操作. 1.显示中颜色选择 增强色15位 2.体验中 设置成下图的样子 然后在尝试连接试试有没有好点