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

相关文章

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

C# Semaphore与SemaphoreSlim区别小结

《C#Semaphore与SemaphoreSlim区别小结》本文主要介绍了C#Semaphore与SemaphoreSlim区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、核心区别概览二、详细对比说明1.跨进程支持2.异步支持(关键区别!)3.性能差异4.API 差

Java中自旋锁与CAS机制的深层关系与区别

《Java中自旋锁与CAS机制的深层关系与区别》CAS算法即比较并替换,是一种实现并发编程时常用到的算法,Java并发包中的很多类都使用了CAS算法,:本文主要介绍Java中自旋锁与CAS机制深层... 目录1. 引言2. 比较并交换 (Compare-and-Swap, CAS) 核心原理2.1 CAS

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

MySQL集群高可用架构的两种使用小结

《MySQL集群高可用架构的两种使用小结》本文介绍了MySQL的两种高可用解决方案:组复制(MGR)和MasterHighAvailability(MHA),文中通过示例代码介绍的非常详细,对大家的学... 目录一、mysql高可用之组复制(MGR)1.1 组复制核心特性与优势1.2 组复制架构原理1.3

MyBatis Plus中执行原生SQL语句方法常见方案

《MyBatisPlus中执行原生SQL语句方法常见方案》MyBatisPlus提供了多种执行原生SQL语句的方法,包括使用SqlRunner工具类、@Select注解和XML映射文件,每种方法都有... 目录 如何使用这些方法1. 使用 SqlRunner 工具类2. 使用 @Select 注解3. 使用

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof