native A、hybrid A、whybridappeb三者的区别

旅游新闻 2020-06-29153未知admin

  随着智能手机的普及,端应用几乎成为每个互联网产品的标配。在快速迭代的互联网战场中高效、低成本上线产品,是每个应用团队追求的目标。此时,选择合适的应用类型和模式便至关重要。应用可以粗分为三种:原生应用(

  Hybrid 从外观上来看是一个native ,实则只有一个UIWebView,里面访问的是一个web ,如新闻类和视频类的应用普遍采取该策略:native的框架加上web的内容。不同于native 需要针对不同的使用不同的语言(如使用Objective-C、SwiftiOS应用,使用Java等Android应用,使用C#Windows Phone应用),hybrid 允许者仅使用一套网页语言代码(HTML5+CSS+JavaScri),即可能够在不同上部署的类原生应用 。由于hybrid 结合了native 良好用户交互体验和web 跨的优势,能够显著节省应用的时间和成本,hybrid 得到越来越多的青睐。

  按照网页语言和程序语言的混合,hybrid 通常可以分为三种类型:

  单View混合型:在同一个view内,native view和web view为层叠关系,同时出现。成本较高,难度较大,但是体验较好。举个栗子:百度搜索同时实现充分的灵活性和较好的用户体验。

  Web主体型:应用主体是web view,穿插native功能,主要以网页语言编写。整体难度低,基本可以实现跨;而用户体验好坏,主要取决于底层中间件的交互与跨能力。举个栗子:项目管理工具Basecamp使用web view呈现内容,调用系统原生API实现界面等功能来提高用户体验。

  在hybrid 备受追捧的今天,我们也许会随大流优先考虑hybrid 。但是,每个产品各具特色,还没有哪一种解决方案可以完美地应万变。hybrid 的中庸让它大放异彩,也了它的应用场景 。在决定采用一种模式之前,有许多因素需要考虑,诸如:

  如果要设计Angry Birds一类对图形要求很高的游戏,那么在暂不考虑技术团队能力的情况下,native 是最优选择;如果要设计如Yelp一类内容导向的应用,那么hybrid 会是很好的选择;如果项目时间紧张,没有足够的人手和资金,对图形和系统原生特性没有要求,那么web 将是性价比最高的解决方案。

  表一对比了native ,hybrid 和web 在不同方面的表现,可以帮助你根据实际情况选择最佳的解决方案。

  为了HTML5而hybrid :HTML5是HTML4.0.1和XHTML1.0的升级版,有更强大的表现功能,并加入了local storage等技术,为web页面提供了更大的想象空间和更多的可能性。但是,作为发展中的技术,HTML5收到浏览器兼容性和手机硬件水平的影响,能提供的功能和native 扔有一定的差距。应用时,首先是要满足用户需求,而不是追赶技术革新的大潮。所以应用时,应从应用本身功能和团队资源综合考量,决定是否采用hybrid 模式。

  忽略关键因素:Web是基于PC的一种模式,而mobile 运行于端。通常,web者使用PC浏览器模拟中的web view进行调试,而不是直接使用手机上的web view。 二者能支配的CPU资源,最大占有内存,运行网络,和鼠标/触控操作,浏览器对CSS/JS的解析和对事件的处理有着巨大的差别。而这些差别常常是web页面能否正常运行于中的关键因素。

  富交互导致体验差:这主要体现在两个方面:(1)web与手机默认交互习惯不一致:iOS和Android各有一套交互习惯,包括视觉风格,界面切换,操作习惯等。比如手机端系统风格是左右滑屏来进入或者退出界面,而旧界面保持状态;web则是默认无论加载还是后退,都会刷新旧界面,造成体验上的损失。如果模拟native的交互方式,那么会提高成本,却也难以达到native的流畅性。(2)与native相比同样的功能在性能上存在差距:Web界面上JS对HTML Node的操作需要消耗大量的CPU资源。首先,手机的CPU性能普遍低于PC端;其次,不同手机之间的硬件水平也参差不齐,比如在iPhone6s上可以流畅运行的界面,在iPhone5、MX5上可能就无法达到同样的流畅度。

  跨:Hybrid 的优势之一是继承web跨的特性。然而,在智能手机软硬件版本众多的今天,兼容性是个不容忽视的问题。不同的操作系统其浏览器内核对JS和CSS的解析、事件处理会有不同;iOS不同版本之间也存在较大差异。所以,在跨时,兼容性也是需要重点考虑的问题。

  交互一致性:这里的一致性并非指同一应用在不同上的一致性体验,而是指在同台上,hybrid 和native的一致性。比如“返回”操作,在iOS上页面顶部留有一个44像素高的栏,左侧的返回按钮用于返回操作,可以通过绝对地址的方式链接到任何其它界面;而Android通常使用设备提供的返回键,返回上一个界面,如果自行配置返回按钮,那么它会和设备提供的返回键指向不同的。

  nativpp是一个原生程序,一般运行在机器操作系统上,有很强的交互,一般静态资源都是在本地的。浏览使用方便,体验度高。在实现上要么使用Objecttive-c和cocoaTouch Framework撰写iOS程序,要么选择java+Android Framework撰写android应用程序。

  hybrid是一个半原生程序,伪造了一个浏览器的apk/ipa原生程序,把地址写死了,然后里面运行了一个web。里面是WebView UI。但是还是运行在机器的操作系统上,交互较弱,资源一般在本地或者网络都可以。浏览体验度次之。

  web是在浏览器里的应用,所以只能运行在浏览器里,宿主是浏览器,不再是操作系统。资源一般都在网络上。说的根本点就是一个触屏版的网站

  一般说来,Web App都是都是需要用到网络的,它们利用设备上的浏览器(比如iPhone的Sari)来运行,而且它们不需要在设备上下载后安装。

  Hybrid App是指介于web-、native-这两者之间的,它虽然看上去是一个Native App,但只有一个UI WebView,里面访问的是一个Web App,比如街旁网最开始的应用就是包了个客户端的壳,其实里面是HTML5的网页,后来才推出真正的原生应用。再彻底一点的,如掌上百度和淘宝客户端Android版,走的也是Hybrid App的线,hybridapp不过掌上百度里面封装的不是WebView,而是自己的浏览内核,所以体验上更像客户端,更高效。

  综合一下就是:“Hybrid App同时使用网页语言与程序语言,通过应用商店区分操作系统分发,用户需要安装使用的应用”。总体特性更接近Native App但是和Web App区别较大。只是因为同时使用了网页语言编码,所以成本和难度比Native App要小很多。因此说,Hybrid App兼具了Native App的所有优势,也兼具了Web App使用HTML5跨低成本的优势。

  Web App是指基于Web的系统和应用,运行在高端手机的网络和浏览器上,用网页技术实现特定功能的应用,对手机性能要求比较高。

  Native App(原生):目前较为成熟,各大均采用此方式。但是其人工成本较高,同一个项目,至少需要Android端、iOS端、hybridappWeb端三个团队。

  Hybrid App(混合),基于第三方跨应用引擎框架进行。使用HTML5和JS作为,调用引擎封装的底层功能如机、传感器、通讯录等。

  Web App就像白酒那样浑厚甘醇,度数高,但不适合任何人的口味,制造成本低,

  Native App就是葡萄酒,分红白类型,对葡萄品质要求高,口味大众化,比较成熟,

  Hybrid App就是鸡尾酒,混合了多种酒的优势,非常适合跨,hybridapp是以后的一个App趋势。

  Native App是一种基于智能手机本地操作系统如iOS、Android、WP并使用原生程式编写运行的第三方应用程序,也叫本地。一般使用的语言为JA、C++、Objective-C。

  想创建Native App,者必须编写源代码,使用由操作系统商提供的工具,对源代码进行编译。代码编译之后以2进制或者字节码的形式运行在操作系统上,直接调用操作系统的Device API。

  虽然不同操作系统上进行的过程常常很相似,但是每一种操作系统都随带各自的独特工具。之间的这些区别导致了Native方法的最重大缺点之一:为一种编写的代码无法在另一种上使用。Native App的优缺点总结如下:

  Web App是运行于网络和标准浏览器上,以HTML+JS+CSS等WEB技术实现特定功能的应用。通过浏览器来调用Device API,但是只有数量有限的这些API向浏览器里面运行的Web App公开。基于当下开始普及流行的HTML5,Web App可以实现很多原本Native App才可以实现的功能,,比如LBS的功能、本地数据存储、音视频播放的功能,甚至还有调用机和结合GPU的硬件加速功能。

  由于它不依赖于操作系统,因此了一款Web App后,基本能应用于各种系统。并且还有版本升级容易的优势(毕竟服务器是受自己控制的)。但是这种方案的缺点也很明显——无法使用系统级API,只能做为一个临时的入口,用户很难留存。Web App的优缺点总结如下:

  Hybrid App是一种用Native技术来搭建App的外壳,壳里的内容由Web技术来提供的应用,兼具“Native App良好交互体验的优势”和“Web App跨的优势”。

  这种方案的Web资源放置在服务器上,者不必经历提交和批准过程——有些App商店要求这个过程,就可以对App进行小幅更新。遗憾的是,这个方法摈弃了任何离线可用性,因为设备与网络没有连接时,无法访问设备。

  (2)将一组HTML、JavaScri、CSS和文件,封装到App代码中,存储在设备本地,使用Cordova/PhoneGap等框架通过WebView加载本地资源进行页面渲染

  把Web代码封装到App里面在一定程度上缓解从远端加载静态资源导致UI展示延迟的问题,可以提高性能和可访问性,并且还可以通过桥接Native和Web来调用一些Device的API。

  但是其劣势也很明显,一是不允许远程更新;二是安装包变大;三是如果想调用相关的API,需要针对单独进行,如果在应用中用到了大量的Device API,那么的效率将大大降低。

  即原生模式,出来的是原生程序,不同上,Android和iOS的方法不同,出来的是一个的A,能发布应用商店,有如下优点和缺点。

  成本高,无法跨,不同Android和iOS上都要各自

  Android上基于Java,iOS上基于OC或Swift,相互之间,必须要有各自的人员

  原生的一个很大特点就是,所以不太容易入门,不像web前端一样那么广泛,而且Android,iOS都需要学习

  即端的网站,将页面部署在服务器上,然后用户使用各大浏览器访问,不是A,无法安装和发布Web网站一般分两种,MPA(Multi-page Application)和SPA(Single-page Application)。而Web App一般泛指后面的SPA形式出的网站(因为可以模仿一些A的特性),有如下优点和缺点。

  web 一般只需要一个前端人员出一套代码,然后即可应用于各大主流浏览器(特殊情况可以代码进行下兼容),没有新的学习成本,而且可以直接在浏览器中调试

  由于web 资源是直接部署在服务器端的,所以只需要替换服务器端的文件,用户访问是就已经更新了(当然需要解决一些缓存问题)

  Web App每次访问都需要去服务端加载资源访问,所以必须依赖于网络,而且网速慢时访问速度很不理想,特别是在端,如果网站优化不好会无故消耗大量流量

  只能使用Html5的一些特殊api,无法调用原生API,所以很多功能存在无法实现情况

  临时性入口,用户留存率低,这既是它的优点,也是缺点,优点是无需安装,确定是用完后有时候很难再找到,或者说很难专门为某个web 留存一个入口,导致用户很难再次使用

  即混合,也就是半原生半Web的模式,有跨效果,当然了,实质最终发布的仍然是的原生A(各种的有各种的SDK),有如下优点和缺点。

  Hybrid模式下,由原生提供的API给JS调用,实际的主要逻辑有Html和JS来完成,而由于最终是放在webview中显示的,所以只需要写一套代码即可,达到跨效果,另外也可以直接在浏览器中调试,很为方便,最重要的是只需要一个前端人员稍微学习下JS api的调用即可,无需两个的原生人员

  一般Hybrid中的跨最少可以跨三个:Android App,iOS App,普通webkit浏览器

  虽然没有web 更新那么快速,但是Hybrid中也可以通过原生提供api,进行资源主动下载,达到只更新资源文件,不更新apk(ipa)的效果

  这种模式下,只需要前端人员关注一些原生提供的API,具体的实现无需关心,没有新的学习内容,只需要前端人员即可

  因为可以调用原生api,所以很多功能只要原生提供出就可以实现,另外性能也比较接近原生了

  Facebook发起的开源的一套新的A方案,Facebook在当初深入研究Hybrid后,觉得这种模式有先天的缺陷,所以果断放弃,转而自行研究,后来推出了自己的“Rct Native”方案,不同于H5,也不同于原生,更像是用JS写出原生应用,有如下优点和缺点,其实很多大都已经转Rct Native了,已经很成熟了。

  虽然说成本大于Hybrid模式,但是小于原生模式,大部分代码可复用

  相比于原生模式,这种模式是用JS写代码,所以往往只需要一名投入学习,即可完成跨的,而且后续代码封装的好,很多功能可复用

  这种模式和Hybrid不一样,Hybrid中的view层实际上还是dom,但是这种模式的view层是虚拟dom,所以性能要高于Hybrid,距离原生差距不大

  这种模式可以认为是用JS写原生,即页面用JS写,然后原生通过Bridge技术JS,将JS内容单独渲染成原生Android和iOS,所以也就是为什么性能不逊色原生

  这种模式是由JS编写,有着独特的语法,所以只需要学习一次,即可同时Android和iOS

  比如在进行微信网页时,可以调用一些微信的特殊api,这其实就是算是微信的Hybrid模式,实质上仍然是在浏览器中(只不过是腾讯的X5内核)

  当然了,微信在这方面做了很多,比如权限认证等等,所以导致起来效果不是很完美。这里不再赘述其功能

原文标题:native A、hybrid A、whybridappeb三者的区别 网址:http://www.pacificcrestforaging.com/lvyouxinwen/2020/0629/33097.html

Copyright © 2002-2020 漫山遍野新闻网 www.pacificcrestforaging.com 版权所有  

联系QQ:1352848661