掌桥专利:专业的专利平台
掌桥专利
首页

UI资源动态更新方法、装置、存储介质及电子设备

文献发布时间:2023-06-19 11:26:00


UI资源动态更新方法、装置、存储介质及电子设备

技术领域

本申请涉及用户界面设计领域,具体而言,涉及一种UI资源动态更新 方法、装置、存储介质及电子设备。

背景技术

在客户端的App(Application,应用程序)中,通常情况下UI(User Interface,用户界面)显示都是一样的。在一些特别的情况下,例如,区域 性的重大节日(如春节),通过设计具有主题风味的用户界面,能够提升用 户体验。又或者,为了体现出用户的个性化或者尊贵性,可以通过将App 的UI界面设计为具有特异性的界面,看着更舒适、更高端、也更能够凸显 用户的独特性和尊贵性。

为了实现UI的更新,现有技术中也存在一些方式:例如,将资源配置 全部携带在安装包中,由于不同的终端屏幕尺寸,用户界面所需要加载的 资源不同,如果将资源配置全部携带在同一个安装包内,那么安装包会非 常大,一方面,对于使用流量的用户来说,安装包的大小是非常重要的; 另一方面,安装包的大小通常也决定了用户更新UI时所耗费的时间。不支 持动态的更新UI。也有另外一些方式,例如将资源配置全部置于服务器, 但这样会影响界面的加载速度,用户使用体验较差。

发明内容

本申请实施例的目的在于提供一种UI资源动态更新方法、装置、存储 介质及电子设备,以灵活便捷地实现UI的动态更新,提升用户体验。

为了实现上述目的,本申请的实施例通过如下方式实现:

第一方面,本申请实施例提供一种UI资源动态更新方法,应用于终端 的设备管理器,所述方法包括:接收云端服务器下发的配置更新信息,其 中,所述配置更新信息表示所述终端中指定客户端的受控视图控件可进行 内容更新,所述受控视图控件表示可对所述指定客户端的用户界面进行动 态更新的控件;根据所述配置更新信息,确定所述配置更新信息对应的UI 资源包中所含最新UI资源与所述受控视图控件的当前UI资源之间是否一致,其中,UI资源包括图片、动画、文案、颜色中的至少一项;若不一致, 控制所述终端的资源管理器从所述云端服务器下载所述配置更新信息对应 的UI资源包;根据所述UI资源包,对所述受控视图控件进行动态更新。

在本申请实施例中,通过使用终端的设备管理器对终端上指定客户端 的视图控件进行统一管理,接收云端服务器下发的配置更新信息,判断配 置更新信息对应的UI资源包中所含最新UI资源(例如图片、动画、文案、 颜色等)与受控视图控件的当前UI资源之间是否一致,从而确定是否需要 进行UI更新。在不一致时,可以控制终端的资源管理器从云端服务器下载 相应的UI资源包,并进行用户界面的动态更新。这样可以通过终端的设备管理器实现由云端主导的UI动态更新,可以针对性地对每个终端的指定客 户端进行管理,无需将适用于不同终端设备的UI资源打包在一起,兼顾安 装包大小的同时,也保证了页面的加载速度,还能够实现UI动态更新,可 以大大地提高用户体验。

结合第一方面,在第一方面的第一种可能的实现方式中,在所述接收 云端服务器下发的配置更新信息之前,所述方法包括:接收注册指令,其 中,所述注册指令用于指示对所述指定客户端的部分或全部视图控件进行 注册;通过AOP模式为所述指定客户端的所有视图类添加扩展功能,以使 所述指定客户端的所有视图控件具备注册和刷新的能力;将所述注册指令 中指示的需要注册的视图控件通过弱引用添加到所述设备管理器的UI动态更新服务中,以实现对视图控件的注册,得到所述受控视图控件。

在该实现方式中,通过使用runtime(运行时)技术,利用AOP(Aspect OrientedProgramming,面向切面编程)模式为指定客户端的所有视图类添 加扩展功能,可以使得指定客户端的所有视图控件具备注册和刷新的能力; 而通过将需要注册的视图控件通过弱引用添加到设备管理器的UI动态更新 服务中,即可实现对视图控件的注册,得到受控视图控件。在进行用户界 面的动态更新时,runtime技术配合弱引用的方式应用在UI资源的动态更 新中,能够不影响视图的正常释放,使得UI资源的动态更新过程对终端的 性能影响降低到最小,从而使得设备管理器能够实现对指定客户端的用户 界面进行实时的动态更新,且动态更新过程所占用的资源和时间都极少, 有利于实现用户无感知的动态更新,从而极大地提升用户体验。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的 实现方式中,在所述得到所述受控视图控件之后,所述方法还包括:根据 预设标记规则对所述受控视图控件添加字符串标记,其中,所述预设标记 规则包括所述云端服务器配置更新的所述最新UI资源与所述受控视图控件 之间的匹配关系,所述字符串标记用于实现所述受控视图控件与所述最新 UI资源之间的匹配。

在该实现方式中,利用预设标记规则(包括云端服务器配置更新的最 新UI资源与受控视图控件之间的匹配关系,还可以作为后台配置UI资源 时的指导)对受控视图控件添加字符串标记,使得设备管理器能够基于字 符串标记实现对受控视图控件与最新UI资源之间的匹配,从而准确地实现 UI资源的动态更新。

结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的 实现方式中,所述最新UI资源具有对应的资源标记,所述根据所述UI资 源包,对所述受控视图控件进行动态更新,包括:针对所述UI资源包中的 每一项最新UI资源,将所述资源标记与所述受控视图控件的字符串标记进 行匹配,确定出目标视图控件;根据该最新UI资源,对所述目标视图控件 进行修改;对所述UI资源包中每一项最新UI资源对应的目标视图控件均 修改完成后,控制所述指定客户端的所有所述受控视图控件进行刷新,显 示所述UI资源包对应的用户界面,完成UI资源动态更新。

在该实现方式中,通过将最新UI资源的资源标记与受控视图控件的字 符串标记进行匹配,确定出目标视图控件,从而基于最新UI资源对该目标 视图控件进行修改,在对UI资源包中每一项最新UI资源对应的目标视图 控件均修改完成后,可以控制指定客户端的所有受控视图控件进行刷新(未 修改完成时,则可以显示默认的视图),从而显示UI资源包对应的用户界 面,完成UI资源动态更新。这样的更新方式简便且准确,只需消耗极少的时间和资源即可实现UI的动态更新,不需要等待多久,有利于实现无感知 的UI资源动态更新,提升用户体验。

结合第一方面,在第一方面的第四种可能的实现方式中,所述控制所 述终端的资源管理器从所述云端服务器下载所述配置更新信息对应的UI资 源包,包括:判断是否存在所述配置更新信息对应的UI资源包的下载记录; 若不存在下载记录,发送下载指令给所述终端的所述资源管理器下载所述 UI资源包,以使所述资源管理器基于所述下载指令判断是否下载过所述UI 资源包,在未下载过所述UI资源包时通过所述设备管理器从所述云端服务 器下载所述UI资源包,并在校验MD5码无误后解压到本地路径,通知所 述设备管理器已完成所述UI资源包的下载。

在该实现方式中,通过设备管理器判断是否存在配置更新信息对应的 UI资源包的下载记录,若没有则指示资源管理器下载UI资源包。而资源管 理器又可以进行一次查重判定,双重的去重判定可以避免多次下载,从而 节约资源和时间。而在资源管理器下载UI资源包后还可以进行MD5码的 校验,从而保证UI资源包的准确性。

结合第一方面,或者结合第一方面的第一种至第四种中任一可能的实 现方式,在第一方面的第五种可能的实现方式中,所述接收云端服务器下 发的配置更新信息,包括:向所述云端服务器发送查询请求,其中,所述 查询请求包含所述终端的设备厂商信息和地区语言信息;接收所述云端服 务器基于所述查询请求返回的所述配置更新信息,其中,所述云端服务器 基于所述查询请求返回所述配置更新信息的方式为:根据所述地区语言信息确定对应的地区码,并确定出与所述地区码匹配的待定资源包;根据所 述设备厂商信息确定出所述设备的型号,并在所有所述待定资源包中存在 与所述型号匹配的所述UI资源包时,生成所述配置更新信息并返回给所述 设备管理器。

在该实现方式中,设备管理器可以向云端服务器发送查询请求,而云 端服务器则可以根据查询请求的地区语言信息确定对应的地区码,并确定 出与地区码匹配的待定资源包;而根据查询请求的设备厂商信息确定出设 备的型号,并在所有待定资源包中存在与型号匹配的UI资源包时,生成配 置更新信息并返回给设备管理器。通过此种方式,对于国际化(涉及到不 同区域、语言、文化、节日等因素,常规的做法针对不同的区域将对应的 资源进行打包安装)的应用,无需再针对每个地区将资源单独打包,只需 在配置时,通过云端服务器对UI资源与终端进行匹配,即可使得服务器向 相应的设备管理器下发配置更新信息,以使设备管理器能够基于配置更新 信息对其终端中指定客户端的用户界面进行动态更新,从而便捷地实现不 同区域不同设备的针对性管理。以及,通过云端服务器利用终端的地区语 言信息、设备厂商信息等实现UI资源的匹配,能够精准地进行UI资源包 的匹配和配置更新信息的下发,对于国际化应用的UI资源更新管理和配置 能够起到极大的作用,从而便捷地实现针对不同区域不同终端的云端UI动 态更新。

第二方面,本申请实施例提供一种UI资源动态更新方法,应用于云端 服务器,所述方法包括:接收后台配置的UI资源包,其中,所述UI资源 包具有对应的地区码和设备型号码,且所述UI资源包中包含最新UI资源; 根据所述UI资源包对应的地区码和所述设备型号码,从当前保持连接状态 的所有终端中确定出适用终端,并向所有所述适用终端各自的设备管理器 下发配置更新信息,以使所述设备管理器基于所述配置更新信息对该适用 终端中指定客户端的用户界面进行动态更新,其中,所述适用终端对应的 地区码与所述UI资源包对应的地区码匹配,且所述适用终端对应的型号与 所述设备型号码匹配,所述配置更新信息表示所述适用终端中指定客户端 的受控视图控件可进行内容更新,所述受控视图控件表示可对所述指定客 户端的用户界面进行动态更新的控件;或者,接收任一未连接状态的终端 启动所述指定客户端时其设备管理器发送的查询请求,并根据所述查询请 求中包含的地区语言信息和设备厂商信息确定是否存在匹配的UI资源包, 若存在匹配的UI资源包,则生成所述配置更新信息并返回给该设备管理器, 以使该设备管理器基于所述配置更新信息对该终端中指定客户端的用户界 面进行动态更新。

第三方面,本申请实施例提供一种UI资源动态更新装置,应用于终端 的设备管理器,所述装置包括:接收模块,用于接收云端服务器下发的配 置更新信息,其中,所述配置更新信息表示所述终端中指定客户端的受控 视图控件可进行内容更新,所述受控视图控件表示可对所述指定客户端的 用户界面进行动态更新的控件;处理模块,用于根据所述配置更新信息, 确定所述配置更新信息对应的UI资源包中所含最新UI资源与所述受控视 图控件的当前UI资源之间是否一致,其中,UI资源包括图片、动画、文案、 颜色中的至少一项;所述处理模块,还用于在所述最新UI资源与所述当前 UI资源不一致时,控制所述终端的资源管理器从所述云端服务器下载所述 配置更新信息对应的UI资源包;所述处理模块,还用于根据所述UI资源 包,对所述受控视图控件进行动态更新。

第四方面,本申请实施例提供一种UI资源动态更新装置,应用于云端 服务器,所述装置包括:后台配置模块,用于接收后台配置的UI资源包, 其中,所述UI资源包具有对应的地区码和设备型号码,且所述UI资源包 中包含最新UI资源;云端匹配模块,用于根据所述UI资源包对应的地区 码和所述设备型号码,从当前保持连接状态的所有终端中确定出适用终端, 并向所有所述适用终端各自的设备管理器下发配置更新信息,以使所述设 备管理器基于所述配置更新信息对该适用终端中指定客户端的用户界面进 行动态更新,其中,所述适用终端对应的地区码与所述UI资源包对应的地 区码匹配,且所述适用终端对应的型号与所述设备型号码匹配,所述配置 更新信息表示所述适用终端中指定客户端的受控视图控件可进行内容更新, 所述受控视图控件表示可对所述指定客户端的用户界面进行动态更新的控 件;所述云端匹配模块,还用于接收任一未连接状态的终端启动所述指定客户端时其设备管理器发送的查询请求,并根据所述查询请求中包含的地 区语言信息和设备厂商信息确定是否存在匹配的UI资源包,若存在匹配的 UI资源包,则生成所述配置更新信息并返回给该设备管理器,以使该设备 管理器基于所述配置更新信息对该终端中指定客户端的用户界面进行动态 更新。

第五方面,本申请实施例提供一种存储介质,所述存储介质包括存储 的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方 面或第一方面的可能的实现方式中任意一项所述的UI资源动态更新方法。

第六方面,本申请实施例提供一种电子设备,包括存储器和处理器, 所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令 的执行,所述程序指令被处理器加载并执行时实现第一方面或第一方面的 可能的实现方式中任意一项所述的UI资源动态更新方法。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实 施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例 中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请 的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人 员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相 关的附图。

图1为本申请实施例提供的一种UI资源动态更新系统的示意图。

图2为本申请实施例提供的一种电子设备的结构框图。

图3为本申请实施例提供的一种UI资源动态更新方法整体过程的时序 图。

图4为本申请实施例提供的一种应用于云端服务器的UI资源动态更新 方法的流程图。

图5为本申请实施例提供的一种应用于设备管理器的UI资源动态更新 方法的流程图。

图6为本申请实施例提供的一种应用于云端服务器的UI资源动态更新 装置的结构框图。

图7为本申请实施例提供的一种应用于设备管理器的UI资源动态更新 装置的结构框图。

图标:100-UI资源动态更新系统;110-云端服务器;120-终端;200- 电子设备;210-存储器;220-通信模块;230-总线;240-处理器;300-应用 于云端服务器的UI资源动态更新装置;310-后台配置模块;320-云端匹配 模块;400-应用于设备管理器的UI资源动态更新装置;410-接收模块;420- 处理模块。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进 行描述。

请参阅图1,图1为本申请实施例提供的一种UI资源动态更新系统100 的示意图。在本实施例中,UI资源动态更新系统100可以包括交互的云端 服务器110和终端120。其中,终端120可以包括几个虚拟部分:设备管理 器、受控视图控件和资源管理器。开发人员可以通过后台配置的方式将新 的UI资源(例如图片、动画、文案、颜色中的至少一项)配置到云端服务 器110,云端服务器110可以针对不同的UI资源包适应性地与终端120配 对,从而向满足匹配条件的终端120的设备管理器下发配置更新信息(通 知该设备管理器有可用于对该终端120中指定客户端的用户界面进行更新 的UI资源包),从而通过设备管理器与云端服务器110的交互,利用终端 120的设备管理器实现云端服务器110对终端中指定客户端的用户界面的动 态更新。

请参阅图2,图2为本申请实施例提供的一种电子设备200的结构框图。

在本实施例中,电子设备200可以为终端120,例如智能手机、平板电 脑等;电子设备200也可以为云端服务器110,例如云服务器、服务器集群 等,此处不作限定。

示例性的,电子设备200可以包括:通过网络与外界连接的通信模块 220、用于执行程序指令的一个或多个处理器240、总线230和不同形式的 存储器210,例如,磁盘、ROM、或RAM,或其任意组合。存储器210、 通信模块220、处理器240之间可以通过总线230连接。另外,在电子设备 200为终端120时,还可以包括显示屏(例如OLED显示屏、液晶显示屏 等),可以显示指定客户端的用户界面,此处不作限定。

示例性的,存储器210中存储有程序。处理器240可以从存储器210 调用并运行这些程序,从而便可以通过运行程序而实现UI资源动态更新方 法。当然,云端服务器110执行应用于云端服务器110的UI资源动态更新 方法,而终端120则执行应用于设备管理器的UI资源动态更新方法。

为了便于对本方案的理解,请参阅图3,图3为本申请实施例提供的一 种UI资源动态更新方法整体过程的时序图。在本实施例中,UI资源动态更 新方法的整体过程可以视为运行于云端服务器110的UI资源动态更新方法 与运行于设备终端120中设备管理器的UI资源动态更新方法之间的交互过 程。因此,以下将分别对应用于云端服务器110的UI资源动态更新方法和 应用于设备管理器的UI资源动态更新方法进行介绍,以便对本方案的理解。

请参阅图4,图4为本申请实施例提供的一种应用于云端服务器110的 UI资源动态更新方法的流程图。在本实施例中,应用于云端服务器110的 UI资源动态更新方法可以包括步骤S11、步骤S12和步骤S13。

示例性的,为了实现对终端120中指定客户端的用户界面的动态更新, 开发人员可以将用于对指定客户端的用户界面进行更新的UI资源(例如图 片、动画、文案、颜色中的至少一项)通过后台配置的方式配置到云端服 务器110中。

例如,软件A的开发人员甲应公司要求开发了一款新的用户界面,需 要对软件A的客户端(即指定客户端)进行用户界面的更新(例如更新的 内容包含动画、图片和颜色),那么开发人员甲可以将UI资源打包配置到 云端服务器中。

由于国际化应用的趋势,软件A在多个不同文化、风俗等背景的区域 (例如在中国内地、中国香港、美国等多个不同的区域)中均有用户群体。 那么,为了便于云端服务器110的管理和配置的便捷性,可以建立一套考虑 不同地区、不同语言等因素的机制(例如地区码机制),使得开发人员在UI 资源的配置时,可以利用该机制,为应用于不同地区语言的UI资源包各添 加一个地区码,从而应用于不同的区域。而云端服务器110内置了该机制 (地区码机制)的运行程序,从而可以基于终端120的地区语言信息,为终 端120确定出一个适用的地区码。云端服务器110就能够通过将UI资源包 的地区码与终端120的地区码相匹配,从而确定出某个UI资源包能够适用 的终端120,以便于为这些终端120各自的设备管理器提供对应的UI资源 包。

另外,为了使得终端120能够运行UI资源动态更新方法,此处先介绍 对终端的一些处理,以便于对本方案的理解。

在本实施例中,设备管理器可以接收注册指令,其中,注册指令用于 指示对指定客户端的部分或全部视图控件进行注册。注册的具体方式可以 为:使用runtime技术,通过AOP模式为指定客户端的所有视图类添加扩 展功能,以使指定客户端的所有视图控件具备注册和刷新的能力。而后, 可以将注册指令中指示的需要注册的视图控件通过弱引用添加到设备管理 器的UI动态更新服务中,以实现对视图控件的注册,从而得到受控视图控 件。此处的受控视图控件表示可对指定客户端的用户界面进行动态更新的 控件。

通过使用runtime(运行时)技术,利用AOP(Aspect Oriented Programming,面向切面编程)模式为指定客户端的所有视图类添加扩展功 能,可以使得指定客户端的所有视图控件具备注册和刷新的能力;而通过 将需要注册的视图控件通过弱引用添加到设备管理器的UI动态更新服务中, 即可实现对视图控件的注册,得到受控视图控件。在进行用户界面的动态 更新时,runtime技术配合弱引用的方式应用在UI资源的动态更新中,能 够不影响视图的正常释放,使得UI资源的动态更新过程对终端的性能影响 降低到最小,从而使得设备管理器能够实现对指定客户端的用户界面进行 实时的动态更新,且动态更新过程所占用的资源和时间都极少,有利于实 现用户无感知的动态更新,从而极大地提升用户体验。

当然,为了通过设备管理器准确地实现UI资源的动态更新,还可以在 得到受控视图控件之后,根据预设标记规则对受控视图控件添加字符串标 记。此处,预设标记规则包括云端服务器110配置更新的最新UI资源与受 控视图控件之间的匹配关系,字符串标记则用于实现受控视图控件与UI资 源之间的匹配。

例如,注册过的受控视图控件都有一个标记(即字符串标记),对应资 源文件(即UI资源包中的UI资源)中的图片名;而文字或者颜色的标记 (即字符串标记),可以对应资源文件中config.json文件的内容中的值,资 源文件中包含了若干图片和一个config.json文件。

利用预设标记规则(包括云端服务器110配置更新的最新UI资源与受 控视图控件之间的匹配关系,还可以作为后台配置UI资源时的指导)对受 控视图控件添加字符串标记,使得设备管理器能够基于字符串标记实现对 受控视图控件与最新UI资源之间的匹配,从而准确地实现UI资源的动态 更新。

基于此,针对开发人员在后台的配置,云端服务器110可以执行步骤 S11。

步骤S11:接收后台配置的UI资源包,其中,UI资源包具有对应的 地区码和设备型号码,且UI资源包中包含最新UI资源。

在本实施例中,云端服务器110可以接收后台配置的UI资源包(包含 最新UI资源,即需要进行用户界面更新的UI资源),UI资源包通常为多 个(以对应不同地区、不同设备等),每个UI资源包具有对应的地区码和 设备型号码。此处的设备型号码表示该UI资源包适用的终端设备型号,通 常来说,不同的终端120所要求的用户界面之间也有一些差异,但也有一 些不同的机型可以使用相同的用户界面的情况,因此,设备型号码的使用, 可以使得UI资源包能够适配到适用的终端120中,以到达最好的配置效果。

在接收后台配置的UI资源包后,云端服务器110可以执行步骤S12。

步骤S12:根据UI资源包对应的地区码和所述设备型号码,从当前保 持连接状态的所有终端中确定出适用终端,并向所有适用终端各自的设备 管理器下发配置更新信息,以使设备管理器基于配置更新信息对该适用终 端中指定客户端的用户界面进行动态更新,其中,适用终端对应的地区码 与UI资源包对应的地区码匹配,且适用终端对应的型号与设备型号码匹配, 配置更新信息表示适用终端中指定客户端的受控视图控件可进行内容更新, 受控视图控件表示可对指定客户端的用户界面进行动态更新的控件。

在本实施例中,云端服务器可以根据UI资源包对应的地区码和设备型 号码,从当前保持连接状态的所有终端中确定出适用终端。

示例性的,由于在发布新的UI资源包时,不可能每个用户都处于在线 的情况(即,终端120保持连接状态),针对当前保持连接状态的所有终端 120,云端服务器110已经获取了该终端120的地区语言信息和设备厂商信 息(在终端120中指定客户端启动时,该终端120的设备管理器可以向云 端服务器110发送一个查询请求,该查询请求中即包含该终端120的地区 语言信息和设备厂商信息,而云端服务器110则基于地区语言信息确定了 该终端120的地区码,基于设备厂商信息确定了该终端120的型号)。因此, 云端服务器110可以通过匹配的方式(将UI资源包的地区码与终端120的 地区码匹配,将UI资源包的设备型号码与终端的型号匹配),确定出某个 UI资源包的适用终端。

而后,云端服务器110可以向所有适用终端各自的设备管理器下发配 置更新信息,以使设备管理器基于配置更新信息对该适用终端中指定客户 端的用户界面进行动态更新。此处,配置更新信息表示适用终端120中指 定客户端的受控视图控件可进行内容更新,受控视图控件表示可对指定客 户端的用户界面进行动态更新的控件。

由此,针对每个UI资源包,云端服务器110均可以通过此种方式向其 对应的适用终端下发配置信息,从而便于该终端120的设备管理器基于配 置更新信息对该适用终端120中指定客户端的用户界面进行动态更新。

而针对UI资源包发布时未保持连接状态的终端120,云端服务器可以 执行步骤S13。

步骤S13:接收任一未连接状态的终端启动指定客户端时其设备管理器 发送的查询请求,并根据查询请求中包含的地区语言信息和设备厂商信息 确定是否存在匹配的UI资源包,若存在匹配的UI资源包,则生成配置更 新信息并返回给该设备管理器,以使该设备管理器基于配置更新信息对该 终端中指定客户端的用户界面进行动态更新。

在本实施例中,针对UI资源包发布时未保持连接状态的终端120,在 任一未连接状态的终端120启动指定客户端时,云端服务器110可以接收 该终端120的设备管理器发送的查询请求。此查询请求中包含了该终端120 的地区语言信息和设备厂商信息。

云端服务器110可以根据查询请求中包含的地区语言信息和设备厂商 信息确定是否存在匹配的UI资源包,匹配的方式即将UI资源包的地区码 与终端120的地区码匹配,将UI资源包的设备型号码与终端120的型号匹 配。

具体的,云端服务器110可以根据查询请求的地区语言信息确定对应 的地区码,并确定出与地区码匹配的待定资源包;而后可以根据查询请求 的设备厂商信息确定出设备的型号,并在所有待定资源包中存在与型号匹 配的UI资源包时,生成配置更新信息并返回给设备管理器。当然,此种匹 配方式仅是示例性的,不应视为对本申请的限定。

而后,云端服务器110可以基于匹配的结果向设备管理器返回信息, 例如,若当前发布的UI资源包中没有适用于该终端120的UI资源包,那 么云端服务器110可以返回空信息,通知该终端120的设备管理器,没有 可更新的UI资源。而若存在匹配的UI资源包,云端服务器110则可以生 成配置更新信息并返回给该设备管理器,以使该设备管理器基于配置更新 信息对该终端120中指定客户端的用户界面进行动态更新。

通过此种方式,对于国际化(涉及到不同区域、语言、文化、节日等 因素,常规的做法针对不同的区域将对应的资源进行打包安装)的应用, 无需再针对每个地区将资源单独打包,只需在配置时,通过云端服务器110 对UI资源与终端进行匹配,即可使得云端服务器110向相应的设备管理器 下发配置更新信息,以使设备管理器能够基于配置更新信息对其终端120 中指定客户端的用户界面进行动态更新,从而便捷地实现不同区域不同设 备的针对性管理。以及,通过云端服务器110利用终端120的地区语言信 息、设备厂商信息等实现UI资源的匹配,能够精准地进行UI资源包的匹 配和配置更新信息的下发,对于国际化应用的UI资源更新管理和配置能够 起到极大的作用,从而便捷地实现针对不同区域不同终端120的云端UI动 态更新。

在云端服务器110生成配置更新信息并下发给该设备管理器后,设备 管理器可以运行应用于设备管理器的UI资源动态更新方法。

请参阅图5,图5为本申请实施例提供的一种应用于设备管理器的UI 资源动态更新方法的流程图。在本实施例中,应用于设备管理器的UI资源 动态更新方法可以包括步骤S21、步骤S22、步骤S23和步骤S24。

基于云端服务器下发,设备管理器可以执行步骤S21。

步骤S21:接收云端服务器下发的配置更新信息,其中,配置更新信息 表示终端中指定客户端的受控视图控件可进行内容更新,受控视图控件表 示可对指定客户端的用户界面进行动态更新的控件。

在本实施例中,设备管理器可以接收云端服务器下发的配置更新信息, 而云端服务器下发配置更新信息的方式,前文已经介绍(向保持连接状态 的终端下发,以及在终端中指定客户端启动时,基于设备管理器发送的查 询请求而下发),此处不再赘述。

接收云端服务器下发的配置更新信息后,设备管理器可以执行步骤S22。

需要说明的是,在其他一些可选的实现方式中,在设备管理器执行步 骤S22之前,还可以向设备管理器提供多种适用的UI资源,以供用户根据 兴趣和需要进行选择,给用户更多的个性化的选择自由。而后再执行步骤 S22,当然,此处不应是为对本申请的限定。

步骤S22:根据配置更新信息,确定配置更新信息对应的UI资源包中 所含最新UI资源与受控视图控件的当前UI资源之间是否一致,其中,UI 资源包括图片、动画、文案、颜色中的至少一项。

在本实施例中,设备管理器可以将配置更新信息所对应的UI资源包中 所含的最新UI资源(即用于更新的UI资源,例如最新的图片、最新的动 画、最新的颜色、最新的文案等),与受控视图控件的当前UI资源进行比 对,确定最新UI资源与当前UI资源之间是否一致。

若一致,设备管理器可以控制受控视图控件加载默认UI资源;若不一 致,设备管理器可以执行步骤S23。

步骤S23:控制终端的资源管理器从云端服务器下载配置更新信息对应 的UI资源包。

在本实施例中,设备管理器可以控制终端的资源管理器从云端服务器 下载配置更新信息对应的UI资源包。

示例性的,设备管理器在控制资源管理器从云端服务器下载UI资源包 之前,可以先判断是否存在配置更新信息对应的UI资源包的下载记录,确 定是否下载过该UI资源包,以避免重复下载。

不存在下载记录时,设备管理器可以发送下载指令给终端的资源管理 器,通知资源管理器下载UI资源包。而资源管理器则可以基于下载指令判 断自己是否下载过UI资源包,在资源管理器确定自己也未下载过UI资源 包时,可以通过设备管理器从云端服务器下载UI资源包。下载完成后,资 源管理器可以判断UI资源包是否下载成功,若未下载成功则重新开始下载。 在成功下载UI资源包后,资源管理器还可以校验UI资源包的MD5(MessageDigestAlgorithm MD5,MD5信息摘要算法)码是否正确。在验证MD5码 有误时,可以重新下载UI资源包;在校验MD5码无误后,资源管理器可 以解压到本地路径,并通知设备管理器已完成UI资源包的下载。

通过设备管理器判断是否存在配置更新信息对应的UI资源包的下载记 录,若没有则指示资源管理器下载UI资源包。而资源管理器又可以进行一 次查重判定,双重的去重判定可以避免多次下载,从而节约资源和时间。 而在资源管理器下载UI资源包后还可以进行MD5码的校验,从而保证UI 资源包的准确性。

在接到资源管理器成功下载UI资源包的通知后,设备管理器可以执行 步骤S24。

步骤S24:根据UI资源包,对受控视图控件进行动态更新。

当然,在判断最新UI资源与当前UI资源不一致后,设备管理器还可 以判断不同的类型,即确定哪些类型的UI资源不同,从而确定出相应的受 控视图控件。

示例性的,每项UI资源均具有资源标记(即UI资源对应的标记,也 是符合预设标记规则的,通过预设标记规则,可实现资源标记与受控视图 控件的字符串标记之间的匹配),针对UI资源包中的每一项最新UI资源, 设备管理器可以将资源标记与受控视图控件的字符串标记进行匹配,确定 出目标视图控件。

确定出目标视图控件后,设备管理器可以根据该最新UI资源(已被资 源管理器解压到本地路径中),对目标视图控件进行修改。在对UI资源包 中每一项最新UI资源对应的目标视图控件均修改完成后,设备管理器可以 控制指定客户端的所有受控视图控件进行刷新,显示UI资源包对应的用户 界面,完成UI资源动态更新。而在未完成所有目标视图控件的修改时,可 以显示默认的用户界面。

通过将最新UI资源的资源标记与受控视图控件的字符串标记进行匹配, 确定出目标视图控件,从而基于最新UI资源对该目标视图控件进行修改, 在对UI资源包中每一项最新UI资源对应的目标视图控件均修改完成后, 可以控制指定客户端的所有受控视图控件进行刷新(未修改完成时,则可 以显示默认的视图),从而显示UI资源包对应的用户界面,完成UI资源动 态更新。这样的更新方式简便且准确,只需消耗极少的时间和资源即可实 现UI的动态更新,不需要等待多久,有利于实现无感知的UI资源动态更 新,提升用户体验。

通过对UI资源动态更新方法以上过程的运行,即可通过终端120的设 备管理器实现由云端服务器110主导的UI动态更新,可以针对性地对每个 终端120的指定客户端进行管理,无需将适用于不同终端设备的UI资源打 包在一起,兼顾安装包大小的同时,也保证了页面的加载速度,还能够实 现UI动态更新,可以大大地提高用户体验。

请参阅图6,基于同一发明构思,本申请实施例中还提供一种UI资源 动态更新装置300,应用于云端服务器,包括:

后台配置模块310,用于接收后台配置的UI资源包,其中,所述UI 资源包具有对应的地区码和设备型号码,且所述UI资源包中包含最新UI 资源.

云端匹配模块320,用于根据所述UI资源包对应的地区码和所述设备 型号码,从当前保持连接状态的所有终端中确定出适用终端,并向所有所 述适用终端各自的设备管理器下发配置更新信息,以使所述设备管理器基 于所述配置更新信息对该适用终端中指定客户端的用户界面进行动态更新, 其中,所述适用终端对应的地区码与所述UI资源包对应的地区码匹配,且 所述适用终端对应的型号与所述设备型号码匹配,所述配置更新信息表示 所述适用终端中指定客户端的受控视图控件可进行内容更新,所述受控视 图控件表示可对所述指定客户端的用户界面进行动态更新的控件。

或者,所述云端匹配模块320,还用于接收任一未连接状态的终端启动 所述指定客户端时其设备管理器发送的查询请求,并根据所述查询请求中 包含的地区语言信息和设备厂商信息确定是否存在匹配的UI资源包,若存 在匹配的UI资源包,则生成所述配置更新信息并返回给该设备管理器,以 使该设备管理器基于所述配置更新信息对该终端中指定客户端的用户界面 进行动态更新。

请参阅图7,基于同一发明构思,本申请实施例中还提供一种UI资源 动态更新装置400,应用于设备管理器,包括:

接收模块410,用于接收云端服务器下发的配置更新信息,其中,所述 配置更新信息表示所述终端中指定客户端的受控视图控件可进行内容更新, 所述受控视图控件表示可对所述指定客户端的用户界面进行动态更新的控 件。

处理模块420,用于根据所述配置更新信息,确定所述配置更新信息对 应的UI资源包中所含最新UI资源与所述受控视图控件的当前UI资源之间 是否一致,其中,UI资源包括图片、动画、文案、颜色中的至少一项。

所述处理模块420,还用于在所述最新UI资源与所述当前UI资源不一 致时,控制所述终端的资源管理器从所述云端服务器下载所述配置更新信 息对应的UI资源包。

所述处理模块420,还用于根据所述UI资源包,对所述受控视图控件 进行动态更新。

在本实施例中,应用于设备管理器的UI资源动态更新装置400还包括:

注册模块,用于在所述接收模块接收云端服务器下发的配置更新信息 之前,接收注册指令,其中,所述注册指令用于指示对所述指定客户端的 部分或全部视图控件进行注册;通过AOP模式为所述指定客户端的所有视 图类添加扩展功能,以使所述指定客户端的所有视图控件具备注册和刷新 的能力;将所述注册指令中指示的需要注册的视图控件通过弱引用添加到 所述设备管理器的UI动态更新服务中,以实现对视图控件的注册,得到所述受控视图控件。

在本实施例中,所述注册模块,还用于在得到所述受控视图控件之后, 根据预设标记规则对所述受控视图控件添加字符串标记,其中,所述预设 标记规则包括所述云端服务器配置更新的所述最新UI资源与所述受控视图 控件之间的匹配关系,所述字符串标记用于实现所述受控视图控件与所述 最新UI资源之间的匹配。

在本实施例中,所述处理模块420,还用于针对所述UI资源包中的每 一项最新UI资源,将所述资源标记与所述受控视图控件的字符串标记进行 匹配,确定出目标视图控件;根据该最新UI资源,对所述目标视图控件进 行修改;对所述UI资源包中每一项最新UI资源对应的目标视图控件均修 改完成后,控制所述指定客户端的所有所述受控视图控件进行刷新,显示 所述UI资源包对应的用户界面,完成UI资源动态更新。

在本实施例中,所述处理模块420,还用于判断是否存在所述配置更新 信息对应的UI资源包的下载记录;若不存在下载记录,发送下载指令给所 述终端的所述资源管理器下载所述UI资源包,以使所述资源管理器基于所 述下载指令判断是否下载过所述UI资源包,在未下载过所述UI资源包时 通过所述设备管理器从所述云端服务器下载所述UI资源包,并在校验MD5 码无误后解压到本地路径,通知所述设备管理器已完成所述UI资源包的下 载。

在本实施例中,所述接收模块410,还用于在接收云端服务器下发的配 置更新信息之前,向所述云端服务器发送查询请求,其中,所述查询请求 包含所述终端的设备厂商信息和地区语言信息;接收所述云端服务器基于 所述查询请求返回的所述配置更新信息,其中,所述云端服务器基于所述 查询请求返回所述配置更新信息的方式为:根据所述地区语言信息确定对 应的地区码,并确定出与所述地区码匹配的待定资源包;根据所述设备厂商信息确定出所述设备的型号,并在所有所述待定资源包中存在与所述型 号匹配的所述UI资源包时,生成所述配置更新信息并返回给所述设备管理 器。

本申请实施例还提供一种存储介质,所述存储介质包括存储的程序, 其中,在所述程序运行时控制所述存储介质所在设备执行本实施例中所述 的UI资源动态更新方法。

综上所述,本申请实施例提供一种UI资源动态更新方法、装置、存储 介质及电子设备,通过使用终端的设备管理器对终端上指定客户端的视图 控件进行统一管理,接收云端服务器下发的配置更新信息,判断配置更新 信息对应的UI资源包中所含最新UI资源(例如图片、动画、文案、颜色 等)与受控视图控件的当前UI资源之间是否一致,从而确定是否需要进行 UI更新。在不一致时,可以控制终端的资源管理器从云端服务器下载相应 的UI资源包,并进行用户界面的动态更新。这样可以通过终端的设备管理 器实现由云端主导的UI动态更新,可以针对性地对每个终端的指定客户端 进行管理,无需将适用于不同终端设备的UI资源打包在一起,兼顾安装包 大小的同时,也保证了页面的加载速度,还能够实现UI动态更新,可以大 大地提高用户体验。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以 通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如, 所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划 分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统, 或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦 合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦 合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的, 作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地 方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的 部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个 独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集 成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或 者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或 操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围, 对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请 的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本 申请的保护范围之内。

技术分类

06120112923550