Android SVG认知误区?

news/2025/1/10 20:45:15/

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/128907538
本文出自【赵彦军的博客】

文章目录

  • 前言
  • 为什么svg 在编译期间,会自动生成多份图片?
  • 优化
  • 建议

前言

为了更好的视觉效果,经常在项目中使用了 svg (可缩放矢量图形),如下:

在这里插入图片描述

查看包体积:

查看apk 包体积,可以看到在 xhdpi、xxhpdi、xxxhpdi 分别生成了图片,并且有的比较大。
在这里插入图片描述

为什么svg 在编译期间,会自动生成多份图片?

Android5.0(即API21)开始支持SVG, 生成多份图片是为了向后兼容。

对于 minSDK < 21 , 会自动生成多份图片,而我的项目 minSDK 为 20 ;

minSDK >= 21 , 只会保留xml ,不会生成多份图片。

附上svg 官方文档:https://developer.android.com/studio/write/vector-asset-studio?hl=zh-cn

在这里插入图片描述

优化

排查 wkLiving 模块,把所有 大svg 换成 png , 最后压缩成 webp , 包体积减小 0.7M

建议

1、不是排斥所有的svg , 有些 svg 本身很小,只有几b,即时生成多份 png 也会很小,对整体影响不大。所以要特别注意 大 svg ,避免滥用。


http://www.ppmy.cn/news/22749.html

相关文章

Mysql从入门到精通—14标识列

#标识列 /* 又称为自增长列 含义&#xff1a;可以不用手动的插入值&#xff0c;系统提供默认的序列值 特点&#xff1a; 1、标识列必须和主键搭配吗&#xff1f;不一定&#xff0c;但要求是一个key 2、一个表可以有几个标识列&#xff1f;至多一个&#xff01; 3、标识列的类型…

加油站会员管理小程序实战开发教程08-低代码中调用模型方法

我们上一篇介绍了地图API的创建以及在低码中如何调用数据源的方法。本篇我们继续我们的开发。 上一篇中我们介绍了如何传参调用数据源方法的问题,本篇我们讲解一下如何理解数据源的出参。 我们先看一下我们上一篇调用数据源的返回结果 我们再看一下数据源方法的出参 查询列表…

智能指针——C++

文章目录1. 为什么需要智能指针&#xff1f;2. 内存泄漏2.1 什么是内存泄漏&#xff0c;内存泄漏的危害2.2 内存泄漏分类&#xff08;了解&#xff09;2.3如何避免内存泄漏3.智能指针的使用及原理3.1 RAII3.2 智能指针的原理3.3 std::auto_ptr3.4 std::unique_ptr3.5 std::shar…

Python的热门冷知识,还不赶紧记好

目录 这里写自定义目录标题 一、注释 二、行与缩进 三、Python中特有的交换两个变量的值的方法 四、循环的巧应用&#xff08;列表解析&#xff09; 五、eval&#xff08;&#xff09;函数与str&#xff08;&#xff09;函数 六、条件表达式的紧凑形式 七、try-except语句的应用…

docker 制作镜像-基于commit命令创建(为ubuntu18.04版本添加SSH服务)

Docker提供了docker commit命令&#xff0c;支持用户提交自己对制定容器的修改&#xff0c;并生成新的镜像。 格式&#xff1a; docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] Options 参数 -a&#xff0c;作者&#xff08;例如&#xff0c;“along alongalong.com”…

Dubbo 源码分析 – 服务调用过程

HeaderExchangeClient 中很多方法只有一行代码&#xff0c;即调用 HeaderExchangeChannel 对象的同签名方法。那 HeaderExchangeClient 有什么用处呢&#xff1f;答案是封装了一些关于心跳检测的逻辑。心跳检测并非本文所关注的点&#xff0c;因此就不多说了&#xff0c;继续向…

跳槽一次能涨多少?今天可算见识到了跳槽天花板。

2022年已结结束了&#xff0c;最近内卷严重&#xff0c;各种跳槽裁员&#xff0c;相信很多小伙伴也在准备金三银四的面试计划了。 在此分享一套学习笔记 / 面试手册&#xff0c;年后跳槽的朋友可以好好刷一刷&#xff0c;还是挺有必要的&#xff0c;它几乎涵盖了所有的软件测试…

线性规划中的人工变量与松弛变量

1. 人工变量人工变量是为了凑成单纯形表中的基变量而人工加入的单位向量&#xff0c;在目标函数中系数为-M&#xff0c;最后化简结果中基变量要为0&#xff0c;否则无可行解。化简单纯形表就可以解决&#xff0c;若用对偶单纯形表的话就直接能解单纯形表&#xff0c;不用添加人…