CN113282855A - Android系统的图片加载方法及装置 - Google Patents
Android系统的图片加载方法及装置 Download PDFInfo
- Publication number
- CN113282855A CN113282855A CN202110608199.6A CN202110608199A CN113282855A CN 113282855 A CN113282855 A CN 113282855A CN 202110608199 A CN202110608199 A CN 202110608199A CN 113282855 A CN113282855 A CN 113282855A
- Authority
- CN
- China
- Prior art keywords
- picture
- cache space
- loaded
- cache
- android system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种Android系统的图片加载方法及装置,Android系统的图片加载方法包括创建两个缓存空间,若第一缓存空间中存有待加载图片,直接从第一缓存空间加载待加载图片,若第一缓存空间中没有待加载图片,判断第二缓存空间是否存有待加载图片,若是,将第二缓存空间中的图片移送至第一缓存空间,以从第一缓存空间加载待加载图片。本申请可以节约流量,提高图片加载速度,提升用户体验。
Description
技术领域
本申请属于计算机术领域,具体涉及一种Android系统的图片加载方法及装置。
背景技术
在当前的移动设备中,例如基于Android系统的智能手机,一款APP对于图片加载的使用率是非常高的,在一个页面有时候需要加载几十张图片,而对于图片的复用率也是非常高的,例如:用户的头像,商品图片等。在一个列表页面当中,对于图片的复用率也是很高的,当我们滑动屏幕的时候图片的数量会不断的增加,通常会把被移除屏幕的图片进行处理。这个时候,垃圾回收器也会认为你不再持有这些图片的引用,从而对这些图片进行GC(垃圾回收)操作。当我们再次返回已经浏览过的页面时,还需要重新去加载一次,而APP中的图片一般都比较大,如果每次都从网络加载或者本地加载,一方面浪费流量,另一个方面加载速度比较慢,影响用户体验。
发明内容
为至少在一定程度上克服每次浏览页面时都需要重新去加载,而APP中的图片一般都比较大,如果每次都从网络加载或者本地加载,一方面浪费流量,另一个方面加载速度比较慢,影响用户体验的问题,本申请提供一种Android系统的图片加载方法及装置。
第一方面,本申请提供一种Android系统的图片加载方法,包括:
创建两个缓存空间;
若第一缓存空间中存有待加载图片,直接从所述第一缓存空间加载所述待加载图片;
若第一缓存空间中没有待加载图片,判断第二缓存空间是否存有所述待加载图片;
若是,将所述第二缓存空间中的图片移送至所述第一缓存空间,以从所述第一缓存空间加载所述待加载图片。
进一步的,还包括:
判断所述第一缓存空间中的存储量是否超出预设存储阈值;
若是,将所述第一缓存空间中存储的图片按照最近使用顺序进行排序;
将所述第一缓存空间中最久未使用的图片移送到所述第二缓存空间中。
进一步的,所述创建两个缓存空间,包括:
在OnCreate方法中创建两个缓存空间。
进一步的,还包括:
若所述第二缓存空间中没有所述待加载图片,从网络和/或本地获取所述待加载图片;
将获取到的所述待加载图片保存至所述第一缓存空间中,以从所述第一缓存空间加载所述待加载图片。
进一步的,还包括:
在Android系统进行内存回收时,释放所述第二缓存空间。
进一步的,所述第一缓存空间为LruCache。
进一步的,所述第二缓存空间为WeakCache。
第二方面,本申请提供一种Android系统的图片加载装置,包括:
创建模块,用于创建两个缓存空间;
加载模块,用于在第一缓存空间中存有待加载图片时,直接从所述第一缓存空间加载所述待加载图片;
判断模块,用于在第一缓存空间中没有待加载图片时,判断第二缓存空间是否存有所述待加载图片;
第一移送模块,用于将所述第二缓存空间中的图片移送至所述第一缓存空间,以从所述第一缓存空间加载所述待加载图片。
本申请的实施例提供的技术方案可以包括以下有益效果:
本发明实施例提供的Android系统的图片加载方法及装置,通过创建两个缓存空间,若第一缓存空间中存有待加载图片,直接从第一缓存空间加载所述待加载图片,若第一缓存空间中没有待加载图片,判断第二缓存空间是否存有待加载图片,若是,将第二缓存空间中的图片移送至第一缓存空间,以从第一缓存空间加载待加载图片,可以节约流量,提高图片加载速度,提升用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请一个实施例提供的一种Android系统的图片加载方法的流程图。
图2为本申请另一个实施例提供的一种Android系统的图片加载方法的流程图。
图3为本申请一个实施例提供的一种Android系统的图片加载装置的功能结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
图1为本申请一个实施例提供的Android系统的图片加载方法的流程图,如图1所示,该Android系统的图片加载方法,包括:
S11:创建两个缓存空间;
S12:若第一缓存空间中存有待加载图片,直接从第一缓存空间加载待加载图片;
S13:若第一缓存空间中没有待加载图片,判断第二缓存空间是否存有待加载图片;
S14:若是,将第二缓存空间中的图片移送至第一缓存空间,以从第一缓存空间加载待加载图片。
传统图片加载方法由于记载图片会被垃圾回收器进行GC(垃圾回收)操作。当我们再次返回已经浏览过的页面时,还需要重新去加载一次,而APP中的图片一般都比较大,如果每次都从网络加载或者本地加载,一方面浪费流量,另一个方面加载速度比较慢,影响用户体验。
本实施例中,通过创建两个缓存空间,若第一缓存空间中存有待加载图片,直接从第一缓存空间加载所述待加载图片,若第一缓存空间中没有待加载图片,判断第二缓存空间是否存有待加载图片,若是,将第二缓存空间中的图片移送至第一缓存空间,以从第一缓存空间加载待加载图片,可以节约流量,提高图片加载速度,提升用户体验。
图2为本申请一个实施例提供的Android系统的图片加载方法的流程图,如图2所示,该Android系统的图片加载方法,包括:
S21:在OnCreate方法中创建LruCache和WeakCache缓存空间。
LruCache是一种缓存策略,持有的是强引用,但是会控制在一个峰值下。它内部维护了一个队列,每当从中取出一个值时,该值就移送到队列的头部。当缓存已满而继续添加时,会将队列尾部的值移除,方便GC。LruCache用于内存缓存,提高执行效率;
WeakCache为弱引用空间,不再使用时更加容易释放内存。
一些实施例中,还包括:
在Android系统进行内存回收时,释放WeakCache。
通过及时释放WeakCache,可以避免APP一直强制占用太多内存。
S22:判断LruCache中是否存有待加载图片;
S23:若是,直接从LruCache加载待加载图片;
S24:否则,判断WeakCache是否存有待加载图片;
S25:若是,将WeakCache中的图片移送至LruCache,以从LruCache加载待加载图片;
S26:否则,从网络和/或本地获取待加载图片;
S27:将获取到的所述待加载图片保存至LruCache中,以从LruCache加载待加载图片。
一些实施例中,还包括:
判断LruCache中的存储量是否超出预设存储阈值;
若是,将LruCache中存储的图片按照最近使用顺序进行排序;
将LruCache中最久未使用的图片移送到WeakCache中。
本实施例中,通过开辟两个缓存空间,当图片加载到缓存时,按照顺序按照队列进行保存,当第一个缓存区满了之后,队尾的元素保存到第二块缓存区,每次使用图片时,先通过在两个缓存区中寻找,不必每次在本地或网络下载解析,可以节约流量,提高图片加载速度,提升用户体验。
本发明实施例提供一种Android系统的图片加载装置,如图3所示的功能结构图,该Android系统的图片加载装置包括:
创建模块31,用于创建两个缓存空间;
加载模块32,用于在第一缓存空间中存有待加载图片时,直接从第一缓存空间加载所述待加载图片;
判断模块33,用于在第一缓存空间中没有待加载图片时,判断第二缓存空间是否存有待加载图片;
第一移送模块34,用于将第二缓存空间中的图片移送至第一缓存空间,以从第一缓存空间加载待加载图片。
一些实施例中,还包括:
第二移送模块35,用于在第一缓存空间中的存储量超出预设存储阈值时,将第一缓存空间中最久未使用的图片移送到第二缓存空间中。
第三移送模块36,用于将从网络和/或本地获取到的待加载图片保存至第一缓存空间中,以从第一缓存空间加载待加载图片。
本实施例中,通过创建模块创建两个缓存空间,加载模块在第一缓存空间中存有待加载图片时,直接从第一缓存空间加载待加载图片,判断模块在第一缓存空间中没有待加载图片时,判断第二缓存空间是否存有待加载图片,第一移送模块将第二缓存空间中的图片移送至第一缓存空间,以从第一缓存空间加载待加载图片,可以节约流量,提高图片加载速度,提升用户体验。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能组件的形式实现。所述集成的模块如果以软件功能组件的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
需要说明的是,本发明不局限于上述最佳实施方式,本领域技术人员在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。
Claims (8)
1.一种Android系统的图片加载方法,其特征在于,包括:
创建两个缓存空间;
若第一缓存空间中存有待加载图片,直接从所述第一缓存空间加载所述待加载图片;
若第一缓存空间中没有待加载图片,判断第二缓存空间是否存有所述待加载图片;
若是,将所述第二缓存空间中的图片移送至所述第一缓存空间,以从所述第一缓存空间加载所述待加载图片。
2.根据权利要求1所述的Android系统的图片加载方法,其特征在于,还包括:
判断所述第一缓存空间中的存储量是否超出预设存储阈值;
若是,将所述第一缓存空间中存储的图片按照最近使用顺序进行排序;
将所述第一缓存空间中最久未使用的图片移送到所述第二缓存空间中。
3.根据权利要求1所述的Android系统的图片加载方法,其特征在于,所述创建两个缓存空间,包括:
在OnCreate方法中创建两个缓存空间。
4.根据权利要求1所述的Android系统的图片加载方法,其特征在于,还包括:
若所述第二缓存空间中没有所述待加载图片,从网络和/或本地获取所述待加载图片;
将获取到的所述待加载图片保存至所述第一缓存空间中,以从所述第一缓存空间加载所述待加载图片。
5.根据权利要求1所述的Android系统的图片加载方法,其特征在于,还包括:
在Android系统进行内存回收时,释放所述第二缓存空间。
6.根据权利要求1~5任一项所述的Android系统的图片加载方法,其特征在于,所述第一缓存空间为LruCache。
7.根据权利要求1~5任一项所述的Android系统的图片加载方法,其特征在于,所述第二缓存空间为WeakCache。
8.一种Android系统的图片加载装置,其特征在于,包括:
创建模块,用于创建两个缓存空间;
加载模块,用于在第一缓存空间中存有待加载图片时,直接从所述第一缓存空间加载所述待加载图片;
判断模块,用于在第一缓存空间中没有待加载图片时,判断第二缓存空间是否存有所述待加载图片;
第一移送模块,用于将所述第二缓存空间中的图片移送至所述第一缓存空间,以从所述第一缓存空间加载所述待加载图片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110608199.6A CN113282855A (zh) | 2021-06-01 | 2021-06-01 | Android系统的图片加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110608199.6A CN113282855A (zh) | 2021-06-01 | 2021-06-01 | Android系统的图片加载方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113282855A true CN113282855A (zh) | 2021-08-20 |
Family
ID=77283031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110608199.6A Pending CN113282855A (zh) | 2021-06-01 | 2021-06-01 | Android系统的图片加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282855A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105046640A (zh) * | 2015-05-14 | 2015-11-11 | 深圳市美贝壳科技有限公司 | 图片内存管理方法及装置 |
CN106802955A (zh) * | 2017-01-19 | 2017-06-06 | 济南浪潮高新科技投资发展有限公司 | 一种图片数据缓存方法 |
WO2017166758A1 (zh) * | 2016-04-01 | 2017-10-05 | 乐视控股(北京)有限公司 | 缓存管理方法、装置、移动终端和电子设备 |
CN108536768A (zh) * | 2018-03-22 | 2018-09-14 | 努比亚技术有限公司 | 图片加载方法、终端及计算机可读存储介质 |
-
2021
- 2021-06-01 CN CN202110608199.6A patent/CN113282855A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105046640A (zh) * | 2015-05-14 | 2015-11-11 | 深圳市美贝壳科技有限公司 | 图片内存管理方法及装置 |
WO2017166758A1 (zh) * | 2016-04-01 | 2017-10-05 | 乐视控股(北京)有限公司 | 缓存管理方法、装置、移动终端和电子设备 |
CN106802955A (zh) * | 2017-01-19 | 2017-06-06 | 济南浪潮高新科技投资发展有限公司 | 一种图片数据缓存方法 |
CN108536768A (zh) * | 2018-03-22 | 2018-09-14 | 努比亚技术有限公司 | 图片加载方法、终端及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947569B (zh) | 绑定核心的方法、装置、终端及存储介质 | |
CN105718287B (zh) | 一种智能终端的程序流式执行方法 | |
CN102541538B (zh) | 一种基于移动终端的图片显示方法及装置 | |
EP1926022B1 (en) | Apparatus and method for efficient memory use in portable terminal | |
JP2006351004A (ja) | 携帯端末機のメモリ管理方法 | |
US20120101996A1 (en) | Apparatus and method for snapshot image segmentation | |
CN106960054B (zh) | 数据文件的存取方法及装置 | |
CN105512251A (zh) | 一种页面缓存方法和装置 | |
CN104808952A (zh) | 数据缓存方法及装置 | |
CN105095495A (zh) | 一种分布式文件系统缓存管理方法和系统 | |
CN103197962B (zh) | 多进程状态切换方法和装置 | |
US7782332B2 (en) | Image displaying device | |
EP3812904A1 (en) | Swap area in memory using multiple compression algorithms | |
CN113742290B (zh) | 一种数据存储方法、装置、存储介质及电子装置 | |
CN109886861B (zh) | 一种高效率图档格式heif图像加载方法及装置 | |
CN113282855A (zh) | Android系统的图片加载方法及装置 | |
CN113467719A (zh) | 数据写入方法及装置 | |
US20090138655A1 (en) | Method and terminal for demand paging at least one of code and data requiring real-time response | |
CN110401691B (zh) | 一种资源下载控制方法、装置及终端 | |
CN110140117A (zh) | 终端基于用户习惯自动清理用户个人文件 | |
CN115964181B (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN109885260B (zh) | 用于电子终端的存储数据的方法及设备 | |
CN107357864B (zh) | 一种文件处理方法及终端 | |
CN114089912B (zh) | 基于消息中间件的数据处理方法及装置、存储介质 | |
US20090144490A1 (en) | Method, apparatus and computer program product for providing improved memory usage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |