一、转换图片格式为SVG

一般APK中都会用到很多图片,一般jpg或者png之类的图片占用的内存都很大,而且为了适配不同大小的屏幕,可能会准备多套内容一样,但是大小不一样的图片,这样就会造成大量内存被浪费。
SVG图片占用内存极小,而且它无论拉伸到多大,都不会变形,因此,APK瘦身要做的事情之一就是将jpg或者png之类的图片转换为SVG格式。
SVG图片需要注意的地方有以下几点:

1.1 Android 5.0以下不支持SVG图片显示

解决方案一:

这里 [‘xhdpi’, ‘xxhdpi’] 的意思是,在drawable-xhdpi和drawable-xxhdpi这两个文件夹下面都生成svg对应的png图片。

解决方案二:

SVG的图片还可以设置颜色,而且支持点击图标变色,设置点击图片后图片变色的方法如下:

利用控件的tint属性设置颜色

1.2 打开普通的SVG图片,都是以svg开头,而Android Studio要求要以vector开头
如何快速将svg文件内部的svg转换为vector,看下图

1.3 另外利用Android studio制作SVG,方法如下:




在将jpg或者png等图片转换为svg图片的时候可能会报错,不支持的原因如下:

这时候只能继续使用原来的jpg或者png图片

二、移除无用资源

注意:先把当前项目备份!!!这样可以让自己误删资源后能恢复!!!

使用Refector工具删除无用资源

这里不建议使用这种方式


点击完上面那个“Remove Unused Resource…”按钮后,弹出下面的页面

点击"Refector"的意思是将所有你没用到的资源全部删掉,点击“Preview”的意思是让你自己在那些没有用到的资源中选择删掉哪些。

注意:这里建议你在删掉资源的时候先把当前项目备份!!!这样可以让自己误删资源后能恢复!!!

这里讲解一个恢复被删除资源的一个小技巧
这里,我们为了演示先delete掉activity_main2.xml

点击ok,然后数据就被恢复了

在讲解方式二前,先讲Refector工具的一个坑!!!

虽然,我们在代码中以这样的形式,使用到了activity_main2,但是Refector工具还是认为我们没有使用到这个资源,如果我们不仔细,极为容易误删资源。只有当你以R.xxx.xxx的形式使用一个资源时,Refector工具才认为你这个资源被使用过了。

解决Refector错误标记未使用资源的一个办法:将资源加入到白名单


输入“unused re”就会匹配到这一项,然后双击它

这里,只选择我们的app模块


然后,我们使用Refector工具验证下,是否会把activity_main2.xml标记为未使用要删除的资源

配置国际化资源

当我们使用R.xxx.xxx引用资源时,会通过这个资源映射表来找到对应的资源
但是,Android Studio默认帮我们生成的这些字符串资源,是对应到很多国家,如果我们不需要适配一些国家的语言,就会造成APK内存的浪费。

因此,我们这里为了优化APK的大小,只保留我们需要适配的国家的语言,比如:中文和英文。

在app模块的build.gradle中的defaultConfig中添加下面的配置

sync后重新编译后,发现apk中只有中文和英文资源

动态打包优化

一句话:只配置armeabi-v7a的库,
即可在所有arm架构的 android手机运行。
一些比较知名的APP,也是这样适配的,如果你打开他们的apk,会发现它们只有armeabi-v7a的库

资源混淆和代码混淆

混淆就会压缩代码和资源

buildTypes {debug {minifyEnabled trueshrinkResources  trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}

Android APK瘦身优化相关推荐

  1. Android性能优化(5):APK瘦身优化

    文章目录 1. APK文件结构 2. APK瘦身优化 2.1 优化dex文件大小 2.1.1 Proguard 2.1.2 AndResGuard 2.2 优化资源文件大小 2.2.1 Android ...

  2. Android Apk瘦身指南大全

    Android Apk瘦身指南大全 前言 为什么Android应用Apk要瘦身?虽然安装包大小对应用使用没有影响,但应用的安装包越大,用户下载的门槛越高,安装等待时间也会越长,特别是在移动网络情况下, ...

  3. Android APK 瘦身

    Android APK 瘦身的几个方法 将项目中的图片由png.jpg转为webp格式.如下操作: 1.1选中图片或者含有图片的文件夹 右键选择Convert toWebP.. 1.2根据自身情况选择 ...

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

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

  5. Android apk瘦身之使用TinyPng压缩图片

    1 前言 Android apk太大了怎么办,有的时候需要减小apk的体积,例如上传到服务器的时候有文件大小的限制.百度一下,发现大致有以下几种方法: 使用混淆,减少代码体积 删除不使用的资源 减少使 ...

  6. Android apk瘦身讲解

    apk瘦身 想办法较减少apk大小 必要性 同样功能,apk越小越好,用户下载动机更大 了解apk的组成 classes.dex:是java源码编译后生成的java字节码文件 resources.ar ...

  7. android app性能优化_Android性能优化之Apk 瘦身优化

    瘦身 主要是下载转换率提高 头部App都有Lite版本 渠道合作产商要求 APK 分析工具 ApkTool 反编译工具 官网:https://ibotpeaches.github.io/ApkTool ...

  8. android APK瘦身全面总结——如何从32.6M到13.6M

    前言 之前我简单介绍了关于svg图片瘦身的问题,在公司,瘦身这个问题是我提出来的,所以这锅我背了.公司项目是32.6M,我给自己的要求就是低于20M.上周花了一个星期瘦身,至于为什么花了一周,主要是s ...

  9. android apk瘦身方法

    参考文档:天之界线2010   http://www.jianshu.com/p/8f14679809b3 我们在新的android studio2.2中可以看到可以对apk 进行分析了: 我们从中可 ...

  10. Android APK瘦身

    随着项目不断地完善,资源不断地增多,导致apk大小越来越大,编译以及安装等待时间越来越长,虽然对应用使用并没有影响,但是用户会越不愿意下载.还有特别是在使用移动网络的时候,用户更不会浪费流量去下载,所 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记6 图像处理(二)非线性滤波:中值滤波、双边滤波
  2. (oracle)二、创建数据库
  3. hadoop中实现定制Writable类
  4. ICLR最高分论文揭秘模型泛化,GNN是潜力股
  5. python 包编译安装mysql_CentOS7编译安装MySQL8.0.23和Python3.1.9
  6. zabbix邮件内容乱码与邮件内容为附件解决办法
  7. java的dataset怎么用_ADO DataSet用法
  8. 一种表格数据比对的方法
  9. 动画过渡transition
  10. linux定时脚本编写,如何实现Linux定时任务
  11. 听说今年金三银四变成金一银二了。
  12. CentOS7系统安装参考
  13. 钉钉免费实现内网穿透绝对靠谱
  14. 穆勒的报告显示特朗普没“通俄”后,总统先生开心的像只猴子
  15. python 显著性差异_python matplotlib 标注 统计差异 显著性 *
  16. Linux内核(十五)sysrq 详解 I —— 使用手册
  17. 2021-03-03 地理配准
  18. 【Typora】添加水印
  19. 软考高级考完了,怎么评职称?
  20. OSChina 周三乱弹 ——我们职业更好的名字:爱码士

热门文章

  1. 实验楼Linux入门:Linux用户管理
  2. 计算机基础知识论文统一格式,大一计算机基础知识论文.docx
  3. SpringBoot整合支付宝APP支付
  4. HCIE-Routing Switching认证
  5. h5通过当前时间获取农历日期
  6. 北京电影学院及中央戏剧学院老师推荐的必看影片,我真是一条一条翻的,一条一条写的,是真的。...
  7. Python 以正弦信号绘制信号
  8. java 调用autoit_java和autoit连接
  9. python 存根_如何在Python中的模块中存根用于测试?
  10. 微信涨粉加人100种方法完整版