实现图片加载库的方法及装置制造方法及图纸

技术编号:16662479 阅读:56 留言:0更新日期:2017-11-30 11:45
一种实现图片加载库的方法及装置,应用于软件开发技术领域,以实现图片加载库的易切换。其中,方法包括:定义在多个图片加载库通用的应用程序编程接口API,所述应用程序编程接口API用于在业务代码中被调用;在每一图片加载库的功能实现文件中分别通过代码实现所述应用程序编程接口API的功能。

【技术实现步骤摘要】
实现图片加载库的方法及装置
本申请涉及软件开发
,尤其涉及一种实现图片加载库的方法及装置。
技术介绍
在很多应用APP中都需要对图片进行展示,而APP一般依赖于图片加载库来实现图片的展示功能。目前,可供开发者选用的开源的图片加载库较多,不同的APP往往选用不同的图片加载库来实现图片展示。在相关技术中,由于当前不同的图片加载库在实现代码上存在较大差异,当需要切换某APP依赖的图片加载库时,通常需要较大幅度地修改APP的业务代码,使得图片加载库切换过程较为低效。
技术实现思路
有鉴于此,本申请提供一种实现图片加载库的方法及装置。为实现上述目的,本申请提供技术方案如下:根据本申请的第一方面,提出了一种实现图片加载库的方法,包括:定义在多个图片加载库通用的应用程序编程接口API,所述应用程序编程接口API用于在业务代码中被调用;在每一图片加载库的功能实现文件中分别通过代码实现所述应用程序编程接口API的功能。根据本申请的第二方面,提出了一种实现图片加载库的方法,包括:在接收到代码编译指令后,根据配置文件,确定业务代码依赖的目标图片加载库;从多个待选图片加载库的功能实现文件中,选取与所述目标图片加载库对应的功能实现文件;其中每一功能实现文件分别用于实现在业务代码中被调用的应用程序编程接口API的功能,所述应用程序编程接口API在多个图片加载库通用;利用选取的功能实现文件进行编译。根据本申请的第三方面,提出了一种实现图片加载库的装置,包括:API定义单元,用于定义在多个图片加载库通用的应用程序编程接口API,所述应用程序编程接口API用于在业务代码中被调用;功能实现单元,用于在每一图片加载库的功能实现文件中分别通过代码实现所述应用程序编程接口API的功能。根据本申请的第四方面,提出了一种实现图片加载库的装置,包括:加载库确定单元,用于在接收到代码编译指令后,根据配置文件,确定业务代码依赖的目标图片加载库;选取单元,用于从多个待选图片加载库的功能实现文件中,选取与所述目标图片加载库对应的功能实现文件,其中每一功能实现文件分别用于实现在业务代码中被调用的应用程序编程接口API的功能,所述应用程序编程接口API在多个图片加载库通用;编译单元,用于利用选取的功能实现文件进行编译。本申请实施例中,通过定义在多个图片加载库通用的应用程序编程接口API,在业务代码中调用所述通用的应用程序编程接口API,并在每一图片加载库的功能实现文件中,分别通过代码实现所述应用程序编程接口API的功能。使得当需要切换应用APP依赖的图片加载库时,用户只需要通过修改配置文件来修改业务代码依赖的图片加载库,而不需要修改业务代码,从而实现高效的图片加载库切换过程。另一方面,在代码编译时,可以根据用户在切换图片加载库时修改的配置文件,确定所需切换使用的图片加载库,以从多个待选图片加载库的功能实现文件中,选定与所述目标图片加载库对应的功能实现文件进行编译。可见,用户只需要修改配置文件中的依赖关系并重新编译代码,便可实现高效的图片加载库切换过程。附图说明图1是本申请一示例性实施例提供的一种实现图片加载库的方法的流程图;图2是本申请一示例性实施例中的APP代码架构图;图3示出了本申请一示例性实施例中定义的通用API及通用Image控件属性;图4是本申请另一实施例提供的实现图片加载库的方法的流程图;图5是本申请一示例性实施例提供的一种实现图片加载库的装置的框图;图6是本申请一示例性实施例提供的另一种实现图片加载库的装置的框图。具体实施方式在很多智能设备的操作系统中,均需要采用图片加载库来实现加载图片并展示。以android系统为例,目前开源的图片加载库包括但不限于:Google推出的Glide图片加载库、Facebook推出的Fresco图片加载库及Square推出的Picasso图片加载库等。在各种APP的开发过程中都会选用合适的图片加载库用以实现图片展示,图片展示效果及性能的好坏往往决定了用户对APP的使用体验,所以,如何选择合适的图片加载库是APP开发者所关注的重点之一。当前,随着技术发展,很多功能更强大、性能更优异的图片加载库也不断涌现,所以,将已有的图片加载库代码进行扩展或迁移到业务代码中,已成为了很多APP开发者的需求。然而,由于各APP使用不同的图片加载库,代码基本无法被复用。由于目前不同的图片加载库在实现代码(如API的差异)上存在较大差异,其增加了学习成本、Bug出现概率以及Bug的修复成本。当需要切换某APP依赖的图片加载库或将某图片加载库代码进行迁移时,通常需要较大幅度地修改APP的业务代码,使得图片加载库切换过程较为低效。举例而言,假设某APP原先使用的是Fresco图片加载库,此时需要将Picasso图片加载库的代码迁移到该APP(即将原先的Fresco图片加载库代码替换为Picasso图片加载库代码),在此过程中,开发者除了需要删除Fresco图片加载库的实现代码文件,并增加Picasso图片加载库的实现代码文件,还需要修改APP业务代码中所有调用Fresco图片加载库的API的地方,这极大地增加了代码迁移的困难性。鉴于上述问题,本文提出了一种便于实现图片加载库迁移的方案。图1是本申请一示例性实施例提供的一种实现图片加载库的方法的流程图。如图1所示,本申请实施例中,该方法包括下述步骤101~102,其中:在步骤101中,定义在多个图片加载库通用的API,其中,所述API用于在业务代码中被调用。图片加载库一般提供一些供APP业务层(业务代码)调用的API(ApplicationProgrammingInterface,应用程序编程接口),这些API可以用于通过某种逻辑或方法实现某些功能(如:图片下载、加载、展示等功能)。参图2所示,本申请实施例提出的一种新的APP代码架构包括:业务层(Businesslayer)、架构层(Frameworklayer)及插件实现层(Pluginlayer)。其中,通过架构层将业务层代码和图片加载库的具体实现代码分离,通过定义在各图片加载库的通用的API,在插件实现层以插件的形式具体实现各个图片加载库的API功能。其中,本实施例中,可以在架构层通过java文件定义通用API,以使得业务层可以通过架构层的java文件确定可以调用图片加载库的哪些通用API。在定义通用API之前,可以抽象出各个待选图片加载库的图片绘制行为(ImageViewAction)及一些扩展功能,并根据抽象出的图片绘制行为(ImageViewAction)及一些扩展功能来分别定义通用API。参图3所示,举例来说,与图片绘制行为(ImageViewAction)对应的通用API可以包括:“render”、“setLoadingListener”、“setProgressListener”等。与扩展功能对应的通用API可以包括:“setImageURI”、“setBoarder”、“setPlaceholderImage”等。在步骤102中,在每一图片加载库的功能实现文件中分别通过代码实现所述应用程序编程接口API的功能。如图2所示,在插件实现层,每一个图片加载库可以分别通过相应的功能实现文件,来实现上述架构层定义的通用本文档来自技高网...
实现图片加载库的方法及装置

【技术保护点】
一种实现图片加载库的方法,其特征在于,所述方法包括:定义在多个图片加载库通用的应用程序编程接口API,所述应用程序编程接口API用于在业务代码中被调用;在每一图片加载库的功能实现文件中分别通过代码实现所述应用程序编程接口API的功能。

【技术特征摘要】
1.一种实现图片加载库的方法,其特征在于,所述方法包括:定义在多个图片加载库通用的应用程序编程接口API,所述应用程序编程接口API用于在业务代码中被调用;在每一图片加载库的功能实现文件中分别通过代码实现所述应用程序编程接口API的功能。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:定义在多个图片加载库通用的Image控件属性,所述通用的Image控件属性在实现所述应用程序编程接口API的功能时被使用。3.根据权利要求1所述的方法,其特征在于,所述图片加载库包括:Picasso图片加载库、Fresco图片加载库、Glide图片加载库中的一种或多种。4.一种实现图片加载库的方法,其特征在于,所述方法包括:在接收到代码编译指令后,根据配置文件,确定业务代码依赖的目标图片加载库;从多个待选图片加载库的功能实现文件中,选取与所述目标图片加载库对应的功能实现文件;其中每一功能实现文件分别用于实现在业务代码中被调用的应用程序编程接口API的功能,所述应用程序编程接口API在多个图片加载库通用;利用选取的功能实现文件进行编译。5.根据权利要求4所述的方法,其特征在于,每一功能实现文件在实现所述在多个图片加载库通用的功能时使用在多个图片加载库通用的Image控件属性。6.根据权利要求4所述的方法,其特征在于,所述待选图片加载库包括...

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

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

1