一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

主题皮肤切换方法、装置、计算机设备及计算机存储介质与流程

2022-06-29 21:06:10 来源:中国专利 TAG:
1.本技术涉及计算机
技术领域
:,尤其涉及一种主题皮肤切换方法、装置、计算机设备及计算机存储介质。
背景技术
::2.随着移动终端开发的愈发成熟,用户对产品的要求也越来越高,例如:用户通常要求应用程序具备主题皮肤切换的功能。然而,传统的主题皮肤切换方法在进行主题皮肤切换时,耗时通常较多,进而导致主题皮肤切换的速率低下。因此,如何提高主题皮肤切换的速率,成为了开发者们重要的研究目标。技术实现要素:3.本技术提供了一种主题皮肤切换方法、装置、计算机设备及计算机存储介质,可提高主题皮肤切换的速率。4.一方面,本技术提供了一种主题皮肤切换方法,该方法包括:5.若存在主题皮肤切换操作,则获取目标主题皮肤包和页面信息,所述页面信息包括一个或多个第一页面元素,以及各个第一页面元素的第一赋值方法;6.遍历所述一个或多个第一页面元素,并在所述目标主题皮肤包中获取当前遍历的目标第一页面元素的目标元素值;7.将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法;8.调用所述一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对所述各个第一页面元素进行更改,得到目标页面。9.一方面,本技术提供了一种主题皮肤切换装置,包括:10.获取单元,用于若存在主题皮肤切换操作,则获取目标主题皮肤包和页面信息,所述页面信息包括一个或多个第一页面元素,以及各个第一页面元素的第一赋值方法;11.遍历单元,用于遍历所述一个或多个第一页面元素,并在所述目标主题皮肤包中获取当前遍历的目标第一页面元素的目标元素值;12.处理单元,用于将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法;13.所述处理单元,还用于调用所述一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对所述各个第一页面元素进行更改,得到目标页面。14.一方面,本技术提供了一种计算机设备,包括:15.处理器,适于实现一条或多条计算机程序;16.计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由所述处理器加载并执行:17.若存在主题皮肤切换操作,则获取目标主题皮肤包和页面信息,所述页面信息包括一个或多个第一页面元素,以及各个第一页面元素的第一赋值方法;遍历所述一个或多个第一页面元素,并在所述目标主题皮肤包中获取当前遍历的目标第一页面元素的目标元素值;将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法;调用所述一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对所述各个第一页面元素进行更改,得到目标页面。18.一方面,本技术提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由处理器加载并执行:19.若存在主题皮肤切换操作,则获取目标主题皮肤包和页面信息,所述页面信息包括一个或多个第一页面元素,以及各个第一页面元素的第一赋值方法;遍历所述一个或多个第一页面元素,并在所述目标主题皮肤包中获取当前遍历的目标第一页面元素的目标元素值;将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法;调用所述一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对所述各个第一页面元素进行更改,得到目标页面。20.一方面,本技术提供了一种计算机程序产品或计算机程序,该计算机程序产品包括计算机程序,该计算机程序存储在计算机存储介质中;计算机设备的处理器从计算机存储介质中读取该计算机程序,处理器执行该计算机程序,使得计算机设备执行:21.若存在主题皮肤切换操作,则获取目标主题皮肤包和页面信息,所述页面信息包括一个或多个第一页面元素,以及各个第一页面元素的第一赋值方法;遍历所述一个或多个第一页面元素,并在所述目标主题皮肤包中获取当前遍历的目标第一页面元素的目标元素值;将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法;调用所述一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对所述各个第一页面元素进行更改,得到目标页面。22.本技术在对应用程序进行主题皮肤切换时,可以先获取各个第一页面元素,以及各个第一页面元素的第一赋值方法,然后基于第一页面元素和第一赋值方法,在目标主题皮肤包中获取目标第一页面元素的目标元素值,在计算机设备得到该目标元素值之后,便可对该目标第一页面元素进行更改,可见,本技术提供的主题皮肤切换方法在对同一页面元素进行不同主题皮肤的更改时,采用的赋值方法都为该页面元素的第一赋值方法,避免了由于不同主题皮肤包中对目标第一页面元素的赋值方法不同,导致的页面元素更改速率低的问题,进而提高了主题皮肤切换的速率。附图说明23.为了更清楚地说明本技术技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。24.图1是本技术提供的一种应用程序页面更新的示意图;25.图2是本技术提供的一种主题皮肤切换方法的示意流程图;26.图3是本技术提供的一种主题皮肤切换方法的流程示意图;27.图4是本技术提供的一种主题皮肤切换方法的示意图;28.图5是本技术提供的一种主题皮肤切换装置的结构示意图;29.图6是本技术提供的一种计算机设备的结构示意图。具体实施方式30.随着互联网的迅猛发展,市场上出现了形形色色的应用程序,大多数功能强大的应用程序,都支持用户在应用程序的设置页面更改该应用程序的主题皮肤,使得该应用程序中的页面元素发生改变,进而使得该应用程序可以以不同的展示效果,显示在运行有该应用程序的计算机设备上。其中,页面元素可以理解为应用程序中任一页面上的按钮颜色、按钮形状、背景图,等等。31.基于此,本技术提供了一种主题皮肤切换方案,该主题皮肤切换方案的大致原理如下:在建立主题皮肤切换事件之后,通过“反射”获取应用程序中的各个初始页面元素的初始赋值方法,并基于每个初始页面元素以及该初始页面元素的初始赋值方法建立映射关系(或称:对应关系),以生成初始全局字典;其中,主题皮肤切换事件可以理解为:承载应用程序进行主题皮肤切换的容器,基于该容器,应用程序便可以进行主题皮肤包的下载、保存、主题皮肤配置文件的修改,以及主题皮肤之间的切换,等。示例性地,主题皮肤切换事件可以包括thememanger单例,主题皮肤配置文件可以包括themecolor类,themecolor类是指:包括页面元素的一种或多种属性的类,如:包括的属性可以有:主题名称、主题色值、图片地址(支持本地图片和网络图片)、uiview(表示屏幕上的一块矩形区域,负责渲染区域的内容,并且响应该区域内发生的触摸事件),以及themecolor子类中属性的setter(赋值)方法。初始页面元素可以指:创建主题皮肤切换事件的过程中创建的页面元素。由于应用程序在运行时,可以在应用程序的代码中获取任意一个类的所有的属性和方法,并可以调用、修改任意一个类或实例的所有属性和方法,那么上述所提及的反射,可以理解为:通过对象和属性的名字获取对象属性的值,如:通过“搜索框”和“搜索框的颜色”获取搜索框的颜色对应的颜色值(如:灰色)。32.进一步地,在应用程序启动之后,可以获取当前页面中的各个页面元素(也可以称:第一页面元素,并构建每个第一页面元素的第一赋值方法,然后用第一赋值方法替换初始赋值方法,进而可更新初始全局字典中的对应关系(将“第一页面元素与初始赋值方法的对应关系”更改为:第一页面元素与第一赋值方法之间的对应关系),得到目标全局字典。其中,当前页面可以理解为应用程序在当前主题皮肤下显示的页面;第一页面元素可以是初始页面元素;第一赋值方法可以理解为:用于统一各个主题皮肤包中,针对同一第一页面元素赋值的赋值方法,以达到提高主题皮肤切换速率的目的。进一步地,在检测到主题皮肤切换行为之后,基于目标全局字典,调用第一赋值方法对该第一赋值方法对应的页面元素进行更改,进而更改当前页面,得到目标页面,该目标页面中的各个页面元素即为目标主题皮肤包对应的各个页面元素。33.请参见图1所示,举例来说,假设应用程序的当前页面(可参见图1中11所示)中存在页面元素“搜索框的形状”(可参见图1中111所示),且主题皮肤包a中“搜索框的形状”的赋值方法为a1,主题皮肤包b中“搜索框的形状”的赋值方法为a2,那么,为了避免在进行主题皮肤切换操作时,由于不同的主题包中采用不同方法对同一页面元素进行赋值,进而导致主题皮肤切换速率慢,本技术将对“搜索框的形状”的赋值方法进行统一;具体地,本技术将构建一个搜索框的形状的第一赋值方法,以对主题皮肤包a和主题皮肤包b中,针对搜索框的形状的赋值方法进行统一,可以理解,在搜索框的形状的赋值方法被统一之后,无论是由当前主题皮肤切换到主题皮肤包a对应的主题皮肤,还是由当前皮肤切换到主题皮肤包b对应的主题皮肤,在对搜索框的形状这一页面元素进行更改时,都将采用该第一赋值方法。因此,当该第一赋值方法被调用后,当前页面中的搜索框的形状将转化为目标页面(可参见图1中12所示)中的搜索框的形状(可参见图1中121所示)。34.在具体实现中,上述主题皮肤切换方案可以由一个计算机设备执行,该计算机设备可以是终端或者服务器。其中,终端可包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、智能电视等;终端内可运行各式各样的客户端(application,app),如多媒体播放客户端、社交客户端、浏览器客户端、信息流客户端、教育客户端,等等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。35.基于上述主题皮肤切换方案的原理描述,本技术提供了一种主题皮肤切换方法,该主题皮肤切换方法可以由上述所提及的计算机设备执行;请参见图2所示,该主题皮肤切换方法包括以下步骤s201-s204:36.s201,若存在主题皮肤切换操作,则获取目标主题皮肤包和页面信息。37.其中,目标主题皮肤包为该应用程序需要切换的主题皮肤包,页面信息包括一个或多个第一页面元素,以及各个第一页面元素的第一赋值方法,此处的一个或多个代表“至少一个”。38.可选地,第一页面元素可以理解控件的属性,那么,第一页面元素可以属于控件。具体地,一个控件可包括至少一个第一页面元素。举例来说,控件可以包括:uiswitch(开关控件)、uislider(进度条控件)、uisearchbar(搜索框控件)、uitableview(列表),等。其中,开关控件可以包括ontintcolor属性(开关状态为“开启”时的颜色)、thumbtintcolor属性(开关控件的状态钮的颜色);uislider(进度条控件)可以包括minimumtracktintcolor属性(滑块左侧的颜色)、maximumtracktintcolor(滑块右侧的颜色)属性和thumbtintcolor属性(滑块的颜色)。uisearchbar(搜索框控件)可以包括bartintcolor(背景颜色)、placeholdercolor属性(占位符颜色)和textcolor属性(文本颜色);uitableview(列表控件)可以包括backgroundcolor属性(背景颜色)、sectionindexcolor属性(索引字体颜色)和sectionindexbackgroundcolor属性(索引背景颜色)。39.s202,遍历一个或多个第一页面元素,并在目标主题皮肤包中获取当前遍历的目标第一页面元素的目标元素值。40.其中,基于上述描述可以理解,第一页面元素的目标元素值可以理解为:控件的属性的值,如:开关的颜色值(红色、蓝色等),开关的字体大小(12px,14px等)。可选地,计算机设备遍历一个或多个第一页面元素可以通过:计算机设备遍历keywindow的rootviewcontroller.view(根视图控制器)及其subviewcontroller.view(子视图控制器)实现,其中,keywindow可以理解为:可获取maincontroller下的所有的视图的页面,该页面可接收到键盘输入和其他非触摸事件的uiwindow(可以理解为一个存放页面元素的容器),在应用程序中,有且只有一个keywindow,且keywindow可以通过uiapplication类获取,uiapplication类需要一个代理对象,以使得计算机设备可以通过代理对象来处理应用程序的主题皮肤切换事件;其中,uiapplication类可以通过计算机设备可以在存储器中调用themechanged方法(主题皮肤切换方法)得到。41.具体应用中,每个页面中包括的页面元素可以看成是树状结构,因此,计算机设备在对一个或多个第一页面元素进行遍历时,可以理解为:计算机设备对subviewcontroller.view.subviews进行递归操作,且递归操作的终止条件为subviews属性为空,即,遍历结束的条件为:所有页面元素都被选中作为过“目标第一页面元素”。示例性地,计算机设备可以在递归体中进行:匹配控件类型,并通过nsselectorfromstring(动态加载实例方法)获取目标第一页面元素的第二赋值方法(可以理解为:目标主题皮肤包中针对目标第一页面元素的赋值方法)。进一步地,当计算机设备匹配控件类型成功时,可以通过目标第一页面元素的第一赋值方法将目标元素值存放在nsinvocation对象中。42.s203,将目标元素值添加至目标第一页面元素的第一赋值方法中,以得到一个或多个第一页面元素的目标赋值方法。43.其中,目标赋值方法可以理解为第一赋值方法与目标元素值的结合,且目标元素值为:与目标第一页面元素匹配的元素值;示例性的,目标元素值可以看做第一赋值方法的参数值。举例来说,假设计算机设备的存储器中有元素值1——“红色”,元素值2——“椭圆形”,那么,若目标第一页面元素为“搜索框的颜色”,计算机设备将从该计算机设备的存储器中匹配到“红色”,并将“红色”作为该“搜索框的颜色”的目标元素值。44.s204,调用一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对各个第一页面元素进行更改,得到目标页面。45.在一个实施例中,计算机设备可以通过nsinvocation对象,对第一页面元素进行批量更新,从而渲染页面。具体地,计算机设备批量更新的方式可以是:将同一页面的第一页面元素进行同一批次的更新;也可以是:将同一类型的第一页面元素进行同一批次的更新,等,本技术在此不做限制。46.综上所述,计算机设备进行主题皮肤切换操作的完整流程可参见图3所示。47.基于上述描述可知,本技术在对应用程序进行主题皮肤切换之前,已经提前给该应用程序中的各个页面元素的赋值方法进行了统一,因此在计算机设备进行主题皮肤切换时,只需要获取需要进行更改的各个第一页面元素,以及各个第一页面元素的第一赋值方法,然后基于第一页面元素和第一赋值方法,在目标主题皮肤包中获取目标第一页面元素的目标元素值,在计算机设备得到该目标元素值之后,便可对该目标第一页面元素进行更改,避免了由于不同主题皮肤包中对目标第一页面元素的赋值方法不同,导致的页面元素更改速率低的问题,进而提高了主题皮肤切换的速率。48.请参见图4,图4是本技术提供的一种主题皮肤切换方法,该方法可包括如下步骤s401-s405:49.s401,若存在主题皮肤切换操作,则获取目标主题皮肤包和页面信息。50.在一个实施例中,若存在主题皮肤切换操作,计算机设备可以先获取目标主题皮肤包的主题皮肤包标识,然后计算机设备可以先根据目标主题皮肤包的主题皮肤包标识,在存储器中查找目标主题皮肤包;若存储器中存在目标主题皮肤包,则从存储器中获取目标主题皮肤包。对应地,若存储器中不存在目标主题皮肤包,则获取目标主题皮肤包的下载地址,并基于目标主题皮肤包的下载地址下载目标主题皮肤包,然后将目标主题皮肤包存储至存储器中。51.示例性地,计算机设备在检测到主题皮肤切换操作后,可以通过thememanager(主题皮肤切换事件)先判断计算机设备的存储器中是否已经存在将要切换的目标主题皮肤包,若不存在,则计算机设备可以下载该目标主题皮肤包,并在下载完成后解析出当前页面中各个页面元素所需的资源素材(可以理解为:元素值,如:图片资源、通用色值、特殊页面色值、文案、页面背景图、导航栏颜色以及部分定制页面颜色,等),同时计算机设备可以将该资源素材异步写入该计算机设备的存储器中,以使得计算机设备可以从该计算机设备的存储器中遍历得到该一个或多个第一页面元素。52.s402,遍历一个或多个第一页面元素,并在目标主题皮肤包中获取当前遍历的目标第一页面元素的目标元素值。53.其中,目标主题皮肤包还可以包括一个或多个第二赋值方法,以及该一个或多个第二赋值方法中各个第二赋值方法的元素值。其中,第二赋值方法可以理解为:目标主题皮肤包中的设置的各个第一页面元素的赋值方法。具体实现中,计算机设备可以将当前正在遍历的第一页面元素作为目标第一页面元素,然后针对每一个目标页面元素,计算机设备可以执行如下步骤:将目标第一页面元素与一个或多个第二赋值方法进行匹配,匹配的主要目的是:判断计算机设备在切换至目标主题皮肤包对应的主题皮肤时,目标第一页面元素是否存在第二赋值方法,进而判断该目标第一页面元素能否被更新。54.在一个实施例中,若目标第一页面元素与一个或多个第二赋值方法中的一个第二赋值方法匹配,则将一个或多个第二赋值方法中与目标第一页面元素匹配的第二赋值方法,确定为目标第一页面元素的第二赋值方法,并将目标主题皮肤包中,目标第一页面元素的第二赋值方法的元素值确定为目标第一页面元素的目标元素值;若目标第一页面元素与一个或多个第二赋值方法均不匹配,则生成第一提示信息,示例性地,该第一提示信息中可包括目标第一页面元素的信息,以及目标第一页面元素更新失败的第一原因。其中,第一页面元素的信息可以例如是:目标第一页面元素的元素标识,第一原因可以例如是:目标主题皮肤包中不存在目标第一页面元素的赋值方法。55.在又一个实施例中,当计算机设备确定出目标第一页面元素的第二赋值方法之后,计算机设备可以根据该目标第一页面元素的第二赋值,在目标主题皮肤包中查找该目标第一页面元素对应的元素值;若该目标主题皮肤包中存在该目标第一页面元素的第二赋值方法的参数值(即:目标第一页面元素的元素值),计算机设备则可以执行:将目标主题皮肤包中,目标第一页面元素的第二赋值方法的元素值确定为目标第一页面元素的目标元素值的步骤。56.对应地,若目标主题皮肤包中不存在目标第一页面元素的第二赋值方法的目标元素值,则生成第二提示信息。示例性地,该第二提示信息可包括目标第一页面元素的信息,以及目标第一页面元素更新失败的第二原因,其中,目标第一页面元素的信息可以例如是:目标第一页面元素的元素标识、目标第一页面元素的位置信息,等;第二原因可以例如是:目标主题皮肤包中不存在与该目标第一页面元素的第二赋值方法的参数值(或称:该第二赋值方法的参数值为空),第二赋值方法的参数值不适用于该目标第一页面元素(如:字符串格式错误)。57.在一个实施例中,当计算机设备为终端,若计算机设备中存在主题皮肤切换操作后生成的提示信息的数量达到目标数量,计算机设备可以将生成的提示信息发送至服务器;以使得服务器可基于生成的提示信息对目标主题皮肤包进行修改,得到主题皮肤修改数据包,该主题皮肤修改数据包可以用于对各个第一页面元素进行更改,得到目标页面。进一步地,计算机设备可以接收该服务器发送的主题皮肤修改数据包,以使得下一次计算机设备在进行该目标主题皮肤包对应的主题皮肤切换时,可使用该主题皮肤修改数据包,进而可避免目标第一页面元素更新失败的问题。其中,生成的提示信息可以包括第一提示信息或第二提示信息;但实际应用中,生成的提示信息还可以同时包括第一提示信息和第二提示信息,那么可以理解,此时,该生成的提示信息的数量可以是第一提示信息的数量和第二提示信息的数量之和;需要说明的是,在其他实施方式中,生成的提示信息还可以包括其他提示信息,那么对应的,生成的提示信息的数量至少包括其他提示信息的数量,本技术对生成的提示信息的种类不作限制。58.s403,获取目标元素替换对象。59.其中,目标元素替换对象包括目标第一页面元素的第一赋值方法。具体实现中,计算机设备可以先获取当前页面中的一个或多个第一页面元素,并生成该当前页面中的一个或多个第一页面元素中,各个第一页面元素的第一赋值方法;然后计算机设备可以根据各个第一页面元素的第一赋值方法对元素替换对象进行初始化处理,得到目标元素替换对象。示例性地,元素替换对象可以理解为上述步骤s202中提及的“nsinvocation对象”,目标元素替换对象可以理解为存储了应用程序中各个第一页面元素的赋值方法的容器,计算机设备可以基于该容器,对各个第一页面元素进行更新。60.在一个实施例中,目标页面元素可以通过如下方法得到:计算机设备可以先获取各个历史主题皮肤包中的一个或多个第三赋值方法,其中,各个历史主题皮肤包是在主题皮肤切换操作前下载的,即:历史主题皮肤包位于计算机设备的存储器中。然后计算机设备可以遍历该一个或多个第三赋值方法,并将当前遍历的目标第三赋值方法与当前页面中的一个或多个第一页面元素进行匹配;若一个或多个第三赋值方法中的各个第三赋值方法均匹配成功,则保持目标元素替换对象不变。61.举例来说,假设已下载的历史主题皮肤包包括历史主题皮肤包1和历史主题皮肤包2,历史主题皮肤包1包括页面元素a的第三赋值方法和页面元素b的第三赋值方法,历史主题皮肤包2包括页面元素a的第三赋值方法和页面元素c的第三赋值方法,那么,若该一个或多个第一页面元素中包括页面元素a和页面元素b,则:当计算机设备正在遍历的目标第三赋值方法为页面元素a的第三赋值方法,或页面元素b的第三赋值方法时,由于计算机设备能够在该一个或多个第一页面元素中匹配到页面元素a或页面元素b,因此,此次遍历将不对元素替换对象进行更新。62.对应地,若目标第三赋值方法匹配失败,计算机设备则可以生成目标第三赋值方法对应的第二页面元素,以及该第二页面元素的第一赋值方法,并根据该第二页面元素的第一赋值方法对元素替换对象进行初始化处理,得到目标元素替换对象。63.举例来说,假设已下载的历史主题皮肤包包括历史主题皮肤包1和历史主题皮肤包2,历史主题皮肤包1包括页面元素a的第三赋值方法和页面元素b的第三赋值方法,历史主题皮肤包2包括页面元素a的第三赋值方法和页面元素c的第三赋值方法,那么,若目标第三赋值方法为页面元素c的赋值方法时,由于该一个或多个第一页面元素中不包括页面元素c,因此,计算机设备将无法匹配到第三赋值方法对应的页面元素,进而计算机设备将基于该第三赋值方法生成页面元素c以及该页面元素c的第一赋值方法,并根据页面元素c的第一赋值方法对元素对象进行更新,以得到目标元素对象。例如:计算机设备对历史主题皮肤包中“uisearchbar(搜索框控件)的背景图片”的第三赋值方法进行遍历时,若该一个或多个第一页面元素中不存在“搜索框的背景图片”,那么,计算机设备可以通过instancemethodsignatureforselector(选择器的实例方法签名)创建nsmethodsignature(方法签名)签名对象,并采用searchfieldbackgroundimageforstate(一种获取搜索框的背景图片的方法)获取到当前状态下搜索框的背景图片。其中,签名对象记录着某个方法的返回值类型信息,以及该方法对应的参数类型信息,它用于转发消息接收者无法响应的消息,即用于“消息转发”,所谓的消息转发是指:计算机设备在调用函数时,能够在应用程序运行时捕获到某个函数的方法签名,通过方法签名将消息转发到其它对象进行处理。进一步地,计算机设备可以将获取到的签名对象作为参数,初始化nsinvocation对象,然后计算机设备还可以将当前状态下的背景图片进行标记,以使得检测到主题皮肤切换操作后,计算机设备可以通过nsinvocation对象获取到该“搜索框的背景图片”的元素值,从而对标记的背景图进行更新。64.在另一个实施例中,目标元素切换对象还可以通过如下方式得到:计算机设备可以先获取初始全局字典,其中,初始全局字典包括一个或多个初始页面元素中,各个初始页面元素与各个初始页面元素的初始赋值方法的对应关系。具体实现中,计算机设备在获取初始全局字典之前,可以先建立初始全局字典。具体地,计算机设备可以通过生成一个或多个初始页面元素,以及各个初始页面元素的初始赋值方法;并建立各个初始页面元素与各个初始页面元素的初始赋值方法之间的对应关系,然后计算机设备再基于各个初始页面元素与各个初始页面元素的初始赋值方法之间的对应关系,构建得到该初始全局字典。示例性地,计算机构建初始全局字典的方法可以例如是:通过api-nsstringfromselector调用(一种函数,可用于返回方法名)获取到各个属性的初始赋值方法,将其映射在thememanager单例对象中,生成全局字典。其中,api-nsstringfromselector可用于将sel对象转为nsstring对象,所谓的sel对象是指:selector对象,用于保存一个方法的地址,即:根据一个sel对象可以找到方法的地址;thememanger单例对象可以理解为一种特殊的类,有且只有一个实例。65.进一步地,当计算机设备在得到初始全局字典之后,可以对初始全局字典中的各个初始页面元素与各个初始页面元素的初始赋值方法的对应关系进行调整,得到目标全局字典,目标全局字典包括各个初始页面元素与各个初始页面元素的第一赋值方法的对应关系;那么,计算机设备可以基于该目标全局字典,根据各个初始页面元素的第一赋值方法对元素替换对象进行初始化处理,以得到目标元素替换对象。66.s404,将目标元素值添加至目标元素替换对象中,通过目标元素替换对象将目标元素值添加至目标第一页面元素的第一赋值方法中,以得到一个或多个第一页面元素的目标赋值方法。67.在一个实施例中,当计算机设备获取到目标第一页面元素的目标元素值之后,可以将该目标元素值添加至目标元素替换对象中,可以理解,目标第一页面元素和目标元素值具有对应关系;又由于目标元素替换对象中包括各个第一页面元素的第一赋值方法,且目标全局字典中包括各个第一页面元素与其第一赋值方法的对应关系,那么,进一步地可以理解,计算机设备可以根据目标元素值匹配到该目标元素值对应的第一赋值方法,进而可以将目标元素值添加至该目标元素值对应的第一赋值方法中,以得到该第一页面元素的目标赋值方法。68.s405,调用一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对各个第一页面元素进行更改,得到目标页面。69.在一个实施例中,步骤s405中的相关具体实施例可参见步骤s204的描述,本技术在此不再赘述。70.基于上述描述,本技术在对应用程序进行主题皮肤切换之前,已经提前给该应用程序中的各个页面元素的赋值方法进行了统一,因此在计算机设备进行主题皮肤切换时,只需要获取需要进行更改的各个第一页面元素,以及各个第一页面元素的第一赋值方法,然后基于第一页面元素和第一赋值方法,在目标主题皮肤包中获取目标第一页面元素的目标元素值,在计算机设备得到该目标元素值之后,便可对该目标第一页面元素进行更改,避免了由于不同主题皮肤包中对目标第一页面元素的赋值方法不同,导致的页面元素更改速率低的问题,进而提高了主题皮肤切换的速率。此外,本技术可以获取应用程序中,任何页面元素更新失败后生成的提示信息,并在提示信息达到预设数量之后,对该提示信息指示的目标主题皮肤包进行修改,以解决该提示信息对应的主题皮肤切换问题,使得本技术提供的主题皮肤切换方法能够监控主题皮肤切换的错误率(即:本技术能够对每个页面元素进行主题皮肤切换的容错处理),增加用户粘性,优化用户体验。71.基于上述主题皮肤切换方法相关实施例的描述,本技术还公开了一种主题皮肤切换装置,该主题皮肤切换装置可以是运行于上述所提及的计算机设备中的一个计算机程序(包括程序代码)。该主题皮肤切换装置可以执行如图2和图4所示的方法,请参见图5,所述主题皮肤切换装置至少可以包括:获取单元501,遍历单元502和处理单元503。72.获取单元501,用于若存在主题皮肤切换操作,则获取目标主题皮肤包和页面信息,所述页面信息包括一个或多个第一页面元素,以及各个第一页面元素的第一赋值方法;73.遍历单元502,用于遍历所述一个或多个第一页面元素,并在所述目标主题皮肤包中获取当前遍历的目标第一页面元素的目标元素值;74.处理单元503,用于将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法;75.所述处理单元503,还用于调用所述一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对所述各个第一页面元素进行更改,得到目标页面。76.在一种实施方式中,所述目标主题皮肤包包括一个或多个第二赋值方法以及所述一个或多个第二赋值方法中各个第二赋值方法的元素值,所述处理单元503可以具体执行:77.将所述目标第一页面元素与所述一个或多个第二赋值方法进行匹配;78.若所述目标第一页面元素与所述一个或多个第二赋值方法中的一个第二赋值方法匹配,则将所述一个或多个第二赋值方法中与所述目标第一页面元素匹配的第二赋值方法,确定为所述目标第一页面元素的第二赋值方法,并将所述目标主题皮肤包中,所述目标第一页面元素的第二赋值方法的元素值确定为所述目标第一页面元素的目标元素值;79.若所述目标第一页面元素与所述一个或多个第二赋值方法均不匹配,则生成第一提示信息。80.在又一种实施方式中,所述处理单元503还用于执行:81.若所述目标主题皮肤包中存在所述目标第一页面元素的第二赋值方法的元素值,则执行所述:将所述目标主题皮肤包中,所述目标第一页面元素的第二赋值方法的元素值确定为所述目标第一页面元素的目标元素值的步骤;82.若所述目标主题皮肤包中不存在所述目标第一页面元素的第二赋值方法的目标元素值,则生成第二提示信息。83.在又一种实施方式中,所述处理单元503还具体用于执行:84.当存在所述主题皮肤切换操作后生成的提示信息的数量达到目标数量时,将所述生成的提示信息发送至服务器,所述生成的提示信息包括所述第一提示信息或所述第二提示信息;85.接收所述服务器发送的主题皮肤修改数据包,所述主题皮肤修改数据包是所述服务器基于所述生成的提示信息,对所述目标主题皮肤包进行修改后得到的,所述主题皮肤修改数据包用于对所述各个第一页面元素进行更改,得到目标页面。86.在又一种实施方式中,所述处理单元503在执行将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法时,具体用于执行:87.获取目标元素替换对象,所述目标元素替换对象包括所述目标第一页面元素的第一赋值方法;88.将所述目标元素值添加至所述目标元素替换对象中,通过所述目标元素替换对象将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法;89.所述处理单元503在执行调用所述一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对所述各个第一页面元素进行更改,得到目标页面时,具体执行:90.基于所述目标元素替换对象,调用一个或多个目标赋值方法,对所述一个或多个目标赋值方法中各个目标赋值方法对应的第一页面元素进行更改,得到所述目标页面。91.在又一种实施方式中,所述获取单元501还具体用于执行:92.获取当前页面中的一个或多个第一页面元素,并生成所述当前页面中的一个或多个第一页面元素中,各个第一页面元素的第一赋值方法;93.根据所述各个第一页面元素的第一赋值方法对元素替换对象进行初始化处理,得到所述目标元素替换对象。94.在又一种实施方式中,所述获取单元501还用于执行:95.获取各个历史主题皮肤包中的一个或多个第三赋值方法,所述各个历史主题皮肤包是在所述主题切换操作前下载的;96.遍历所述一个或多个第三赋值方法,并将当前遍历的目标第三赋值方法与所述当前页面中的一个或多个第一页面元素进行匹配;97.若所述一个或多个第三赋值方法中的各个第三赋值方法均匹配成功,则保持所述目标元素替换对象不变;98.若所述目标第三赋值方法匹配失败,则生成所述目标第三赋值方法对应的第二页面元素,以及所述第二页面元素的第一赋值方法,并根据所述第二页面元素的第一赋值方法对所述元素替换对象进行初始化处理,得到所述目标元素替换对象。99.在又一种实施方式中,所述获取单元501还可以用于执行:100.获取初始全局字典,所述初始全局字典包括一个或多个初始页面元素中,各个初始页面元素与所述各个初始页面元素的初始赋值方法的对应关系;101.对所述初始全局字典中的所述各个初始页面元素与所述各个初始页面元素的初始赋值方法的对应关系进行调整,得到目标全局字典,所述目标全局字典包括所述各个初始页面元素与所述各个初始页面元素的第一赋值方法的对应关系;102.所述根据所述各个初始页面元素的第一赋值方法对元素替换对象进行初始化处理,得到所述目标元素替换对象,包括:103.基于所述目标全局字典,根据所述各个初始页面元素的第一赋值方法对元素替换对象进行初始化处理,得到所述目标元素替换对象。104.在又一种实施方式中,所述处理单元503还可以用于执行:105.生成所述一个或多个初始页面元素,以及所述各个初始页面元素的初始赋值方法;106.建立所述各个初始页面元素与所述各个初始页面元素的初始赋值方法之间的对应关系,并基于所述各个初始页面元素与所述各个初始页面元素的初始赋值方法之间的对应关系,构建所述初始全局字典。107.在又一种实施方式中,所述获取单元501还用于执行:108.根据所述目标主题皮肤包的主题皮肤包标识,在存储器中查找所述目标主题皮肤包;109.若所述存储器中存在所述目标主题皮肤包,则从所述存储器中获取所述目标主题皮肤包;110.若所述存储器中不存在所述目标主题皮肤包,则基于所述目标主题皮肤包的下载地址下载所述目标主题皮肤包,并将所述目标主题皮肤包存储至所述存储器中。111.根据本技术的一个实施例,图2和图4所示的方法所涉及各个步骤可以是由图5所示的主题皮肤切换装置中的各个单元来执行的。例如,图2所示的步骤s201可由图5所示的主题皮肤切换装置中的获取单元501来执行;步骤s202可由图5所示的主题皮肤切换装置中的遍历单元502来执行;步骤s203和步骤s204均可由图5所示的主题皮肤切换装置中的处理单元503来执行。再如,图4所示的步骤s401和步骤s403均可由图5所示的主题皮肤切换装置中的获取单元501来执行;步骤s402可由图5所示的主题皮肤切换装置中的遍历单元502来执行;步骤s404和步骤s405均可由图5所示的主题皮肤切换装置中的处理单元503来执行。112.根据本技术的另一个实施例,图5所示的主题皮肤切换装置中的各个单元是基于逻辑功能划分的,上述各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本技术的实施例的技术效果的实现。在本技术的其它实施例中,上述基于主题皮肤切换装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。113.根据本技术的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图4所示的方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图5中所示的主题皮肤切换装置,以及来实现本技术实施例的主题皮肤切换方法。所述计算机程序可以记载于例如计算机存储介质上,并通过计算机存储介质装载于上述计算设备中,并在其中运行。114.本技术提供的主题皮肤切换装置在对应用程序进行主题皮肤切换时,可以先获取各个第一页面元素,以及各个第一页面元素的第一赋值方法,然后基于第一页面元素和第一赋值方法,在目标主题皮肤包中获取目标第一页面元素的目标元素值,在计算机设备得到该目标元素值之后,便可对该目标第一页面元素进行更改,可见,本技术提供的主题皮肤切换方法在对同一页面元素进行不同主题皮肤的更改时,采用的赋值方法都为该页面元素的第一赋值方法,避免了由于不同主题皮肤包中对目标第一页面元素的赋值方法不同,导致的页面元素更改速率低的问题,进而提高了主题皮肤切换的速率。115.基于上述方法实施例以及装置实施例的描述,本技术还提供了一种计算机设备,请参见图6。该计算机设备至少包括处理器601、输入接口602、输出接口603,以及计算机存储介质604,且计算机设备的处理器601、输入接口602、输出接口603,以及计算机存储介质604可通过总线或其他方式连接。116.所述计算机存储介质602是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质602既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机存储介质602提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器601加载并执行的一条或多条的计算机程序,这些计算机程序可以是一个或一个以上的程序代码。需要说明的是,此处的计算机存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。所述处理器601(或称cpu(centralprocessingunit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机程序,具体适于加载并执行一条或多条计算机程序从而实现相应方法流程或相应功能。117.在一个实施例中,可由处理器601加载并执行计算机存储介质602中存放的一条或多条计算机程序,以实现上述有关图2和图4所示的方法实施例中的相应方法步骤;具体实现中,计算机存储介质602中的一条或多条计算机程序由处理器601加载并执行如下步骤:118.若存在主题皮肤切换操作,则获取目标主题皮肤包和页面信息,所述页面信息包括一个或多个第一页面元素,以及各个第一页面元素的第一赋值方法;遍历所述一个或多个第一页面元素,并在所述目标主题皮肤包中获取当前遍历的目标第一页面元素的目标元素值;将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法;调用所述一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对所述各个第一页面元素进行更改,得到目标页面。119.在一种实施方式中,所述目标主题皮肤包包括一个或多个第二赋值方法以及所述一个或多个第二赋值方法中各个第二赋值方法的元素值,所述处理器601可用于加载并执行:120.将所述目标第一页面元素与所述一个或多个第二赋值方法进行匹配;121.若所述目标第一页面元素与所述一个或多个第二赋值方法中的一个第二赋值方法匹配,则将所述一个或多个第二赋值方法中与所述目标第一页面元素匹配的第二赋值方法,确定为所述目标第一页面元素的第二赋值方法,并将所述目标主题皮肤包中,所述目标第一页面元素的第二赋值方法的元素值确定为所述目标第一页面元素的目标元素值;122.若所述目标第一页面元素与所述一个或多个第二赋值方法均不匹配,则生成第一提示信息。123.在又一种实施方式中,所述处理器601可用于加载并执行:124.若所述目标主题皮肤包中存在所述目标第一页面元素的第二赋值方法的元素值,则执行所述:将所述目标主题皮肤包中,所述目标第一页面元素的第二赋值方法的元素值确定为所述目标第一页面元素的目标元素值的步骤;125.若所述目标主题皮肤包中不存在所述目标第一页面元素的第二赋值方法的目标元素值,则生成第二提示信息。126.在又一种实施方式中,所述输出接口603可用于加载并执行:127.当存在所述主题皮肤切换操作后生成的提示信息的数量达到目标数量时,将所述生成的提示信息发送至服务器,所述生成的提示信息包括所述第一提示信息或所述第二提示信息;128.所述输入接口602可用于加载并执行:接收所述服务器发送的主题皮肤修改数据包,所述主题皮肤修改数据包是所述服务器基于所述生成的提示信息,对所述目标主题皮肤包进行修改后得到的,所述主题皮肤修改数据包用于对所述各个第一页面元素进行更改,得到目标页面。129.在又一种实施方式中,所述处理器601在执行将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法时,可用于加载并执行:130.获取目标元素替换对象,所述目标元素替换对象包括所述目标第一页面元素的第一赋值方法;131.将所述目标元素值添加至所述目标元素替换对象中,通过所述目标元素替换对象将所述目标元素值添加至所述目标第一页面元素的第一赋值方法中,以得到所述一个或多个第一页面元素的目标赋值方法;132.所述处理器601在执行调用所述一个或多个第一页面元素中的各个第一页面元素的目标赋值方法,对所述各个第一页面元素进行更改,得到目标页面时,可用于加载并执行:133.基于所述目标元素替换对象,调用一个或多个目标赋值方法,对所述一个或多个目标赋值方法中各个目标赋值方法对应的第一页面元素进行更改,得到所述目标页面。134.在又一种实施方式中,所述处理器601还具体用于加载并执行:135.获取当前页面中的一个或多个第一页面元素,并生成所述当前页面中的一个或多个第一页面元素中,各个第一页面元素的第一赋值方法;136.根据所述各个第一页面元素的第一赋值方法对元素替换对象进行初始化处理,得到所述目标元素替换对象。137.在又一种实施方式中,所述处理器601还具体用于加载并执行:138.获取各个历史主题皮肤包中的一个或多个第三赋值方法,所述各个历史主题皮肤包是在所述主题切换操作前下载的;139.遍历所述一个或多个第三赋值方法,并将当前遍历的目标第三赋值方法与所述当前页面中的一个或多个第一页面元素进行匹配;140.若所述一个或多个第三赋值方法中的各个第三赋值方法均匹配成功,则保持所述目标元素替换对象不变;141.若所述目标第三赋值方法匹配失败,则生成所述目标第三赋值方法对应的第二页面元素,以及所述第二页面元素的第一赋值方法,并根据所述第二页面元素的第一赋值方法对所述元素替换对象进行初始化处理,得到所述目标元素替换对象。142.在又一种实施方式中,所述处理器601还具体用于加载并执行:143.获取初始全局字典,所述初始全局字典包括一个或多个初始页面元素中,各个初始页面元素与所述各个初始页面元素的初始赋值方法的对应关系;144.对所述初始全局字典中的所述各个初始页面元素与所述各个初始页面元素的初始赋值方法的对应关系进行调整,得到目标全局字典,所述目标全局字典包括所述各个初始页面元素与所述各个初始页面元素的第一赋值方法的对应关系;145.所述根据所述各个初始页面元素的第一赋值方法对元素替换对象进行初始化处理,得到所述目标元素替换对象,包括:146.基于所述目标全局字典,根据所述各个初始页面元素的第一赋值方法对元素替换对象进行初始化处理,得到所述目标元素替换对象。147.在又一种实施方式中,所述处理器601还具体用于加载并执行:148.生成所述一个或多个初始页面元素,以及所述各个初始页面元素的初始赋值方法;149.建立所述各个初始页面元素与所述各个初始页面元素的初始赋值方法之间的对应关系,并基于所述各个初始页面元素与所述各个初始页面元素的初始赋值方法之间的对应关系,构建所述初始全局字典。150.在又一种实施方式中,所述处理器601还具体用于加载并执行:151.根据所述目标主题皮肤包的主题皮肤包标识,在存储器中查找所述目标主题皮肤包;152.若所述存储器中存在所述目标主题皮肤包,则从所述存储器中获取所述目标主题皮肤包;153.若所述存储器中不存在所述目标主题皮肤包,则基于所述目标主题皮肤包的下载地址下载所述目标主题皮肤包,并将所述目标主题皮肤包存储至所述存储器中。154.本技术提供的计算机设备在对应用程序进行主题皮肤切换时,可以先获取各个第一页面元素,以及各个第一页面元素的第一赋值方法,然后基于第一页面元素和第一赋值方法,在目标主题皮肤包中获取目标第一页面元素的目标元素值,在计算机设备得到该目标元素值之后,便可对该目标第一页面元素进行更改,可见,本技术提供的主题皮肤切换方法在对同一页面元素进行不同主题皮肤的更改时,采用的赋值方法都为该页面元素的第一赋值方法,避免了由于不同主题皮肤包中对目标第一页面元素的赋值方法不同,导致的页面元素更改速率低的问题,进而提高了主题皮肤切换的速率。155.本技术还提供了一种计算机存储介质,该计算机存储介质中存储了上述主题皮肤切换方法的计算机程序,该计算机程序包括程序指令,当一个或多个处理器加载并执行该程序指令,可以实现实施例中对主题皮肤切换方法的描述,在此不再赘述。对采用相同方法的有益效果的描述,在此不再赘述。可以理解的是,程序指令可以被部署在一个或多个能够相互通信的设备上执行。156.需要说明的是,根据本技术的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备中的处理器从计算机可读存储介质读取该计算机指令,然后执行该计算机指令,进而使得该计算机设备能够执行上述图2和图4所示的主题皮肤切换方法实施例方面的各种可选方式中提供的方法。157.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可存储于计算机可读取存储介质中,该计算机程序在执行时,可包括如上述主题皮肤切换方法的实施例的流程。其中,所述的计算机可读取存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。158.以上所揭露的仅为本技术的局部实施例而已,当然不能以此来限定本技术之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或局部流程,并依本技术权利要求所作的等同变化,仍属于发明所涵盖的范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献