手机APP分类
- 原生应用(native application,简称native App)
- Web应用(web application,简称web App)
- 混合应用(hybrid application,简称hybrid App)
一、原生APP
原生App是专门为特定手机平台开发的应用程序,无法在其他平台运行。目前手机操作系统分为Android和IOS,若想应用程序同时支持这两个系统,则要各写一个原生App。
- 开发方面:原生App使用与手机操作系统相同的语言。Android使用Java语言,IOS使用Object-C语言;有各自的软壳开发包、开发工具及各自的控件
- 能力方法:可访问手机所有功能(如GPS、摄像头、个人信息、重力加速器、短信、蓝牙等)、可实现功能最齐全;
(补充说明:重力加速器是指利用重力,实现屏幕翻转、摇动换曲、来电静音等) - 获取方式:手动下载
- 版本控制:用户可以自由选择是否更新版本、App更新需要向各个app store提交审核
二、web APP
Web App 是使用网页做的应用程序,必须在浏览器中使用。 比如,你在浏览器中收发邮件,就是在使用 Web App。
Web App 主要使用网页技术,即 HTML、JavaScript 和 CSS。2008年,w3c 组织发布了 HTML 第5版,简称 HTML 5,该版本大大增强了网页的功能,使得网页可以当作应用程序使用,而不仅仅是展示文字和图片,这就是 Web App 的由来。
- 开发方面:运行在移动设备的浏览器上,只需一个开发项目;可用HTML5、CSS3等前端及服务端语言(PHP,Java等)来完成。
- 能力方法:只能使用有限的移动硬件设备功能(如GPS、摄像头等)
(补充说明:重力加速器是指利用重力,实现屏幕翻转、摇动换曲、来电静音等) - 获取方式:从移动设备上的浏览器访问
- 版本控制:随时更新无需审核、软件更新只需服务器,所以版本统一
三、原生APP与 web APP区别
从上面开发方面、能力方面、获取方式、版本控制对比看即可。还有:
- web app必须联网;原生app可以启用优秀的离线处理和存储能力等
- 性能上,原生APP比web app更高、更流畅、网速更快,尤其是图片多、用户吞吐量量大、交互频繁
- 原生APP可以获取系统级别的通知、提醒、动效;web App无法获取这些
四、混合App(hybrid App)
顾名思义就是原生 App 与 Web App 的结合。它的壳是原生 App,但是里面放的是网页。 可以理解成,混合 App 里面隐藏了一个浏览器,用户看到的实际上是这个隐藏浏览器渲染出来的网页。所以混合APP从上到下分为三层:HTML5网页层、网页引擎层(隔离的浏览器实例)、容器层(原生外壳)
- API Bridge
混合 App 里面的网页不同于普通网页,可以调用底层系统所有的 API。奥秘就在于外层容器提供了 API Bridge,充当底层 API 的中介,允许内部的网页调用底层。
所谓 API Bridge 就是容器在底层接口和网页之间,建立一座桥梁,让双方通信。容器一旦接到网页的请求,就根据请求去调用底层系统的 API,然后再返回结果给网页。API Bridge 往往以 JavaScript 语言提供,方便网页调用,这时又称为 JSbridge。 - 主要缺点:存在网页引擎中间层,性能欠佳;页面跨平台,无法使用只有特定平台提供的功能。
四、小程序
所谓小程序,可以看作是针对特定容器的 H5 开发。微信本身是一个容器,开放自己的接口(JSbridge),外部开发者使用规定的语法,编写页面,容器可以动态加载这些页面。
小程序特性
参考:http://www.ruanyifeng.com/blog/2019/12/hybrid-app-concepts.html 可以看看