CN106250158A - 一种客户端界面的布局方法、装置和移动设备 - Google Patents
一种客户端界面的布局方法、装置和移动设备 Download PDFInfo
- Publication number
- CN106250158A CN106250158A CN201610630328.0A CN201610630328A CN106250158A CN 106250158 A CN106250158 A CN 106250158A CN 201610630328 A CN201610630328 A CN 201610630328A CN 106250158 A CN106250158 A CN 106250158A
- Authority
- CN
- China
- Prior art keywords
- interface
- file
- primary topology
- topology file
- client end
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种客户端界面的布局方法、装置和移动设备,在移动设备中存储有客户端界面的界面资源,以及客户端界面的原生布局文件,所述方法包括:在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;采用所述原生布局文件和所述界面资源生成界面控件;将所述界面控件按照所述原生布局文件布局至客户端界面。本申请实施例当客户端界面新增或修改样式时,只需要重新获取原生布局文件,以及新增或者更新的界面资源即可,而无需客户端和服务端多方重复工作,从而简单且灵活的实现线上的动态布局,在无兼容问题的情况下无需迭代新的客户端版本即可快速生效。
Description
技术领域
本申请实施例涉及移动通信技术领域,特别是涉及一种客户端界面的布局方法,一种客户端界面的布局装置,以及一种移动设备。
背景技术
随着科学技术的发展,诸如手机、平板电脑、智能手表等移动设备广泛普及,在人们的生活、学习、工作中的应用越来越多。
为了满足用户的各种需求,如阅读、会话等等,用户经常在***中安装许多客户端,如电子书阅读器、即时通讯工具,应用助手等等。这些客户端会进行版本迭代,以为用户提供更好的服务。
以Android(安卓)***的客户端为例,在客户端的版本迭代过程中,往往会呈现越来越多不同样式的推荐集,使得客户端上数据展示的更加全面丰富、多样化。然而,每增加一种样式的推荐集,意味着客户端和服务端需要多约定好一个类型标识,并且客户端需要修改代码应对新的类型标识,最后本地升级为新版本的客户端才能生效。这种方式主要存在以下3个缺点:
1、对于研发层面而言,在设计模式上违背了开闭原则;
2、每次新增样式需求,需多方协调、新增、修改,造成多方的重复工作量;
3、需要升级为新版本的客户端后新增样式才能生效,且只能覆盖到升级为新版本的客户端。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种客户端界面的布局方法和相应的一种客户端界面的布局装置和移动设备。
为了解决上述问题,本申请公开了一种客户端界面的布局方法,在移动设备中存储有客户端界面的界面资源,以及客户端界面的原生布局文件,所述方法包括:
在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
采用所述原生布局文件和所述界面资源生成界面控件;
将所述界面控件按照所述原生布局文件布局至客户端界面。
优选地,在所述获取客户端界面的原生布局文件和界面资源的步骤之前,还包括:
从指定服务端中下载原生布局文件;
将所述原生布局文件存储在所述移动设备中。
优选地,所述原生布局文件具有对应的文件标识,在所述将原生布局文件存储在所述移动设备中的步骤之后,还包括:
获取所述原生布局文件在所述移动设备中的文件存储路径;
建立所述文件标识与所述文件存储路径之间的关联关系。
优选地,所述客户端界面具有对应的程序标识,所述客户端界面的原生布局文件通过如下方式获取:
判断在所述移动设备中是否存在与所述程序标识匹配的文件标识;
若是,则获取所述文件标识对应的文件存储路径;
依据所述文件存储路径获取对应的原生布局文件。
优选地,所述原生布局文件包含所述界面资源对应的资源标识,所述采用原生布局文件和所述界面资源生成界面控件的步骤包括:
获取所述原生布局文件中的资源标识;
采用所述资源标识从所述移动设备中获取对应的界面资源;
按照所述原生布局文件设置所述界面资源得到界面控件。
优选地,所述将界面控件按照所述原生布局文件布局至客户端界面的步骤包括:
按照所述原生布局文件在所述客户端界面中设置父控件;
将所述界面控件添加到所述父控件中。
优选地,所述资源标识为tag标识。
本申请实施例还公开了一种客户端界面的布局装置,在移动设备中存储有客户端界面的界面资源,以及客户端界面的原生布局文件,所述装置包括:
布局数据获取模块,用于在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
界面控件生成模块,用于采用所述原生布局文件和所述界面资源生成界面控件;
界面控件布局模块,用于将所述界面控件按照所述原生布局文件布局至客户端界面。
优选地,还包括:
原生布局文件下载模块,用于从指定服务端中下载原生布局文件;
原生布局文件存储模块,用于将所述原生布局文件存储在所述移动设备中。
优选地,所述原生布局文件具有对应的文件标识,所述装置还包括:
文件存储路径获取模块,用于获取所述原生布局文件在所述移动设备中的文件存储路径;
关联关系建立模块,用于建立所述文件标识与所述文件存储路径之间的关联关系。
优选地,所述客户端界面具有对应的程序标识,所述布局数据获取模块包括:
标识匹配子模块,用于判断在所述移动设备中是否存在与所述程序标识匹配的文件标识;若是,则调用文件存储路径获取子模块;
文件存储路径获取子模块,用于获取所述文件标识对应的文件存储路径;
获取原生布局文件子模块,用于依据所述文件存储路径获取对应的原生布局文件。
优选地,所述原生布局文件包含所述界面资源对应的资源标识,所述界面控件生成模块包括:
资源标识获取子模块,用于获取所述原生布局文件中的资源标识;
界面资源获取子模块,用于采用所述资源标识从所述移动设备中获取对应的界面资源;
界面资源设置子模块,用于按照所述原生布局文件设置所述界面资源得到界面控件。
优选地,所述界面控件布局模块包括:
父控件设置子模块,用于按照所述原生布局文件在所述客户端界面中设置父控件;
界面控件添加子模块,用于将所述界面控件添加到所述父控件中。
本申请实施例还公开了一种移动设备,在移动设备中存储有客户端界面的界面资源,以及客户端界面的原生布局文件,所述移动设备包括:
布局数据获取模块,用于在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
界面控件生成模块,用于采用所述原生布局文件和所述界面资源生成界面控件;
界面控件布局模块,用于将所述界面控件按照所述原生布局文件布局至客户端界面。
本申请实施例包括以下优点:
本申请实施例加载客户端界面时,获取客户端预先下载的原生布局文件和界面资源,然后根据界面资源和原生布局文件生成界面控件,最后按照原生布局文件将界面控件布局到客户端界面中,这样,当客户端界面新增或修改样式时,只需要重新获取原生布局文件,以及新增或者更新的界面资源即可,而无需客户端和服务端多方重复工作,从而简单且灵活的实现线上的动态布局,在无兼容问题的情况下无需迭代新的客户端版本即可快速生效。
本申请实施例无需额外复杂的布局代码和制定复杂的布局协议,采用的是安卓原生的布局文件和原生的生成布局的方法,故而实现简单。另外,本申请实施例的布局文件不仅支持安卓原生资源,还同时支持对应版本存在的自定义资源,故而布局灵活方便。应用本申请实施例,使得产品和运营在优化产品体验时,可以更快的进行新效果发布、数据统计以及收集用户反馈,实现快速试错的能力,客户端和服务端研发则大大减少了代码新增和代码修改的工作量,缩短开发时间,降低开发成本。
附图说明
图1是本申请的一种客户端界面的布局方法实施例1的步骤流程图;
图2是本申请的一种客户端界面的布局方法实施例2的步骤流程图;
图3是本申请的一种客户端界面的布局装置实施例的结构框图;
图4是本申请的一种移动设备实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种客户端界面的布局方法实施例的步骤流程图,在客户端中可以存储有客户端界面的界面资源,以及客户端界面的原生布局文件,具体可以包括如下步骤:
步骤101,在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
在具体实现中,客户端界面也可以称为图形用户界面(Graphical UserInterface,GUI),需要对客户端界面中的界面元素(图形、文字等等)进行排布。优秀的布局能简化用户与应用程序之间的交互操作,迎合用户的使用习惯,提高用户使用的用户体验。
本申请实施例可以应用在各种移动设备中,例如,手机、平板电脑、个人数字助理、穿戴设备(如眼镜、手表等)等等,也可以应用在各种固定设备中,例如,智能电视、个人电脑等等。
这些移动设备、固定设备的操作***可以包括Android、IOS、Windows Phone、Windows等,在这些***中可以安装各种客户端,如电子书阅读器、即时通讯工具、浏览器等等,可以显示网页或者在线内容。下面主要采用Android客户端为例对于本申请实施例进行说明。
在本申请实施例中,移动设备中预先存储有从服务端下载的原生布局文件,以及,客户端的界面资源。当需要加载客户端界面在移动设备上进行显示时,将获取客户端界面对应的原生布局文件和界面资源。
需要说明的是,界面资源可以是可以随着时间会沉淀下来,时间越久积累得越多,所以很长一段版本迭代时间内一般都是足够使用的,故而有时候只需要更新原生布局文件,即可实现对客户端界面样式的新增或更新。
步骤102,采用所述原生布局文件和所述界面资源生成界面控件;
界面控件,是指可在客户端界面上放置的可视化元素,也即是前述的界面元素,如按钮、文件编辑框等等。其中部分界面控件具有执行功能或通过“事件”引发代码运行并完成响应的功能。
在本申请的一个实施例中,所述原生布局文件可以包含所述界面资源对应的资源标识,所述步骤102可以包括如下子步骤:
子步骤S11,获取所述原生布局文件中的资源标识;
子步骤S12,采用所述资源标识从所述客户端中获取对应的界面资源;
子步骤S13,按照所述原生布局文件设置所述界面资源得到界面控件。
在本申请实施例中,界面资源的资源标识可以为tag标识。在加载客户端界面时,使用原生布局文件中的tag标识在移动设备中查找对应的界面资源。
通常,布局文件使用id标识来引用界面资源,但是由于本申请实施例是的界面资源和用于布局的原生布局文件并不是一起发送到客户端,而是分开发送的,故如果直接通过id标识引用界面资源,可能导致出现引用异常的问题。
故本申请实施例中,原生布局文件使用tag标识替代id标识,用于引用界面资源,而其他的标识如颜色、大小也可直接使用具体值进行替代,这样,就不会出现引用错误的问题,当然,也可以使用其他方式使得不至于出现引用错误的问题,本申请实施例对此不加以限制。
本申请实施例采用原生布局文件中的tag标识遍历移动设备,如果存在与tag标识匹配的界面资源,则获取该界面资源。获取到的界面资源后,按照原生布局文件对界面资源进行设置得到界面控件。
步骤103,将所述界面控件按照所述原生布局文件布局至客户端界面。
在具体实现中,原生布局文件定义了新增或更新的客户端界面样式。当客户端中存在原生布局文件时,按照原生布局文件生成界面控件,并按照原生布局文件将界面控件布局至客户端界面相应位置中。
如果在移动设备中并不存在客户端的原生布局文件,则按照该客户端在先安装包来加载客户端界面。
在本申请的一个实施例中,所述步骤103可以包括如下子步骤:
子步骤S21,按照所述原生布局文件在所述客户端界面中设置父控件;
子步骤S22,将所述界面控件添加到所述父控件中。
本申请实施例可以对全部客户端界面的布局,也可以只对部分客户端界面的布局。例如,可以对客户端界面的标题栏样式的布局,对客户端应用栏的样式的布局,本申请实施例对此不加以限制。
假设某个客户端界面的标题栏的样式需要应用本申请实施例动态生成,那么首先在标题栏所在的位置根据原生布局文件放置一个空的控件,即父控件,然后使用已生成的界面控件,添加到空的父控件里进行渲染展示,此时客户端界面布局完成。
本申请实施例加载客户端界面时,获取客户端预先下载的原生布局文件和界面资源,然后根据界面资源和原生布局文件生成界面控件,最后按照原生布局文件将界面控件布局到客户端界面中,这样,当客户端界面新增或修改样式时,只需要重新获取原生布局文件,以及新增或者更新的界面资源即可,而无需客户端和服务端多方重复工作,从而简单且灵活的实现线上的动态布局,在无兼容问题的情况下无需迭代新的客户端版本即可快速生效。其中,兼容问题,主要是指网络请求接口协议不兼容,或布局文件使用了新版中才存在的自定义控件等问题。
本申请实施例无需额外复杂的布局代码和制定复杂的布局协议,采用的是安卓原生的布局文件和原生的生成布局的方法,故而实现简单。另外,本申请实施例的布局文件不仅支持安卓原生资源,还同时支持对应版本存在的自定义资源,故而布局灵活方便。应用本申请实施例,使得产品和运营在优化产品体验时,可以更快的进行新效果发布、数据统计以及收集用户反馈,实现快速试错的能力,客户端和服务端研发则大大减少了代码新增和代码修改的工作量,缩短开发时间,降低开发成本。
参照图2,示出了本申请的一种客户端界面的布局方法实施例的步骤流程图,在客户端中存储可以有客户端界面的界面资源,以及客户端界面的原生布局文件,具体可以包括如下步骤:
步骤201,从指定服务端中下载客户端界面的原生布局文件;
在具体应用中,按需求编写原生布局文件。原生布局文件可以支持原生界面资源和自定义界面资源。其中,原生界面资源是指原先Android等***支持的原有的界面资源,反之,自定义界面资源是指针对客户端编写的界面资源,而非Android等***支持的原有界面资源。
原生布局文件在编写时,并不直接引用界面资源的id标识,因为原生布局文件并不是和客户端的安装包(安装包里包括界面资源)一起打包编译的,而可能是分开下载到客户端的,故如果直接引用界面资源的id标识来编写原生布局文件会出现引用异常。
以android为例,在安卓布局文件里声明的所有资源id标识(在布局文件里都是字符串如“@+id/pp_test_id”),随工程编译后都会生成对应的整型id标识,如0x7f040000。所以下发的XML布局里不允许声明资源id标识的原因就是,该布局文件不是随当时的客户端版本一起编译的,若使用id标识,编译后和已发布的版本不一致,运行时会发生找不到资源的异常。
针对上述问题,在本申请实施例中,对于界面资源的id标识,采用tag标识进行替代,tag为字符串,如“pp_test_id”,使用tag标识就可以避免上述的问题。原生布局文件中其他的属性如颜色、大小也可直接使用具体值进行替代,以避免引用异常的问题。
原生布局文件编写好后,使用Android appt工具的package指令(该指令的作用是打包生成资源压缩包),对原生布局文件进行编译。其中,原生布局文件在编写时,可以将新增或更新样式的相应界面资源一起进行编译,由于此时的界面资源与原生布局文件一起编译,如果直接使用id标识引用界面资源,也不会出现引用异常的问题。
需要说明的是,aapt(Android Asset Packaging Tool,安卓资源打包工具),在SDK(软件开发工具包,Software Development Kit)的build-tools目录下。aapt工具可以查看、创建、更新zip,jar,apk等格式的文档附件,也可将界面资源编译成二进制文件。这是为了压缩资源存储空间,以及加快运行时的资源解析速度。本申请实施例对编写好的原生布局文件进行编译,并将编译好的原生布局文件新增或更新到指定服务端上,以供客户端下载。
步骤202,将所述原生布局文件存储在所述客户端中;
较佳地,为了便于客户端获知服务端上有原生布局文件新增或更新,可以在新增或更新原生布局文件后发送提醒至客户端,客户端就可以到服务端下载原生布局文件,以及相关的界面资源等等,并存储在本地的目录中。或者,客户端也可以定期访问服务端,以获知是否有原生布局文件新增或更新,只有能够获得原生布局文件,本申请实施例对此不加以限制。
在本申请的一个实施例中,所述原生布局文件可以具有对应的文件标识,在所述步骤202之后,还可以包括如下步骤:
获取所述原生布局文件在所述客户端中的文件存储路径;
建立所述文件标识与所述文件存储路径之间的关联关系。
在本申请实施例中,在获取到原生布局文件,将相应获取该原生布局文件在客户端本地的文件存储路径,并建立原生布局文件的文件标识与文件存储路径之间的关联关系,这样,当知晓需要调用某一原生布局文件时,可以根据原生布局文件的文件标识获知对应的存储路径。其中,文件标识可以是原生布局文件的文件名,当然,也可以是其他能够识别到该原生布局文件其他标识,本申请实施例对此不加以限制。
具体来说,客户端请求下载原生布局文件A,存放到客户端的本地目录B,然后使用JAVA的反射机制反射调用安卓资源管理框架的添加资源路径的私有方法,利用该方法将目录B添加到安卓资源管理器认可的路径列表中。
需要说明的是:JAVA的反射机制,即在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为JAVA语言的反射机制。由于在先实现需操作资源管理器中的私有方法,无开放的API(Application Programming Interface,应用程序编程接口)接口可以调用,所以需要使用JAVA的反射机制。
步骤203,在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
在本申请的一个实施例中,所述客户端界面可以具有对应的程序标识,所述步骤203,即所述客户端界面的原生布局文件通过如下方式获取:
子步骤S31,判断在所述客户端中是否存在与所述程序标识匹配的文件标识;若是,则执行子步骤S32;
子步骤S32,获取所述文件标识对应的文件存储路径;
子步骤S33,依据所述文件存储路径获取对应的原生布局文件。
步骤204,采用所述原生布局文件和所述界面资源生成界面控件;
在具体实现中,在加载显示客户端界面时,客户端使用安卓资源管理框架通过原生布局文件A的本地文件名,自动搜索到目录B并找到该原生布局文件进行加载,从而生成其对应的XML布局解析器。
步骤205,将所述界面控件按照所述原生布局文件布局至客户端界面。
客户端通过根据原生布局文件生成的XML布局解析器,交由安卓布局构造器框架生成其对应的界面控件(该框架的作用是通过原生布局文件或布局解析器将布局里的界面控件按规则排列好并设置属性)。最后,生成的界面控件添加到指定的父控件里,即可在客户端界面上渲染出来。
本申请实施例的核心之一是,使用Android已有的公开的API方法,加载并解析预编译好的原生布局文件,然而该API方法只会去当前的资源管理框架里寻找指定的布局文件,而资源管理器只识别应用自身的资源目录,所以***找不到从服务端下载到本地的布局文件。本申请实施例巧妙的利用JAVA反射机制,反射调用Android资源管理框架的私有方法来添加本地文件夹路径,使***能够找到已下载的原生布局文件,从而正常加载解析并生成对应的界面控件渲染到客户端界面上。
为了是本领域技术人员更好地理解本申请实施例,以下对于本申请实施例的原理及优点作进一步说明。
以Android为例,Android应用程序(客户端)主要由两部分内容组成:代码和资源。资源主要就是指那些与UI相关的东西,例如UI布局、字符串和图片等。代码和资源分开可以使得应用程序在运行时根据实际需要来组织UI。这样就可使得应用程序只需要编译一次,就可以支持不同的UI布局。这种特性使得应用程序在运行时可以适应不同的屏幕大小和密度,以及不同的国家和语言等。但这种一起编译方式所存在的问题是,每一次需要更新客户端样式时,都需要下载最新版本的客户端并安装这样无法快速进行新效果的发布,无法快速对于产品进行优化。
本申请实施例则是将用于客户端界面布局的原生布局文件与客户端的安装包分开进行编译,故如果需要进行客户端样式新增或更新,只需要重新研发编译新的原生布局文件,然后新增或更新服务器对应界面资源即可,解析并加载新的原生布局文件来生成界面控件再渲染到客户端界面上,从而简单且灵活的实现线上的动态布局,在无兼容问题的情况下无需迭代新的客户端版本即可快速生效。
本申请实施例这种做法的优点是,在产品和运营在优化产品体验时,通过本申请实施例可以更快的进行新效果发布、数据统计以及收集用户反馈,实现快速试错的能力。而客户端和服务器研发则大大减少了代码新增和代码修改的工作量,缩短开发时间,降低开发成本。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图3,示出了本申请的一种客户端界面的布局装置实施例的结构框图,在移动设备中可以存储有客户端界面的界面资源,以及客户端界面的原生布局文件,所述装置具体可以包括如下模块:
布局数据获取模块301,用于在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
在本申请的一个实施例中,所述装置还可以包括如下模块:
原生布局文件下载模块,用于从指定服务端中下载原生布局文件;
原生布局文件存储模块,用于将所述原生布局文件存储在所述移动设备中。
在本申请的一个实施例中,所述原生布局文件可以具有对应的文件标识,所述装置还可以包括如模块:
文件存储路径获取模块,用于获取所述原生布局文件在所述移动设备中的文件存储路径;
关联关系建立模块,用于建立所述文件标识与所述文件存储路径之间的关联关系。
界面控件生成模块302,用于采用所述原生布局文件和所述界面资源生成界面控件;
在本申请的一个实施例中,所述客户端界面可以具有对应的程序标识,所述布局数据获取模块301可以包括如下子模块:
标识匹配子模块,用于判断在所述移动设备中是否存在与所述程序标识匹配的文件标识;若是,则调用文件存储路径获取子模块;
文件存储路径获取子模块,用于获取所述文件标识对应的文件存储路径;
获取原生布局文件子模块,用于依据所述文件存储路径获取对应的原生布局文件。
在本申请的一个实施例中,所述原生布局文件可以包含所述界面资源对应的资源标识,所述界面控件生成模块302可以包括如下子模块:
资源标识获取子模块,用于获取所述原生布局文件中的资源标识;
界面资源获取子模块,用于采用所述资源标识从所述移动设备中获取对应的界面资源;
界面资源设置子模块,用于按照所述原生布局文件设置所述界面资源得到界面控件。
界面控件布局模块303,用于将所述界面控件按照所述原生布局文件布局至客户端界面。
在本申请的一个实施例中,所述界面控件布局模块302可以包括如下子模块:
父控件设置子模块,用于按照所述原生布局文件在所述客户端界面中设置父控件;
界面控件添加子模块,用于将所述界面控件添加到所述父控件中。
在本申请的一个实施例中,所述资源标识可以为tag标识。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图4,示出了本申请的一种移动设备实施例的结构框图,在移动设备中可以存储有客户端界面的界面资源,以及客户端界面的原生布局文件,所述移动设备具体可以包括如下模块:
布局数据获取模块401,用于在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
在本申请的一个实施例中,所述装置还可以包括如下模块:
原生布局文件下载模块,用于从指定服务端中下载原生布局文件;
原生布局文件存储模块,用于将所述原生布局文件存储在所述移动设备中。
在本申请的一个实施例中,所述原生布局文件可以具有对应的文件标识,所述装置还可以包括如模块:
文件存储路径获取模块,用于获取所述原生布局文件在所述移动设备中的文件存储路径;
关联关系建立模块,用于建立所述文件标识与所述文件存储路径之间的关联关系。
界面控件生成模块402,用于采用所述原生布局文件和所述界面资源生成界面控件;
在本申请的一个实施例中,所述客户端界面可以具有对应的程序标识,所述布局数据获取模块401可以包括如下子模块:
标识匹配子模块,用于判断在所述移动设备中是否存在与所述程序标识匹配的文件标识;若是,则调用文件存储路径获取子模块;
文件存储路径获取子模块,用于获取所述文件标识对应的文件存储路径;
获取原生布局文件子模块,用于依据所述文件存储路径获取对应的原生布局文件。
在本申请的一个实施例中,所述原生布局文件可以包含所述界面资源对应的资源标识,所述界面控件生成模块402可以包括如下子模块:
资源标识获取子模块,用于获取所述原生布局文件中的资源标识;
界面资源获取子模块,用于采用所述资源标识从所述移动设备中获取对应的界面资源;
界面资源设置子模块,用于按照所述原生布局文件设置所述界面资源得到界面控件。
界面控件布局模块403,用于将所述界面控件按照所述原生布局文件布局至客户端界面。
在本申请的一个实施例中,所述界面控件布局模块402可以包括如下子模块:
父控件设置子模块,用于按照所述原生布局文件在所述客户端界面中设置父控件;
界面控件添加子模块,用于将所述界面控件添加到所述父控件中。
在本申请的一个实施例中,所述资源标识可以为tag标识。
对于移动设备实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种客户端界面的布局方法,一种客户端界面的布局装置和移动设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种客户端界面的布局方法,其特征在于,在移动设备中存储有客户端界面的界面资源,以及客户端界面的原生布局文件,所述方法包括:
在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
采用所述原生布局文件和所述界面资源生成界面控件;
将所述界面控件按照所述原生布局文件布局至客户端界面。
2.根据权利要求1所述的方法,其特征在于,在所述获取客户端界面的原生布局文件和界面资源的步骤之前,还包括:
从指定服务端中下载原生布局文件;
将所述原生布局文件存储在所述移动设备中。
3.根据权利要求2所述的方法,其特征在于,所述原生布局文件具有对应的文件标识,在所述将原生布局文件存储在所述移动设备中的步骤之后,还包括:
获取所述原生布局文件在所述移动设备中的文件存储路径;
建立所述文件标识与所述文件存储路径之间的关联关系。
4.根据权利要求3所述的方法,其特征在于,所述客户端界面具有对应的程序标识,所述客户端界面的原生布局文件通过如下方式获取:
判断在所述移动设备中是否存在与所述程序标识匹配的文件标识;
若是,则获取所述文件标识对应的文件存储路径;
依据所述文件存储路径获取对应的原生布局文件。
5.根据权利要求1所述的方法,其特征在于,所述原生布局文件包含所述界面资源对应的资源标识,所述采用原生布局文件和所述界面资源生成界面控件的步骤包括:
获取所述原生布局文件中的资源标识;
采用所述资源标识从所述移动设备中获取对应的界面资源;
按照所述原生布局文件设置所述界面资源得到界面控件。
6.根据权利要求1所述的方法,其特征在于,所述将界面控件按照所述原生布局文件布局至客户端界面的步骤包括:
按照所述原生布局文件在所述客户端界面中设置父控件;
将所述界面控件添加到所述父控件中。
7.根据权利要求5所述的方法,其特征在于,所述资源标识为tag标识。
8.一种客户端界面的布局装置,其特征在于,在移动设备中存储有客户端界面的界面资源,以及客户端界面的原生布局文件,所述装置包括:
布局数据获取模块,用于在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
界面控件生成模块,用于采用所述原生布局文件和所述界面资源生成界面控件;
界面控件布局模块,用于将所述界面控件按照所述原生布局文件布局至客户端界面。
9.根据权利要求8所述的装置,其特征在于,还包括:
原生布局文件下载模块,用于从指定服务端中下载原生布局文件;
原生布局文件存储模块,用于将所述原生布局文件存储在所述移动设备中。
10.根据权利要求9所述的装置,其特征在于,所述原生布局文件具有对应的文件标识,所述装置还包括:
文件存储路径获取模块,用于获取所述原生布局文件在所述移动设备中的文件存储路径;
关联关系建立模块,用于建立所述文件标识与所述文件存储路径之间的关联关系。
11.根据权利要求10所述的装置,其特征在于,所述客户端界面具有对应的程序标识,所述布局数据获取模块包括:
标识匹配子模块,用于判断在所述移动设备中是否存在与所述程序标识匹配的文件标识;若是,则调用文件存储路径获取子模块;
文件存储路径获取子模块,用于获取所述文件标识对应的文件存储路径;
获取原生布局文件子模块,用于依据所述文件存储路径获取对应的原生布局文件。
12.根据权利要求8所述的装置,其特征在于,所述原生布局文件包含所述界面资源对应的资源标识,所述界面控件生成模块包括:
资源标识获取子模块,用于获取所述原生布局文件中的资源标识;
界面资源获取子模块,用于采用所述资源标识从所述移动设备中获取对应的界面资源;
界面资源设置子模块,用于按照所述原生布局文件设置所述界面资源得到界面控件。
13.根据权利要求8所述的装置,其特征在于,所述界面控件布局模块包括:
父控件设置子模块,用于按照所述原生布局文件在所述客户端界面中设置父控件;
界面控件添加子模块,用于将所述界面控件添加到所述父控件中。
14.一种移动设备,其特征在于,在移动设备中存储有客户端界面的界面资源,以及客户端界面的原生布局文件,所述移动设备包括:
布局数据获取模块,用于在显示客户端界面时,获取所述客户端界面的原生布局文件和界面资源;
界面控件生成模块,用于采用所述原生布局文件和所述界面资源生成界面控件;
界面控件布局模块,用于将所述界面控件按照所述原生布局文件布局至客户端界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610630328.0A CN106250158A (zh) | 2016-08-01 | 2016-08-01 | 一种客户端界面的布局方法、装置和移动设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610630328.0A CN106250158A (zh) | 2016-08-01 | 2016-08-01 | 一种客户端界面的布局方法、装置和移动设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106250158A true CN106250158A (zh) | 2016-12-21 |
Family
ID=57606410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610630328.0A Pending CN106250158A (zh) | 2016-08-01 | 2016-08-01 | 一种客户端界面的布局方法、装置和移动设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106250158A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990950A (zh) * | 2017-01-09 | 2017-07-28 | 深圳大宇无限科技有限公司 | 界面布局的方法和装置 |
CN107025294A (zh) * | 2017-04-14 | 2017-08-08 | 百度在线网络技术(北京)有限公司 | 信息获取方法和装置 |
CN107391169A (zh) * | 2017-06-09 | 2017-11-24 | 口碑控股有限公司 | 安卓页面的动态更新方法和装置 |
CN107656692A (zh) * | 2017-09-22 | 2018-02-02 | 广东乐芯智能科技有限公司 | 一种全触摸屏智能手表分区域控制的方法 |
CN107832088A (zh) * | 2017-11-06 | 2018-03-23 | 青岛海信电器股份有限公司 | 控件使用方法及装置、计算设备、计算机存储介质 |
WO2018072634A1 (zh) * | 2016-10-18 | 2018-04-26 | 腾讯科技(深圳)有限公司 | 应用程序处理方法和装置 |
CN107992305A (zh) * | 2017-12-29 | 2018-05-04 | 广州酷狗计算机科技有限公司 | 应用程序功能按钮的布局方法及装置 |
CN108763311A (zh) * | 2018-04-24 | 2018-11-06 | 广州视源电子科技股份有限公司 | 界面显示方法、装置、智能交互平板及存储介质 |
CN108829485A (zh) * | 2018-06-25 | 2018-11-16 | 腾讯科技(深圳)有限公司 | 应用界面布局的更新方法、装置、存储介质及计算机设备 |
CN109408189A (zh) * | 2018-11-02 | 2019-03-01 | 北京字节跳动网络技术有限公司 | 客户端界面布局的动态调整方法、装置、设备和介质 |
CN110221848A (zh) * | 2019-04-23 | 2019-09-10 | 五八有限公司 | App页面更新方法、装置、电子设备及存储介质 |
CN110865851A (zh) * | 2019-11-18 | 2020-03-06 | 中国民航信息网络股份有限公司 | 一种Android应用数据自动采集方法及*** |
CN110968312A (zh) * | 2018-09-30 | 2020-04-07 | 北京奇虎科技有限公司 | 一种应用程序的界面布局更改方法和装置 |
CN112015507A (zh) * | 2020-08-20 | 2020-12-01 | 北京达佳互联信息技术有限公司 | 一种应用引导方法和装置 |
CN112346961A (zh) * | 2019-08-08 | 2021-02-09 | 北京车和家信息技术有限公司 | 一种客户端的调试方法及装置 |
CN113536174A (zh) * | 2017-06-23 | 2021-10-22 | 创新先进技术有限公司 | 一种界面加载方法、装置及设备 |
CN114780198A (zh) * | 2018-12-28 | 2022-07-22 | 创新先进技术有限公司 | 一种客户端屏幕适配方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239044A (zh) * | 2014-09-05 | 2014-12-24 | 北京航天自动控制研究所 | 一种图形用户界面动态生成方法 |
CN104391725A (zh) * | 2014-12-08 | 2015-03-04 | 畅捷通信息技术股份有限公司 | 页面展示方法和页面展示装置 |
CN105760146A (zh) * | 2014-12-16 | 2016-07-13 | 上海天脉聚源文化传媒有限公司 | 一种用户界面布局方法及*** |
-
2016
- 2016-08-01 CN CN201610630328.0A patent/CN106250158A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239044A (zh) * | 2014-09-05 | 2014-12-24 | 北京航天自动控制研究所 | 一种图形用户界面动态生成方法 |
CN104391725A (zh) * | 2014-12-08 | 2015-03-04 | 畅捷通信息技术股份有限公司 | 页面展示方法和页面展示装置 |
CN105760146A (zh) * | 2014-12-16 | 2016-07-13 | 上海天脉聚源文化传媒有限公司 | 一种用户界面布局方法及*** |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10831567B2 (en) | 2016-10-18 | 2020-11-10 | Tencent Technology (Shenzhen) Company Limited | Application processing method and apparatus |
WO2018072634A1 (zh) * | 2016-10-18 | 2018-04-26 | 腾讯科技(深圳)有限公司 | 应用程序处理方法和装置 |
US11269696B2 (en) | 2016-10-18 | 2022-03-08 | Tencent Technology (Shenzhen) Company Limited | Application processing method and apparatus |
CN106990950A (zh) * | 2017-01-09 | 2017-07-28 | 深圳大宇无限科技有限公司 | 界面布局的方法和装置 |
CN107025294A (zh) * | 2017-04-14 | 2017-08-08 | 百度在线网络技术(北京)有限公司 | 信息获取方法和装置 |
CN107025294B (zh) * | 2017-04-14 | 2021-05-04 | 百度在线网络技术(北京)有限公司 | 信息获取方法和装置 |
CN107391169A (zh) * | 2017-06-09 | 2017-11-24 | 口碑控股有限公司 | 安卓页面的动态更新方法和装置 |
CN113536174A (zh) * | 2017-06-23 | 2021-10-22 | 创新先进技术有限公司 | 一种界面加载方法、装置及设备 |
CN107656692A (zh) * | 2017-09-22 | 2018-02-02 | 广东乐芯智能科技有限公司 | 一种全触摸屏智能手表分区域控制的方法 |
CN107832088A (zh) * | 2017-11-06 | 2018-03-23 | 青岛海信电器股份有限公司 | 控件使用方法及装置、计算设备、计算机存储介质 |
CN107992305A (zh) * | 2017-12-29 | 2018-05-04 | 广州酷狗计算机科技有限公司 | 应用程序功能按钮的布局方法及装置 |
CN108763311B (zh) * | 2018-04-24 | 2020-04-03 | 广州视源电子科技股份有限公司 | 界面显示方法、装置、智能交互平板及存储介质 |
CN108763311A (zh) * | 2018-04-24 | 2018-11-06 | 广州视源电子科技股份有限公司 | 界面显示方法、装置、智能交互平板及存储介质 |
CN108829485A (zh) * | 2018-06-25 | 2018-11-16 | 腾讯科技(深圳)有限公司 | 应用界面布局的更新方法、装置、存储介质及计算机设备 |
CN110968312A (zh) * | 2018-09-30 | 2020-04-07 | 北京奇虎科技有限公司 | 一种应用程序的界面布局更改方法和装置 |
CN109408189B (zh) * | 2018-11-02 | 2022-07-12 | 北京字节跳动网络技术有限公司 | 客户端界面布局的动态调整方法、装置、设备和介质 |
CN109408189A (zh) * | 2018-11-02 | 2019-03-01 | 北京字节跳动网络技术有限公司 | 客户端界面布局的动态调整方法、装置、设备和介质 |
CN114780198A (zh) * | 2018-12-28 | 2022-07-22 | 创新先进技术有限公司 | 一种客户端屏幕适配方法、装置及电子设备 |
CN110221848A (zh) * | 2019-04-23 | 2019-09-10 | 五八有限公司 | App页面更新方法、装置、电子设备及存储介质 |
CN112346961A (zh) * | 2019-08-08 | 2021-02-09 | 北京车和家信息技术有限公司 | 一种客户端的调试方法及装置 |
CN112346961B (zh) * | 2019-08-08 | 2024-05-07 | 北京车和家信息技术有限公司 | 一种客户端的调试方法及装置 |
CN110865851A (zh) * | 2019-11-18 | 2020-03-06 | 中国民航信息网络股份有限公司 | 一种Android应用数据自动采集方法及*** |
CN110865851B (zh) * | 2019-11-18 | 2023-12-01 | 中国民航信息网络股份有限公司 | 一种Android应用数据自动采集方法及*** |
CN112015507A (zh) * | 2020-08-20 | 2020-12-01 | 北京达佳互联信息技术有限公司 | 一种应用引导方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250158A (zh) | 一种客户端界面的布局方法、装置和移动设备 | |
CN110825362B (zh) | 低代码应用软件开发***及方法 | |
US7493594B2 (en) | System and method for designing component based applications | |
US8132149B2 (en) | System and method for applying development patterns for component based applications | |
US8407666B2 (en) | System and method for generating component based applications | |
US20200057620A1 (en) | Generation of dynamic software models using input mapping with feature definitions | |
US8006224B2 (en) | System and method for unified visualization of two-tiered applications | |
US7895566B2 (en) | System and method for building a deployable component based application | |
CN103617037B (zh) | 用于web开发***的开发方法和web开发*** | |
CA2604449C (en) | A system and method for flexible visual representation of presentation components | |
CN101706720B (zh) | 一种运行时根据用户自定义信息进行界面展示方法 | |
US20060248121A1 (en) | System and method for supporting packaging, publishing and republishing of wireless component applications | |
CN106250128A (zh) | 用户界面的显示处理方法及装置 | |
CN113076096B (zh) | 一种桌面应用程序开发方法、装置、设备及存储介质 | |
US20060235928A1 (en) | System and method for creating a mapping document for binding messages between an application and an associated backend server | |
US20050114361A1 (en) | Method and apparatus for integrating data repositories and frameworks | |
US11194450B2 (en) | Definition of a graphical user interface dashboard created with manually input code and user selections | |
CN103701909A (zh) | 视频应用的快速生成方法及*** | |
CA2676703A1 (en) | Automating construction of a data-source interface for component applications | |
CN103107919B (zh) | 一种网络资源建模方法和*** | |
CA2539134C (en) | System and method for designing component based applications | |
CA2538861C (en) | System and method for building a deployable component based application | |
CA2539047C (en) | System and method for generating component based applications | |
CN105867953A (zh) | 应用程序升级包生成方法和应用程序升级方法及对应装置 | |
Markkula et al. | A generic architectural model approach for efficient utilization of patterns: application in the mobile domain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161221 |
|
RJ01 | Rejection of invention patent application after publication |