一种图像加载的方法及装置制造方法及图纸

技术编号:18972227 阅读:30 留言:0更新日期:2018-09-19 03:34
本申请公开了一种图像加载的方法及装置,移动终端在根据启动应用的指令时,创建加载所述应用的主线程以及加载应用界面的子线程之后,若无法通过ImageView控件从缓冲中获取需要渲染至该应用界面的图像,则先不在该应用界面中渲染该图像,而是当ImageView控件在异步从该移动终端的非易失性存储器中获取了该图像之后,再将该图像渲染至该应用界面中。

Image loading method and device

This application discloses an image loading method and device. After the mobile terminal creates the main thread to load the application and loads the sub-threads of the application interface according to the instructions to start the application, if the image to be rendered to the application interface can not be obtained from the buffer through the ImageView control, the application will not be used at first. The image is rendered in the interface, but when the ImageView control acquires the image asynchronously from the nonvolatile memory of the mobile terminal, the image is rendered to the application interface.

【技术实现步骤摘要】
一种图像加载的方法及装置
本申请涉及信息
,尤其涉及一种图像加载的方法及装置。
技术介绍
操作系统(OperatingSystem,OS)是指管理和控制计算机硬件与软件资源的计算机程序,通常其他软件都必须在操作系统的支持下才能在设备中运行。目前,移动终端中常见的操作系统包括:安卓(Android)、iOS等等。其中,对于在Android系统中运行的应用程序来说,应用界面中需要加载的图像会在该应用安装时,从安卓安装包(AndroidPackage,APK)中获取并存储在移动终端本地。以便当该应用启动时,可根据该图像的存储地址,从移动终端本地获取该图像并渲染至该应用的界面中。具体的,Android系统中原生的显示图像的控件为图像视图(ImageView)控件,应用程序可采用ImageView控件,从移动终端获取图像资源,并加载显示。其中,ImageView控件在获取图像资源时,可以采用类型化数组(TypedArray)类的操作方法,根据图像资源的索引(Index),从移动终端中获取图像资源。以便在获取该图像资源后,将类实例化为可操作的对象。并且为了管理获取的图像资源,一般还需要以场景(Context)类来定义ImageView控件的使用场景。另外,为了减少加载图像所需的时间,应用通常通过loadDrawable方法获取图像。loadDrawable方法在获取图像过程中,会先基于DrawableCache的缓存数据以及图像资源的Index,判断缓存中是否有需要获取的图像资源,若是,则直接从缓存获取该图像资源并返回,若否,再确定图像资源的存储地址,并通过执行磁盘读写操作将该图像资源加载到缓存中,再基于DrawableCache的缓存数据将图像资源返回。ImageView控件在获取图像资源时,各类之间的关系可如图1所示。其中,可见资源类(Resources)可执行的操作为加载图像、加载主题以及返回DrawableCache缓存的图像资源。Context类则规定了在该场景下可返回Resources以及可绘制物(Drawable)。TypedArray类则将从Resources类获取的图像资源或者对象返回ImageView类。而ImageView类则根据获取的图像资源或者对象,渲染到界面上。但是,在现有技术中加载应用界面的过程是有主线程执行的,这使得主线程在响应用户的操作时可能出现卡顿或者没有反应等情况。可见,现有加载图像的方法,存在导致应用卡顿或无反应的情况,导致用户体验差。
技术实现思路
本说明书实施例提供一种图像加载的方法及装置,用于解决移动终端中安装的应用在启动时,加载应用界面的过程是由处理用户操作的主线程同步执行的,导致加载图像时可能出现主线程卡顿或无反应的情况,导致用户体验差的问题。本说明书实施例采用下述技术方案:一种图像加载的方法,包括:移动终端接收针对应用的启动指令;根据所述启动指令,分别创建所述应用的主线程,以及加载应用界面的子线程;当所述子线程在根据图像视图控件加载所述应用界面中的图像时,判断是否可以从缓存获取所述图像;若是,则将所述图像渲染至所述应用界面中;若否,则不在所述应用界面中渲染所述图像,并在所述图像视图控件异步的从所述移动终端的非易失性存储器中获取所述图像后,将所述图像渲染至所述应用界面中。一种图像加载的装置,包括:接收模块,移动终端接收针对应用的启动指令;创建模块,根据所述启动指令,分别创建所述应用的主线程,以及加载应用界面的子线程;判断加载模块,当所述子线程在根据图像视图控件加载所述应用界面中的图像时,判断是否可以从缓存获取所述图像,若是,则将所述图像渲染至所述应用界面中,若否,则不在所述应用界面中渲染所述图像,并在所述图像视图控件异步的从所述移动终端的非易失性存储器中获取所述图像后,将所述图像渲染至所述应用界面中。一种移动终端,其中,所述移动终端包括:一个或多个处理器及存储器,存储器存储有程序,并且被配置成由一个或多个处理器执行以下步骤:接收针对应用的启动指令;根据所述启动指令,分别创建所述应用的主线程,以及加载应用界面的子线程;当所述子线程在根据图像视图控件加载所述应用界面中的图像时,判断是否可以从缓存获取所述图像;若是,则将所述图像渲染至所述应用界面中;若否,则不在所述应用界面中渲染所述图像,并在所述图像视图控件异步的从所述移动终端的非易失性存储器中获取所述图像后,将所述图像渲染至所述应用界面中。本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:通过本说明书提供的方法及装置,移动终端在根据启动应用的指令时,创建加载所述应用的主线程以及加载应用界面的子线程之后,若无法通过ImageView控件从缓冲中获取需要渲染至该应用界面的图像,则先不在该应用界面中渲染该图像,而是当ImageView控件在异步从该移动终端的非易失性存储器中获取了该图像之后,再将该图像渲染至该应用界面中。在无法从缓存获取图像时,子线程可先不渲染应用界面中的该图像,并在后续通过异步的方式,再从移动终端的非易失性存储器中读取图像。由于应用界面的加载对于应用的使用影响较小,而主线程卡顿会造成应用难以使用,所以本说明书提供的方法,通过创建子线程来执行加载应用界面的方式,避免了主线程受加载图像影响的情况出现使得应用在使用过程中受加载应用界面中图像的影响降低,提高了用户体验。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为ImageView控件在获取图像资源时各类之间的关系的示意图;图2为本说明书实施例提供的图像加载的流程示意图;图3为页面实例加载应用界面的过程示意图;图4为本说明书提供的ImageView控件在获取图像资源时,各类之间的关系;图5为本说明书实施例提供的一种图像加载的装置的结构示意图;图6为本说明书实施例提供的一种移动终端的结构示意图。具体实施方式为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。图2为说明书实施例提供的一种图像加载的过程,具体可包括以下步骤:S100:移动终端接收针对应用的启动指令。在本说明书一个或多个实施例中,如前述的该图像加载过程,具体可以是对移动终端中已安装应用的应用界面中的图像的加载过程。因此,具体可由移动终端执行本说明书提供的图像加载的过程,其中,该移动终端可以是手机、平板电脑等设备,本说明书对此不做限定。另外,由于加载的该图像为应用界面中的图像,因此本说明书提供的图像加载过程,也可按照加载图像的时间先后顺序,分为获取图像资源以及将该图像资源渲染至应用界面中的两个步骤。具体的,在本说明书中,移动终端在可接收用户的操作,于是当用户需要启动某个应用时,该移动终端可接收到针对该应用的启动指令,并执行后续步骤的操作。其中,用户在移动终端上具体执行何本文档来自技高网
...

【技术保护点】
1.一种图像加载的方法,包括:移动终端接收针对应用的启动指令;根据所述启动指令,分别创建所述应用的主线程,以及加载应用界面的子线程;当所述子线程在根据图像视图控件加载所述应用界面中的图像时,判断是否从缓存获取所述图像;若是,则将所述图像渲染至所述应用界面中;若否,则不在所述应用界面中渲染所述图像,并在所述图像视图控件异步的从所述移动终端的非易失性存储器中获取所述图像后,将所述图像渲染至所述应用界面中。

【技术特征摘要】
1.一种图像加载的方法,包括:移动终端接收针对应用的启动指令;根据所述启动指令,分别创建所述应用的主线程,以及加载应用界面的子线程;当所述子线程在根据图像视图控件加载所述应用界面中的图像时,判断是否从缓存获取所述图像;若是,则将所述图像渲染至所述应用界面中;若否,则不在所述应用界面中渲染所述图像,并在所述图像视图控件异步的从所述移动终端的非易失性存储器中获取所述图像后,将所述图像渲染至所述应用界面中。2.如权利要求1所述的方法,所述子线程在根据图像视图控件加载所述应用界面中的图像,具体包括:所述子线程根据所述应用的代码,配置用于加载所述应用界面的页面实例,以使所述页面实例通过视图生成器实例,控制所述图像视图控件加载所述应用界面中的图像。3.如权利要求2所述的方法,判断是否可以从缓存获取所述图像,具体包括:根据所述图像视图控件获取所述图像的结果,判断是否可以从缓存中获取所述图像。4.如权利要求3所述的方法,不在所述应用界面中渲染所述图像,具体包括:根据所述图像视图控件返回的空字符,确定不在所述应用界面中渲染所述图像。5.如权利要求3所述的方法,所述图像视图控件异步的从所述移动终端的非易失性存储器中获取所述图像,具体包括:所述图像视图控件通过异步执行磁盘读取操作,根据所述图像的存储地址,从所述移动终端的非易失性存储器中获取所述图像。6.一种图像加载的装置,包括:接收模块,移动终端接收针对应用的启动指令;创建模块,根据所述启动指令,分别创建所述应用的主线程,以及加载应用界面的子线程;判断加载模块,当所述子线程在根据图像视图控...

【专利技术属性】
技术研发人员:曹玉斌
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1