- 5
- 0
- 约3.38千字
- 约 8页
- 2019-03-10 发布于广西
- 举报
基于Android的图片加载器设计
第 PAGE \* Arabic \* MERGEFORMAT 8 页
专利申请技术交底书
一、 基本信息
发明名称:基于Android的图片加载器设计
二、 技术信息
1. 所属技术领域
在Android应用程序的开发中经常会使用到图片,图片资源各种各样,有的是来自于本地文件,有的是来自于网络,有的是来自于资源文件等。对于不同的文件开发者通常需要使用不同的方式去加载,不同的人加载方式也可能有一定的差异。这种差异性有可能会引入一些不确定性因素比如加载某些图片的时候会有异常等。
本方案专门就Android应用程序对图片加载这块进行一个统一管理,提供了一套高可用、高性能、兼容性好的解决方案。通过统一的方式对多种图片进行加载,使用相同的接口,能够加载本地图片、资源文件、网络图片等。
因为图片资源在内存中通常会占用比较大的空间,且将整个图片读入到内存中会有一定的时间开销,所以本方案在设计的时候基于上述考虑,对图片的加载设计了缓存系统,通过缓存系统降低内存开销及时释放无用图片的同时又提高了图片加载的效率。
本方案会对图片进行采样后再展示,这样的处理在小内存的平台上的效果是非常明显的,能够很大程度上降低图片的内存占用。
综合上面的分析,本方案主要有如下优势点:
通过统一方式加载多种图片资源
加载图片缓存设计,提高图片处理效率和降低内存占用
图片采样后展示,降低内存开销
2. 名词解释
键值对: 键值对就是可以根据一个键值获得对应的一个值。键和值是成对出现的,键需要保持唯一性,值可以存储任何数据。通过唯一性的键能够快速找到键对应的值。
3. 本发明技术方案详细描述,必要时应结合附图进行说明
本方案主要描述了一套图片加载的框架,本方案自带缓存系统,同时具有内存垃圾清理功能。能够通过统一接口加载各种不同类型的图片资源,做到了加载图片的统一性,是的开发效率大大提升。
图片采样的使用
方案中设计的图片采样,能够极大的降低内存占用情况在多图片的情况下很好的避免了内存溢出的异常发生。
整体框架设计图如下所示:
下面将详细描述该框架的设计原理和相关流程分析
方案通过统一的方式LoadImage(加载图片的函数名称)来对图片进行加载,其中主要通过自定义前缀来区分图片的方式,目前设计的前缀有如下三种:
File:该前缀表示图片是本地文件,后续加载图片的时候会调用本地图片加载接口对图片进行加载。(例如:file://sdcard/icon.png)
Assest:该前缀表示图片是资源文件,后续加载图片的时候会调用系统资源管理器对图片资源文件进行加载。(例如:assest://icon.png)
url: 该前缀表示图片是网络资源文件,对于加载网络资源文件会先对图片进行下载操作后再进行加载。(例如 uri://www.douyu.tv/image/icon.png)
通过前缀的区分使得图片的加载能够统一进行处理,极大的降低了开发者的使用难度。
如果是网络图片,这个地方分为2种情况进行处理
如果网络图片在本地缓存是存在的,那么就直接进行本地加载图片
如果网络图片在本地缓存中是没有的,那么会直接从网络上下载该图片,当网络图片下载成功后会将下载的图片缓存到本地存储器上。
接下来就其中涉及的2个技术点进行详细说明:
下载流程:
对于下载部分的设计上我们使用了分片下载的设计思路,避免遇到超大图片下载的时候造成内存溢出的异常,具体下载设计流程框架如下所述:
开启下载线程
读取图片文件头部信息,获取图片文件大小
如果图片文件小于100K,我们认为是小文件,此时将文件全部读到内存中。然后将内存中的所有数据全部写入到文件中。
如果图片文件大于100k,我们认为是大文件,此时我们将分片读取文件,每次读取100k数据到内存中,然后将数据写入到文件中。
如果没有到文件末尾,继续4步中的步骤,继续读取100k数据并写入到文件中。
如果读取到文件结束位,那么停止读取,将内存中读出来的数据全部写入到文件中。
缓存方式:
对于已经下载的文件我们统一存储在一个集合中,集合通过键值对的形式保存数据,键是图片的原始地址,值是图片的本地地址。这样我们就能够快速通过图片的网络地址找到本地的映射关系,快速从本地缓存中取出图片数据。(键值对例如:[www.douyu.tv/image/icon.png,/sdcard/icon.png])
在图片进行展示前我们会对图片进行一定的采样率设置(采样率,也称为采样速度或者采样频率,定义了按照一定的比例提在原始图片中进行提取组成新的图片),如果不设置采样率而是直接将整张图片全部导入到内存中,那么内存的占用会非常大。(比如一张1920 x 1080的图片如果不设置任何采样率,在内存中的占用大小约为8M空间,可以看得出来图
您可能关注的文档
最近下载
- 2025年48个国际音标教学+自然拼读(原创) .pdf VIP
- 大概念整合教学的评价研究.pptx VIP
- 山东省潍坊市2025年高一上学期期末英语试题(含答案).docx VIP
- 山东省潍坊市2024-2025学年高三上学期1月期末 英语试题(含答案).docx VIP
- MES系统需求规格书.docx VIP
- (五个对照)2025年度组织生活会个人整改清单(学习贯彻党的创新理论方面;加强党性锤炼方面;联系服务职工群众方面;发挥先锋模范作用方面;改作风树新风方面.docx VIP
- MES系统需求规格书.docx VIP
- MES系统需求规格书.docx VIP
- 《我的个性名片》综合实践课件(后附完整教学设计).pptx VIP
- 基于PLC的智能水果分拣系统设计.docx
原创力文档

文档评论(0)