Hybrid App(混合 App)已经成为大家接触最为广泛的 App 形式,不管是我们用到的微信、支付宝还是淘宝、京东等大大小小的应用都非常热衷于Hybrid App 带来的研发效率提升和灵活性。

但我们正式进入到 hybrid App 的讨论前,有必要先说下原生开发的一些基本情况,原因很简单,因为我们日常接触到的 hybrid App 就是在 Native App 原生应用基础上所衍生出来的。

原生开发的流程

Native App 带给用户使用体验非常好,整体的感受非常顺滑,但是作为一个开发人员,我们谈到原生开发的时候确很头痛,因为意味着需要付出高额的开发成本和发布周期。特别是对于需要频繁迭代业务内容的企业来说,无论是更新功能模块还是修复有缺陷的版本,都需要重新测试、重新发版、重新提交第三方应用商店审核上架,还要用户配合,安装新的版本,才能把旧版本覆盖。

如果只用文字可能大家会比较难以有直观的感受,我们通过下面这张图来看看:

可以看到原生开发有一个比较大的弊端,就是不管是新开发还是应用的更新发版都需要经过比较繁琐编译、上架、安装等过程,每一个过程都代表需要研发的重复投入。

这也是为什么 Hybrid App 会成为大多团队和开发者的第一选择,原生虽好但是着实很费力费时。

Hybrid App的开发流程

Hybrid App 在一定程度上可以解决原生应用在流程上复杂的问题,从架构上来讲「原生+HTML5」是比较多的技术模式,但随着这两年小程序的发展,「原生+小程序」也成为了混合应用的一种新选择,例如微信、支付宝等国民应用就是这样的路线,当然在自己的 App 引入已有的小程序整体的效果会比 H5 好很多,至少从用户体验上来讲,小程序有着接近原生的体验避免了 H5 经常出现的白屏和卡顿问题。

虽然 App 运行小程序的技术会比H5难度高很多,但是目前也有 FinClip 等小程序容器技术可以直接上手使用,也算是比较便捷。

再来看 Hybrid App 的开发和上架流程,我们先用图片流程看下:

Hybrid App 中对于经常变更、有业务运营属性的内容,基本以 HTML5 或小程序的方式实现,融合在原生App中。

通常的做法是在原生 App 里预先基于界面设计挖好一些洞,然后利用 WebView 在这些洞里面渲染由标签语言描述的内容,无缝呈现在 App 里。

这些内容从哪里来呢?它们通常预埋在 App 代码包,并且通过互联网从服务器端获得更新。

Hybrid App 的核心价值

我们最前面也讲了为了追求效率及灵活性,大家会越来越多的选择 Hybrid App 开发模式,其背后的原因还为了更加高效实现更新上架,因为其带有的热更新能力是在开发环节极为重要的。

热更新的原理大概是这样的,通常应用内的服务器端会监测这些内容的更新,继而发送内容更新的通知并通过网络向客户端同步一些页面内容的碎片,并且把这些下载的内容,通常是 HTML 和 JavaScript ,注入到之前挖好的这些洞洞里。

另外需要说明的一点,上面我们讲到的网络同步技术方案可供选择的会比较多,例如通过双向的 Web-Socket、HTTPlongpolling、SSE、PushtoPull 或者 CMS。一般来讲设备端通常通过 HMR 热模块替换和代码注入等方式让更新的代码在本地生效展示,也能够避免我们应用的重启。

以上就是关于 Hybrid App 开发上架的原理,如果你认为有用的话,也欢迎各为小伙伴在这里交流和讨论,另外也欢迎点赞。

混合应用与Hybrid App开发上架流程透析的更多相关文章

  1. iOS开发基础:最新的APP打包上架流程

    之前有人留言让我更新部分文章,下面就为大家分享一下iOS的APP打包上架流程: 上传至apple developer 1.1 上传准备工作 更新上架和发布上架不同,在原始版本首次上架的时候就将描述文件 ...

  2. 【Hybrid App】Hybrid App开发实战

    [引言]近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家都会考虑到的成本,团队成员, 技术成熟度,时间,项目需求等一堆的因素.因此,开发App的方案已经变得越来越 ...

  3. Hybrid App开发实战

    Hybrid App开发实战 作者 李秉骏 发布于 九月 04, 2013 | [引言]近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家都会考虑到的成本,团队成员 ...

  4. hybrid app开发工具

    hybrid app开发工具 1.AppCan AppCan是国内Hybrid App混合模式开发的倡导者,AppCan应用引擎支持Hybrid App的开发和运行.并且着重解决了基于HTML5的移动 ...

  5. 【Hybrid App】Hybrid App开发 四大主流移平台分析

    转自http://dev.yesky.com/238/34657738.shtml Hybrid App在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之 ...

  6. Hybrid App 开发模式

    开发移动App主要有三种模式:Native. Hybrid 和 Web App. 需要注意的一点是在选择开发模式的时候,要根据你的项目类型(图片类?视频类?新闻类?等),产品业务和人员技术储备等做权衡 ...

  7. Hybrid App 开发初探:使用 WebView 装载页面

    Hybrid App 是混合模式应用的简称,兼具 Native App 和 Web App 两种模式应用的优势,开发成本低,拥有 Web 技术跨平台特性.目前大家所知道的基于中间件的移动开发框架都是采 ...

  8. hybrid app开发中用到的html5新特性localStorage、sessionStorage和websql database

    近期在项目中进行hybrid app开发,项目中有大量的js代码执行在android设备上. 使用到了非常多HTML5的新特性,之前没有遇到过,不了解.这里记录下添加点前端的知识.混合式app开发中. ...

  9. [目录]hybrid app 开发实战(基于ionic,cordova,angularjs)

    序:为什么要写这个系列 第一章:hybrid app开发之技术选型 第二章:ionic,cordova,phonegap关系浅析 第三章:ionic环境搭建之windows篇 第四章:ionic环境搭 ...

  10. hybrid app开发中:苹果移动设备实用Meta标签

    hybrid app开发中:苹果移动设备实用Meta标签 “apple-mobile-web-app-status-bar-style”作用是控制状态栏显示样式 具体效果如下: status-bar- ...

随机推荐

  1. FPGA学习之乒乓操作

    乒乓操作学习记录如下: 乒乓操作" 是一个常常应用于数据流控制的设计思想, 典型的乒乓操作方法如下图 所示: 乒乓操作的处理流程为:输入数据流通过" 输入数据选择单元"将 ...

  2. jQuery真伪数组转换

    // 真数组转伪数组 [].push.apply(obj,arr); // 伪数组转真数组 [].slice.call(obj);

  3. vscode+gdb 配置

    到这个网址下载 mingw c语言环境 https://sourceforge.net/projects/mingw-w64/files/mingw-w64/ 我是windows64 位,直接下载这个 ...

  4. 【技术积累】Linux中的命令行【理论篇】【五】

    arpd命令 命令介绍 arpd命令是Linux系统中的一个网络工具,用于管理和操作ARP(地址解析协议)缓存.ARP协议用于将IP地址映射到MAC地址,以便在局域网中进行通信. 命令说明 arpd命 ...

  5. [PWN之路]堆攻击那些事儿

    原文:https://www.freebuf.com/articles/endpoint/371095.html 0x00 前言 根据某大佬所说,pwn之路分为栈,堆,和内核.当前,如果你看到这个文章 ...

  6. 部署属于自己的New bing Ai

    该项目来源 https://github.com/adams549659584/go-proxy-bingai 项目体验地址 https://bing.vcanbb.top/web/#/ 项目介绍 基 ...

  7. 在本地运行Kusto服务器

    我喜欢Kusto (或商用版本 Azure Data Explorer,简称 ADX) 是大家可以有目共睹的,之前还专门写过这方面的书籍,请参考 大数据分析新玩法之Kusto宝典, 很可能在今年还会推 ...

  8. CodeForces 1343D Constant Palindrome Sum

    题意 多组样例 给一个长度为\(n\)(\(n\)一定为偶数)的数组\(a[]\),给一个正整数\(k\),保证数组内元素为小于等于\(k\)的正整数,你可以每次将数组的一个元素变为小于等于\(k\) ...

  9. 前瞻|Java 21 新特性 String Templates(字符串模版)

    在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织.也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: 使用+拼接 使用StringBuffer和Sp ...

  10. 安装软件提示 "无法完成操作, 因为文件包含病毒或潜在的垃圾软件" 如何处理

    在Windows端安装一些小众电脑软件的时候,经常会遇到无法安装的问题,比较常见的情况是会提示 "无法完成操作, 因为文件包含病毒或潜在的垃圾软件", 或者提示"不能执行 ...