用户界面主题更新方法、装置、系统、车机及车辆与流程

文档序号:18188289发布日期:2019-07-17 05:27阅读:235来源:国知局
用户界面主题更新方法、装置、系统、车机及车辆与流程

本发明涉及计算机技术领域,具体涉及一种用户界面主题更新方法、装置、系统、车机及车辆。



背景技术:

终端设备的用户界面(userinterface,ui)是终端设备与用户之间进行交互和信息交换的媒介,用户界面的主题指的是包括窗口色彩、控件布局和图标样式等内容的界面风格。

当前对基于android操作系统的用户界面进行主题更新时往往需要中断终端设备的当前操作,并且在对用户界面的全部资源对象重新加载完成后才能继续执行之前的操作,这种更新方法不仅会影响用户对终端设备的操作体验性,还会增加用户界面的主题更新时间。



技术实现要素:

为了解决现有技术中的上述问题,即为了解决如何在不中断用户界面当前执行操作的前提下快速更新用户界面主题的技术问题。为此目的,本发明提供了一种用户界面主题更新方法、装置、系统、车机及车辆。

在第一方面,本发明提供的一种用户界面主题更新方法,应用于基于android操作系统的用户界面,其主要包括以下步骤:

切换所述android操作系统中当前内存对象树的资源获取路径,随后重新生成内存对象树;

利用所述重新生成的内存对象树中预先标注的资源对象替换所述当前内存对象树中相应标注的资源对象,得到目标内存对象树;

根据所述目标内存对象树生成用户界面主题。

进一步地,本发明提供的一个可选技术方案是:

“重新生成内存对象树”的步骤包括:

提取所述当前内存对象树中view类的layout文件信息;

根据所述layout文件信息重新生成内存对象树。

进一步地,本发明提供的一个可选技术方案是:

“利用所述重新生成的内存对象树中预先标注的资源对象替换所述当前内存对象树中相应标注的资源对象”的步骤包括:

利用java反射动态替换所述当前内存对象树中的资源对象。

进一步地,本发明提供的一个可选技术方案是:

在“切换所述android操作系统中当前内存对象树的资源获取路径,随后重新生成内存对象树”的步骤之前,所述方法还包括:

根据所述view类的成员变量的java注解获取所述预先标注的资源对象。

在第二方面,本发明提供的一种用户界面主题更新系统,应用于基于android操作系统的用户界面,具体包括第一内存对象树获取模块、第二内存对象树获取模块和用户界面更新模块;

所述第一内存对象树获取模块配置为切换所述android操作系统中当前内存对象树的资源获取路径,随后重新生成内存对象树;

所述第二内存对象树获取模块配置为利用所述重新生成的内存对象树中预先标注的资源对象替换所述当前内存对象树中相应标注的资源对象,得到目标内存对象树;

所述用户界面更新模块配置为根据所述目标内存对象树生成用户界面主题。

进一步地,本发明提供的一个可选技术方案是:

所述第一内存对象树获取模块进一步配置为:

提取所述当前内存对象树中view类的layout文件信息;

根据所述layout文件信息重新生成内存对象树。

进一步地,本发明提供的一个可选技术方案是:

所述第二内存对象树获取模块进一步配置为利用java反射动态调替换所述当前内存对象树中预先标注的资源对象。

进一步地,本发明提供的一个可选技术方案是:

所述系统还包括资源对象获取模块,所述资源对象获取模块配置为根据所述view类的成员变量的java注解获取所述预先标注的资源对象。

在第三方面,本发明提供的一种车机包括人机交互模块和上述技术方案中任一项所述的用户界面主题更新系统,所述用户界面主题更新系统配置为更新所述人机交互模块的用户界面主题。

在第四方面,本发明提供的一种车辆包括上述技术方案所述的车机。

在第五方面,本发明提供的一种存储装置,其中存储有多条程序,所述程序适于由处理器加载以执行上述技术方案中任一项所述的用户界面主题更新方法。

在第六方面,本发明提供的一种控制装置,包括处理器和存储设备,所述存储设备适于存储多条程序,所述程序适于由所述处理器加载以执行上述技术方案中任一项所述的用户界面主题更新方法。

方案1、一种用户界面主题更新方法,应用于基于android操作系统的用户界面,其包括:

切换所述android操作系统中当前内存对象树的资源获取路径,随后重新生成内存对象树;

利用所述重新生成的内存对象树中预先标注的资源对象替换所述当前内存对象树中相应标注的资源对象,得到目标内存对象树;

根据所述目标内存对象树生成用户界面主题。

方案2、根据方案1所述的用户界面主题更新方法,其特征在于,“重新生成内存对象树”的步骤包括:

提取所述当前内存对象树中view类的layout文件信息;

根据所述layout文件信息重新生成内存对象树。

方案3、根据方案2所述的用户界面主题更新方法,其特征在于,“利用所述重新生成的内存对象树中预先标注的资源对象替换所述当前内存对象树中相应标注的资源对象”的步骤包括:

利用java反射动态替换所述当前内存对象树中的资源对象。

方案4、根据方案1至3中任一项所述的用户界面主题更新方法,其特征在于,在“切换所述android操作系统中当前内存对象树的资源获取路径,随后重新生成内存对象树”的步骤之前,所述方法还包括:

根据所述view类的成员变量的java注解获取所述预先标注的资源对象。

方案5、一种用户界面主题更新系统,应用于基于android操作系统的用户界面,具体包括第一内存对象树获取模块、第二内存对象树获取模块和用户界面更新模块;

所述第一内存对象树获取模块配置为切换所述android操作系统中当前内存对象树的资源获取路径,随后重新生成内存对象树;

所述第二内存对象树获取模块配置为利用所述重新生成的内存对象树中预先标注的资源对象替换所述当前内存对象树中相应标注的资源对象,得到目标内存对象树;

所述用户界面更新模块配置为根据所述目标内存对象树生成用户界面主题。

方案6、根据方案5所述的用户界面主题更新系统,其特征在于,所述第一内存对象树获取模块进一步配置为:

提取所述当前内存对象树中view类的layout文件信息;

根据所述layout文件信息重新生成内存对象树。

方案7、根据方案6所述的用户界面主题更新系统,其特征在于,所述第二内存对象树获取模块进一步配置为利用java反射动态替换所述当前内存对象树中的资源对象。

方案8、根据方案5至7中任一项所述的用户界面主题更新系统,其特征在于,所述系统还包括资源对象获取模块,所述资源对象获取模块配置为根据所述view类的成员变量的java注解获取所述预先标注的资源对象。

方案9、一种车机,其特征在于,所述车机包括人机交互模块和方案5至8中任一项所述的用户界面主题更新系统,所述用户界面主题更新系统配置为更新所述人机交互模块的用户界面主题。

方案10、一种车辆,其特征在于,所述车辆包括方案9所述的车机。

方案11、一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载以执行方案1至4中任一项所述的用户界面主题更新方法。

方案12、一种控制装置,包括处理器和存储设备,所述存储设备适于存储多条程序,其特征在于,所述程序适于由所述处理器加载以执行方案1至4中任一项所述的用户界面主题更新方法。

与最接近的现有技术相比,上述技术方案至少具有如下有益效果:

本发明提供的用户界面主题更新方法主要包括以下步骤:切换当前内存对象树的资源获取路径随后重新生成内存对象树,利用重新生成的内存对象树中预先标注的资源对象替换当前内存对象树中相应标注的资源对象得到目标内存对象树,根据目标内存对象树重新生成用户界面主题。基于上述步骤,本发明不需要对内存对象树的所有对象进行重新加载(仅需更新用户界面相关的资源对象),从而可以在不影响android操作系统其它程序正常运行的前提下快速更新用户界面主题。

附图说明

图1是本发明实施例中一种用户界面主题更新方法的主要步骤示意图;

图2是本发明实施例中一种view类的成员变量示意图;

图3是本发明实施例中一种view类的成员变量的java注解示意图;

图4是本发明实施例中一种用户界面主题更新系统的主要结构示意图。

具体实施方式

下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。

下面结合附图对本发明提供的一种用户界面主题更新方法进行说明。

参阅附图1,图1示例性示出了本实施例中用户界面主题更新方法的主要步骤。如图1所示,本实施例中可以按照以下步骤更新用户界面主题:

步骤s101:切换android操作系统中当前内存对象树的资源获取路径。

内存对象树指的是在设备内存中以树形结构来组织和管理所有对象及其成员变量的对象模型。其中,对象及其成员变量均是设备内存的逻辑数据块。用户界面主题更新主要涉及的对象是view类以及每个view类所持有的成员变量,view类所持有的成员变量主要包括资源对象和业务对象(即非资源对象),资源对象可以包括颜色、图片和文字样式等对象。

参阅附图2,图2示例性示出了本实施例中内存对象树中某个view类的成员变量。如图2所示,本实施例中view类的成员变量object主要包括文字样式对象(text_style:textapperance)、位图对象(drawable:bitmapdrawable)、背景颜色对象(background:color)、位图资源对象(bitmap:bitmap)、颜色资源对象(color_a:int)和颜色资源对象(color_b:int)等。

具体地,本实施例中可以按照以下步骤切换内存对象树的资源获取路径:首先获取当前内存对象树中view类的资源对象,然后切换这些资源对象与资源文件之间的指向路径。

步骤s102:提取当前内存树中view类的layout文件信息。

layout文件指的是用于描述如何初始化或构造view类的xml文件,layout文件信息主要包括layout文件包含的view类的资源对象与资源文件的对应关系,即资源对象与资源文件之间的指向路径。

步骤s103:根据layout文件信息重新生成内存对象树。

步骤s104:根据view类的成员变量的java注解获取预先标注的资源对象。其中,成员变量的java注解指的是在编译view类的成员变量之前利用java注解方法所作的注解,该注解可以用来区分view类的资源对象和业务对象。

参阅附图3,图3示例性示出了本实施例中内存对象树中某个view类的成员变量的java注解。如图3所示,该view类中利用java注解预先标注的资源对象包括“resourcesfieldsa”、“resourcesfieldsb”、“resourcesfieldsc”和“resourcesfieldsd”,业务对象包括“non-resourcesfields”。

标注s105:利用重新生成的内存对象树中预先标注的资源对象替换当前内存对象树中相应标注的资源对象,得到目标内存对象树。

具体地,本实施例中可以按照以下步骤获取目标内存对象树:利用java反射动态替换当前内存对象树中的资源对象,从而实现对资源对象的成员变量替换。

要说明的是,本发明虽然只提供了利用java反射实现资源对象的成员变量替换。但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这一具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以采用其它任何能够实现资源对象的成员变量替换的方法来替换内存对象树中预先标注的资源对象,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

步骤s106:根据目标内存对象树重新生成用户界面主题。

在本实施例中可以利用计算机领域中常规的用户界面主题生成方法并根据目标内存对象树生成用户界面主题。

下面以车辆中人机交互模块的用户界面为例对图1所示的用户界面主题更新方法进行具体说明。

假设,人机交互模块正在执行导航操作,当车辆行驶至隧道时车辆检测到光线环境发生变化需要立即调整人机交互模块的用户界面主题(如亮度等信息)。在此情况下,本发明提供的用户界面更新方法可以按照以下步骤更新人机交互模块的用户界面主题:

首先,切换当前内存对象树中颜色资源对象的资源获取路径随后重新生成内存对象树。然后,利用重新生成的内存对象树中的颜色资源对象替换当前内存对象树中的颜色资源对象,得到目标内存对象树。最后,根据目标内存对象树重新生成用户界面主题。

基于上述步骤,本发明不需要对内存对象树的所有对象进行重新加载(仅需更新用户界面相关的资源对象),从而可以在不影响android操作系统其它程序(如导航程序)正常运行的前提下快速更新用户界面主题。

上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。

基于上述用户界面主题更新方法实施例,本发明还提供了一种存储装置,该存储装置存储有多条程序,这些程序可以适于由处理器加载以执行上述方法实施例所述的用户界面主题更新方法。

进一步地,基于上述用户界面主题更新方法实施例,本发明还提供了一种控制装置,该控制装置可以包括处理器和存储设备。具体地,存储设备可以适于存储多条程序,这些程序可以适于由处理器加载以执行上述方法实施例所述的用户界面主题更新方法。

更进一步地,基于上述用户界面主题更新方法实施例,本发明还提供了一种用户界面主题更新系统。下面结合附图对该用户界面主题更新系统进行说明。

参阅附图4,图4示例性示出了本实施例中一种用户界面主题更新系统的主要结构。如图4所示,本实施例中用户界面主题更新系统主要包括第一内存对象树获取模块11、第二内存对象树获取模块12和用户界面更新模块13。具体地,第一内存对象树获取模块11可以配置为切换android操作系统中当前内存对象树的资源获取路径,随后重新生成内存对象树。第二内存对象树获取模块12可以配置为利用重新生成的内存对象树中预先标注的资源对象替换当前内存对象树中相应标注的资源对象,得到目标内存对象树。用户界面更新模块13可以配置为根据目标内存对象树生成用户界面主题。

进一步地,本实施例中图4所示的用户界面主题更新系统中第一内存对象树获取模块11还可以配置为执行以下操作:

首先提取当前内存对象树中view类的layout文件信息,然后根据layout文件信息重新生成内存对象树。

进一步地,本实施例中图4所示的用户界面主题更新系统中第二内存对象树获取模块12还可以配置为利用java反射动态替换当前内存对象树中的资源对象。

进一步地,本实施例中图4所示的用户界面主题更新系统还可以包括资源对象获取模块,该资源对象获取模块可以配置为根据view类的成员变量的java注解获取预先标注的资源对象。

上述用户界面主题更新系统实施例可以用于执行上述用户界面主题更新方法实施例,其技术原理、所解决的技术问题及产生的技术效果相似,所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的更新用户界面主题的具体工作过程及有关说明,可以参考前述用户界面主题更新方法实施例中的对应过程,在此不再赘述。

应该理解,图4中的各个模块的数量仅仅是示意性的。根据实际需要,各模块可以具有任意的数量。

基于上述用户界面主题更新系统实施例,本发明还提供了一种车机,该车机主要包括人机交互模块和上述系统实施例所述的用户界面主题更新系统,该用户界面主题更新系统可以配置为更新人机交互模块的用户界面主题。

进一步地,基于上述车机实施例,本发明还提供了一种包括该实施例所述车机的车辆。

本领域技术人员可以理解,可以对实施例中的系统中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个系统中。可以把实施例中的模块组合成一个模块,以及此外可以把它们分成多个子模块。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1