盲猜你不懂H5架构和原生架构的区别

2023-12-07 00:50
文章标签 区别 架构 h5 原生 盲猜

本文主要是介绍盲猜你不懂H5架构和原生架构的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. App 的 3 种开发方式

表面上看,手机 App 都是同样的东西,就是手机上的应用程序,点击图标就能运行,但是它们的底层技术不一样。按照开发技术,App 可以分成三大类。原生应用(简称 nativeApp),Web 应用(简称 WebApp),混合应用(简称 hybridApp)这三类 App 的技术模型都不一样,各有优缺点。

2. 原生架构

原生应用开发,是在 Android、iOS 等移动平台上利用官方提供的开发语言、开发类库、开发工具进行 App 开发。所以原生架构的 App 在应用性能上和交互体验上应该是最好的,但是原生应用的可移植性比较差,特别是一款原生的 App,Android 和 iOS 都要各自开发,同样的逻辑、界面要写两套。如微信 app,既有 Android 版的,也有 iOS 版的。

原生架构特点:

1、每一种移动操作系统都需要独立的开发项目。

2、每种平台都需要独立的开发语言和工具,比如 Android 系统上的应用是利用 Java、eclipse、Android studio 来进行开发,iOS 系统是上的应用则是利用 Objective-C 和 Xcode 来进行开发的。

3、更加贴近底层,因此他的操作更加的流畅,对于调取底层功能也是很容易的,如相机。

4、开发成本高(针对不同的手机操作系统都要进行独立的开发),开发周期长,更新迭代缓慢,上架时需要等待官方审核通过

3. H5 架构

H5 开发就是值是利用 Web 技术(HTML5、JavaScript、CSS)进行的 App 开发,现在还有一些开发框架可以利用,比如 phoneGap、bootstrap、jQuery 等。H5 开发的好处是可以跨平台,编写的代码可以同时在 Android、iOS、Windows 上进行运行。由于 Web 技术本身的限制,H5 移动应用不能直接访问设备硬件和离线存储,所以在体验和性能上有很大的局限性。

H5 架构特点:

1、方便测试,只需要输入网址就可以进行测试,是基于浏览器的,可以跨平台使用。

2、想要新增功能直接在后台添加即可,不需要通知用户升级。

3、量级低,开发成本很低,而且相应的他也不需要安装包。

4、对网络非常依赖,一断网就歇菜功能单一,主要用于展示,无法调用底层功能,比如相机。

4.H5 架构与原生的区别

1、原生的页面运行速度快,比较流畅。H5 页面相对原生的运行性能低,特别是一些动画效果有明显卡顿。

2、H5 页面的很多交互都没有原生的好,比如弹层、输入时候的页面滑动 等。H5 的效果相对比较 low,没有原生的好看,也没有原生默认的动画等效果。

3、原生 APP 修改页面要重新发布,等待审核(现在 iOS 的审核速度已经提高到 1 天到 2 天)。H5 页面的修改 可以随时上线,不用等待审核。

4、H5 跨平台,iOS 和 Android 可以共用一套代码;原生则需要各自开发相对原生,H5 开发成本低。

5、原生 APP 能很好的使用设备底层功能,如摄像头、方向传感器、重力传感器等。H5 则有所限制,比如 Android 里的 H5 对摄像头和方向传感器就需要再多做一些处理。

6、H5 过度依赖于网络,网络不好的时候卡到不行,并且刚打开看到的都是一个空白页面。默认的 H5 页面每次打开都会重新请求页面(可以做缓存,不过基本很少有做的)。

7、H5 比原生更费流量,H5 除了加载 HTML 还要加载 js、CSS 这些资源文件,相比原生网络加载速度慢。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

这篇关于盲猜你不懂H5架构和原生架构的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/463952

相关文章

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现