盲猜你不懂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

相关文章

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

C# 委托中 Invoke/BeginInvoke/EndInvoke和DynamicInvoke 方法的区别和联系

《C#委托中Invoke/BeginInvoke/EndInvoke和DynamicInvoke方法的区别和联系》在C#中,委托(Delegate)提供了多种调用方式,包括Invoke、Begi... 目录前言一、 Invoke方法1. 定义2. 特点3. 示例代码二、 BeginInvoke 和 EndI

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

数据库使用之union、union all、各种join的用法区别解析

《数据库使用之union、unionall、各种join的用法区别解析》:本文主要介绍SQL中的Union和UnionAll的区别,包括去重与否以及使用时的注意事项,还详细解释了Join关键字,... 目录一、Union 和Union All1、区别:2、注意点:3、具体举例二、Join关键字的区别&php