动态壁纸设置方法、装置、存储介质及电子设备与流程

专利2022-06-30  63


本申请涉及终端技术领域,具体涉及一种动态壁纸设置方法、装置、存储介质及电子设备。



背景技术:

电子设备的壁纸按照其表现形式可以分为动态壁纸和静态壁纸,静态壁纸是指作为壁纸的背景图片为静态的图片,动态壁纸则是具有动态展示效果的壁纸。常规的动态壁纸设置方式步骤较繁琐,每次都要进入系统壁纸设置界面,通过动态壁纸选择器进行预览和设置操作,无法实现跨进程的动态壁纸设置。



技术实现要素:

本申请实施例提供一种动态壁纸设置方法、装置、存储介质及电子设备,能够实现跨进程的动态壁纸设置。

第一方面,本申请实施例提供一种动态壁纸设置方法,包括:

当接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息;

基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件;

根据所述配置文件和所述动态资源数据,创建第一资源实例;

根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。

第二方面,本申请实施例还提供一种动态壁纸设置装置,包括:

信息获取单元,用于当接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息;

文件获取单元,用于基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件;

资源解析单元,用于根据所述配置文件和所述动态资源数据,创建第一资源实例;

壁纸绘制单元,用于根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。

第三方面,本申请实施例还提供一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的动态壁纸设置方法。

第四方面,本申请实施例还提供一种电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的动态壁纸设置方法。

本申请实施例提供的技术方案,在接收到目标进程发送的动态壁纸设置指令时,获取动态壁纸设置指令对应的资源标识信息,基于该资源标识信息获取动态资源文件,并对该动态资源文件进行解析,得到动态资源数据、配置文件和动画脚本文件,然后根据配置文件动态资源数据,创建第一资源实例,根据第一资源实例、动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应动态壁纸设置指令,通过这种方式,当需要通过外部进程设置动态壁纸时,可以基于动态壁纸设置指令将资源标识信息传输至动态壁纸设置进程,动态壁纸设置进程可以通过获取到的资源标识获取到动态资源文件并进行解析处理,以得到用于实现动态壁纸绘制的第一资源实例,壁纸服务基于该第一资源实例进行动态壁纸的绘制,进而实现了跨进程的动态壁纸设置。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的动态壁纸设置方法的第一种流程示意图。

图2为本申请实施例提供的动态壁纸设置方法的应用场景示意图。

图3为本申请实施例提供的动态壁纸设置方法的系统框架示意图。

图4为本申请实施例提供的动态壁纸设置方法的第二种流程示意图。

图5为本申请实施例提供的动态壁纸设置装置的结构示意图。

图6为本申请实施例提供的电子设备的第一种结构示意图。

图7为本申请实施例提供的电子设备的第二种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请的保护范围。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本申请实施例提供一种动态壁纸设置方法,该动态壁纸设置方法的执行主体可以是本申请实施例提供的动态壁纸设置装置,或者集成了该动态壁纸设置装置的电子设备,其中该动态壁纸设置装置可以采用硬件或者软件的方式实现。其中,电子设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、或者台式电脑等设备。

请参阅图1,图1为本申请实施例提供的动态壁纸设置方法的第一种流程示意图。本申请实施例提供的动态壁纸设置方法的具体流程可以如下:

101、当接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息。

常规的动态壁纸设置方案中,每个动态壁纸都需要在桌面壁纸应用程序中注册一个wallpaperservice(壁纸服务)以表示一个动态壁纸服务。而且设置壁纸都需要跳转进入“动态壁纸选择器”进行预览之后再进行设置到桌面显示。这样导致动态壁纸的设置步骤较为繁琐,并且每次设置或者更新的动态壁纸,都要依次经过“动态壁纸选择器”、“预览”、“设置”等多个步骤才能实现。同时,这种设置方式,导致用户只能进入系统设置的动态壁纸设置界面进行设置,对于其他应用程序获取到的动态壁纸资源不能直接设置。

电子设备设置有用于实现动态壁纸设置的进程,下文称为动态壁纸引擎,运行在电子设备中的其他进程可以与该进程之间通过预设通信协议实现跨进程通信,例如,通过aidl(androidinterfacedefinitionlanguage,安卓接口语言)实现动态壁纸引擎与其他进程之间的通信。其中,其他进程可以是其他任意能够获取到动态壁纸资源的应用程序的进程,例如,视频管理程序、主题商店、资源管理器等应用程序的进程。

请参阅图2,图2为本申请实施例提供的动态壁纸设置方法的应用场景示意图。本申请实施例中,用户可以在除了动态壁纸引擎之外的其他进程,实现动态壁纸的设置。比如,用户通过目标进程获取到了一个动态壁纸资源,通过该动态壁纸的选项中的“设置为壁纸”控件触发动态壁纸设置指令,并通过进程间通信将该动态壁纸设置指令发送至动态壁纸引擎。其中,该动态壁纸设置指令中携带有动态壁纸资源文件对应的资源标识信息,其他进程根据该资源标识信息可以获取到动态壁纸资源文件。在一些实施例中,资源标识信息可以是uri(uniformresourceidentifier,统一资源标识符)。例如,动态壁纸引擎接收到该动态壁纸设置指令之后,可以基于该统一资源标识符获取动态壁纸资源文件,并直接在后台将该动态壁纸资源文件对应的动态壁纸设置为当前的动态壁纸。

102、基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件。

其中,目标进程的动态资源文件可以是压缩格式的文件,例如,zip格式等。该压缩文件中打包有动态资源数据、配置文件和动画脚本文件,其中,动态资源数据中包含有用于实现动态壁纸显示的各种资源数据,可以是图片(例如gif图)、视频、帧序列等等。动态壁纸引擎通过控制这些资源数据的动态展示,以实现动态壁纸。例如,控制视频的播放,或者,控制gif图的播放。其中,帧序列可以理解为一组图像,可以在不同的页面显示不同的图像,或者,在同一页面控制不同图像的切换以实现动态效果。

配置文件为用于定义动态壁纸的属性信息,该文件可以是一个文本文档,例如,可以是一个config格式的文档,用于定义动态壁纸的id、版本号、名称、渲染类型、引擎版本、动画脚本文件的名称和格式等。动画脚本文件用于主要用于配置动态壁纸在不同时机显示不同的界面或动画。

外部进程需要将动态资源数据、配置文件和动画脚本文件等统一打包到一个压缩包中,该资源的安全性及时效性等都由外部应用自行控制。外部进程将该压缩包可内置在自身app中或放置在sd卡中,并生成一个动态壁纸引擎能访问的uri。外部进程通过与动态壁纸引擎协定的aidl通信协议,与动态壁纸引擎之间通信,将可用的动态资源文件的uri发送给动态壁纸引擎并发送动态壁纸设置指令。

请参阅图3,图3为本申请实施例提供的动态壁纸设置方法的系统框架示意图。本申请实施例中的方案中,动态壁纸引擎包括资源管理模块、通信模块、脚本解析模块、资源解析模块以及壁纸服务模块。其中,外部应用通过通信模块与动态壁纸引擎通信。资源管理模块通过adil获取动态壁纸资源。脚本解析模块用于解析动画脚本文件,资源解析模块通过wallpaperservice控制动态资源数据按照脚本文件的定义进行显示。

以资源标识信息是uri为例,动态壁纸引擎获取到uri之后,对接收的uri进行读取,以获取到动态资源文件。在一些实施例中解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件,包括:解压所述动态资源文件,并从解压数据中获取配置文件;解析所述配置文件以确定脚本文件格式和渲染类型;从所述解压数据中获取与所述脚本文件格式对应的动画脚本文件,并从所述解压数据中获取与所述渲染类型匹配的动态资源数据。

资源管理器对解压得到的数据中的配置文件进行解析,以确定动画脚本文件的格式和名称,进而根据格式和名称从解压数据中确定动画脚本文件。此外,资源管理器还可以根据配置文件中确定渲染类型,进而从解压数据中获取与该渲染类型匹配的动态资源数据。

103、根据所述配置文件和所述动态资源数据,创建第一资源实例。

动态壁纸引擎中脚本解析模块中,针对不同格式的脚本文件设置对应的解析子模块,例如,xml,json等。资源解析模块中针对不同类型的动态资源数据设置有对应的渲染子模块,例如,视频解析模块、图像解析模块或者其他模块。在一些实施例中,根据所述配置文件和所述动态资源数据,创建第一资源实例,包括:根据所述配置文件确定渲染类型,并启动所述渲染类型对应的渲染子模块;基于所述渲染子模块对所述动态资源数据进行处理,生成第一资源实例。资源解析模块通过102中确定的渲染类型,从多个预设的渲染模块中确定对应的渲染模块,基于该渲染模块和动态资源数据,创建第一资源实例。

104、根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。

动态壁纸引擎基于根据壁纸服务模块和第一资源实例实现动态壁纸的绘制。在一些实施例中,根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,包括:判断当前使用的壁纸是否为动态壁纸;若否,则通过所述壁纸服务和所述动画脚本文件实现所述第一资源实例,以进行动态壁纸的绘制;若是,则确定当前的第二资源实例,将所述第二资源实例替换为所述第一资源实例,并基于所述动画脚本文件进行动态壁纸的绘制。在该实施例中,如果当前系统壁纸为动态壁纸,则无需调用系统方法在后台基于动态壁纸引擎内置的wallpaperservice实现类,实现第一资源实例,而是可以直接将动态壁纸引擎中当前的资源实例切换为第一资源实例即可。并且,在将动态壁纸引擎中当前的资源实例切换为第一资源实例之后,即可将当前的系统壁纸切换为要设置的动态壁纸,并且在壁纸切换之后,可以通过动画脚本文件辅助第一资源实例响应不同界面切换操作的实际执行的动作,以实现该动态壁纸的动态展示效果。

反之,如果当前的系统壁纸不是动态壁纸,则动态壁纸引擎作为系统级进程,调用系统方法在后台基于动态壁纸引擎内置的wallpaperservice实现类,实现第一资源实例,以将该动态壁纸设置为系统壁纸,并且在壁纸切换之后,可以通过动画脚本文件辅助第一资源实例响应不同界面切换操作的实际执行的动作,以实现该动态壁纸的动态展示效果。

或者,在另外一些实施例中,无论当前的系统壁纸是否为动态壁纸,都可以调用系统方法在后台基于动态壁纸引擎内置的wallpaperservice实现类,实现第一资源实例。

具体实施时,本申请不受所描述的各个步骤的执行顺序的限制,在不产生冲突的情况下,某些步骤还可以采用其它顺序进行或者同时进行。

由上可知,本申请实施例提供的动态壁纸设置方法,在接收到目标进程发送的动态壁纸设置指令时,获取动态壁纸设置指令对应的资源标识信息,基于该资源标识信息获取动态资源文件,并对该动态资源文件进行解析,得到动态资源数据、配置文件和动画脚本文件,然后根据配置文件动态资源数据,创建第一资源实例,根据第一资源实例、动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应动态壁纸设置指令,通过这种方式,当需要通过外部进程设置动态壁纸时,可以基于动态壁纸设置指令将资源标识信息传输至动态壁纸设置进程,动态壁纸设置进程可以通过获取到的资源标识获取到动态资源文件并进行解析处理,以得到用于实现动态壁纸绘制的第一资源实例,壁纸服务基于该第一资源实例进行动态壁纸的绘制,进而实现了跨进程的动态壁纸设置。

在一些实施例中,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件,包括:解压所述动态资源文件以获取解压数据,并从所述解压数据中获取配置文件;解析所述配置文件以确定脚本文件格式和渲染类型;从所述解压数据中获取与所述脚本文件格式对应的动画脚本文件,并从所述解压数据中获取与所述渲染类型匹配的动态资源数据。

该实施例中,动态壁纸引擎获取到uri之后,对接收的uri进行读取,以获取到动态资源文件。解压动态资源文件,对解压得到的数据中的配置文件进行解析,以确定动画脚本文件的格式和名称,进而根据格式和名称从解压数据中确定动画脚本文件。此外,资源管理器还可以根据配置文件中确定渲染类型,进而从解压数据中获取与该渲染类型匹配的动态资源数据。

在一些实施例中,所述基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件之后,还包括:将所述动态资源数据、配置文件和动画脚本文件添加至预设缓存区域;根据所述配置文件获取目标动态壁纸标识,并判断预设路径是否存储有与所述目标动态壁纸标识匹配的文件夹;若否,则基于所述目标动态壁纸标识在所述预设路径中创建目标文件夹,并从所述缓存区域将所述动态资源数据、配置文件和动画脚本文件写入所述目标文件夹,并执行根据所述配置文件和所述动态资源数据,创建第一资源实例。

该实施例中,在获取到动态资源数据、配置文件和动画脚本文件,先将其缓存到预设缓存区域,并配置文件中获取目标动态壁纸标识,例如,动态壁纸的id,根据该id判断预设路径中是否存储有名称为该id的文件夹,如果预设路径中没有名称为该id的文件夹,则以当前配置文件中的动态壁纸的id为名,创建文件夹,将预设缓存区域中缓存的动态资源数据、配置文件和动画脚本文件写入该文件夹。然后基于该文件夹中的数据执行103至105。

其中,预设路径为用于存储动态资源数据、配置文件和动画脚本文件的路径,每一个设置过的动态壁纸对应的文件都可以存储在该预设路径中。并且,对于每一个动态壁纸设置一个文件夹,该文件夹以该动态壁纸的id或者名称命名。

在一些实施例中,判断预设路径是否存储有与所述目标动态壁纸标识匹配的文件夹之后,还包括:若是,则从所述文件夹中获取历史配置文件,判断所述历史配置文件与所述配置文件的版本是否相同;若是,则将清空所述预设缓存区域,并执行根据所述配置文件和所述动态资源数据,创建第一资源实例。

预设路径中有名称为该id的文件夹,则判定电子设备曾经设置过该动态壁纸,则无需将缓存中的文件写入到预设路径,可以直接从预设路径获取配置文件和动态壁纸数据等,进行动态壁纸的绘制。同时将预设缓存区域中的数据清空。

根据前面实施例所描述的方法,以下将举例作进一步详细说明。

请参阅图4,图4为本发明实施例提供的动态壁纸设置方法的第二流程示意图。所述方法包括:

201、当接收到目标进程发送的动态壁纸设置指令时,判断所述目标进程是否位于进程白名单中。

该实施例中,预先在电子设备中设置有进程白名单,其中,进程白名单中的进程为允许跨进程将系统壁纸设置为动态壁纸的进程,并且该进程白名单中的进程可以由用户根据需要添加。用户通过目标进程获取到了一个动态壁纸资源,通过该动态壁纸的选项中的“设置为壁纸”控件触发动态壁纸设置指令,并通过进程间通信将该动态壁纸设置指令发送至动态壁纸引擎。动态壁纸引擎接收到该动态壁纸设置指令之后,先判断该目标进程是否位于进程白名单中。

202、当所述目标进程位于所述进程白名单中时,获取所述动态壁纸设置指令对应的资源标识信息。

如果该目标进程位于进程白名单中,则获取该动态壁纸设置指令对应的资源标识信息,如果该目标进程不位于进程白名单中,则不响应该动态壁纸设置指令。反之,若该目标进程位于进程白名单中,则获取该动态壁纸设置指令对应的资源标识信息。

203、解压所述动态资源文件以获取解压数据,并从所述解压数据中获取配置文件。

204、解析所述配置文件以确定脚本文件格式和渲染类型。

205、从所述解压数据中获取与所述脚本文件格式对应的动画脚本文件,并从所述解压数据中获取与所述渲染类型匹配的动态资源数据。

资源管理器对解压得到的数据中的配置文件进行解析,以确定动画脚本文件的格式和名称,进而根据脚本文件格式和名称从解压数据中确定动画脚本文件。此外,资源管理器还可以根据配置文件中确定渲染类型,进而从解压数据中获取与该渲染类型匹配的动态资源数据。

206、启动所述渲染类型对应的渲染子模块,基于所述渲染子模块对所述动态资源数据进行处理,生成第一资源实例。

请参阅图3,动态壁纸引擎的资源解析模块中针对不同类型的动态资源数据设置有对应的渲染子模块,例如,视频解析模块、图像解析模块等。在确定渲染类型后,从多个渲染子模块中确定出与该渲染类型对应的渲染子模块,并启动该渲染子模块对动态资源数据进行处理,生成第一资源实例。

207、根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。

其中,动画脚本文件的格式可以xml(extensiblemarkuplanguage,可扩展标记语言)格式、json(javascriptobjectnotation,js对象简谱)格式等。请参阅图3,动态壁纸引擎中脚本解析模块中,针对不同格式的脚本文件设置对应的解析子模块,例如,xml,json等。脚本解析模块确定动画脚本文件对应的脚本文件格式,从多个解析子模块中确定出目标解析子模块,启动该目标解析子模块对动画脚本文件进行解析,生成解析实例,该解析实例用于辅助第一资源实例响应不同界面切换操作,并执行对应的动作。

动态壁纸引擎基于壁纸服务和第一资源实例、解析实例实现动态壁纸的绘制。若动态壁纸引擎是首次设置动态壁纸(即当前系统壁纸不是动态壁纸),则动态壁纸引擎作为系统级进程,调用系统方法在后台基于动态壁纸引擎内置的wallpaperservice实现类,实现第一资源实例,以将该动态壁纸设置为系统壁纸,并且在壁纸切换之后,可以通过解析实例辅助第一资源实例响应不同界面切换操作的实际执行的动作,以实现该动态壁纸的动态展示效果。若动态壁纸引擎不是首次设置动态壁纸(当前系统壁纸为动态壁纸),则直接将动态壁纸引擎中当前的资源实例切换为第一资源实例即可。并且,在将动态壁纸引擎中当前的资源实例切换为第一资源实例之后,即可将当前的系统壁纸切换为要设置的动态壁纸,并且在壁纸切换之后,可以通过解析实例辅助第一资源实例响应不同界面切换操作的实际执行的动作,以实现该动态壁纸的动态展示效果。

由上可知,本发明实施例提出的动态壁纸设置方法,当需要通过外部进程设置动态壁纸时,可以基于动态壁纸设置指令将资源标识信息传输至动态壁纸设置进程,动态壁纸设置进程可以通过获取到的资源标识获取到动态资源文件并进行解析处理,以得到用于实现动态壁纸绘制的第一资源实例,壁纸服务基于该第一资源实例进行动态壁纸的绘制,进而实现了跨进程的动态壁纸设置。

在一实施例中还提供一种动态壁纸设置装置。请参阅图5,图5为本申请实施例提供的动态壁纸设置装置300的结构示意图。其中该动态壁纸设置装置300应用于电子设备,该动态壁纸设置装置300包括信息获取单元301、文件获取单元302、资源解析单元303以及壁纸绘制单元304,如下:

信息获取单元301,用于当接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息;

文件获取单元302,用于基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件;

资源解析单元303,用于根据所述配置文件和所述动态资源数据,创建第一资源实例;

壁纸绘制单元304,用于根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。

在一些实施例中,文件获取单元302还用于:解压所述动态资源文件以获取解压数据,并从所述解压数据中获取配置文件;

解析所述配置文件以确定脚本文件格式和渲染类型;

从所述解压数据中获取与所述脚本文件格式对应的动画脚本文件,并从所述解压数据中获取与所述渲染类型匹配的动态资源数据。

在一些实施例中,资源解析单元303还用于:根据所述配置文件确定渲染类型,并启动所述渲染类型对应的渲染子模块;基于所述渲染子模块对所述动态资源数据进行处理,生成第一资源实例。

在一些实施例中,壁纸绘制单元304还用于:判断当前使用的壁纸是否为动态壁纸;若否,则通过所述壁纸服务和所述动画脚本文件实现所述第一资源实例,以进行动态壁纸的绘制;若是,则确定当前的第二资源实例,将所述第二资源实例替换为所述第一资源实例,并基于所述动画脚本文件进行动态壁纸的绘制。

在一些实施例中,文件获取单元302还用于:将所述动态资源数据、配置文件和动画脚本文件添加至预设缓存区域;

根据所述配置文件获取目标动态壁纸标识,并判断预设路径是否存储有与所述目标动态壁纸标识匹配的文件夹;

若否,则基于所述目标动态壁纸标识在所述预设路径中创建目标文件夹,并从所述缓存区域将所述动态资源数据、配置文件和动画脚本文件写入所述目标文件夹。

在一些实施例中,文件获取单元302还用于:若是,则从所述文件夹中获取历史配置文件,判断所述历史配置文件与所述配置文件的版本是否相同;若是,则将清空所述预设缓存区域,并执行根据所述配置文件和所述动态资源数据,创建第一资源实例。

在一些实施例中,信息获取单元301还用于:当接收到目标进程发送的动态壁纸设置指令时,判断所述目标进程是否位于进程白名单中;当所述目标进程位于所述进程白名单中时,执行获取所述动态壁纸设置指令对应的资源标识信息。

具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。

应当说明的是,本申请实施例提供的动态壁纸设置装置与上文实施例中的动态壁纸设置方法属于同一构思,在动态壁纸设置装置上可以运行动态壁纸设置方法实施例中提供的任一方法,其具体实现过程详见动态壁纸设置方法实施例,此处不再赘述。

由上可知,本申请实施例提出的动态壁纸设置装置300,包括:信息获取单元301,用于当接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息;文件获取单元302,用于基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件;资源解析单元303,用于根据所述配置文件和所述动态资源数据,创建第一资源实例;壁纸绘制单元304,用于根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。当需要通过外部进程设置动态壁纸时,可以基于动态壁纸设置指令将资源标识信息传输至动态壁纸设置进程,动态壁纸设置进程可以通过获取到的资源标识获取到动态资源文件并进行解析处理,以得到用于实现动态壁纸绘制的第一资源实例,壁纸服务基于该第一资源实例进行动态壁纸的绘制,进而实现了跨进程的动态壁纸设置。

本申请实施例还提供一种电子设备。所述电子设备可以是智能手机、平板电脑等设备。请参阅图6,图6为本申请实施例提供的电子设备的第一种结构示意图。电子设备400包括处理器401和存储器402。其中,处理器401与存储器402电性连接。

处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或调用存储在存储器402内的计算机程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。

存储器402可用于存储计算机程序和数据。存储器402存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器401通过调用存储在存储器402的计算机程序,从而执行各种功能应用以及数据处理。

在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:

当接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息;

基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件;

根据所述配置文件和所述动态资源数据,创建第一资源实例;

根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。

在一些实施例中,请参阅图7,图7为本申请实施例提供的电子设备的第二种结构示意图。电子设备400还包括:射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409。其中,处理器401分别与射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409电性连接。

射频电路403用于收发射频信号,以通过无线通信与网络设备或其他电子设备进行通信。

显示屏404可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图像、文本、图标、视频和其任意组合来构成。

控制电路405与显示屏404电性连接,用于控制显示屏404显示信息。

输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。其中,输入单元406可以包括指纹识别模组。

音频电路407可通过扬声器、传声器提供用户与电子设备之间的音频接口。其中,音频电路407包括麦克风。所述麦克风与所述处理器401电性连接。所述麦克风用于接收用户输入的语音信息。

传感器408用于采集外部环境信息。传感器408可以包括环境亮度传感器、加速度传感器、陀螺仪等传感器中的一种或多种。

电源409用于给电子设备400的各个部件供电。在一些实施例中,电源409可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

虽然图中未示出,电子设备400还可以包括摄像头、蓝牙模块等,在此不再赘述。

在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:

当接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息;

基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件;

根据所述配置文件和所述动态资源数据,创建第一资源实例;

根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。

在一些实施例中,在解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件时,处理器401执行:

解压所述动态资源文件以获取解压数据,并从所述解压数据中获取配置文件;

解析所述配置文件以确定脚本文件格式和渲染类型;

从所述解压数据中获取与所述脚本文件格式对应的动画脚本文件,并从所述解压数据中获取与所述渲染类型匹配的动态资源数据。

在一些实施例中,根据所述配置文件和所述动态资源数据,创建第一资源实例时,处理器401执行:

根据所述配置文件确定渲染类型,并启动所述渲染类型对应的渲染子模块;

基于所述渲染子模块对所述动态资源数据进行处理,生成第一资源实例。

在一些实施例中,根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制时,处理器401执行:

判断当前使用的壁纸是否为动态壁纸;

若否,则通过所述壁纸服务和所述动画脚本文件实现所述第一资源实例,以进行动态壁纸的绘制;

若是,则确定当前的第二资源实例,将所述第二资源实例替换为所述第一资源实例,并基于所述动画脚本文件进行动态壁纸的绘制。

在一些实施例中,基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件之后,处理器401执行:

将所述动态资源数据、配置文件和动画脚本文件添加至预设缓存区域;

根据所述配置文件获取目标动态壁纸标识,并判断预设路径是否存储有与所述目标动态壁纸标识匹配的文件夹;

若否,则基于所述目标动态壁纸标识在所述预设路径中创建目标文件夹,并从所述缓存区域将所述动态资源数据、配置文件和动画脚本文件写入所述目标文件夹,并执行根据所述配置文件和所述动态资源数据,创建第一资源实例。

在一些实施例中,判断预设路径是否存储有与所述目标动态壁纸标识匹配的文件夹之后,处理器401执行:

若是,则从所述文件夹中获取历史配置文件,判断所述历史配置文件与所述配置文件的版本是否相同;

若是,则将清空所述预设缓存区域,并执行根据所述配置文件和所述动态资源数据,创建第一资源实例。

在一些实施例中,获取所述动态壁纸设置指令对应的资源标识信息之前,处理器401执行:

当接收到目标进程发送的动态壁纸设置指令时,判断所述目标进程是否位于进程白名单中;

当所述目标进程位于所述进程白名单中时,执行获取所述动态壁纸设置指令对应的资源标识信息。

由上可知,本申请实施例提供了一种电子设备,所述电子设备在接收到目标进程发送的动态壁纸设置指令时,获取动态壁纸设置指令对应的资源标识信息,基于该资源标识信息获取动态资源文件,并对该动态资源文件进行解析,得到动态资源数据、配置文件和动画脚本文件,然后根据配置文件动态资源数据,创建第一资源实例,根据第一资源实例、动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应动态壁纸设置指令,通过这种方式,当需要通过外部进程设置动态壁纸时,可以基于动态壁纸设置指令将资源标识信息传输至动态壁纸设置进程,动态壁纸设置进程可以通过获取到的资源标识获取到动态资源文件并进行解析处理,以得到用于实现动态壁纸绘制的第一资源实例,壁纸服务基于该第一资源实例进行动态壁纸的绘制,进而实现了跨进程的动态壁纸设置。

本申请实施例还提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,所述计算机执行上述任一实施例所述的动态壁纸设置方法。

需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可以存储于计算机可读存储介质中,所述存储介质可以包括但不限于:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

此外,本申请中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。

以上对本申请实施例所提供的动态壁纸设置方法、装置、存储介质及电子设备进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。


技术特征:

1.一种动态壁纸设置方法,其特征在于,包括:

当接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息;

基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件;

根据所述配置文件和所述动态资源数据,创建第一资源实例;

根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。

2.如权利要求1所述的动态壁纸设置方法,其特征在于,所述解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件,包括:

解压所述动态资源文件以获取解压数据,并从所述解压数据中获取配置文件;

解析所述配置文件以确定脚本文件格式和渲染类型;

从所述解压数据中获取与所述脚本文件格式对应的动画脚本文件,并从所述解压数据中获取与所述渲染类型匹配的动态资源数据。

3.如权利要求1所述的动态壁纸设置方法,其特征在于,所述根据所述配置文件和所述动态资源数据,创建第一资源实例,包括:

根据所述配置文件确定渲染类型,并启动所述渲染类型对应的渲染子模块;

基于所述渲染子模块对所述动态资源数据进行处理,生成第一资源实例。

4.如权利要求1所述的动态壁纸设置方法,其特征在于,所述根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,包括:

判断当前使用的壁纸是否为动态壁纸;

若否,则通过所述壁纸服务和所述动画脚本文件实现所述第一资源实例,以进行动态壁纸的绘制;

若是,则确定当前的第二资源实例,将所述第二资源实例替换为所述第一资源实例,并基于所述动画脚本文件进行动态壁纸的绘制。

5.如权利要求1所述的动态壁纸设置方法,其特征在于,所述基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件之后,还包括:

将所述动态资源数据、配置文件和动画脚本文件添加至预设缓存区域;

根据所述配置文件获取目标动态壁纸标识,并判断预设路径是否存储有与所述目标动态壁纸标识匹配的文件夹;

若否,则基于所述目标动态壁纸标识在所述预设路径中创建目标文件夹,并从所述缓存区域将所述动态资源数据、配置文件和动画脚本文件写入所述目标文件夹,并执行根据所述配置文件和所述动态资源数据,创建第一资源实例。

6.如权利要求5所述的动态壁纸设置方法,其特征在于,所述判断预设路径是否存储有与所述目标动态壁纸标识匹配的文件夹之后,还包括:

若是,则从所述文件夹中获取历史配置文件,判断所述历史配置文件与所述配置文件的版本是否相同;

若是,则将清空所述预设缓存区域,并执行根据所述配置文件和所述动态资源数据,创建第一资源实例。

7.如权利要求1至6任一项所述的动态壁纸设置方法,其特征在于,所述获取所述动态壁纸设置指令对应的资源标识信息之前,还包括:

当接收到目标进程发送的动态壁纸设置指令时,判断所述目标进程是否位于进程白名单中;

当所述目标进程位于所述进程白名单中时,执行获取所述动态壁纸设置指令对应的资源标识信息。

8.一种动态壁纸设置装置,其特征在于,包括:

信息获取单元,用于当接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息;

文件获取单元,用于基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件;

资源解析单元,用于根据所述配置文件和所述动态资源数据,创建第一资源实例;

壁纸绘制单元,用于根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令。

9.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至7任一项所述的动态壁纸设置方法。

10.一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器通过调用所述计算机程序,用于执行如权利要求1至7任一项所述的动态壁纸设置方法。

技术总结
本申请实施例公开了一种动态壁纸设置方法、装置、存储介质及电子设备,其中,本申请实施例在接收到目标进程发送的动态壁纸设置指令时,获取所述动态壁纸设置指令对应的资源标识信息;基于所述资源标识信息获取动态资源文件,解析所述动态资源文件以获取动态资源数据、配置文件和动画脚本文件;根据所述配置文件和所述动态资源数据,创建第一资源实例;根据所述第一资源实例、所述动画脚本文件和壁纸服务实现动态壁纸的绘制,以响应所述动态壁纸设置指令,实现了跨进程的动态壁纸设置。

技术研发人员:邓楚坤;尹宾
受保护的技术使用者:OPPO广东移动通信有限公司
技术研发日:2019.12.31
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-59846.html

最新回复(0)