首页 / 科技 / 正文

扫完就走的小程序,到底住在你手机的哪个角落?

上周在科巷吃鸭血粉丝汤。桌上贴着一张二维码,边角翘起来了,油渍糊了一层。我扫了一下。

点单、付钱、出号。全程没装过任何App。

吃完出门我愣住——刚才那玩意儿叫什么名字来着?想不起来了。但它刚刚确实“存在”过。

扫码的前一秒,它还不在你的手机里

不少人以为小程序是“小一号的App”。不是。App是你下载、安装、占着好几个G、躺在桌面上那个图标。小程序更像一次性的——你把码扫了,它才从服务器上把代码抓下来,几十K到几M,跑起来。你退出,它基本就散了。

当然也没那么干脆。宿主App会留一份缓存,放着几个星期不动,系统才清掉。所以第二次打开同一个小程序,会明显快半拍。这就让你产生一种错觉,好像它一直都在。

严格讲,代码一直在腾讯阿里字节的服务器上。你手机里那点东西,是复印件。

餐馆餐桌上贴的二维码扫码点餐场景

两个线程,隔着一条河喊话

小程序跑起来的时候,结构挺怪的。它把自己劈成两半:一半负责算东西,一半负责画界面。算东西的那半跑在JavaScript引擎里,画界面的那半塞在一个网页渲染核里。

两条河。中间靠宿主App搭的桥传话。

麻烦就出在这儿。你在页面上滑一下列表,逻辑层说“数据变了”,这句话得先过桥,渲染层收到,才重新画一遍。一次跨桥,就是一次延迟。数据一多、更新一频繁,桥就堵了,滑起来发涩、掉帧。

所以懂行的人写小程序,很少无脑全量刷新。改哪块,只传哪块。

还有个死规矩:主包大小有上限。微信那边是2MB,超了就得拆成子包,用户点到哪儿下到哪儿。这条线卡死了很多东西——你没法在小程序里塞一个完整的3D游戏,塞不进去。

(也有例外,用分包加云加载能绕一点。绕得不多。)

真正值钱的不是“不用下载”,是“不用注册”

大家都说小程序的好处是“用完即走,不用安装”。这话说对了一半。

下载一个App,最烦的其实不是那几十兆流量,是后面那套注册流程——手机号、验证码、设密码、同意一长串协议、再问你开不开推送。烦到一半就退出了。

小程序把这整套跳过去了。它借宿主的身份。你的登录态是宿主给它的,点一下“允许”,昵称头像到位,直接进。

这才是那个“扫一下就用了”的魔法真正来自的地方。省的不是存储空间,是那三分钟的耐心。

微信小程序双线程架构逻辑层与渲染层通信示意图
微信小程序双线程架构逻辑层与渲染层通信示意图

三个最常见的误会

误会一:小程序就是网页。不太准确。它的界面确实用网页那套东西画出来,但能调摄像头、蓝牙、扫码、本地存储这些宿主开放的能力,纯网页做不到。反过来说,它的能力又比原生App少一大截。夹在中间的一层。

误会二:数据存在我手机上。大部分存在服务器。你把小程序从“最近使用”里删掉,或者清缓存,下次打开账号还在,内容还在。真正会丢的,是那些还没同步上去的草稿。

误会三:小程序更安全。不一定。平台审核比应用商店松,个人也能注册,上线快。快是好事,也是坏事的入口。有些披着“查询”外衣的东西,第一天帮你查快递,第二天就改行了。所以——别在小程序里填身份证号、银行卡号、短信验证码。这不是多疑,是基本礼貌。

它像快捷酒店,不是自己家

我一直觉得,App是自家房子。你想怎么装怎么装,冰箱塞满,网速拉满,断了网照样住。

小程序是快捷酒店。拎包入住,前台已经登记好了,床单干净,退房走人。但你没法把墙刷成喜欢的颜色,也没法在房间里养只猫。

所以判断标准简单得很:你一个月用几次?

一次两次——扫码点单、交电费、开发票、查快递、给共享单车开锁——小程序足够,而且快得离谱。天天用、重度用、还得离线用——导航、剪辑、修图、看剧、打游戏——老老实实下App,别跟自己过不去。

还有一类更讨厌的:你明明扫的是小程序,它弹一句“请下载App查看完整内容”。这种我一般直接退出。它不配。

真正的问题从来不是“用完即走”

真正的问题从来不是“用完即走”
真正的问题从来不是“用完即走”

用完即走听着潇洒。麻烦在你根本找不回它。

我微信里那个“最近使用的小程序”,往下滑,几十个。名字都眼熟,一个都想不起来是干嘛的。有的图标还是空白方块。这大概就是“用完即走”的代价——它太轻了,轻到没有存在感。

但换个角度想,这也挺合理。工具本来就该是这样。剪刀用完放回抽屉,你不会记得上一次拿它剪过什么。

要紧的是知道什么时候该拿起剪刀,什么时候该老老实实去买一台缝纫机。