码迷,mamicode.com
首页 > 移动开发 > 详细

腾讯android课之资源后期优化

时间:2015-03-17 13:53:19      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

前言:腾讯与我们学校合作开办了一门安卓课,上次课上完后,我想就其中关于资源后期优化的知识做个总结,同时也分享给大家。

 

资源后期优化可以从这四个方面去入手:

1. 图片压缩

2. 资源动态加载

3. Lint工具

4. 极限压缩

 

图片压缩

 通过色彩深度,透明通道的压缩,不明显降低图片质量情况下减小图片大小。色彩深度计算机图形学领域表示在位图或者视频帧缓冲区中储存1像素的颜色所用的位数,它也称为位/像素(bpp)。色彩深度越高,可用的颜色就越多。

  详情可以看下关于PNG图片优化压缩的文章:

  http://www.wufangbo.com/png-image-optimization/ 

 

资源动态加载

  安装包只放置最基本的资源,部分资源可以通过网络的后期动态下载。

  例子:微信的emoji表情

  优化前:打包表情576项,大小2.3M

  优化后:打包表情120项,是原来的1/5

  场景:动态下载的资源在资源缺失的情况下不会造成不可用

  局限:消耗后期流量和无网络情况下体验下降

 

Lint工具

Android lint是在ADT 16提供的新工具,它是一个代码扫描工具,能够帮助我们识别代码结构存在的问题,主要包括:

1)布局性能(以前是 layoutopt工具,可以解决无用布局、嵌套太多、布局太多)

2)未使用到资源

3)不一致的数组大小

4)国际化问题(硬编码)

5)图标的问题(重复的图标,错误的大小)

6)可用性问题(如不指定的文本字段的输入型)

7)manifest文件的错误

Android lint可以解决如上的问题,当然还有更多,具体的可以参考Android Lint Checks。Android官方也总结了lint能解决的问题,如下图。

                               技术分享

  这是关于Lint工具的使用文章:

  http://www.linuxidc.com/Linux/2014-02/97023.htm

 

极限压缩

#apk是一个zip压缩包

#在zip压缩包里有两种模式:Deflate和Stored

  Deflate是抽气,压缩的意思,跟LayoutInflater里的inflate是相反的单词,inflate是填充,充气的意思。可以看出resources.arsc、*.png采用压缩模式,而其它采用存储模式。

如何极限压缩

#把Stored模式的变为Deflate模式。

#选择压缩算法

压缩算法     文件大小(kb)  
普通Zip-普通压缩   20016
普通Zip-极限压缩 20012
7zZip-普通压缩 19800
7zZip-极限压缩 19578

  从表格中我们知道7zZip的压缩效果比普通Zip好,并且7zZip-极限压缩的比普通压缩要好,因此为了极限压缩,我们采用7zZip-极限压缩。

  注意:

  1. 在Android2.3以前的任何压缩的资源的原始大小超过1M,AssetManger读取时会抛出异常。

  2. 流媒体文件不能进行压缩

  3. 限制:只支持2.3以上版本程序才可以使用

  因此极限压缩的极限压缩操作如下:

  解压—>7zip极限压缩—>回复部分只能Store的资源

  效果如下:

前:技术分享

后:技术分享

 

腾讯android课之资源后期优化

标签:

原文地址:http://www.cnblogs.com/xiabi/p/4344045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!