APP-H5- 小程序区别 (转载)

Wesley13
• 阅读 840

APP、H5 、小程序区别

●运行环境

原生App直接运行在操作系统的单独进行中(安卓中可以开启多进程),而小程序运行环境是微信开发团队基于浏览器内核完全重构的一个内置解析器,针对性做了优化,配合自已定义的开发语言标准,提升了小程序的性能 。是一种应用,并非完整的浏览器,只用到一部分H5技术,无法调用window对象和document对象

H5是一种技术,依附的外壳是浏览器,,包括WebView,可以随意使用浏览器中常用的window对象和document对象

●开发成本

原生app的开发涉及到Android/IOS多个平台、开发工具、开发语言、不同设备的适配等问题,开发成本大;一款完善的双平台 App 平均的开发周期约3个月;

小程序只需要开发一个就可以在 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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
梦
3年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Easter79 Easter79
3年前
Taro小程序自定义顶部导航栏
微信自带的顶部导航栏是无法支持自定义icon和增加元素的,在开发小程序的时候自带的根本满足不了需求,分享一个封装好的组件,支持自定义icon、扩展dom,适配安卓、ios、h5,全面屏。我用的是京东的Taro多端编译框架写的小程序,原生的也可以适用,用到的微信/taro的api做调整就行,实现效果如下。!在这里插入图片描述(https://i
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这