用于更新界面布局的方法、装置、设备及系统与流程

文档序号:16066999发布日期:2018-11-24 12:46阅读:162来源:国知局
本申请涉及智能设备应用程序开发领域,尤其涉及一种用于更新界面布局的方法、装置及系统,一种电子设备,以及一种计算机存储介质。
背景技术
随着智能化产品的逐渐增多,智能化的应用(以下简称app)也是未来的趋势,例如,在智能电视、虚拟现实设备(vr设备)、智能手机等产品中运行的app。以智能电视为例,该设备是具有全开放式平台,搭载了操作系统(如安卓系统),用户在欣赏普通电视内容的同时,可自行安装和卸载各类应用软件,持续对功能进行扩充和升级的新电视产品。在设计研发出app后,会经常根据需要调整app的界面布局,例如,在圣诞节、春节等节日时,需要将app界面调成节日风格,而恢复正常日后,还需要再将app界面由节日风格修改回正常界面。目前,常用的界面布局与内容的更新方式包括以下三种:方式1、界面的布局部分保持不动,内容部分通过服务器更新。该方式在电视端的app上比较流行,典型应用如荔枝tv、芒果tv等在线视频应用。然而,该方式的缺点是只能改变控件内部的内容,而无法重新排布控件,例如,一个推荐页上的推荐内容可以通过后台更新,但是无法将推荐页变大或者变小,更不能把一个推荐页变成两个等。方式2、界面布局是一个web控件,数据内容来自服务器,使用web的协议。该方式在手机端的app中比较常见,典型应用如淘宝、京东、美团外卖等手机端app。该方式的优点是界面布局和界面内容都可以通过后台更新,而缺点是无法适用于电视端或者vr设备等使用按键操作的设备场景。方式3、通过app升级修改界面布局。该方式只能通过升级app来更新界面显示,虽然可以更新界面内容和界面布局,但是升级操作比较复杂,而且难度会比较大,无法做到用户无法感知的升级。从上述分析可以看出,现有技术存在无法兼顾实时更新界面布局、及兼容触摸和按键等不同操作方式两方面优点的问题。技术实现要素:本申请提供了一种用于更新界面布局的方法、装置及系统,一种电子设备,以及一种计算机存储介质,以解决无法兼顾实时更新界面布局、及兼容触摸和按键等不同操作方式两方面优点的问题。第一方面,本申请提供了一种用于更新界面布局的方法,该方法包括:判断存储在服务器中的与原生应用程序的界面对应的第一界面布局配置文件是否已更新;若是,则将所述第一界面布局配置文件下载至智能设备;根据所述第一界面布局配置文件渲染所述界面。采用本实现方式,部署在智能设备的应用程序中的用于更新界面布局的装置在检测到服务器端的界面布局配置文件发生变化后,下载更新后的界面布局配置文件,并根据该更新后的界面布局配置文件渲染相应的界面;这种处理方式,既能实现界面布局的实时更新,又不限制原生应用程序的操作方式,也不影响原生应用程序的执行效率,开发人员能够快速的开发界面并部署到具有不同操作方式特点的所有智能设备中;因此,可以有效兼顾实时更新界面布局、并兼容触摸和按键等不同操作方式两方面优点。结合第一方面,在第一方面第一种可能的实现方式中,所述第一界面布局配置文件包括自定义控件和/或自定义属性;所述根据所述第一界面布局配置文件渲染所述界面,包括:通过预设解析器,解析所述自定义控件和/或所述自定义属性;根据解析后的自定义控件和/或自定义属性,渲染所述界面。采用本实现方式,能够满足特殊应用场景的需求,例如,在界面中新增控件、修改界面的控件或在界面中增加特效等需求。结合第一方面或第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述界面包括动态数据内容,所述第一界面布局配置文件包括用于获取所述动态数据内容的程序脚本;在所述将所述第一界面布局配置文件下载至智能设备之前,所述方法还包括:所述服务器根据所述程序脚本,获取所述动态数据内容;所述服务器将所述第一界面布局配置文件中的所述程序脚本替换为获得的所述动态数据内容。采用本实现方式,使得智能设备无需再二次从服务器端获取动态数据内容;因此,可以有效提高界面渲染速度。第二方面,本申请还提供了一种用于更新界面布局的装置,所述用于更新界面布局的装置包括用于执行第一方面各种实现方式中方法步骤的模块。第三方面,本申请还提供了一种用于更新界面布局的系统,所述系统包括第二方面所述的用于更新界面布局的装置,以及存储在服务器中的第一界面布局配置文件。结合第三方面,在第三方面第一种可能的实现方式中,所述界面包括动态数据内容,所述第一界面布局配置文件包括用于获取所述动态数据内容的程序脚本;所述系统还包括:部署在所述服务器中的动态数据内容处理装置;所述动态数据内容处理装置包括:动态数据内容获取单元,用于所述服务器根据所述程序脚本,获取所述动态数据内容;动态数据内容写入单元,用于所述服务器将所述第一界面布局配置文件中的所述程序脚本替换为获得的所述动态数据内容。第四方面,本申请还提供了一种电子设备,包括:处理器和存储器;所述处理器可以执行所述存储器中所存储的程序或指令,从而实现以第一方面各种实现方式执行所述用于更新界面布局的方法。第五方面,本申请还提供了一种计算机存储介质,该计算机存储介质可存储有程序,该程序执行时可实现包括本申请提供的用于更新界面布局的方法各实施例中的部分或全部步骤。附图说明为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请用于更新界面布局的系统的一个实施例的交互示意图;图2为本申请用于更新界面布局的系统的一个实施例的具体结构示意图;图3为本申请用于更新界面布局的方法的一个实施例的流程图;图4为本申请用于更新界面布局的方法的一个实施例的具体流程图;图5为本申请用于更新界面布局的方法的一个实施例的界面示意图;图6为本申请用于更新界面布局的装置的一个实施例的结构示意图。具体实施方式参见图1,为本申请用于更新界面布局的系统的一个实施例的交互示意图。本申请实施例提供的用于更新界面布局的系统,包括部署在智能设备中的用于更新界面布局的装置和存储在服务器端的第一界面布局配置文件。所述智能设备包括但不限于:智能电视、虚拟现实设备、移动智能通讯设备、ipad等终端设备。当智能设备中的原生应用程序启动时或在程序运行过程中时,所述用于更新界面布局的装置针对当前已显示的界面或要显示的界面,判断存储在所述服务器中的与该界面对应的第一界面布局配置文件是否已更新;若判断结果为是,则从服务器端下载该第一界面布局配置文件,再根据该第一界面布局配置文件渲染该界面,以更新该界面的布局。具体实施时,如果界面包括动态数据内容,则所述第一界面布局配置文件不仅包括界面布局代码,还可包括用于获取所述动态数据内容的程序脚本。参见图2,为本申请用于更新界面布局的系统的一个实施例的具体结构示意图。在本实施例中,用于更新界面布局的系统包括所述用于更新界面布局的装置201和动态数据内容处理装置202。所述动态数据内容处理装置202部署在所述服务器端,用于在向智能设备端下发所述第一界面布局配置文件之前,所述服务器根据所述程序脚本,获取所述动态数据内容;再将所述第一界面布局配置文件中的所述程序脚本替换为获得的所述动态数据内容。采用这种处理方式,使得智能设备无需再二次从服务器端获取动态数据内容;因此,可以有效提高界面渲染速度。参见图3,为本申请用于更新界面布局的方法的一个实施例的流程图,该方法包括如下步骤:步骤301,判断存储在服务器中的与原生应用程序的界面对应的第一界面布局配置文件是否已更新;若是,则进入步骤202。所述原生应用程序(nativeapp)和网络应用程序(webapp)相反,原生应用程序被安装在搭载了android或ios等操作系统的智能设备上,它能够使用智能设备的硬件功能(扬声器、摄像头等),而且是用java或objectc等语言编写的。针对原生应用程序的一个界面,判断该界面对应的第一界面布局配置文件是否已更新的时机,可以是在要显示该界面时,也可以是在该界面已显示时。在要显示一个界面时,可首先判断与该界面对应的第一界面布局配置文件是否已更新,如果判定该第一界面布局配置文件已更新,则下载该服务器端配置文件,再根据下载的配置文件渲染该界面。采用这种处理方式,使得用户看到的界面开始时就是更新的界面布局。但是该方式的缺点是,如果由于网络问题导致服务器端的配置文件无法及时下载时,将会出现无法正常打开界面的问题,从而降低用户体验。为了解决这个问题,在要显示一个界面时,可以首先获取存储在原生应用程序中的与该界面对应的第二界面布局配置文件,并根据该设备端配置文件渲染该界面,然后在该界面已显示后,根据预设的时间间隔判断该界面对应的第一界面布局配置文件是否已更新,如果判定第一界面布局配置文件已更新,则根据新的配置文件重新渲染该界面。采用这种处理方式,使得先根据设备端配置文件渲染界面,无须等待获取从服务器下载的配置文件;因此,可以有效提高界面的初始显示速度,从而提高用户体验。在已显示一个界面时,可根据预设的时间间隔判断与该界面对应的第一界面布局配置文件是否已更新,即:所述原生应用程序定期检测服务器端的配置文件是否已发生变化。所述预设的时间间隔可根据具体业务需求设定,如设置为10分钟等。所述预设的时间间隔越短,将使得更新的配置文件能够及时生效,但步骤301执行的次数也越多,从而占用较多的本地设备和服务器的计算资源;所述预设的时间间隔越长,将使得界面布局更新的越不及时,但步骤301执行的次数也越少,从而较少的占用本地设备和服务器的计算资源。作为一种可选的实施方案,可以在智能设备(如智能电视或vr设备等)端执行判断第一界面布局配置文件是否已更新的步骤。具体实施时,可包括如下具体步骤:1)获取所述第一界面布局配置文件的第一版本标识或第一文件内容信息;以及,获取存储在所述原生应用程序中的与所述界面对应的第二界面布局配置文件的第二版本标识或第二文件内容信息;2)根据所述第一版本标识和所述第二版本标识,判断所述第一界面布局配置文件是否已更新;或者,根据所述第一文件内容信息和所述第二文件内容信息,判断所述第一界面布局配置文件是否已更新。采用该方式,首先获取服务器端和智能设备端各自存储的界面布局配置文件的版本信息或文件内容信息,然后由智能设备根据这些信息判断第一界面布局配置文件是否已更新;这种处理方式,使得判断步骤由智能设备执行;因此,可以有效利用本地设备的计算资源,节约服务器的计算资源。作为一种可选的实施方案,也可以在服务器端执行判断第一界面布局配置文件是否已更新的步骤。具体实施时,可包括如下具体步骤:1)获取存储在所述原生应用程序中的与所述界面对应的第二界面布局配置文件的第二版本标识或第二文件内容信息;2)向所述服务器发送针对所述界面的版本判断请求;所述版本判断请求包括所述界面的界面标识、和所述第二版本标识或第二文件内容信息;所述服务器判断所述第二版本标识和所述第一界面布局配置文件的第一版本标识是否一致,或者判断所述第二文件内容信息和所述第一界面布局配置文件的文件内容信息是否一致;3)接收所述服务器回送的判断结果。采用该方式,首先向服务器发送版本判断请求,该请求携带有智能设备中的第二界面布局配置文件的版本标识或文件内容信息,然后由服务器根据这些信息判断第一界面布局配置文件是否已更新,并向设备端返回判断结果。需要说明的是,判断第一界面布局配置文件是否已更新,既可根据版本标识进行判断,也可以是根据配置文件的文件内容(包括界面布局代码)进行判断。在获取到服务器端和智能设备端各自存储的配置文件的文件内容后,根据第一界面布局配置文件的文件内容和第二界面布局配置文件的文件内容,判断所述第一界面布局配置文件是否已更新。当判定服务器中存储的第一界面布局配置文件未更新时,则可根据所述原生应用程序中存储的第二界面布局配置文件渲染界面;当判定服务器中存储的第一界面布局配置文件已更新时,就可以进入下一步骤,从服务器端下载所述第一界面布局配置文件。步骤302,将所述第一界面布局配置文件下载至智能设备。具体实施时,从服务器端下载所述第一界面布局配置文件后,还可以将该第一界面布局配置文件保存在智能设备中,以便下次渲染界面时使用。如果智能设备存储有第二界面布局配置文件,则可使得该第二界面布局配置文件被该第一界面布局配置文件所覆盖。在实际应用中,所述界面可包括界面布局和界面内容两个部分,界面内容就是数据部分。在界面中显示的数据通常是实时更新的,比如电影推荐,电视剧推荐等,这些内容都是需要跟后台系统(服务器)对接的。这种情况下,如果界面布局配置文件仅包括界面布局部分的代码,则无法实现动态更新数据功能。可见,需要在界面布局配置文件中同时增加动态数据内容。在本实施例中,所述第一界面布局配置文件由两部分内容构成:动态数据内容相关代码、和界面布局与效果配置。所述原生应用程序启动后,会通过后台接口获取第一界面布局配置文件,然后可从第一界面布局配置文件中读取出这两部分数据,通过解析这两部分数据,将界面完整显示到屏幕上。作为一种优选的实施方案,如果所述界面包括动态数据内容,则在智能设备下载该界面的第一界面布局配置文件之前,服务器端可首先根据动态数据内容相关代码获取动态数据内容,再将获得的动态数据内容写入该第一界面布局配置文件中,使得智能设备下载得到的第一界面布局配置文件直接包括动态数据内容;这种处理方式,使得智能设备无需再二次从服务器端获取动态数据内容;因此,可以有效提高界面渲染速度。步骤303,根据所述第一界面布局配置文件渲染所述界面。为了方便开发人员对第一界面布局配置文件进行编辑修改及阅读,本申请实施例的第一界面布局配置文件支持大部分的操作系统原生控件及其属性(如android:width,android:height,android:margin等属性);这种处理方式,使得开发人员可以在android开发环境里编辑原生布局文件,然后将其内容拷贝到第一界面布局配置文件中直接使用。在本实施例中,第一界面布局配置文件与第二界面布局配置文件内容格式均为xml格式,实际应用中也可以采用轻量级数据交换格式,如json等格式。需要说明的是,当所述第一界面布局配置文件仅包括操作系统原生的控件和属性时,对于一些特殊的场景会有一些局限性,例如,单纯使用原生的控件和属性将无法实现在界面中新增控件、修改界面的控件或在界面中增加特效等功能。为了解决这个问题,所述第一界面布局配置还可包括自定义的控件和/或自定义的属性,如实现特效功能、空间功能定义、空间缩放等功能的控件和属性。请参见表1,该表给出了本实施例设置的部分自定义属性。标签名标签含义selectedback选中背景色(如#ffffffff)selectedtextcolor选中文字颜色(如#ffffffff)scalebiger选中放大值(如1.05)srcimageview图片来源intentfromarray跳转相关属性(从data里拿数据)intent跳转相关属性text显示的文字表1、本实施例包括的部分自定义属性表1中selectedback标签的意义为选中控件时控件的背景色变为selectedback对应的颜色,scalebiger标签的意义为选中控件时控件尺寸变大的倍数。下面通过举例方式说明表1中部分标签能够实现的功能。1)src标签。例1:src="{'item_data':'data_big_data','item_index':'0','name':'poster_url'}",数据源为data_big_data数组第0个对象标签为poster_url对应的值。例2:src="poster_url",数据源为poster_urlt标签对应的值。2)intentfromarrayc标签。如,intentfromarray="{'item_data':'data_video_recommand_vr','item_index':'0','name':'intent'}",数据源为data_video_recommand_vr数组第0个对象中标签为intent对应的值。3)intent标签。例1:intent="{'intent_action':'android.intent.action.mediafolder','intent_data':['mode','0']}",跳转action=“android.intent.action.mediafolder”,参数mode=“0”。例2:intent=“intent”,intent数据源在intent标签对应的json对象中。4)text标签。例1:text="{'item_data':'data_video_recommand_vr','item_index':'0','name':'name'}",text内容为data_video_recommand_vr数组里第0个对象标签为name的value。例2:text="name",text内容为name标签对应的值。具体实施时,当第一界面布局配置文件包括自定义的控件和/或自定义的属性时,要根据该第一界面布局配置文件渲染所述界面,则需要通过对应的解析器解析该第一界面布局配置文件,再根据解析后的自定义控件和/或自定义属性,渲染所述界面。通过所述预设解析器可对自定义的控件和自定义的属性进行解析,当第一界面布局配置文件的文件格式为xml格式时,可采用xmlpullparser、dom4j或jdom等解析器解析配置文件;当第一界面布局配置文件的文件格式为json格式时,可采用fastjson、json-lib或org-json等解析器解析配置文件。在本实施例中,当智能设备将包括自定义控件和属性的界面布局配置文件从服务器端下载到本地后,逐行读取该配置文件,实时使用androidxml解析器xmlpullparser解析自定义控件和属性,生成界面布局并显示在屏幕中。例如,本实施例的配置文件中含有horizontallistview标签,此标签在原生配置文件中并不存在,为本实施例自定义的标签,该自定义控件的功能为实现水平listview平滑滚动并保持焦点居中。xmlpullparser解析器发现此标签后,实例化该自定义控件并将其add到父view中。在本实施例中,第一界面布局配置文件包括的局部布局代码及相应的自定义控件解析代码如下所述,当读到如下局部布局代码:</relativelayout>时,对应的自定义控件解析代码为:relativelayoutrelativelayout=newrelativelayout(this);layoutparamslp=newlayoutparams(330);relativelayout.setlayoutparams(lp);layoutparamslp=relativelayout.getlayoutparams();lp.height=476;relativelayout.setlayoutparams(lp);relativelayout..setclick(true);relativelayout..setfocusable(true);relativelayout..setfocusableintouchmode(true);imageviewimageview=newimageview(this);layoutparamslp=newlayoutparams(330);imageview.setlayoutparams(lp);layoutparamslp=imageview.getlayoutparams();lp.height=476;imageview.setlayoutparams(lp);imageview.setscaletype(scaletype.fitxy);relativelayout.addview(imageview);setcontentview(relativelayout);再例如,第一界面布局配置文件包括如下局部布局代码:当智能设备端解析器读取到intent标签时,取出intent对应值,并通过以下代码处理该标签:需要说明的是,如果界面布局配置文件不包括自定义的控件和/或自定义的属性,则可通过android底层程序(c/c++编写的程序)解读该原生配置文件,以生成布局并显示界面。由于该技术属于现有技术,此处不再赘述。参见图4,为本申请用于更新界面布局的方法一个实施例的具体示意图,以及,参见图5,为本申请用于更新界面布局的方法一个实施例的界面示意图。在本实施例中,在智能电视启动原生应用程序时,首先加载存储应用程序首页的本地存储的界面布局配置文件(即离线配置),根据该离线配置显示首页后,判断该首页的服务器端存储的界面布局配置文件是否有更新,如果判定有更新,则下载该新的配置文件,并根据该新的配置文件重新渲染该首页;如果判定无更新,则无需处理;本实施例定期判断该首页的服务器端存储的界面布局配置文件是否有更新,以达到实时更新界面布局的效果。从上述实施例可以看出,采用本申请实施例提供的方法,智能设备中的原生应用程序通过判断存储在服务器中的与原生应用程序的界面对应的第一界面布局配置文件是否已更新,在判定服务器端的界面布局配置文件发生变化后,下载更新后的界面布局配置文件,再根据该更新后的界面布局配置文件渲染相应的界面;这种处理方式,既能实现界面布局的实时更新,又不限制原生应用程序的操作方式,也不影响原生应用程序的执行效率,开发人员能够快速的开发界面并部署到具有不同操作方式特点的所有智能设备中。参见图6,为本申请用于更新界面布局的装置一个实施例的结构示意图。所述用于执行图3所对应的用于更新界面布局的方法。如图6所示,该用于更新界面布局的装置包括:判断单元601,用于判断存储在服务器中的与原生应用程序的界面对应的第一界面布局配置文件是否已更新;若是,则启动配置文件下载单元602;配置文件下载单元602,用于将所述第一界面布局配置文件下载至智能设备;界面渲染单元603,用于根据所述第一界面布局配置文件渲染所述界面。可选的,所述第一界面布局配置文件包括自定义控件和/或自定义属性;所述界面渲染单元603包括:自定义标签解析子单元,用于通过预设解析器,解析所述自定义控件和/或所述自定义属性;界面渲染子单元,用于根据解析后的自定义控件和/或自定义属性,渲染所述界面。可选的,所述预设解析器包括xmlpullparser解析器。可选的,所述界面包括动态数据内容,所述第一界面布局配置文件包括所述动态数据内容相关的程序代码。可选的,所述判断单元601包括:获取子单元,用于获取存储在所述原生应用程序中的与所述界面对应的第二界面布局配置文件的第二版本标识或第二文件内容信息;请求发送子单元,用于向所述服务器发送针对所述界面的版本判断请求;所述版本判断请求包括所述界面的界面标识、和所述第二版本标识或第二文件内容信息;所述服务器判断所述第二版本标识和所述第一界面布局配置文件的第一版本标识是否一致,或者判断所述第二文件内容信息和所述第一界面布局配置文件的文件内容信息是否一致;判断结果接收子单元,用于接收所述服务器回送的判断结果。可选的,所述判断单元601包括:第一获取子单元,用于获取所述第一界面布局配置文件的第一版本标识或第一文件内容信息;第二获取子单元,用于获取存储在所述原生应用程序中的与所述界面对应的第二界面布局配置文件的第二版本标识或第二文件内容信息;判断子单元,用于根据所述第一版本标识和所述第二版本标识,或者根据所述第一文件内容信息和所述第二文件内容信息,判断所述第一界面布局配置文件是否已更新。可选的,所述判断单元601,具体用于在已显示所述界面时,根据预设的时间间隔,判断所述第一界面布局配置文件是否已更新。可选的,所述装置还包括:本地渲染单元,用于根据存储在所述原生应用程序中的与所述界面对应的第二界面布局配置文件,渲染所述界面。可选的,所述判断单元601,具体用于在要显示所述界面时,判断所述第一界面布局配置文件是否已更新。可选的,若判断单元601的判断结果为否,则启动所述本地渲染单元。从上述实施例可以看出,采用本申请实施例提供的装置,智能设备中的原生应用程序通过判断存储在服务器中的与原生应用程序的界面对应的第一界面布局配置文件是否已更新,在判定服务器端的界面布局配置文件发生变化后,下载更新后的界面布局配置文件,再根据该更新后的界面布局配置文件渲染相应的界面;这种处理方式,既能实现界面布局的实时更新,又不限制原生应用程序的操作方式,也不影响原生应用程序的执行效率,开发人员能够快速的开发界面并部署到具有不同操作方式特点的所有智能设备中。与本申请的用于更新界面布局的方法相对应,本申请还提供了一种电子设备。所述电子设备包括:处理器;以及存储器,用于存储实现用于更新界面布局的方法的程序,该设备通电并通过所述处理器运行该用于更新界面布局的方法的程序后,执行下述步骤:判断存储在服务器中的与原生应用程序的界面对应的第一界面布局配置文件是否已更新;若是,则将所述第一界面布局配置文件下载至智能设备,再根据所述第一界面布局配置文件渲染所述界面。具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的用于更新界面布局的方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于……实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1