CN113626105A - 移动端混合模式的sdk***与移动设备 - Google Patents
移动端混合模式的sdk***与移动设备 Download PDFInfo
- Publication number
- CN113626105A CN113626105A CN202110948030.5A CN202110948030A CN113626105A CN 113626105 A CN113626105 A CN 113626105A CN 202110948030 A CN202110948030 A CN 202110948030A CN 113626105 A CN113626105 A CN 113626105A
- Authority
- CN
- China
- Prior art keywords
- mobile
- sdk
- module
- mode
- application
- 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.)
- Granted
Links
- 230000000694 effects Effects 0.000 claims abstract description 23
- 239000012634 fragment Substances 0.000 claims abstract description 7
- 235000014510 cooky Nutrition 0.000 claims description 7
- 238000012800 visualization Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种移动端混合模式的SDK***与移动设备,包括:从上而下设置的应用层、SDK层、引擎层以及***层;所述引擎层包括多应用架构模块,所述多应用架构模块包括多个Activity以及集成Activity的归属功能,每个Activity对应一份FragmentStack,所述Activity的归属功能用于实现多个应用之间的切换,所述多应用架构模块还用于同时打开多个应用。本发明通过在架构上使用多Activity,每个Activity对应一份FragmentStack,使应用间的切换可以使用应用抽屉的形式切换;一次打开多个应用,实现一份应用可同时支撑多套H5应用的运行环境。
Description
技术领域
本发明涉及软件技术领域,尤其涉及一种移动端混合模式的SDK***与移动设备。
背景技术
在跨端应用的开发中,使用网页视图作为媒介是常用的方案之一,可以实现一套代码同时运行在安卓端、PC端、以及iOS端。市面上会有使用JSBridge作为桥阶层,管理java到H5之间的通信方案来实现Hybird。但这种做法只是简单的做到的通信,并未形成标准化的体系,以及复杂场景的适配,对于插件的插拔也不友好。
发明内容
有鉴于此,本发明提供一种移动端混合模式(Hybrid)的SDK(SoftwareDevelopment Kit,即软件开发工具包)***与移动设备,能实现一份应用可同时支撑多套H5应用的运行环境。
第一方面,移动端混合模式的SDK***,包括:从上而下设置的应用层、SDK层、引擎层以及***层;
所述引擎层包括多应用架构模块,所述多应用架构模块包括多个Activity以及集成Activity的归属功能,每个Activity对应一份FragmentStack,所述Activity的归属功能用于实现多个应用之间的切换,所述多应用架构模块还用于同时打开多个应用。
进一步地,所述引擎层还包括多页加载模块,所述多页加载模块用于提供Window插件,支持多页应用,让每一个页面运行在独立的网页视图(WebView)中,网页视图使用Fragment承载。
进一步地,所述多页加载模块还用于提供统一路由应用程序接口(ApplicationProgramming Interface),通过总线实现页面跳转。
进一步地,所述引擎层还包括配置中心模块,用于基于配置表动态加载插件。
进一步地,移动端混合模式的SDK***的原生端接口通过Cookie管理器(即CookieManager)实现Cookies同步。
进一步地,移动端混合模式的SDK***的原生端集成用于对日志信息的可视化处理的模块。
进一步地,所述引擎层还包括资源更新模块,用于对所有资源类请求进行拦截,将资源下载到本地保存,遇到已缓存的资源时,直接返回资源的流。
进一步地,所述引擎层还包括远程调试模块,用于在调试阶段对自定义协议拦截,使用流的方式将文件流发送给前端以实现文件跨域。
第二方面,一种移动设备,包括所述的移动端混合模式的SDK***。
本发明移动端混合模式的SDK***与移动设备,通过在架构上使用多Activity,每个Activity对应一份FragmentStack,来实现一个应用承载多套前端应用的需求;同时利用Activity的归属功能,使应用间的切换与普通应用一样,可以使用应用抽屉的形式切换;应用的打开逻辑中;使用了LRU的设计思想,一次最多打开多个应用,实现一份应用可同时支撑多套H5应用的运行环境。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为根据本发明示例性第一实施例的移动端混合模式的SDK***的结构框图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
图1为根据本发明示例性第一实施例的移动端混合模式的SDK***的结构框图,如图1所示,本发明移动端混合模式的SDK***,包括:从上而下设置的应用层、SDK层、引擎层以及***层;
所述引擎层包括多应用架构模块,所述多应用架构模块包括多个Activity以及集成TaskAffinity的功能(即Activity的归属功能),每个Activity对应一份FragmentStack,所述TaskAffinity的功能用于实现多个应用之间的切换,所述多应用架构模块还用于同时打开多个应用。
进一步地,所述引擎层还包括多页加载模块,所述多页加载模块用于提供Window插件,支持多页应用,让每一个页面运行在独立的网页视图中,网页视图使用Fragment承载,由自定义的FragmentStack来管理Fragment的栈。
进一步地,所述多页加载模块还用于提供stash方法辅助维护网页视图状态,以及提供统一路由应用程序接口,通过总线实现页面跳转,用总线的方式管理复杂场景下的页面跳转。
所述引擎层还包括配置中心模块,用于基于配置表动态加载插件,实现了插件的可插拔;同时插件本身可以按需反射加载,即使出现插件未配置的异常,也不会到导致应用的崩溃。
进一步地,移动端混合模式的SDK***的原生端接口通过Cookie管理器实现Cookies同步。
进一步地,移动端混合模式的SDK***的前端hook consolegeng方法,原生端集成用于对日志信息的可视化处理的模块。
进一步地,所述引擎层还包括资源更新模块,用于基于shouldInterceptRequest方法,对所有资源类请求进行拦截,将资源下载到本地保存,遇到已缓存的资源时,直接返回资源的流。通过重写shouldInterceptRequest方法,对所有资源类请求进行拦截,将资源下载到本地保存。遇到已缓存的资源时,可直接返回资源的流,避免同一份资源的多次请求。
进一步地,所述引擎层还包括远程调试模块,用于在调试阶段对自定义协议拦截,使用流的方式将文件流发送给前端以实现文件跨域。调试阶段,通过使用自定义协议agree://来代替常用的文件协议。在sdk中进行自定义协议拦截,使用流的方式将文件流发送给前端,达到调试阶段的文件跨域。
此外,JSBridge设计使用对象注入的形式,实现H5与java代码的互相调用,包括同异步方法的处理,同时也避免了丢包风险;同时自定义callbackID,实现了自定义回调。
本发明移动端混合模式的SDK***,通过在架构上使用多Activity,每个Activity对应一份FragmentStack,来实现一个应用承载多套前端应用的需求;同时利用TaskAffinity的功能,使应用间的切换与普通应用一样,可以使用应用抽屉的形式切换;应用的打开逻辑中;使用了LRU的设计思想,一次最多打开多个(比如5个)应用,实现一份应用可同时支撑多套H5应用的运行环境。该移动端混合模式的SDK***提供了良好的外部扩展功能,拥有功能插件化、事件机制、JS应用程序接口定制等能力。平台提供了标准的应用程序接口来访问设备功能,例如设备信息、摄像头,文件***等。通过一套统一标准的JS层与Native层通信的插件通信机制,可以很方便的进行原生插件拓展,兼容现有的其他原生开发及web开发使用的技术方案,可满足不同的业务需求。
此外,本发明还提供一种移动设备,包括所述的移动端混合模式的SDK***。该移动设备具有上述移动端混合模式的SDK***相应的技术效果。具体包括:
1、相比如传统JSBridge方案,新增了自定义方法回调与多次回调,可适用于如下载进度,播放进度等需求,该类需求在传统JSBridge的做法通常由原生端完成。此处的改进也极大了丰富了前端开发的体验,让整体开发的注意力可以更关注H5的层面。
2、多页技术支持:
为了解决单一网页视图压力过大的问题,我们使用多个网页视图去承载页面,来达到对于“多页”的支持,使得整个SDK对于H5工程的承载容量得到了极大的提高。对前端来说,页面的跳转有两种方式:使用路由跳转和使用应用程序接口跳转。这样开发人员可以根据实际需求,选择不同的跳转方式,同时也可以基于不同的业务线进行拆分,使不同业务线之间的页面状态互不影响。
3、多应用技术支持:
为了适应超级应用的体量,一份H5的支撑肯定是不足的,因此在多页架构的基础上我们设计了多应用支持,一份应用可同时支撑多套H5应用的运行环境。同时提供了路由总线,方便了复杂页面之间的跳转。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种移动端混合模式的SDK***,其特征在于,包括:从上而下设置的应用层、SDK层、引擎层以及***层;
所述引擎层包括多应用架构模块,所述多应用架构模块包括多个Activity以及集成Activity的归属功能,每个Activity对应一份FragmentStack,所述Activity的归属功能用于实现多个应用之间的切换,所述多应用架构模块还用于同时打开多个应用。
2.根据权利要求1所述的移动端混合模式的SDK***,其特征在于,所述引擎层还包括多页加载模块,所述多页加载模块用于提供Window插件,支持多页应用,让每一个页面运行在独立的网页视图中,网页视图使用Fragment承载。
3.根据权利要求2所述的移动端混合模式的SDK***,其特征在于,所述多页加载模块还用于提供统一路由应用程序接口,通过总线实现页面跳转。
4.根据权利要求3所述的移动端混合模式的SDK***,其特征在于,所述引擎层还包括配置中心模块,用于基于配置表动态加载插件。
5.根据权利要求4所述的移动端混合模式的SDK***,其特征在于,移动端混合模式的SDK***的原生端接口通过Cookie管理器实现Cookies同步。
6.根据权利要求5所述的移动端混合模式的SDK***,其特征在于,移动端混合模式的SDK***的原生端集成用于对日志信息的可视化处理的模块。
7.根据权利要求6所述的移动端混合模式的SDK***,其特征在于,所述引擎层还包括资源更新模块,用于对所有资源类请求进行拦截,将资源下载到本地保存,遇到已缓存的资源时,直接返回资源的流。
8.根据权利要求7所述的移动端混合模式的SDK***,其特征在于,所述引擎层还包括远程调试模块,用于在调试阶段对自定义协议拦截,使用流的方式将文件流发送给前端以实现文件跨域。
9.一种移动设备,其特征在于,包括如权利要求1-8中任一项所述的移动端混合模式的SDK***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110948030.5A CN113626105B (zh) | 2021-08-18 | 2021-08-18 | 移动端混合模式的sdk***与移动设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110948030.5A CN113626105B (zh) | 2021-08-18 | 2021-08-18 | 移动端混合模式的sdk***与移动设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626105A true CN113626105A (zh) | 2021-11-09 |
CN113626105B CN113626105B (zh) | 2023-10-27 |
Family
ID=78386357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110948030.5A Active CN113626105B (zh) | 2021-08-18 | 2021-08-18 | 移动端混合模式的sdk***与移动设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626105B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579766A (zh) * | 2014-12-23 | 2015-04-29 | 上海凌云天博光电科技有限公司 | 一种多应用层网管并发访问方法及装置 |
CN104995927A (zh) * | 2013-01-15 | 2015-10-21 | 微软技术许可有限责任公司 | 用于构建和使用混合移动应用的***和方法 |
CN105573129A (zh) * | 2015-11-10 | 2016-05-11 | 华南理工大学 | 基于Cordova的跨平台智能家居移动终端 |
US20160353141A1 (en) * | 2015-06-01 | 2016-12-01 | Sinclair Broadcast Group, Inc. | Break state detection for reduced capability devices |
CN106293743A (zh) * | 2016-08-11 | 2017-01-04 | 上海泛微网络科技股份有限公司 | 一种移动建模***及构建移动应用并实现跨平台发布的方法 |
CN106445518A (zh) * | 2016-09-22 | 2017-02-22 | 中国传媒大学 | 一种跨平台移动终端应用程序开发方法及*** |
CN106647560A (zh) * | 2016-11-23 | 2017-05-10 | 中国南方电网有限责任公司 | 移动应用统一管理方法 |
CN106951233A (zh) * | 2017-03-02 | 2017-07-14 | 广州天高软件科技有限公司 | 混合模式智能手机应用开发框架 |
CN107589947A (zh) * | 2017-08-02 | 2018-01-16 | 成都极娱网络科技有限公司 | 一种sdk接入方法、客户端及*** |
CN107908403A (zh) * | 2017-11-10 | 2018-04-13 | 北京搜狐新动力信息技术有限公司 | 一种移动端业务模块组件化的配置方法及*** |
CN108595203A (zh) * | 2018-04-28 | 2018-09-28 | 努比亚技术有限公司 | 应用功能执行方法、移动终端和计算机可读存储介质 |
CN109683990A (zh) * | 2018-12-27 | 2019-04-26 | 四川新网银行股份有限公司 | 基于混合模式移动应用的h5多端接入方法 |
CN109684106A (zh) * | 2018-12-24 | 2019-04-26 | 国网江苏省电力有限公司 | 一种支持多移动浏览器引擎加载运行的方法 |
CN111143832A (zh) * | 2019-12-30 | 2020-05-12 | 苏州思必驰信息科技有限公司 | 适用于多场景的移动端sdk及其混合授权方法 |
CN111158818A (zh) * | 2019-12-24 | 2020-05-15 | 中国建设银行股份有限公司 | 一种页面渲染方法和装置 |
CN112035112A (zh) * | 2020-09-02 | 2020-12-04 | 北京思明启创科技有限公司 | 应用程序开发方法、***、介质和电子设备 |
-
2021
- 2021-08-18 CN CN202110948030.5A patent/CN113626105B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104995927A (zh) * | 2013-01-15 | 2015-10-21 | 微软技术许可有限责任公司 | 用于构建和使用混合移动应用的***和方法 |
CN104579766A (zh) * | 2014-12-23 | 2015-04-29 | 上海凌云天博光电科技有限公司 | 一种多应用层网管并发访问方法及装置 |
US20160353141A1 (en) * | 2015-06-01 | 2016-12-01 | Sinclair Broadcast Group, Inc. | Break state detection for reduced capability devices |
CN105573129A (zh) * | 2015-11-10 | 2016-05-11 | 华南理工大学 | 基于Cordova的跨平台智能家居移动终端 |
CN106293743A (zh) * | 2016-08-11 | 2017-01-04 | 上海泛微网络科技股份有限公司 | 一种移动建模***及构建移动应用并实现跨平台发布的方法 |
CN106445518A (zh) * | 2016-09-22 | 2017-02-22 | 中国传媒大学 | 一种跨平台移动终端应用程序开发方法及*** |
CN106647560A (zh) * | 2016-11-23 | 2017-05-10 | 中国南方电网有限责任公司 | 移动应用统一管理方法 |
CN106951233A (zh) * | 2017-03-02 | 2017-07-14 | 广州天高软件科技有限公司 | 混合模式智能手机应用开发框架 |
CN107589947A (zh) * | 2017-08-02 | 2018-01-16 | 成都极娱网络科技有限公司 | 一种sdk接入方法、客户端及*** |
CN107908403A (zh) * | 2017-11-10 | 2018-04-13 | 北京搜狐新动力信息技术有限公司 | 一种移动端业务模块组件化的配置方法及*** |
CN108595203A (zh) * | 2018-04-28 | 2018-09-28 | 努比亚技术有限公司 | 应用功能执行方法、移动终端和计算机可读存储介质 |
CN109684106A (zh) * | 2018-12-24 | 2019-04-26 | 国网江苏省电力有限公司 | 一种支持多移动浏览器引擎加载运行的方法 |
CN109683990A (zh) * | 2018-12-27 | 2019-04-26 | 四川新网银行股份有限公司 | 基于混合模式移动应用的h5多端接入方法 |
CN111158818A (zh) * | 2019-12-24 | 2020-05-15 | 中国建设银行股份有限公司 | 一种页面渲染方法和装置 |
CN111143832A (zh) * | 2019-12-30 | 2020-05-12 | 苏州思必驰信息科技有限公司 | 适用于多场景的移动端sdk及其混合授权方法 |
CN112035112A (zh) * | 2020-09-02 | 2020-12-04 | 北京思明启创科技有限公司 | 应用程序开发方法、***、介质和电子设备 |
Non-Patent Citations (2)
Title |
---|
彭广军: ""Android和iOS跨平台编程的研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 378 * |
赵先明: ""基于Lua语言的多平台高效移动应用引擎的深入研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 711 * |
Also Published As
Publication number | Publication date |
---|---|
CN113626105B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5331123B2 (ja) | ルート・サーバの各種方式および装置 | |
US8010973B2 (en) | Class loader for managing a network | |
CN112035216B (zh) | 一种Kubernetes集群网络和OpenStack网络的打通方法 | |
AU5843299A (en) | Operating system for telecommunications | |
CN111045708B (zh) | 软件升级方法、电子设备和计算机可读存储介质 | |
CN110784345B (zh) | 网络流量处理方法、装置、电子设备及机器可读存储介质 | |
CN112398936B (zh) | 一种基于Kubernetes的多网卡容器实现方法及*** | |
CN111797173B (zh) | 联盟链共享***、方法、装置、电子设备及存储介质 | |
CN113452830A (zh) | 安卓云手机的批量控制方法、计算机可读介质及电子设备 | |
CN115913937B (zh) | 一种容器多网卡网络配置方法、装置、设备及存储介质 | |
CN110808857A (zh) | 实现Kubernetes集群的网络互通方法、装置、设备以及存储介质 | |
CN114064206A (zh) | 一种访问边缘节点的pod方法、***、设备及存储介质 | |
CN112291082A (zh) | 机房容灾处理方法、终端及存储介质 | |
CN112003794B (zh) | 一种浮动ip限流方法、***、终端及存储介质 | |
US20050111363A1 (en) | Operating system for telecommunications | |
CN113626105A (zh) | 移动端混合模式的sdk***与移动设备 | |
CN104423944A (zh) | 一种软件应用*** | |
CN114172841B (zh) | 报文转发方法、装置、电子设备及读存储介质 | |
CN115987974A (zh) | 一种轻量级ftp服务方法及*** | |
CN113542421A (zh) | 基于5g用户面功能实体的数据转发方法及装置 | |
CN108737347A (zh) | 数据通信方法、装置及其设备 | |
Karhinen et al. | Structuring design decisions for evolution | |
CN108803582A (zh) | 一种适用于远程故障诊断的总线自动切换***及方法 | |
CN113852516B (zh) | 交换机诊断程序生成方法、***、终端及存储介质 | |
CN114553876B (zh) | 利用周边nat的分组内版本标记的方法和*** |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |