Android 性能优化之资源图

2023-11-02

目前很多美工图都是把切给IOS的图丢给Android开发,然后苦逼的Android开发就拿着这一套图进行撸,殊不知此时的地雷已经悄悄埋好,等待着有缘人去踩,梳理一下变成雷的原因,个人拙见:

假如美工给了我们一套xxhdpi的资源图,我们将这张图正确的放到drawable-xxhdpi文件夹中,界面上通过ImageView引用这张图,然后在xxhdpi范围内的设备上运行,此时查看内存消耗为:

可以看出,内存消耗基本正常。

接下来我们将这张资源图放置到drawable-mdpi中,接着跟上面的一样,然后运行mdpi范围的设备,此时查看内存消耗为:

通过以上两种方式对比,得出结论:一套资源图在不属于本范围的dpi设备上运行,会大大增加内存消耗,所以我们还是尽量要求美工多切几套图,多套图的情况下APK体积会变大,此时就需要根据情况有个取舍。

界面风格可以参考IOS,并不是切图也就是对应IOS只来一套,这样对Android开发增加了繁琐操作,又是自己算距离啥的,总之很操蛋。

以上为个人愚见!!!谢谢

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 性能优化之资源图 的相关文章

  • Python开发篇——添加mysqlclient

    最近使用mysql8 0 于是我就尝试用Django的框架 但是执行poetry add mysqlclient却出现了错误 python3 7 dison dison X450LD workstation project script s
  • Kuberneters企业级容器云平台落地实践之二

    九 日志中心 1 filebeat安装 Filebeat 是一个用于转发和集中日志数据的轻量级传送器 作为代理安装在您的服务器上 Filebeat 监控您指定的日志文件或位置 收集日志事件 并将它们转发到Elasticsearch或 Log
  • Linux下装载Qt

    Linux下装载Qt 官网文件下载Qt 本官网地址 http download qt io archive qt 5 9 5 9 6 https www qt io offline installers 将文件放置Linux目录下 将随意一
  • 6.SpringBoot Web开发-webjars&静态资源映射规则(欢迎页和角标favicon.ico替换)

    文章总结 作为一个后端开发 在Springboot中怎样引入需要的js依赖以及常用的静态资源映射呢 SpringBoot已经给做好了自动化配置 使用时只需要按照默认的配置去放相应的文件 就可以快速上手 1 创建SpringBoot web项
  • ArrayList,List 的区别;

    List 的区别 6 数组 数组 内存中是连续存储的 索引速度非常快 赋值与修改元素也很简单 但不 利于动态扩展以及移动 ArrayList 因为数组的缺点 就产生了 ArrayList ArrayList 使用该类时必须进行引用 同时继承
  • 给语音信号加混响的常用方法(方法一)

    使用python包 pyroomacoustic 给干净语音加混响 Pyroomacoustics是一款旨在快速开发和测试音频阵列处理算法的软件包 包的内容可分为三个主要组成部分 1 直观的Python面向对象接口 可快速构建2D和3D房间
  • 2020年10月蓝桥杯原题寻找2020

    这题比较简单 主要是以行 列 斜线的方式寻找2020的个数 注意的一点就是控制下标越界的情况 答案是16520 public class test4 public static String readTxt File file String
  • 计算机英文专业文献翻译,计算机专业英文文献翻译.doc

    文档介绍 计算机英文文献翻译 计算机英文文献翻译 INDUSTTRY PERSPECTIVE USING A DSS TO KEEP THE COST OF GAS DOWN Think you spend a lot on gas for
  • JDBC连接postgresql例子

    package tool import java sql Connection import java sql DriverManager import java sql PreparedStatement import java sql
  • 93 Three.js 使用设置normalMap创建更加细致的凹凸和褶皱

    案例查看地址 http www wjceo com blog threejs 2018 05 03 156 html 左边为设置normalMap后的效果 右边为正常效果 我们会发现设置了normalMap后的立体感非常的强烈 简介 法线贴
  • 编译预处理

    声明 经过长时间的学习 对宏定义尤其是条件编译这块存在盲区 特此整理笔记 此次内容参考 c 程序设计教程 第三版 清华大学出版社 一 编译预处理 编译预处理是在编译源程序之前 由预处理器对源程序进行加工处理工作 所谓预处理器 是包含在编译器

随机推荐

  • 【VSCode】【msys2】VS Code + msys2配置Windows下C/C++开发环境

    VSCode msys2 VS Code msys2配置Windows下C C 开发环境 一 Msys2配置 1 下载msys2 网址 https www msys2 org 2 安装msys2 x86 64 xxxx exe 这里没什难度
  • 解决linux停在starting automount无法启动

    http www 361way com solve the linux cantconn problem 1741 html 公司的一台centos 6 0 X64系统测试机 把root密码给了好几个组的人用 天晓得他们在上面折腾什么 过了
  • linux屏幕触碰事件,touch事件中的touches、targetTouches和changedTouches详解

    touches 当前屏幕上所有触摸点的列表 targetTouches 当前对象上所有触摸点的列表 changedTouches 涉及当前 引发 事件的触摸点的列表 通过一个例子来区分一下触摸事件中的这三个属性 1 用一个手指接触屏幕 触发
  • 【Doxygen】Doxygen使用教程(个人总结)

    Doxygen Doxygen使用教程 个人总结 简介Doxygen 引言 什么是Doxygen Doxygen 是一个程序的文件产生工具 可将程序中的特定批注转换成为说明文件 通常我们在写程序时 或多或少都会写上批注 但是对于其它人而言
  • Basic Level 1061 判断题 (15分)

    题目 判断题的评判很简单 本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分 输入格式 输入在第一行给出两个不超过 100 的正整数 N 和 M 分别是学生人数和判断题数量 第二行给出 M 个不超过 5 的正整数 是每道题的满分
  • Open3D 非线性最小二乘拟合二维多项式曲线

    目录 一 算法原理 二 代码实现 三 结果展示 一 算法原理 多项式曲线表示为 p x p 1 x n p 2 x n
  • 基于Spring Cloud Alibaba 分布式微服务高并发数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案

    基于Spring Cloud Alibaba 分布式微服务高并发数据平台化 中台 思想 多租户saas设计的企业开发架构 支持源码二次开发 支持其他业务系统集成 集中式应用权限管理 支持拓展其他任意子项目 架构源码可以加我WX haiwab
  • OpenAI/ChatGPT模型排行及推荐,收费&开源

    整理的免费及模型网站 openai chatgpt模型项目 openai chatgpt网站收集整理 LLM模型排行榜 随着大量的大型语言模型 LLM 和聊天机器人每周都在发布 通常都对其性能进行了浮夸的宣称 很难筛选出开源社区正在取得的真
  • java 中的静态变量,静态代码块,动态代码块,构造方法执行顺序的深入探究

    要想完全弄懂这个执行顺序 需要我们先了解几个概念 首先是类加载与对象的构造 类加载就是在第一次调用这个类的时候jvm虚拟机会通过类加载器在一个叫做方法区的逻辑内存中将所要用到的类的信息存放在里边 其中方法区有一个静态区 存放的是类中的静态
  • js触摸事件

    touch事件的绑定 电脑端的mouseDown mouseUp mouseMove分别对应移动端的touchstart touchend touchmove 下面的代码判断浏览器是电脑端还是移动端 如果是电脑端 就绑定鼠标事件 如果是移动
  • mybatis怎么忽略映射字段

    TableField exist false 表示该属性不为数据库表字段 但又是必须使用的 TableField exist true 表示该属性为数据库表字段 Mybatis Plus 插件有这个功能 可以看一下 TableName Ta
  • selenium+python切换浏览器窗口--详细讲解

    在浏览器页面打开窗口后 有时点击按钮会打开新的页面 我们需要切换到新的窗口才能去定位操作 不然无法操作 切换窗口代码如下 获取当前窗口信息及当前url current window driver current window handle
  • 如何优雅的备份MySQL数据?

    为什么要备份数据 先说一下为什么需要备份MySQL数据 一句话总结就是 为了保证数据的安全性 如果我们把数据只存储在一个地方 如果物理机器损坏 会导致数据丢失 无法恢复 还有就是我们每次手动修改线上数据之前 为了安全起见 都需要先备份数据
  • linux日志管理--rsyslog/journalctl/Logrotate

    本文针对centos系统 一 系统日志服务rsyslog 程序包 rsyslog 主程序 usr sbin rsyslogd CentOS 6 service rsyslog start stop restart status CentOS
  • java面向对象----抽象类 && 接口

    目录 抽象类与抽象方法 概念 抽象类应用 接 口 概念 接口的特点 接口应用举例 Java 8中关于接口的改进 内部类 如何声明局部内部类 局部内部类的特点 匿名内部类 总结 抽象类与抽象方法 概念 随着继承层次中一个个新子类的定义 类变得
  • Python 的画图函数 seaborn 简介

    seaborn 简介 seanborn 是 Python 的另外一个常用工具包 它基于 matplotlib 但画出的图形更加美观些 并且与 Pandas 的数据类型结合地较好 Import seaborn import seaborn a
  • win服务器系统授权,win服务器系统授权

    win服务器系统授权 内容精选 换一换 为了更加安全高效的使用云监控服务提供的主机监控功能 我们提供了最新方式的Agent授权方法 在安装主机监控Agent前 仅需要一键式单击该区域的授权按钮或者在创建弹性云服务器页面勾选云监控Agent委
  • 观测线程状态

    package com kuang Demo05 观察线程的状态 public class TestState public static void main String args Thread thread new Thread gt
  • JAVA模拟堆

    堆的性质 堆是一种特殊的树 只要满足以下两点 它就是一个堆 堆是一个完全二叉树 堆中每一个节点的值都必须大于等于 或小于等于 其子树中每个节点的值 第一点 堆必须是一个完全二叉树 完全二叉树要求 除了最后一层 其他层的节点个数都是满的 最后
  • Android 性能优化之资源图

    目前很多美工图都是把切给IOS的图丢给Android开发 然后苦逼的Android开发就拿着这一套图进行撸 殊不知此时的地雷已经悄悄埋好 等待着有缘人去踩 梳理一下变成雷的原因 个人拙见 假如美工给了我们一套xxhdpi的资源图 我们将这张