CN108563432A - 一种通过路由配置的Android应用程序组件化快速开发方法 - Google Patents
一种通过路由配置的Android应用程序组件化快速开发方法 Download PDFInfo
- Publication number
- CN108563432A CN108563432A CN201810210427.2A CN201810210427A CN108563432A CN 108563432 A CN108563432 A CN 108563432A CN 201810210427 A CN201810210427 A CN 201810210427A CN 108563432 A CN108563432 A CN 108563432A
- Authority
- CN
- China
- Prior art keywords
- basic
- component
- routing
- android application
- framework
- 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.)
- Withdrawn
Links
- 238000011161 development Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000013461 design Methods 0.000 claims abstract description 9
- 238000012360 testing method Methods 0.000 claims abstract description 5
- 230000009471 action Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 3
- 230000018109 developmental process Effects 0.000 description 16
- 229940004975 interceptor Drugs 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- 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/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种通过路由配置的Android应用程序组件化快速开发方法,包括以下步骤(A)新建Main App项目;(B)通过Svn源码管理工具获取最新的基础框架和基础功能库,并引入所述Main App项目;(C)根据业务需求与设计文档,所述路由配置基础业务组件的路由调度和基础功能的调用,从而生成路由清单;(D)使用自动化测试框架进行测试。对比传统客户端App开发模式,通过引入基础框架,采用路由调度的方式复用己有的组件和基础功能,解决App项目各自为战,代码复用度低,减少冗余代码,缩短开发周期,提高开发效率,大大节约开发和维护成本。
Description
技术领域
本发明涉及手机App开发框架,特别是一种通过路由配置的Android应用程序组件化快速开发方法。
背景技术
随着智能移动设置的日益快速普及,以及公司业务不断扩展,移动App客户端应用项目越来越多,传统移动应用App的开发模式是开发人员新建应用工程项目,再开发一些基础功能,比如基础UI、本地数据库、网络配置等,或是直接从旧项目复制、粘贴代码进行二次开发,然后再根据需求和设计等文档实现业务功能;而随着App项目发展到一定阶段,随着个性化需求的增加或者需求的频繁变更,以及移动设备碎化兼容,项目会越来越大,代码量日益增大所带来的问题也逐渐显现出来,各个模块间相互引用,耦合越来越严重,协作开发困难,编译时间过长等因素严重影响了开发效率,导致客户端的开发周期长、稳定性差、代码重复率高、维护难度高等问题。
发明内容
针对上述技术问题,本发明提出一种通过路由配置的Android应用程序组件化快速开发方法。
本发明采用的技术方案是:
一种通过路由配置的Android应用程序组件化快速开发方法,包括以下步骤
(A)新建Main App项目,该Main App项目包括具体的业务需求与设计文档;
(B)通过Svn源码管理工具获取最新的基础框架和基础功能库,并引入所述MainApp项目;该基础框架包括基础业务组件、路由,基础功能库用于提供多个基础功能;
(C)根据业务需求与设计文档,所述路由配置基础业务组件的路由调度和基础功能的调用,从而生成路由清单;
(D)使用自动化测试框架进行测试。
所述基础框架还包括全局拦截器,该全局拦截器通过所述路由指定,并用于根据路由清单的优先顺序、请求路径和参数实现功能跳转。
所述基础功能包括公共资源文件、常用系统功能、常用控件、常用工具类。
所述常用系统功能包括Http请求网络访问工具、多线程上传与下载、数据库Orm、图片缓存。
所述常用控件包括List分页、下拉刷新、图片轮播、图形报表、Tab滑动、日历选择器。
所述常用工具类包括字符串、日期、文件、Log处理函数。
所述基础业务组件包括登陆组件、支付组件、视频播放组件和录制组件。
所述步骤(C)中基础功能的调用包括以下步骤:
(C1)所述基础框架根据业务需求创建一个路由,包含组件Name和Action参数,Main App向基础框架发送请求;
(C2)基础框架接收到请求后,根据路由的组件Name和Action参数,在内部的HashMap中查找对应的基础业务组件,并初始化;
(C3)基础业务组件根据Action参数调用基础功能;
(C4)基础功能再将处理结果返回给基础业务组件;
(C5)基础框架根据基础业务组件的类型和装载方式判断是否进行注销回收还是继续复用;
(C6)基础框架将处理结果封装成路由响应并返回给Main App。
本发明的有益效果:本发明基于库引用方式的一个中间架构层,它提供登陆、支付、视频播放和录制等基本功能组件,同时提供网络访问、拍照、数据存储等基本功能,组件之间的通信采用路由调度机制。从项目总体结构看,有纵向依赖关系。即Main App整体依赖于基础框架,而基础框架中路由类似于一个调度器,它是基于路由清单、拦截器和基础业务组件,基础业务组件依赖于基础功能库;有横向解偶关系,对于Main App业务需求组件平级之间的不存在任何依赖关系,即使有相互通信或数据共享也是通过路由,属于基础框架的职责。从而实现通过引用该框架可以快速开发满足业务需求客户端App,减少冗余代码,提高开发效率,生成的App应用可维护性强、可测试性高、兼容性强,大大节约开发和维护成本。
附图说明
下面结合附图对本发明的具体实施方式做进一步的说明。
图1是本发明的Android应用程序示意图;
图2是本发明Android应用程序组件化快速开发方法的流程图;
图3是本发明基础框架路由解析时序图。
具体实施方式
如图1所示,为本发明的预开发的一个完整新App项目,由具体的业务功能需求Main App和基础框架StudioFramework组成。
Main App指具体的业务需求与设计,而Studi oFramework是基础框架,不存在任何业务逻辑,Main App必须基于这个基础框架进行需求开发。StudioFramework主要由3部分组成:基础业务组件、Router和Interceptor。基础业务组件指的是实现具体业务需要用到的比较独立的基础业务服务,比如登录、支付、视频播放与录制等;Router负责基础业务组件的路由调度和生命周期管理,Router在编译期间通过自定义注解的方式完成路由清单的初始化和指明全局拦截器Interceptor,App运行时加载Interceptor拦截器,它根据路由清单的优先顺序、请求路径和参数实现功能跳转。
基础功能库BasicLib提供一些项目会用到的公共资源文件、常用系统功能,常用控件、常用工具类等,详细如下:1、常用系统功能:Http请求网络访问工具、多线程上传与下载、数据库Orm、图片缓存等等;2、常用控件:List分页、下拉刷新、图片轮播、图形报表、Tab滑动、日历选择器等等;3、常用工具类:字符串、日期、文件、Log处理函数等。
如图2所示,本发明的一种通过路由配置的Android应用程序组件化快速开发方法,包括以下步骤
(A)新建Main App项目,该Main App项目包括具体的业务需求与设计文档;
(B)通过Svn源码管理工具获取最新的基础框架和基础功能库,并引入所述MainApp项目;该基础框架包括基础业务组件、路由,基础功能库用于提供多个基础功能;
(C)根据业务需求与设计文档,所述路由配置基础业务组件的路由调度和基础功能的调用,从而生成路由清单;
(D)使用自动化测试框架进行测试。
如图3所示,所述步骤(C)中基础功能的调用包括以下步骤:
(C1)所述基础框架根据业务需求创建一个路由,包含组件Name和Action参数,Main App向基础框架发送请求;
(C2)基础框架接收到请求后,根据路由的组件Name和Action参数,在内部的HashMap中查找对应的基础业务组件,并初始化;
(C3)基础业务组件根据Action参数调用基础功能;
(C4)基础功能再将处理结果返回给基础业务组件;
(C5)基础框架根据基础业务组件的类型和装载方式判断是否进行注销回收还是继续复用;
(C6)基础框架将处理结果封装成路由响应并返回给Main App。
对比传统客户端App开发模式,通过引入StudioFramework基础框架,采用路由调度的方式复用己有的组件和基础功能,解决App项目各自为战,代码复用度低,减少冗余代码,缩短开发周期,提高开发效率,大大节约开发和维护成本。
以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
Claims (8)
1.一种通过路由配置的Android应用程序组件化快速开发方法,其特征在于:包括以下步骤
(A)新建Main App项目,该Main App项目包括具体的业务需求与设计文档;
(B)通过Svn源码管理工具获取最新的基础框架和基础功能库,并引入所述Main App项目;该基础框架包括基础业务组件、路由,基础功能库用于提供多个基础功能;
(C)根据业务需求与设计文档,所述路由配置基础业务组件的路由调度和基础功能的调用,从而生成路由清单;
(D)使用自动化测试框架进行测试。
2.根据权利要求1所述的一种通过路由配置的Android应用程序组件化快速开发方法,其特征在于:所述基础框架还包括全局拦截器,该全局拦截器通过所述路由指定,并用于根据路由清单的优先顺序、请求路径和参数实现功能跳转。
3.根据权利要求1所述的一种通过路由配置的Android应用程序组件化快速开发方法,其特征在于:所述基础功能包括公共资源文件、常用系统功能、常用控件、常用工具类。
4.根据权利要求3所述的一种通过路由配置的Android应用程序组件化快速开发方法,其特征在于:所述常用系统功能包括Http请求网络访问工具、多线程上传与下载、数据库Orm、图片缓存。
5.根据权利要求3所述的一种通过路由配置的Android应用程序组件化快速开发方法,其特征在于:所述常用控件包括List分页、下拉刷新、图片轮播、图形报表、Tab滑动、日历选择器。
6.根据权利要求3所述的一种通过路由配置的Android应用程序组件化快速开发方法,其特征在于:所述常用工具类包括字符串、日期、文件、Log处理函数。
7.根据权利要求1所述的一种通过路由配置的Android应用程序组件化快速开发方法,其特征在于:所述基础业务组件包括登陆组件、支付组件、视频播放组件和录制组件。
8.根据权利要求1所述的一种通过路由配置的Android应用程序组件化快速开发方法,其特征在于:所述步骤(C)中基础功能的调用包括以下步骤:
(C1)所述基础框架根据业务需求创建一个路由,包含组件Name和Action参数,MainApp向基础框架发送请求;
(C2)基础框架接收到请求后,根据路由的组件Name和Action参数,在内部的HashMap中查找对应的基础业务组件,并初始化;
(C3)基础业务组件根据Action参数调用基础功能;
(C4)基础功能再将处理结果返回给基础业务组件;
(C5)基础框架根据基础业务组件的类型和装载方式判断是否进行注销回收还是继续复用;
(C6)基础框架将处理结果封装成路由响应并返回给Main App。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810210427.2A CN108563432A (zh) | 2018-03-14 | 2018-03-14 | 一种通过路由配置的Android应用程序组件化快速开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810210427.2A CN108563432A (zh) | 2018-03-14 | 2018-03-14 | 一种通过路由配置的Android应用程序组件化快速开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108563432A true CN108563432A (zh) | 2018-09-21 |
Family
ID=63532712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810210427.2A Withdrawn CN108563432A (zh) | 2018-03-14 | 2018-03-14 | 一种通过路由配置的Android应用程序组件化快速开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563432A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343849A (zh) * | 2018-09-25 | 2019-02-15 | 珠海格力电器股份有限公司 | 一种系统、系统ui的设计方法及工业触摸屏 |
CN109582422A (zh) * | 2018-11-30 | 2019-04-05 | 广州净松软件科技有限公司 | 基于组件的监察系统构建方法、装置、设备和存储介质 |
CN110399119A (zh) * | 2019-06-18 | 2019-11-01 | 五八有限公司 | 一种组件化构建方法、装置、电子设备及存储介质 |
CN111722841A (zh) * | 2020-04-29 | 2020-09-29 | 北京网聘咨询有限公司 | Ios平台下软件的组件化实现方法 |
CN111813393A (zh) * | 2020-03-20 | 2020-10-23 | 北京四维智联科技有限公司 | 一种应用程序开发方法及装置 |
CN112199092A (zh) * | 2020-09-17 | 2021-01-08 | 上海硬通网络科技有限公司 | 应用的开发方法、装置及电子设备 |
CN112769706A (zh) * | 2020-12-24 | 2021-05-07 | 平安银行股份有限公司 | 组件化路由方法及系统 |
CN113342317A (zh) * | 2021-06-24 | 2021-09-03 | 武汉华莘教育科技有限公司 | 基于Android组件化的开发多业务动态组合方法及系统 |
CN114168111A (zh) * | 2021-12-07 | 2022-03-11 | 北京五八信息技术有限公司 | 组件化路由实现方法、设备、产品及存储介质 |
-
2018
- 2018-03-14 CN CN201810210427.2A patent/CN108563432A/zh not_active Withdrawn
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343849A (zh) * | 2018-09-25 | 2019-02-15 | 珠海格力电器股份有限公司 | 一种系统、系统ui的设计方法及工业触摸屏 |
CN109582422A (zh) * | 2018-11-30 | 2019-04-05 | 广州净松软件科技有限公司 | 基于组件的监察系统构建方法、装置、设备和存储介质 |
CN110399119A (zh) * | 2019-06-18 | 2019-11-01 | 五八有限公司 | 一种组件化构建方法、装置、电子设备及存储介质 |
CN111813393A (zh) * | 2020-03-20 | 2020-10-23 | 北京四维智联科技有限公司 | 一种应用程序开发方法及装置 |
CN111722841A (zh) * | 2020-04-29 | 2020-09-29 | 北京网聘咨询有限公司 | Ios平台下软件的组件化实现方法 |
CN111722841B (zh) * | 2020-04-29 | 2024-04-16 | 北京网聘咨询有限公司 | Ios平台下软件的组件化实现方法 |
CN112199092B (zh) * | 2020-09-17 | 2024-03-15 | 上海硬通网络科技有限公司 | 应用的开发方法、装置及电子设备 |
CN112199092A (zh) * | 2020-09-17 | 2021-01-08 | 上海硬通网络科技有限公司 | 应用的开发方法、装置及电子设备 |
CN112769706A (zh) * | 2020-12-24 | 2021-05-07 | 平安银行股份有限公司 | 组件化路由方法及系统 |
CN112769706B (zh) * | 2020-12-24 | 2023-03-24 | 平安银行股份有限公司 | 组件化路由方法及系统 |
CN113342317B (zh) * | 2021-06-24 | 2022-05-31 | 武汉华莘科技有限公司 | 基于Android组件化的开发多业务动态组合方法及系统 |
CN113342317A (zh) * | 2021-06-24 | 2021-09-03 | 武汉华莘教育科技有限公司 | 基于Android组件化的开发多业务动态组合方法及系统 |
CN114168111A (zh) * | 2021-12-07 | 2022-03-11 | 北京五八信息技术有限公司 | 组件化路由实现方法、设备、产品及存储介质 |
CN114168111B (zh) * | 2021-12-07 | 2024-04-05 | 北京五八信息技术有限公司 | 组件化路由实现方法、设备、产品及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108563432A (zh) | 一种通过路由配置的Android应用程序组件化快速开发方法 | |
EP3769223B1 (en) | Unified test automation system | |
CA3003773C (en) | User interface for automated flows within a cloud based developmental platform | |
US10956013B2 (en) | User interface for automated flows within a cloud based developmental platform | |
US10353913B2 (en) | Automating extract, transform, and load job testing | |
US9652509B2 (en) | Prioritization of continuous deployment pipeline tests | |
US10101972B1 (en) | Data modelling and flow engine for building automated flows within a cloud based developmental platform | |
CN107832207A (zh) | 接口性能测试方法、装置、存储介质和计算机设备 | |
CN105630488A (zh) | 一种基于docker容器技术的持续集成实现方法 | |
US20200401460A1 (en) | Management instrumentation and discovery (mid) server support for executing automated flows within a cloud based system | |
AU2019201100B2 (en) | Data modelling and flow engine for building automated flows within a cloud based developmental platform | |
US20170123777A1 (en) | Deploying applications on application platforms | |
CN101930400A (zh) | Sdk自动化测试系统及方法 | |
CN109144533A (zh) | 一种应用程序的更新及加载的方法、系统及计算机装置 | |
US20170060968A1 (en) | Compiling extract, transform, and load job test data cases | |
CN108241582A (zh) | 一种基于RabbitMQ消息中间件的软件自动化测试平台 | |
CN113138927A (zh) | 一种软件功能测试方法和装置 | |
CN109144843A (zh) | 测试环境部署的方法和装置 | |
KR101599471B1 (ko) | 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체 | |
CN101141767A (zh) | 一种网络管理平台测试系统及方法 | |
CN110780854A (zh) | 基于ios系统下的app自动化集成平台系统及方法 | |
CN109960526A (zh) | 一种应用程序打包方法及装置 | |
CN109669699A (zh) | 应用程序分发方法、ac、ap及无线网络系统 | |
US20230132531A1 (en) | Software Development Project Infrastructure Builder Tool | |
US20230035437A1 (en) | Host malfunction detection for ci/cd systems |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180921 |