一、运行环境不同
 1.原生app直接运行在操作系统
 2.小程序运行环境是微信基于浏览器内核重构的一个内置解析器
 3.H5依附于浏览器外壳,包括WebView,可以使用浏览器中常用的window对象和document对象
二、开发成本
 1.原生app的开发涉及到Android/IOS多个平台、开发工具、开发语言、不同设备的适配等问题,成本较大
 2.小程序只需开发一个就可以在 Android/IOS等不同平台不同设备上运行;不用考虑浏览器兼容性,一次开发就可以自动适配所有机型,平均开发周期小,成本相对低;
 3.H5开发因为涉及到多种工具,UI库、浏览器兼容性等;可定制化非常高,但对项目中各种外部库的版本迭代升级,开发成本比小程序高;H5无法被直接关注,一般都是配合公众号或者APP
三、下载与安装
 1.App从应用商店中下载,安装在手机内存中
 2.小程序通过微信直接获得,不需要下载安装
四、占用空间
 1.App会一直存在手机中占用空间,可能会导致内存不足
 2.小程序不用按照占用空间可忽略
五、系统权限
 1.app调用的是系统资源,系统提供的api都可以使用;小程序基于微信,功能受限于微信,不能绕过微信直接使用系统提供的api
 2.app可以给用户推送消息;小程序不允许主动给用户发送消息,只能回复模板消息
 3.H5不能获取系统权限(如网络通信状态、数据缓存能力等)大多应用被定位在业务逻辑简单、功能单一的场景中。
六、运行流畅度
 1.app运行在操作系统中,所有的原生组件可以直接调用GPU进行渲染
 2.小程序运行在微信的进程中,只能通过webview进行渲染,有时体验比H5更好
 3.H5应用面对复杂的业务逻辑或丰富的页面交互时,更不断的提升用户体验