Hybrid App如何实现网页语言与程序语言的混合
来源:互联网 发布:手机淘宝怎么上门取件 编辑:程序博客网 时间:2024/04/29 18:40
Hybrid App依然是一个App,只是在编程过程中采用了HTML5或其他脚本技术。先看看一个普通的应用是如何构成的。如图1所示,一个应用是由众多界面根据功能逻辑进行组织的产物。使用任何开发技术都是为了完成界面、逻辑和组织的研发。
图1. 应用的构成
以原生应用为例,如图所示。
图2.原生应用
—使用原生技术实现UI、通信、内部逻辑等。
—实现界面的动画效果和参数传递。
—处理界面的生存周期和逻辑。
—封装整合基础库供开发调用。
—配置开发环境、工程、编译参数并最终完成应用的编译发布。
上述这些工作都由原生开发人员完成,且在不同平台上都要完成一次。Hybrid开发技术希望引入HTML5或脚本技术来达到减少甚至忽略原生开发人员工作量的目标。
目前国外比较知名的混合模式开发技术为PhoneGap。PhoneGap的应用开发模型如图3所示。
目前利用PhoneGap进行开发大多采用All in One Page模式。开发人员的工作有以下几项。
—使用网页技术在DIV内实现独立界面的功能,完成UI、通信和内部逻辑。
图3. PhoneGap的应用开发模型
—使用JQMobile、SenchaTouch等JS框架完成DIV界面间的切换和参数传递。
—使用JQMobile、SenchaTouch处理界面的生存周期和逻辑。
—PhoneGap封装系统设备能力基础库供开发调用,原生人员可以开发新插件扩展PhoneGap能力。
—需要依赖各平台独立SDK,因此需要配置开发环境、工程、编译参数并最终完成应用的编译发布。
上述模型为移动应用开发者提供了新的开发途径,但是也带来了以下一些问题。
—依然需要依赖各平台SDK。
—依然要求开发人员配置开发环境等才能完成应用的最终编译。
—依赖第三方JS框架完成窗口管理和动画,受限于系统能力,体验较差。
—采用ALL in One Page模式,所有界面都在同一页面内,开发调试复杂,不利于团队协同开发。
可以认为PhoneGap是一个为有原生开发能力的团队或个人提供的混合应用开发工具,受限于国内开发人员能力、环境等,从国内使用情况反馈看,其体验和开发方式并没有获得预期的好评。
AppCan作为国内首家Hybrid应用开发技术提供商,其开发模型如图4所示。
图4. AppCan开发模型
目前利用AppCan进行开发大多采用One Feature One Page模式。开发人员的工作如下。
—使用网页技术在独立页面内实现各独立界面的功能,完成UI、通信和内部逻辑。
—使用原生引擎提供的接口完成窗口管理和动画处理。
—使用原生引擎提供的窗口栈管理窗口生存期和逻辑。
—封装系统设备能力基础库、系统能力库、高级功能库、第三方对接库、高体验UI扩展库供HTML5开发调用,原生人员可以开发新插件扩展AppCan能力。
—不需要依赖各平台独立SDK,不需要配置开发环境、工程、编译参数。
从上述开发模型中可以看到,AppCan技术是以HTML5开发人员作为开发主体,辅以原生开发人员的开发体系。HTML开发人员聚焦于独立界面逻辑、交互的开发。AppCan通过插件引擎在体验、能力、效率、安全各方面提供支撑。
—不再需要依赖各平台SDK。
—不再要求开发人员配置开发环境等才能完成应用的最终编译。
—使用原生技术完成窗口管理和动画。
—采用One Feature One Page模式,所有界面可独立开发,便于调试,有利于团队协同开发。
- Hybrid App如何实现网页语言与程序语言的混合
- Hybrid App的架构与实现
- Hybrid APP混合开发
- OC Hybrid App,混合开发。
- hybrid app混合webapp开发
- Hybrid APP混合开发的一些经验和总结
- Hybrid APP混合开发的一些经验和总结
- Hybrid APP混合开发的一些经验和总结
- Hybrid APP混合开发的一些经验和总结
- Hybrid App混合开发的一些经验和总结
- Hybrid APP混合开发的一些经验和总结
- Hybrid APP 混合开发模式的选择之路(六:JSBridge---Native代码与JS代码的通信桥梁)
- Hybrid APP 混合开发模式的选择之路(六:JSBridge---Native代码与JS代码的通信桥梁)
- 如何判断一款app使用原生实现,还是Hybrid APP
- Native APP、WEB APP与Hybrid APP的区别
- WEB APP、HYBRID APP与NATIVE APP的设计差异
- WEB APP、HYBRID APP与NATIVE APP的差异
- 移动Web App、Hybrid App与Native App的差异
- windows下远程linux桌面: debian 8.0 + gnome + vnc
- View类
- springmvc处理ajax请求
- Sql 语句 查询 某一列 不重复值 和不重复值数量
- CentOS 7 安裝 tensorflow
- Hybrid App如何实现网页语言与程序语言的混合
- 解决jquery mobile的Chrome兼容性问题
- 绕过杀软的各种姿势
- Linux常用命令
- 2017加油
- 安卓6.0及以上权限处理
- winform的DataGridView合并单元格
- [AHK]将选中字符中的字母全部转换成【大写 / 小写 / 首字母大写】
- vue中改变选中当前项的显示隐藏或者状态的方法