小程序与APP的区别
- 原生APP直接运行在操作系统的单独进程中,所有的原生组件可以直接调用 GPU 进行渲染;微信只能运行在微信的进程中,只能通过 WebView 进行渲染。
- 微信小程序不需要在设备上下载安装,可以通过小程序码等方式通过微信直接打开;App是专门针对某一类移动设备产生的,它们都是被直接安装到手机设备里,属于独立的应用,从推广成本来说,微信小程序的推广成本和公众号类似,要远远低于app的推广成本。
- 原生 App 调用的是系统资源,也就是说系统提供给开发的的 API 都可以使用;而小程序是基于微信的,小程序所有的功能都受限于微信,也就是说微信给开发者提供 API 才可以使用,不能绕过微信直接使用系统提供的 API。
- 原生 App 的开发涉及到 Android/iOS 多个平台、开发工具、开发语言、不同设备的适配等问题;而小程序只需要开发一个就可以在 Android/iOS 等不同平台不同设备上运行。
小程序与H5的区别
- 小程序是一种应用,运行的环境是微信(App);H5 是一种技术,依附的外壳是是浏览器。H5的是开放的,可以运行在任何符合H5标准的容器(浏览器等)内,微信小程序相对来说是封闭的,只能在微信里运行(目前是这样)。
- H5 的运行环境是浏览器,包括 WebView,而微信小程序的运行环境并非完整的浏览器,因为小程序的开发过程中只用到一部分H5 技术。
- 小程序并没有一个完整浏览器对象,因而缺少相关的DOM API和BOM的API,例如浏览器中常用的 window 对象和 document 对象,H5 可以随意使用。
- 微信小程序相对于 H5 能获得更多的系统权限,比如:网络通信状态、数据缓存能力等,这些系统级权限都可以和微信小程序无缝衔接。
- 微信小程序的开发成本更低一点。
- 运行流畅度也好于H5,微信的解析器最终渲染出来的是原生组件的效果,自然体验上将会更进一步。
小程序与公众号的区别
- 定位不同(公众号服务于营销与信息传递,小程序面向产品与服务。小程序主要旨在提供服务,相比公众号运行更流畅,能够提供更加复杂的产品与服务,公众号功能主要围绕信息传递与营销展开。
- 实现技术区别(公众号基于H5,小程序基于微信自身开发环境与开发语言)
- 体验上的差别(公众号操作延时较大,小程序体验接近原生App)
关于小程序的底层原理,我觉你需要大概了解一下!!
参考链接:浅谈小程序运行机制
这边大概汇总一下我学到的知识点(链接文章谈到的小程序的一些底层原理技术,有的看了也不明所以然…):
-
双线程模型:
渲染层和逻辑层分别由2个线程管理:视图层使用了
渲染,逻辑层采用WebView
线程运行js脚本。JsCore
-
运行机制:
小程序启动分为:
与热启动
冷启动
两种。
热启动:用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台状态的小程序切换到前台,这个过程就是热启动。
冷启动:用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。
小程序没有重启的概念
小程序进入后台,客户端会维持一段时间的运行状态,超过一定时间(目前5分钟)就会被微信主动销毁。
在短时间(5s)连续两次收到系统内存警告,会进行小程序的销毁。
-
性能优化:
合理使用
,减少setData
的使用次数和数据量。setData