一 概念

1 Hybird App,是用现有前端(html,js,css)技术来开发的app。
特点:1 灵活(开发灵活 ,部署灵活) 2 拥有类似原生的性能体验。

2 不是h5页面,也不是在webview里面加载的。 
而是通过例如webpack打包工具生成的js bundle资源文件,放到原生本地渲染(原生需集成环境)。

二 优点

1 拥有web/h5的灵活性,支持随时热更新(增量更新); 同时拥有原生app的性能。

2 编写一次, 多端通用,跨平台,体验一致。

3 组件可以modules和compontents化,开发效率及复用率高。

4 支持扩展: 可直接调用原生组件(需要按规则封装),原生也可以反过来和混合页面交互;当然也可以调用三方modules组件模块。

三 原理

1 主要通过javascript 内核引擎(JsCore 内核),虚拟化技术解析,将js控件转成对应的原生组件 渲染。(例如:div、img 等转成原生的 View、Image 等组件)
当然weex里-----------Android 下使用 UC 提供的 v8 内核。

---每个端都基于 DOM 模型设计并实现了标准的界面渲染接口 供 JavaScript 引擎调用。
---采用了内存 Dom tree Diff 计算,优化了 view 的渲染效率和体验。

ps: weex在版本上支持降级成h5,从而当weex渲染失败的时候,使用webview加载url。

四 应用及场景

1 页面功能模块频繁变动,需要快速更新迭代(或者能快速的fix线上bug)。

2 页面展示性的内容为主(影响用户输入的及固定的,一般用原生;
分享出去的用h5页面)。

五 发展形势

一 用JavaScript 开发app应用已经是客户端(甚至前端)必备的技能

能解决:
1 开发一次,2端(甚至3端)通用。

2 ios快速发布及修复功能模块(原生不支持热更新 ;提交审核缓慢)

二 目前流行框架解决方案有:

React Native -----facebook 已开源-----https://reactnative.cn/

weex/Rax------alibaba 已开源(支持vue和react2个版本)--- https://weex.apache.org/cn/guide/

三 案例

手机百度,微信小程序(Rn改造),携程,qq空间,电商类,金融类app,支付宝,天猫,手淘,淘票票,飞猪,淘宝头条。。。

六 适用人员

1 有前端和原生经验的app开发者

2 前端开发人员(vue.js/react.js)

七 weex框架 和 React Native框架对比

一 Weex 对现有项目兼容性较好,入侵性较低:

1 weex允许项目里面部分页面使用weex;也可以整个项目都使用,而且它自带webview,tab, navigator…2  写法更贴近前端(单位用px)。3   原生可以封装方法和组件 ,供weex页面调用。4   可以引用三方组件。

二 React Native 要求最好整个项目都用它改造,现有项目重构改动大。

1 他里面自带了android/ios目录 ,有项目结构,必须按照它的写法。

2 写法更贴近原生。

3 原生也可以封装方法和组件 ,供页面调用。

4 也可以引用三方组件。

八 weex简单介绍

一 Weex 是一套简单易用的跨平台开发方案

能以 web 的开发体验构建高性能、可扩展的 native 应用,遵循 W3C 标准实现了统一的 JSEngine 和 DOM API,你甚至可以使用其他框架驱动 Weex,打造三端一致的 native 应用。 目前支持vue和rax(react) 2个dsl分支。

二 涉及到的相关知识

1 前端基础html,js,css (flexbox布局)
2 ES6语法基础
3 Vue.js 基础
4 Weex 相关api
5 原生知识
1 android使用java开发,只要按java写法,外加熟悉下android的控件和组件即可。
2 weex使用vue.js开发,只要按vue.js写法(js),外加熟悉下weex的控件 和 功能module即可。

Vue.js 是一套构建用户界面的渐进式框架.1 简单,用熟悉的html,css来编写。
2 清晰,专注于MVVM 模型的 ViewModel 层。
3 使用了虚拟化DOM,不直接操作DOM.性能较高。    4 组件化思想,复用率高。

三 demo演示

http://dotwe.org/vue/14ef9c678038b54d992fb0bc9d462f6e

九 必备组件介绍

BindingX———https://alibaba.github.io/bindingx/
阿里巴巴开源的一套基于 Weex、React Native 的富交互解决方案 「BindingX」。提供了一种称之 为 「Expression Binding」 的机制可以在 Weex、React Native 上让手势等复杂交互操作以60fps的帧率流畅执行,而不会导致卡顿,因而带来了更优秀的用户体验。

进一步介绍

https://www.jianshu.com/p/14729b28d15f

GCanvas—————https://alibaba.github.io/GCanvas/
阿里开源绘图,兼容web,weex,React Native

Weex UI组件库(飞猪提供)----------https://alibaba.github.io/weex-ui/#/
基于vue.js里面有封面的组件效果,对开发非常有帮助

网易也用weex----https://github.com/zwwill/yanxuan-weex-demo

网易严选

转载于:https://www.cnblogs.com/softwarelanguagebs/p/10189586.html

hybird app混合开发介绍相关推荐

  1. Hybird APP混合开发升级方法

    hybrid app开发的优势优点不用说了,但在这里,我们将重点关注混合系统中模块包的升级过程. 服务器维护压缩包的版本列表 Apppid 表示每个模块的唯一 ID 版本表示相应模块的版本号,递增 U ...

  2. Hybird App混合移动应用开发技术整体解决方案,速来围观!

    摘要 由于H5的逐步普及,混合移动应用开发变的炙手可热,其主要的开发语言就是JavaScript,这在很多人看来无论是在性能和安全上来讲,并不被大家所看好,所今天就来谈一下如何对混合应用做优化以及加密 ...

  3. h5逻辑_H5+app 混合开发

    目录 app分类 h5与原生进行交互 [1] 判断h5页面打开的环境是ios/android [2] JS调用ios/android的方法 js调用ios的方法 js调用android的方法 区别 总 ...

  4. 谈谈Android App混合开发

    推酷 文章 站点 主题 公开课 活动 客户端 荐 周刊 登录 谈谈Android App混合开发 时间 2015-08-25 20:13:43bxbxbai 原文  http://bxbxbai.gi ...

  5. App混合开发-前端小白理解

    什么是混合app 混合开发的App(Hybrid App)就是嵌一个轻量级的浏览器,一部分原生的功能改为Html5来开发,这部分功能不仅能够在不容升级的情况下动态更新,而且可以在Android或iOS ...

  6. 基于H5的混合开发介绍(一)WebView

    转自: https://www.cnblogs.com/sanchang/p/9261461.html 一 WebView到底是什么    1 WebView是一种控件,它基于webkit引擎,因此具 ...

  7. Hybrid APP 混合开发模式的选择之路(三)

    原文出处:http://www.cnblogs.com/dailc/p/5930231.html 现在概念上的APP诞生是在Google推出Android,Apple推出iOS后,从这时候开始,就有了 ...

  8. Hybrid APP混合开发的了解和其他两类app的对比

    以前我都是用java做网站的,最近公司需要开发一个app,但是公司又没有Android工程师,所以这个任务就被我们伟大的技术总监分配给我做了,下面我就来解释下目前的app市场行情,由于我们的app只是 ...

  9. 鸿蒙3.0 APP混合开发闪退问题笔记

    APP采用cordova混合开发, 鸿蒙2.0以及安卓操作系统正常使用,但是在鸿蒙3.0中出现APP闪退,对APP进行真机调试发现,鸿蒙3.0系统对crosswork插件存在兼容问题,这些问题会导致A ...

  10. app混合开发之微信分享设置

    在app内混合开发中,分享页面是必不可少的,但是分享到微信时二次分享就会没有分享的设置,这时候就需要自己配置微信二次分享,使用说明请查看微信JS-SDK说明文档 //API.jsimport axio ...

最新文章

  1. vbs 服务器获取输入信息,取得服务器上用户组列表脚本之VBS版
  2. python myqr 二维码生成
  3. linux 定时运行脚本_教你如何在Linux下让Python脚本自启动和定时启动
  4. python readlines慢_为什么readline()比Python中的readlines()慢得多?
  5. ubuntu 通过 海康sdk调用摄像头抓图片
  6. 【JavaScript】Canvas绘图整理
  7. java对象布局查看工具_Java 查看对象布局工具 - Java Object Layout
  8. springcloud灰度发布实现方案
  9. 20175320 2018-2019-2 《Java程序设计》第6周学习总结
  10. ROC曲线与AUC以及LIFT
  11. tree命令生成目录结构
  12. Codeforces Round #302 (Div. 2)
  13. 51单片机的初了解(4)
  14. layout_gravity 属性和 gravity属性的区别
  15. 神通广大、卓有奇效的“mini-KMS_Activator_v1.051”(迷你KMS)初现江湖
  16. MFC之学习扇形绘制与绘制阴阳鱼图
  17. 蓝牙定位网关-蓝牙网关通过三角定位获取蓝牙设备的位置
  18. TextView下划线的添加,控制下划线和文字的距离
  19. 推荐几款软件界面模型设计工具
  20. 开发一个发送手机短信的计算机软件

热门文章

  1. python安装chardet_Python使用chardet判断字符编码
  2. 通信原理及系统系列7—— 什么是码间串扰
  3. 欧姆龙新​​ 3D AOI 系统中的软件和人工智能
  4. vba调用二维码ocx
  5. conda安装hanlp报错“找不到JAVA,请安装JAVA8”
  6. 决策树结果可视化中文乱码问题解决方案
  7. bootstrap-treeview树形图参数详解
  8. cmd 命令 copy 复制文件
  9. LU分解法python程序代码
  10. verilog赋多位值_verilog语句两个always块对同一个变量赋值问题!【恢复】