●运行环境html
原生App直接运行在操做系统的单独进行中(安卓中能够开启多进程),而小程序运行环境是微信开发团队基于浏览器内核彻底重构的一个内置解析器,针对性作了优化,配合自已定义的开发语言标准,提高了小程序的性能 。是一种应用,并不是完整的浏览器,只用到一部分H5技术,没法调用window对象和document对象前端
H5是一种技术,依附的外壳是浏览器,,包括WebView,能够随意使用浏览器中经常使用的window对象和document对象html5
●开发成本react
原生app的开发涉及到Android/IOS多个平台、开发工具、开发语言、不一样设备的适配等问题,开发成本大;一款完善的双平台 App 平均的开发周期约3个月;ajax
小程序只须要开发一个就能够在 Android/IOS等不一样平台不一样设备上运行,平均开发周期约2周,仅为App的六分之一。数据库
原生APP须要在商店上架(安卓的需上架各类商店);小程序
小程序是微信团队提供了开发者工具并规范开发标准,不用考虑浏览器兼容性,小程序 一次开发就能够自动适配全部手机,开发成本相对低;浏览器
H5 的开发,涉及开发工具(vscode、Atom等)、前端框架(Angular、react等)、模块管理工具(Webpack 、Browserify 等)、任务管理工具(Grunt、Gulp等),还有 UI 库选择、接口调用工具(ajax、Fetch Api等)、浏览器兼容性等等。尽管可可定制化很是高,能够有本身的配置模板,但对于项目中各类外部库的版本迭代、版本升级,开发成本比小程序相对高些;H5页面因为没法被单独沉淀用户(没法直接关注),通常都是配合公众号或者APP(html5打包APP)的产品形态缓存
●系统权限前端框架
原生app调用的是系统资源,即系统提供给开发的API均可以使用;
小程序是基于微信的,全部功能都受限于微信,不能绕过微信直接使用系统提供的API
原生app能够给用户推送消息;
小程序不容许主动给用户发送消息,只能回复模版消息。
原生App有独立的数据库,能够作离线存储;
小程序只能存储到localStorage,没法作离线存储。
原生app须要下载,安装包比较大;
小程序无需下载,能够经过小程序码等方式经过微信直接打开。
H5不能获取系统权限(如网络通讯状态、数据缓存能力等),大多应用被定位在业务逻辑简单、功能单一的场景中。
●运行流畅度
原生App运行在操做系统中,全部的原生组件能够直接调用GPU进行渲染;
小程序运行在微信的进程中,只能经过WebView进行渲染。用HTML+CSS+JS开发,配合微信的解析器最张渲染出来的原生组件的效果,比H5体验上更好。
H5应用面对复杂的业务逻辑或丰富的页面交互时,须要不断的对项优化来提高用户体验。
●下载 与安装
App 从应用商店(如 App Store)里下载;
小程序 经过微信(扫描二维码、搜索)直接得到;
App 安装在手机内存中,就像本身买了辆车放在车库里随时开;
小程序 不须要安装,召之即来用完拜拜;
●占用空间
App 会一直存在手机中占用空间,太多的 App 可能会致使内存不足;
小程序 由于不须要安装,占用内存空间忽略不计;
●机会
App 市场已经饱和,几乎全部的领域都已经被覆盖;
小程序是一片蓝海,在新的使用场景下有不少瓜分蛋糕的好机会;
转载:https://www.jianshu.com/p/415d96962e6d