Android 高效内存-图片内存使用优化

Android 高效内存-图片内存使用优化,第1张

内容整理自网络。

在做内存优化的时候,我们发现除了解决内存泄露问题,剩下的就只有想办法减少真实的内存占用。而在App中,大部分内存可能被我们占用了,所以减少的内存占用可以带来直接的效果。本文就简单介绍一张到底占用多少内存,我们先假设我们有一张时 600 800 的,占用空间大小假设是 100KB。

内存大小跟占用空间大小有什么关系?

占用空间的大小不是占用内存的大小,一些初学者可能会误解一下。占用空间是在磁盘上占用的空间,内存大小是加载到内存中占用的内存大小。两个只是单位是一样的,本质不是一个概念。

一张到底占用多少内存呢?(ARGB_8888编码)

1 占用内存的计算公式: 高度 宽度 一个像素占用的内存大小

2 所以上面的占用内存是:800 600 4 byte = 1875KB = 183M

上面的计算公式中,为什么是4byte呢?文章后面有总结哦

所在目录对内存的影响?

在Android中,的存放目录和手机的屏幕密度影响最终的大小,举个例子:

假设我们的放到 xhdpi 目录下,那么我们本文中的占用的内存大小如下:

屏幕密度为2的设备:800 600 4byte = 183M

屏幕密度为3的设备:800 15 600 15 4byte = 183 225M = 412M

所以,计算占用内存大小的时候,要考虑所在的目录跟设备密度,这两个因素其实影响的是的高宽,android会对进行拉升跟压缩。

总结

1 确实很占用内存,内存优化先考虑内存占用;

2 一定要避免使用大,这就是9图很有用的原因之一;

3 的大小对内存的影响是正比关系;

4 本文只是简单的告知读者怎么计算的内存大小。

大图: 440 336    小图: 220 168 资源目录: xhdpi

小图的高宽都是大图的1/2-->小图是原图的1/4

界面效果:

测试设备: Coolpad   8676-M01   51   density=20

测试前准备操作: 同一款设备,设置前后多次调用gc直到内存短时间内保持稳定不再变化

内存使用情况: 下图依次是 初始内存,大图内存,小图内存

大图占用内存: 1123 MB - 1066 MB = 057 MB

小图占用内存: 1081 MB - 1066 MB = 015 MB

大图小图内存关系: 015 MB 4 = 060 MB 约等于 057 MB (这是统计工具的误差,理论上就是相等的)

同样的方式在另外一台设备小米4c上得到的结果如下:

测试设备: Xiaomi   Mi-4c   V8210LXKCNDL   511   density=30

大图占用内存: 1322 MB - 1195 MB = 127 MB

小图占用内存: 1227 MB - 1195 MB = 032 MB

大图小图内存关系: 032 MB 4 = 128 MB 约等于 127 MB

结论: 由此可见大图比小图占用更多的内存,大小(分辨率)与占用内存成正比关系

备注: 在硬盘上占用的磁盘空间大小,与在内存中占用的内存大小完全不一样,不是一个概念,不要混淆

根据上文中大小与内存的关系,可以更加深刻的理解Android中9的作用,它不但能减少apk的体积,还能减少占用内存。

有些时候我们根本不需要,而是自己绘制背景,可以在自定义View的onDraw中绘制背景,当然最方便的还是使用系统的Drawable,绘制部分交给系统去完成。

下面测试与Drawable的内存占用对比

原始大小: 482 482

界面效果:

测试设备: Xiaomi   Mi-4c   V8210LXKCNDL   511

测试前准备操作: 同一款设备,设置背景前后多次调用gc直到内存短时间内保持稳定不再变化

内存使用情况: 下图依次是 初始内存,使用占用的内存,使用Drawable占用的内存,使用onDraw绘制占用的内存

使用占用内存: 1397 MB - 1197 MB = 200 MB

使用Drawable占用内存: 1197 MB - 1197 MB = 000 MB (不会是0,有误差,只是很少)

使用onDraw绘制占用内存: 1198 MB - 1197 MB = 001 MB

结论: 绘制背景,或者使用系统提供Drawable作为背景,会大大减少内存占用

Drawable

参考资料:

Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

Android GradientDrawable(shape标签定义)静态使用和动态使用(圆角,渐变实现)

“让你的最小化”一节中描述的方法:使用尽可能小的图,使用9,自己绘制背景或者使用Drawable来绘制背景

加载大时需要对进行压缩,使用等比例压缩方法直接在内存中处理

这样做要注意的是,质量会变差,inSampleSize设置的值越大,质量就越差。

有时候我们取得一张,也许只是为了获得这个的一些信息,比如的width、height等信息,不需要显示到界面上,这个时候我们可以不把加载到内存中。

由于Android外层是使用java,而底层使用的是C语言为对象分配的内存空间。所以我们的外部虽然看起来释放了,但里层却并不一定完全释放了,我们使用完后最好再释放掉里层的内存空间。

RGB(ARGB)

RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。在Android中还有包含透明度Alpha的颜色模型,即ARGB。

YUV

YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

YUV的原理是把亮度与色度分离,研究证明,人眼对亮度的敏感超过色度。利用这个原理,可以把色度信息减少一点,人眼也无法查觉这一点。

主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题

YUV的存储中与RGB格式最大不同在于,RGB格式每个点的数据是连继保存在一起的。即R,G,B是前后不间隔的保存在2-4byte空间中。而YUV的数据中为了节约空间,U,V分量空间会减小。每一个点的Y分量独立保存,但连续几个点的U,V分量是保存在一起的,(反正人眼一般也看不出区别)这几个点合起来称为macro-pixel, 这种存储格式称为Packed格式。另外一种存储格式是把一幅图像中Y,U,V分别用三个独立的数组表示。这种模式称为planar模式。

CMYK

  CMYK也称作印刷色彩模式,顾名思义就是用来印刷的。印刷四分色模式是彩色印刷时采用的一种套色模式,利用色料的三原色混色原理,加上黑色油墨,共计四种颜色混合叠加,形成所谓“全彩印刷”。四种标准颜色是:

CMYK和RGB相比有一个很大的不同:RGB模式是一种发光的色彩模式,你在一间黑暗的房间内仍然可以看见屏幕上的内容;CMYK是一种依靠反光的色彩模式,我们是怎样阅读报纸的内容呢?是由阳光或灯光照射到报纸上,再反射到我们的眼中,才看到内容。它需要有外界光源,如果你在黑暗房间内是无法阅读报纸的。只要是在印刷品上看到的图像,就是CMYK模式表现的。比如期刊、杂志、报纸、宣传画等,都是印刷出来的,那么就是CMYK模式的了。

CMYK原色与叠加之后的颜色对比

在不考虑透明度的情况下,一个像素点的颜色值在计算机中的表示方法有以下3种:

在Java中,float类型的变量占32位,int类型的变量占32位,short和char类型的变量都在16位,因此可以看出,用浮点数表示法编码一个像素的颜色,内存占用量是96位即12字节;而用24位整数表示法编码,只要一个int类型变量,占用4个字节(高8位空着,低24位用于表示颜色);用16位整数表示法编码,只要一个short类型变量,占2个字节;因此可以看出采用整数表示法编码颜色值,可以大大节省内存,当然,颜色质量也会相对低一些。在Android中获取Bitmap的时候一般也采用整型编码。

回想一下Android的BitmapConfig类中,有ARGB_8888、ARGB_4444、RGB565等常量,现在可以知道它们分别代表了什么含义。同时也可以计算一张在内存中可能占用的大小,比如采用ARGB_8888编码载入一张1920 1200的,大概就会占用1920 12004/1024/1024=879MB的内存。

采用低内存占用量的编码方式,比如BitmapConfigARGB_4444比BitmapConfigARGB_8888更省内存;

1920 1200的:

ARGB_8888:1920 1200 4/1024/1024=879MB

ARGB_4444,RGB565:1920 1200 2/1024/1024=439MB

在Android中,对的使用一定要关注,大多数情况下,占用内存多,OOM发生都是因为资源使用不当。不要盲目加一个大图到Android项目中,能使用9进来使用,而且9图本身尽可能小,另外能使用绘制实现就不要加一个资源。有些时候,在不影响用户体验的情况下,可以降低素材质量,比如不需要透明度的就不要了,有些透明度用肉眼看不出来。

您好 !

根据您的描述, 

建议先尝试充电 3hr 後重启手机尝试。

若问题持续, 建议按下列步骤尝试操作 :

机子充满电, 备份数据後, 在関机 (OFF) 的状态下  ,

长按 [电源键]  和 [音量+] 键,10秒

进入Recovery模式後,用 [音量+], [音量-] 挪动光标   (见下图)

再操作2-wipes

选择  wipe data/factory reset > YES  , [HOME] 确认

选择  wipe cache partition > YES  , [HOME] 确认

选择  reboot system now > YES , [HOME] 确认

这样操作后重启,便完成了。

如果问题在2-wipes後仍没解决, 或根本2-wipes不了

便很可能是硬件引起的问题, 建议尽速送修。

以下答案由 汉尔顿净水器|高端分质净水专家 为您解答。

  净水器也称净水机。

  按滤芯组成结构分为RO反渗透净水机和超滤膜净水机、能量净水机、陶瓷净水器等。

  RO反渗透净水机标配的是5级过滤,即:

  第一级为PP棉,为初级过滤,主要过滤泥沙、铁锈这种肉眼可见的大颗粒的东西

  第二级为颗粒炭、对水中的有机物和无机胶体具有强大的截留作用,具有除臭、去味、除余氯、脱色等功效

  第三级为压缩炭、 对臭味,余氯,芳香族,COD有机物有良好的去除作用

  第四级为RO反渗透膜、RO反渗透膜孔径为00001微米(01纳米),一个细菌要缩小4000倍,传染性病毒要缩小200倍以上才能通过,因此可以有

  效去除水中细菌、病毒、重金属离子、农药残留物等有害物质

  第五级为后置活性炭(也称小T33)5级;利用活性炭的吸附原理,能有效去除水中的余氯,有毒有害物质,改善水质和口感

  超滤净水器是以超滤膜为主、其它滤芯如活性炭(不包括能量滤芯)为辅,超滤净水器按照安装方式分为立式与卧式两种,

  立式超滤净水器由PP棉、颗粒活性碳、压缩活性炭、外压超滤膜、T33组成;

  卧式超滤净水器《俗称管道超滤机》由不锈钢外壳及内压超滤膜、KDF组成。

  超滤净水器有1至12级滤芯过滤,大体都是PP棉滤芯、碳滤芯、超滤膜、还有一些什么碱性 弱碱 除氯 之类的功能滤芯组成,

  综上所述,RO机价Ge要高一些,超滤的相对P宜。市场上北方大多数地区用RO纯水机,南方多用超滤机,但是随着水污染的加剧,纯水机市场隐隐有超越超滤机市场的势头。

  ----------------------------------------------------------

  市场上流行的大牌子有美的,汉尔顿,沁园,安吉尔等,选购净水器要注意如下几点:

  第一、看当地水质如何,是用RO机还是超滤机。

  第二、看经销商的服务水平和态度,

  第三、看自己接受的价格水平,

  第四、看售后服务,

  第五、看产品外观,是否中意,

  第六、看产品功能,是否适合用时用,

  第七、看每天水量多少,75G还是50G

  ---------多听多看,先了解,再入选购!

  --------------------------------------------------------------------

  产品参考信息:

  汉尔顿HRD-7506(RO管线一体式)净水器

  材质:豪华一体外壳,带LED液晶全电脑微控

  过滤工艺:PP+颗粒炭+压缩炭+RO膜+T33

  过滤精度:六维净化00001微米

  尺寸:665250460mm 2分接口

  流量:284L/天

  额定电压:AC220V 50HZ

  制热功率:800W ≥90℃

  制热能力:20L/H

  水箱储水量:7L

  臭氧产量:18-2L/min

  实用人数:30人内

  使用范围:家用/商用

  配置:汉尔顿标配

  价格:3680元

-------------------------------------------------------

  加MenG要考察以下几点:

  第一、产品质量保证、3C,涉水批件等

  第二、加盟后支持政策到位,

  第三、是否有成熟的销售方法,

  第四、考虑一下汉尔顿,还有人下市场教净水器知识和销售方法

  净水器加盟不要光看网络宣传,还要看实打实的销量!卖不出去,牌子再好你也赚不了那份钱,做生意实事求是的好

  净水器加盟要考察产品质量、支持政策,销售方法,考虑一下汉尔顿,还有人下市场教净水器知识和销售方法

  -----------------------------------

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/1323698.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-09-14
下一篇2023-09-14

随机推荐

  • 混合肌精华液推荐8款必推精华液

    在这个炎热的夏天,很容易缺水和缺水。混合肌的T字部位容易出油,两颊会比较干,所以皮肤会经常出现油水不平衡!很多混合肌在选择护肤品的时候,经常会面临“想改善却不知道从何下手”“哪个不会太油或者太干”之类的恼人问题!面对琳琅满目的精华液,你不知

    2024-04-15
    34800
  • 肤色不均匀用哪款精华液

    肤色不均匀用哪款精华液  肌肤暗黄,肤色不均匀用哪款精华液,女性都很在乎自己的皮肤状态,拥有更美丽的脸蛋和肌肤,需要长期的坚持护肤,不断积累和学习可以让自己变得更美的办法。那么肌肤暗黄,肤色不均匀用哪款

    2024-04-15
    36900
  • SKII的神仙水是爽肤水还是精华??

    “SKII”的“神仙水”就是指“SK-II护肤精华露”,是精华水。一般在化妆水后使用,上脸吸收很快,一点不油腻,对闭口有一定的作用。长期使用可以稳定皮肤,控制水油平衡,去黄缓解暗沉。洁面之后先用化妆棉蘸取化妆水后擦拭肌肤一遍,然后倒出适量的

    2024-04-15
    30100
  • 一瓶神仙水230ml成本

    -ll神仙水230ml :1520元一瓶精华水80MI:560元眼霜15MI:640元一套加起来在2720左右,敬请参考:Sk2明星产品:1、SK-II环采臻皙钻白精华露这款精华人称它为"小灯泡"。提取自日本杏的珍稀精萃及Pixel-Whi

    2024-04-15
    40600
  • 精华露和精华液的顺序 正确的护肤流程

    市面上各种各样的精华产品有着不同的护肤效果,精华露和精华液是两种不同种类的精华,无论是质地还是使用感方面都不同,使用顺序也不同。精华露和精华液的顺序精华露和精华液的使用顺序,一般是清爽的用在前,粘稠的用在后头。精华露和精华液其实都属

    2024-04-15
    34800
  • 李佳琦直播预告清单1.12 李佳琦直播预告1.12

    李佳琦直播预告清单112 李佳琦直播预告112。李佳琦1月12日晚间18点直播美妆专场,那么本次李佳琦会给我们带来什么商品呢下面小编给大家带来李佳琦1月12日直播的清单预告,一起来看看吧。李佳琦直播预告清单112一、直播时间李佳琦 1月12

    2024-04-15
    28500
  • 伊思水乳怎么样?伊思水乳好用吗?

    伊思水乳是该品牌下销量最好口碑最好的产品之一,这款伊思水乳共有三款不同的类型,包括了1号清爽型、2号滋润型以衣红参水乳,那么这三款伊思水乳效果怎么样呢,以下我们来看看相关的资料的与评价。伊思水乳怎么样 伊思蜗牛水乳怎么样:简介

    2024-04-15
    29900

发表评论

登录后才能评论
保存