来自一位五年Android工程师APK体积优化的一些总结

本文介绍了Android开发中SVG的使用与优化,包括体积减小、适配问题,Tint着色器的利用,动态库打包配置,以及资源管理和APK瘦身策略,同时提到了面试中关于技术表达的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

res->new->vector Asset

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

之后会蹦出来这么个玩意

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

前一个红框是系统的图标,后一个是本地的图标!这样你就会生成一个以.xml为结尾的图标了!

里面的代码大概是这个样子的!



其实里面的具体语法我也不太了解,应该是在指定区域中分成宽和高的等份,然后填充的!感兴趣的可以自己了解一下!

使用的话,和之前的src不同了!必须这样使用!

app:srcCompat=“@drawable/ic_arrow_back_black_24dp”

这里很多人会有两个疑问?

  • 这个和apk体积优化有个毛线关系?
  • 美工往往给很多张图片,总不能一张一张转换吧?

关于上面这两个问题,我们分别来说一下:

1. 首先svg是可缩放矢量图,所以呢?你在项目中只要添加一张svg就可以替换相应的之前美工给你的一套图,一下减少了好几张图片,你说是否有关系呢?其次svg转换成xml后大小也有相应的缩减,这个真的是成倍减少大的! 但是,但是,但是。。。这个在需要适配,适配,适配!FUCK 0.0!话说Android在适配这点上真心难受!还是看解决办法吧!在你的app->build.gradle中的defaultConfig标签中添加如下内容:

//5.0的兼容适配
//5.0以下 将svg图片生成指定维度的png图片,下面写几个就会生成几个相应的图片
vectorDrawables.generatedDensities(‘xhdpi’,‘xxhdpi’)
//5.0以上 以上使用support-v7进行兼容
vectorDrawables.useSupportLibrary = true

这个是我找到的解决方案,但是我编译了一下试了试。如果我单写顶上那一句,会在相应的文件夹下生成出图片,但是加上后面这句,相应的图片就没有了!我就好奇了,为什么呢?然后我找到了相应的手机试了一下,加不加上面这句没有什么卵用!我是在19版本上测试的!找这样的手机真心费劲,要不是我父母我还真找不到!!!所以呢?大家斟酌一下吧!!!

2. 这个问题,大神们早就帮我们解决了!!!

下面这个是一个批量转换工具!话说没有什么事情能难倒程序员!!!(对我失效)

Me

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值