CN112860253A - 一种Android客户端模块化高扩展的页面布局框架系统 - Google Patents
一种Android客户端模块化高扩展的页面布局框架系统 Download PDFInfo
- Publication number
- CN112860253A CN112860253A CN202110040856.1A CN202110040856A CN112860253A CN 112860253 A CN112860253 A CN 112860253A CN 202110040856 A CN202110040856 A CN 202110040856A CN 112860253 A CN112860253 A CN 112860253A
- Authority
- CN
- China
- Prior art keywords
- module
- sub
- modules
- child
- parent
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种Android客户端模块化高扩展的页面布局框架系统,包括:父模块和子模块;其中父模块用于管理子模块,子模块用于显示UI和逻辑交互。根据本发明,开发者将页面按块划分后,可在本框架内建立对应模块,框架运行时会对模块进行统一管理,自动控制的模块的展示顺序和显示,减少了开发者劳动时间,提升了开发效率。模块均可自由方便的在框架中注册或解除注册,扩展性高。页面被拆分为多个模块,模块内功能逻辑内聚,职责单一,相比于所有逻辑堆积于一个页面中,采用本框架可有效解决逻辑臃肿,代码耦合的问题。
Description
技术领域
本发明涉及客户端页面框架技术领域,尤其涉及一种Android客户端模块化高扩展的页面布局框架系统。
背景技术
在手机上使用应用软件时,用户看到的界面可以称之为页面。页面提供了视图的展示并且能够与用户进行交互,视图部分由UI代码构成,而交互部分由功能逻辑代码构成。
页面传统的开发方式为开发人员将该页面的所有UI代码写在该页面对应的UI文件中,将该页面所涉及到的功能逻辑代码写在该页面对应的功能逻辑文件中。如果页面复杂就会导致UI文件和功能逻辑文件里边的代码非常多,变得非常臃肿,因为代码都在一个文件中,稍有管理不慎就会有代码耦合的问题,导致代码难以阅读难以理解,改动逻辑会牵连到另外的逻辑,后续迭代更新异常困难。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种能够解决现有技术中存在的后续迭代更新异常困难的问题的Android客户端模块化高扩展的页面布局框架系统。
根据本发明,提供了一种Android客户端模块化高扩展的页面布局框架系统,包括:父模块和子模块;其中父模块用于管理子模块,子模块用于显示UI和逻辑交互。
优选地,父模块被配置为执行下述处理:
基于RecyclerView提供的基本布局,用于承载子模块的UI;
发送数据到子模块,从而将外部传入的数据或从网络加载的数据发送到子模块,以便子模块展示UI或执行逻辑;
通知子模块生命周期变化,用于将父模块的生命周期事件发送到子模块中,使得子模块可根据不同的生命周期执行相应的逻辑;
获取子模块状态,以便在进行逻辑处理时根据子模块所处的状态获取与所执行的逻辑有关的信息;
设置需要加载的子模块及其展示顺序,利用父模块的实现类进行实现;
设置模块分割线样式,从而设置允许子模块自由配置边界的样式。
优选地,父模块内部维护有一个有序列表,添加到有序列表的类必须是子模块的实现类,添加在有序列表内的子模块在之后的初始化过程中将被创建,并根据其在有序列表内的顺序作为子模块的在父模块中自上而下的展示顺序。
优选地,子模块被配置为执行下述处理:
提供子模块唯一特征码,作为子模块在有序列表中的索引;
接收来自父模块数据,以调整UI视图以及进行逻辑交互;
设置模块必要性参数;
提供需要展示的列数,用于父模块判断该子模块在框架UI中所占的列数;
提供加载状态,用于子模块对外提供自身当前的加载状态;
将视图锚定到当前位置,以便父模块将该子模块滚动显示到屏幕上;
展示加载动画,用于子模块加载过程中所展现的UI动画;
接收数据变化通知并进行刷新,用于接收父模块发送的数据变化通知,并用新数据进行刷新;
提供UI视图;
提供功能逻辑。
优选地,在子模块初始化失败时,如果必要性参数指示该子模块是非必要的,则父模块忽略该错误;如果必要性参数指示该子模块是必要的,则父模块实现类将收到失败通知。
优选地,在提供UI视图时,子模块实现类依照模块的实际情况创建当前模块的UI提供者,在需要展示UI时由提供者提供UI视图。
优选地,在提供功能逻辑时,子模块实现类依照模块的实际情况创建当前模块的功能逻辑提供者,在需要执行功能逻辑时由提供者提供功能逻辑。
优选地,父模块和子模块在框架运行时初始化阶段执行下述处理:
当页面展示时,父模块判断能够展示到页面上的子模块并通知能够展示子模块的UI、功能逻辑提供者提供需要的UI视图和功能逻辑。
优选地,父模块和子模块在框架运行时初始化阶段执行下述处理:
当用户滑动页面,父模块隐藏不需要展示的子模块,并通知新展示的子模块UI、功能逻辑提供者提供需要的UI视图和功能逻辑。
优选地,父模块和子模块在框架运行时初始化阶段执行下述处理:
当用户与页面发生互动时,子模块响应用户的互动事件。
本发明所带来的有益效果至少包括:
1.将页面拆分为多个模块的指导方式有助于提升开发人员模块化思维;
2.将页面中的UI代码和逻辑代码分散到各个模块中,使代码更加精简,避免了代码耦合的问题,减少了后期迭代维护成本,提升开发效率;
3.模块统一注册,增删模块或调整显示顺序极为方便,扩展性高;
4.模块显示的时候才进行UI加载,提升了应用性能,增强了用户体验。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的Android客户端模块化高扩展的页面布局框架系统的模块示意图。
图2示意性地示出了根据本发明优选实施例的Android客户端模块化高扩展的页面布局框架系统的父模块功能示意图。
图3示意性地示出了根据本发明优选实施例的Android客户端模块化高扩展的页面布局框架系统的子模块功能示意图。
图4示意性地示出了根据本发明优选实施例的Android客户端模块化高扩展的页面布局框架系统的模块初始化时序图。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
<术语说明>
RecyclerView:是一个Android组件,一个能够显示元素的滚动列表。
UI:即User Interface,用户界面的简称。
生命周期:生命周期的概念应用很广泛,其基本涵义可以通俗地理解为一个类“从摇篮到坟墓”的整个过程。
类:对某一类事物的描述,是抽象的、概念上的定义。
抽象方法:指只有方法声明,而没有具体方法体的方法,需要实现类进行实现。
实现类:抽象类的抽象方法必须在具体子类中实现,该子类可称为实现类。
<具体实施例>
图1示意性地示出了根据本发明优选实施例的Android客户端模块化高扩展的页面布局框架系统的模块示意图。
如图1所示,根据本发明优选实施例的Android客户端模块化高扩展的页面布局框架系统包括父模块100和子模块200;其中父模块100用于管理子模块,子模块200用于显示UI和逻辑交互。
具体地,父模块100基于RecyclerView提供基本布局,并发送数据到子模块200以通知子模块200生命周期变化;而且父模块100获取子模块200的状态,设置需要加载的子模块200及其展示顺序,并设置模块分割线样式。
此外,具体地,子模块200提供了一些功能供父模块和实现类使用,子模块的实现类实现了提供UI视图和提供功能逻辑。子模块200向父模块100提供子模块唯一特征码,接收来自父模块数据,设置模块必要性参数,提供需要展示的列数,提供加载状态,将视图锚定到当前位置,展示加载动画,接收数据变化通知并刷新自身,提供UI视图,以及提供功能逻辑。
如图2所示,父模块100被配置为执行下述处理:
1001:基于RecyclerView提供的基本布局,用于承载子模块的UI。
1002:发送数据到子模块,用于父模块将外部传入的数据或从网络加载的数据发送到子模块,以便子模块展示UI或执行逻辑。
1003:通知子模块生命周期变化,用于将父模块的生命周期事件发送到子模块中,使得子模块可根据不同的生命周期执行相应的逻辑。
1004:获取子模块状态,用于父模块在进行逻辑处理时能够知晓当子模块处于什么状态以执行相应的逻辑。
1005:设置需要加载的子模块及展示顺序,由父模块的实现类依据页面的实际需要进行实现,其内部维护了一个有序列表,添加到有序列表的类必须是子模块的实现类,添加在有序列表内的子模块在之后的初始化过程中会被创建,并根据其在有序列表内的顺序作为子模块的在父模块中自上而下的展示顺序。
1006:设置模块分割线样式允许子模块自由配置边界的样式。
如图3所示,子模块200被配置为执行下述处理::
2001:提供子模块唯一特征码,是子模块在有序列表中的索引。
2002:接收来自父模块数据,用于子模块调整自己的UI视图以及进行逻辑交互。
2003:设置模块必要性,用于子模块初始化失败时,如果该子模块是非必要的,父模块会忽略该错误;如果该子模块是必要的,则父模块实现类会收到失败通知。
2004:提供需要展示的列数,用于父模块判断该子模块在框架UI中所占的列数。
2005:提供加载状态,用于子模块对外提供自身当前的加载状态。
2006:视图锚定到当前位置,用于父模块将该子模块滚动显示到屏幕上。
2007:展示加载动画,用于子模块加载过程中所展现的UI动画。
2008:接收数据变化通知并刷新自身,用于接收父模块发送的数据变化通知,并用新数据刷新自身。
2009:提供UI视图,抽象方法,需要子模块实现类依照模块的实际情况创建当前模块的UI提供者,当需要展示UI时,由提供者提供UI视图。
2010:提供功能逻辑,抽象方法,需要子模块实现类依照模块的实际情况创建当前模块的功能逻辑提供者,当需要执行功能逻辑时,由提供者提供功能逻辑。
当框架运行时,父模块和子模块初始化阶段的时序图如图4所示。
当页面展示时,因为所有子模块总共高度可能会大于用户手机屏幕的高度,所以并不是所有子模块都能够显示的,父模块会判断哪些子模块能够展示到页面上并通知能够展示子模块的UI、功能逻辑提供者提供需要的UI视图和功能逻辑。
当用户滑动页面,父模块会隐藏不再需要展示的子模块,并通知新展示的子模块UI、功能逻辑提供者提供需要的UI视图和功能逻辑。
当用户与页面发生互动时,子模块会响应用户的互动事件。
由此,本发明提供了一种Android客户端模块化高扩展的页面布局框架系统,以解决Android客户端开发过程中,页面内功能逻辑臃肿,代码耦合的问题。开发者将页面按块划分后,可在本框架内建立对应模块,框架运行时会对模块进行统一管理,自动控制的模块的展示顺序和显示,减少了开发者劳动时间,提升了开发效率。模块均可自由方便的在框架中注册或解除注册,扩展性高。页面被拆分为多个模块,模块内功能逻辑内聚,职责单一,相比于所有逻辑堆积于一个页面中,采用本框架可有效解决逻辑臃肿,代码耦合的问题。
综上所述,本发明所带来的有益效果至少包括:
1.将页面拆分为多个模块的指导方式有助于提升开发人员模块化思维;
2.将页面中的UI代码和逻辑代码分散到各个模块中,使代码更加精简,避免了代码耦合的问题,减少了后期迭代维护成本,提升开发效率;
3.模块统一注册,增删模块或调整显示顺序极为方便,扩展性高;
4.模块显示的时候才进行UI加载,提升了应用性能,增强了用户体验。
需要说明的是,除非特别指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (10)
1.一种Android客户端模块化高扩展的页面布局框架系统,其特征在于包括:父模块和子模块;其中父模块用于管理子模块,子模块用于显示UI和逻辑交互。
2.根据权利要求1所述的Android客户端模块化高扩展的页面布局框架系统,其特征在于,优选地,父模块被配置为执行下述处理:
基于RecyclerView提供的基本布局,用于承载子模块的UI;
发送数据到子模块,从而将外部传入的数据或从网络加载的数据发送到子模块,以便子模块展示UI或执行逻辑;
通知子模块生命周期变化,用于将父模块的生命周期事件发送到子模块中,使得子模块可根据不同的生命周期执行相应的逻辑;
获取子模块状态,以便在进行逻辑处理时根据子模块所处的状态获取与所执行的逻辑有关的信息;
设置需要加载的子模块及其展示顺序,利用父模块的实现类进行实现;
设置模块分割线样式,从而设置允许子模块自由配置边界的样式。
3.根据权利要求1或2所述的Android客户端模块化高扩展的页面布局框架系统,其特征在于,父模块内部维护有一个有序列表,添加到有序列表的类必须是子模块的实现类,添加在有序列表内的子模块在之后的初始化过程中将被创建,并根据其在有序列表内的顺序作为子模块的在父模块中自上而下的展示顺序。
4.根据权利要求1或2所述的Android客户端模块化高扩展的页面布局框架系统,其特征在于,子模块被配置为执行下述处理:
提供子模块唯一特征码,作为子模块在有序列表中的索引;
接收来自父模块数据,以调整UI视图以及进行逻辑交互;
设置模块必要性参数;
提供需要展示的列数,用于父模块判断该子模块在框架UI中所占的列数;
提供加载状态,用于子模块对外提供自身当前的加载状态;
将视图锚定到当前位置,以便父模块将该子模块滚动显示到屏幕上;
展示加载动画,用于子模块加载过程中所展现的UI动画;
接收数据变化通知并进行刷新,用于接收父模块发送的数据变化通知,并用新数据进行刷新;
提供UI视图;
提供功能逻辑。
5.根据权利要求1或2所述的Android客户端模块化高扩展的页面布局框架系统,其特征在于,在子模块初始化失败时,如果必要性参数指示该子模块是非必要的,则父模块忽略该错误;如果必要性参数指示该子模块是必要的,则父模块实现类将收到失败通知。
6.根据权利要求1或2所述的Android客户端模块化高扩展的页面布局框架系统,其特征在于,在提供UI视图时,子模块实现类依照模块的实际情况创建当前模块的UI提供者,在需要展示UI时由提供者提供UI视图。
7.根据权利要求1或2所述的Android客户端模块化高扩展的页面布局框架系统,其特征在于,在提供功能逻辑时,子模块实现类依照模块的实际情况创建当前模块的功能逻辑提供者,在需要执行功能逻辑时由提供者提供功能逻辑。
8.根据权利要求1或2所述的Android客户端模块化高扩展的页面布局框架系统,其特征在于,父模块和子模块在框架运行时初始化阶段执行下述处理:
当页面展示时,父模块判断能够展示到页面上的子模块并通知能够展示子模块的UI、功能逻辑提供者提供需要的UI视图和功能逻辑。
9.根据权利要求1或2所述的Android客户端模块化高扩展的页面布局框架系统,其特征在于,优选地,父模块和子模块在框架运行时初始化阶段执行下述处理:
当用户滑动页面,父模块隐藏不需要展示的子模块,并通知新展示的子模块UI、功能逻辑提供者提供需要的UI视图和功能逻辑。
10.根据权利要求1或2所述的Android客户端模块化高扩展的页面布局框架系统,其特征在于,父模块和子模块在框架运行时初始化阶段执行下述处理:
当用户与页面发生互动时,子模块响应用户的互动事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110040856.1A CN112860253A (zh) | 2021-03-30 | 2021-03-30 | 一种Android客户端模块化高扩展的页面布局框架系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110040856.1A CN112860253A (zh) | 2021-03-30 | 2021-03-30 | 一种Android客户端模块化高扩展的页面布局框架系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860253A true CN112860253A (zh) | 2021-05-28 |
Family
ID=76003260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110040856.1A Pending CN112860253A (zh) | 2021-03-30 | 2021-03-30 | 一种Android客户端模块化高扩展的页面布局框架系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860253A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113506569A (zh) * | 2021-06-07 | 2021-10-15 | 上海七十迈数字科技有限公司 | 一种语音交互的方法、系统及设备 |
CN113687889A (zh) * | 2021-07-08 | 2021-11-23 | 北京房江湖科技有限公司 | 列表页展示方法和系统、计算机程序产品及存储介质 |
CN114415921A (zh) * | 2021-12-10 | 2022-04-29 | 阿波罗智联(北京)科技有限公司 | 列表滑动的实现方法、装置、电子设备及存储介质 |
-
2021
- 2021-03-30 CN CN202110040856.1A patent/CN112860253A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113506569A (zh) * | 2021-06-07 | 2021-10-15 | 上海七十迈数字科技有限公司 | 一种语音交互的方法、系统及设备 |
CN113506569B (zh) * | 2021-06-07 | 2023-02-03 | 上海七十迈数字科技有限公司 | 一种语音交互的方法、系统及设备 |
CN113687889A (zh) * | 2021-07-08 | 2021-11-23 | 北京房江湖科技有限公司 | 列表页展示方法和系统、计算机程序产品及存储介质 |
CN114415921A (zh) * | 2021-12-10 | 2022-04-29 | 阿波罗智联(北京)科技有限公司 | 列表滑动的实现方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112860253A (zh) | 一种Android客户端模块化高扩展的页面布局框架系统 | |
US20180113799A1 (en) | Model generation for model-based application testing | |
US10359902B2 (en) | Task flow interface in a popup region | |
EP3963447B1 (en) | Supervisory device with deployed independent application containers for automation control programs | |
CA2972406A1 (en) | Control infrastructure | |
US20180173503A1 (en) | System and method for graphical programming | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
CN112416415A (zh) | 一种前端微服务实现方法及相关组件 | |
CN115827112B (zh) | 一种在Web操作系统上运行安卓应用程序的系统及方法 | |
CN104216751A (zh) | 一种应用程序的功能组件界面资源的加载方法及系统 | |
CN104317559A (zh) | 基于gmf的可视化建模平台 | |
WO2008031070A2 (en) | Software development environment for platform-independent application programs | |
CN115309398A (zh) | 基于软件开发框架衍生的多应用微前端实现方法 | |
CN104331262A (zh) | 基于QT embedded的同步显示方法、系统及数控机床 | |
CN111104108A (zh) | 一种显示界面wpf的生成方法及装置 | |
CN102819450A (zh) | 一种在移动终端中模拟硬件设备的模拟器及其实现方法 | |
CN107544813B (zh) | 一种静态库配置的切换方法和系统 | |
CN111752841A (zh) | 单测模拟方法、装置、设备与计算机可读存储介质 | |
CN106126211A (zh) | 一种支持调试接口的mcu在线编程系统 | |
CN114741054A (zh) | 基于国产化操作系统的桌面应用软件开发及构建的方法 | |
CN112579460B (zh) | 一种基于多核嵌入式系统的多级调试方法 | |
Kravchenko et al. | Cross-platform practices for mobile application development of automated trade accounting | |
CN110945478B (zh) | 管理用于软件应用开发的软件组件 | |
CN113126961B (zh) | 流水线处理方法、装置和存储介质 | |
CN116243917A (zh) | 一种基于c语言的嵌入式图形显示框架设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |