Android用内存优化-图片设计篇_rev1.0.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android用内存优化-图片设计篇_rev1.0

Android应用内存优化 – 图片设计篇 引言 以RGBA8888色彩模式为例,一张1920x1080的图片按照原始尺寸载入内存将占用 1920x1080x4字节的空间 (大约7.9MB)。假定以完全不作优化的方式设计UI,一个应用程序的场景在内存占用上很容易达到~10MB级别。多一张这样的大图片,就需要多占用1MB~10MB级的内存。 因此针对大尺寸屏幕的android设备进行基于图片设计的优化是很有必要的。 图片设计的优化策略 以“像素”为单位来说明,图片设计的优化策略总的说来就是“共享可复用的像素,减少非必要像素的使用。” “可复用的像素” 1. 可标准化的像素 软件视觉系统通常会提供一套标准化的视觉元素,比如统一形状,大小,着色的按钮,使用标准化的视觉元素不仅可以保证视觉风格的统一,还能节省额外图片占用的存储空间。 对于整个系统来说,共享图片可以节省外存空间(flash, EMMC等)。对于运行时的???用程序进程来说,共享图片还可以节省内存空间。 以一个10KB大小的按钮图片为例,如果一个应用在它的所有场景中出现的按钮都使用这张图片,只需要1x10KB的内存占用。相对的,如果有10种外观的按钮,可能的内存占用就是10x10KB。 2. 可变换的像素 软件视图系统通过一定的变换,在形状,大小,颜色等物理特性上做出一些调整后,可以基于同一幅原始图像绘制出不同的显示效果。依赖于这个机制所付出的内存占用通常来说远远小于直接提供各种原始“摹本”然后借由绘图系统以“临摹”的方式绘出图像所需要的内存占用。“临摹”的方式能够直观地看到最终的效果,所以它对于图片设计人员来说更符合直觉,但对于软件设计来说并不是最优方案。 对于图片变换,最常见的操作就是拉伸, Android为此提供了一种对设计人员比较友好的9png位图方案。 关于9png的介绍,请参考:  HYPERLINK /guide/topics/graphics/2d-graphics.html \l nine-patch /guide/topics/graphics/2d-graphics.html#nine-patch  HYPERLINK /blog/simple-guide-to-9-patch/ /blog/simple-guide-to-9-patch/ 关于如何绘制9png图片,请参考:  HYPERLINK /tools/help/draw9patch.html /tools/help/draw9patch.html “非必要像素” 1. 重复的像素 一种典型的情况: 未优化:直接使用原始尺寸的图片展示一个水平或者垂直方向包含重复像素的图像 优化:(1) 使用9png图片,保留不可拉伸区域的像素,将可拉伸区域通过最小化的9png块表示;(2) 直接绘制 需要了解的9PNG特性: (1) 水平和垂直方向的像素如果存在线性的渐变,9png通过插值方式的拉伸也可以达到接近原始图片的效果;(2) 9PNG允许图片在水平和垂直方向有不止一组的可拉伸区域,因此即使某张图片的整个图像在中间区域包含了不可拉伸的图像,还是可以利用合理的切分和分段的可拉伸区域的设计来进行9PNG化. 案例1:纯色图像 (在水平和垂直上方向都是连续的,重复的像素) 备注: 常以大尺寸方式使用,用作整个场景的背景,优化空间一般在100KB~10MB级 如下“png_001_黑色背景”是一张1920x1080的PNG图片,文件大小8.63KB,原尺寸载入内存占用7.9MB 优化方式:直接设定纯色颜色值即可,节省约7.9MB内存,约8KB 外存 案例2:一个方向上包含渐变像素,另一个方向包含连续的重复像素的图像 备注:一种常见的控件着色方式,使用量较大,例如圆角按钮(优化空间一般在10KB~100KB级), 信息面板的背景(优化空间一般在100KB~1MB级)等等。 如下“png_002_垂直渐变圆角按钮”是一张314x282的PNG图片,文件大小8.22KB,原尺寸载入内存占用约338KB 优化方式:(1) 切除四边的无用像素(参考 HYPERLINK \l _2._无用的像素 2.无用像素) (2) 9PNG化,水平方向可复制区域保留一个像素即可。 如下“9png_002_垂直线性渐变圆角按钮”为49x83的9PNG图片,文件大小2.9KB,载入内存占用约15.9KB,相对“png_002_垂直渐变圆角按钮”节省约322KB内存,5.12KB外存 案例3:包含多段的连续的重复像素的图像 备注:也是常见的控件着色方式,优化空间同案例2。因为其在某个方向上的拉伸区段包含超过一种以上的像素颜色

文档评论(0)

yuerang3062 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档