移动 App 开发
![图片[1]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_0.png)
Native App-原生开发 开发技术 JavaScript bridge
用于原生应用中的 Web 和原生平台进行交互。
原生应用中的 Web 怎么做?
![图片[2]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_1.jpg)
Native APP 指的是原生程序,一般依托于操作系统,有很强的交互,是一个完整的App,可拓展性强,需要用户下载安装使用。(简单来说,原生应用是特别为某种操作系统开发的,比如iOS、Android等等,它们是在各自的移动设备上运行的)
该模式通常是由“云服务器数据+APP应用客户端”两部份构成,APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上。
原生应用程序是某一个移动平台(比如iOS或安卓)所特有的,使用相应平台支持的开发工具和语言(比如iOS平台支持Xcode和Objective-C,安卓平台支持Eclipse和Java)。原生应用程序看起来(外观)和运行起来(性能)是最佳的。
iOS
Android:
优点 缺点 Web App-网页开发
Web App 指采用Html5写出的App,不需要下载安装。类似于现在所说的轻应用。生存在浏览器中的应用,基本上可以说是触屏版的网页应用。(Web应用本质上是为移动浏览器设计的基于Web的应用,它们是用普通Web开发语言开发的,可以在各种智能手机浏览器上运行)
Web App开发即是一种框架型APP开发模式(HTML5 APP 框架开发模式),该开发具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。
HTML5应用程序使用标准的Web技术,通常是HTML5、JavaScript和CSS。这种只编写一次、可到处运行的移动开发方法构建的跨平台移动应用程序可以在多个设备上运行。虽然开发人员单单使用HTML5和JavaScript就能构建功能复杂的应用程序,但仍然存在一些重大的局限性,具体包括
会话管理、安全离线存储以及访问原生设备功能
(摄像头、日历和地理位置等)。
优点 缺点 Hybrid App-混合开发
![图片[3]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_2.jpg)
Hybrid APP指的是半原生半Web的混合类App。需要下载安装,看上去类似Native App,但只有很少的UI Web View,访问的内容是 Web 。
混合应用程序让开发人员可以把HTML5应用程序嵌入到一个细薄的原生容器(WebView - 认为是一个浏览器)里面,集原生应用程序和HTML5应用程序的优点(及缺点)于一体。
混合应用大家都知道是原生应用和Web应用的结合体,采用了原生应用的一部分、Web应用的一部分,所以必须在部分在设备上运行、部分在Web上运行。不过混合应用中比例很自由,比如Web 占90%,原生占10%;或者各占50%。
有些应用最开始就是包了个原生客户端的壳,其实里面是HTML5的网页,后来才推出真正的原生应用。比较知名的APP,比如手机百度和淘宝客户端 Android版,走的也是Hybrid App的路线,不过手机百度里面封装的不是WebView,而是自己的浏览内核,所以体验上更像客户端,更高效。
优点 缺点 相关技术
共同点:
Cordova
Cordova是Apache软件基金会的一个产品。其前身是PhoneGap,由Nitobi开发,2011年10月,Adobe收够了Nitobi,并且PhoneGap项目也被贡献给Apache软件基金会。Apache在2012年12月,发布了Cordova,截止到2015年12月,最新版面是3.0。
该框架的目标用户群体是原生开发者,其设计初衷是希望用户群体能够通过跨平台开发的方法降低原生开发的成本。为此,开发人员需要安装原生开发环境,配置工程,使用HTML5、CSS3、JS和原生SDK生成应用。
Cordova的优势很明显,可以使用的框架、原生接口、支持平台都很多。但是,外国人写的东西,公司使用后,出现的技术问题难以解决。同时,其在使用 jQuery Mobile、Sencha Touch等前端框架的时候,有特效启动慢、页面切换慢、数据请求慢的特点。
APPCan
AppCan成立于2010年,2011年推出产品并测试,2012年正式推出品牌,2013年商业模式成型,2014年开发者注册约70w。AppCan不是开源平台,同时,企业版和部分插件是收费的。换句话说,AppCan只是一个卖软件的商业公司。我们认为:这会对其市场的占有率有着直接影响,闭源而没有垄断,所以前景不会太好。
DCloud
DCloud大部分产品开源,W3C会员单位,HTML5中国产业联盟的发起公司之一,在HTML5这个行业有一定的江湖地位。旗下四款产品:HBuilder、5+ Runtime、MUI、流应用都是弥补并扩展HTML5特性的产品。该公司的理念就是解决HTML5的性能、工具、能力三方面的问题。MUI是一款不错的前端框架,性能比 jQuery Mobile、Bootstrap好很多,主要区别:
API Cloud
APICloud提供原生应用的功能模块(设备访问,界面布局,开放SDK等),开发者可以通过JS调用。前端工程师负责页面布局,UI展现,及简单的交互,原生模块负责性能方面和功能实现,两者结合形成一个完整的应用。同时APICloud提供了云数据库的功能,前端不必了解PHP,Node.js等后端语言,通过JS接口或Restful API实现数据库的增删改查。
但是APICloud的更新速度很快,版本不太稳定。而且,它是为不懂APP开发的人士准备的,不适合科技公司和程序员。
四种方式对比
![图片[4]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_3.png)
![图片[5]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_4.png)
跨平台开发 Native App
特点:使用类似于 Web 技术的方式来开发 Native App。
![图片[6]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_5.png)
相关开发技术 React Native(主流) Weex(使用不多) Flutter(未来趋势) 优点 缺点 另类 App(Web 技术为主导) 小程序 统一开发平台 微网页 快应用(不温不火,iPhone 不参与很难搞起来) PWA(网站离线访问技术,没有 iPhone 不参与) 各大开发模式对比 Native AppWeb AppHybrid AppReact Native App
原生功能体验
优秀
差
良好
接近优秀
渲染性能
非常快
慢
接近快
快
是否支持设备底层访问
支持
不支持
支持
支持
网络要求
支持离线
依赖网络
支持离线(资源存本地情况)
支持离线
更新复杂度
高(几乎总是通过应用商店更新)
低(服务器端直接更新)
较低(可以进行资源包更新)
较低(可以进行资源包更新)
编程语言
Android(Java),iOS(OC/Swift)
js+html+css3
js+html+css3
主要使用JS编写,语法规则JSX
社区资源
丰富(Android,iOS单独学习)
丰富(大量前端资源)
有局限(不同的Hybrid相互独立)
丰富(统一的活跃社区)
上手难度
难(不同平台需要单独学习)
简单(写一次,支持不同平台访问)
简单(写一次,运行任何平台)
中等(学习一次,写任何平台)
开发周期
长
短
较短
中等
开发成本
昂贵
便宜
较为便宜
中等
跨平台
不跨平台
所有H5浏览器
Android,iOS,h5浏览器
Android,iOS
APP发布
App Store
Web服务器
App Store
App Store
如何选择开发模式
目前有多种开发模式,那么我们平时开发时如何选择用哪种模式呢?如下
选择纯Native App模式的情况 选择Web App模式的情况 选择Hybrid App模式的情况 选择React Native App模式的情况 选择其它方案 如何分辨一个 App 是原生做的还是 Web 做的
1、看断网情况
通过断开网络,刷新页面,观察内容缓存情况来有个大致的判断,可以正常显示的就是原生写的,显示404或者错误页面的就是html页面。
3、看复制文章的提示,需要通过对比才能得出结果。
比如文章资讯页面可以长按页面试试,如果出现文字选择,粘贴功能的是H5页面,否则是native原生的页面。
有些原生APP开放了复制粘贴功能或者关闭了,而H5的CSS屏蔽了复制选择功能等情况,需要通过对目标测试APP进行对比才可知。
在支付宝APP、蚂蚁聚宝是可以判断的。
4、看加载的方式
如果在打开新页面导航栏下面有一条加载线的话,这个页面就是H5页面,如果没有就是原生的。
5、看app顶部,导航栏是否会有关闭的操作
如果APP顶部导航栏当中出现了关闭的按钮或者关闭的图标,那么当前的页面是H5页面,原生的不会出现(除非设计开发者特意设计),美团、大众点评的APP、微信APP当加载H5过多的时候,左上角会出现关闭两个字。
6、判断页面下拉刷新的时候(前提是要有下拉刷新的功能)
如果页面没有明显刷新现象的是原生的,如果有明显刷新现象(比如闪一下)的是H5页面(Ios和Android)。比如淘宝的众筹页面。
7、下拉页面的时候显示网址提供方的一定是H5页面。
![图片[7]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_6.png)
()
8、利用系统开发人员工具
找到手机的设置,开发者选项,显示布局边界,选择开启后再去查看APP整体布局边界,这样所有应用控件布局就会一目了然。
如果是native APP那么每个按钮、文字、图片都是红色的线显示这个控件的布局情况。如下图的微信:
![图片[8]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_7.png)
()
如果是web APP那么应该就是一个webview去加载网页,webview作为一个控件,只有一个边界框,即只有屏幕边才有红色线,如下图:
![图片[9]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_8.png)
()
混合APP 则是native 与 webview 混排的界面,如下图红色线框是各控件的绘制边界,中间那一大块布局丰富的界面没有显示出很多边界红线,就是网页实现的。如下图的京东:
![图片[10]-Native App-原生开发-JieYingAI捷鹰AI](https://www.jieyingai.com/wp-content/uploads/2025/02/1740327067884_9.png)
()







