为什么 Android、iOS 上没有 Electron 这样能一键把网站变成用起来接近 Native 体验的框架?我以前也是天天黑电子垃圾,相当于往电脑上装了十几个 Chrome 、ffmpeg 。但是 Electron 这几年进步确实猛

212 天前
 drymonfidelia
Electron 这几年进步确实猛,前段时间发现 Electron 内存占用已经比我用 Avalonia 写的还小了,更是比 Flutter 流畅几十倍,而且相比这些多端 UI 框架前端的东西感觉成熟很多,资料非常好找。尤其是我需要加一些 UI 特效的时候,前端用 CSS 可以非常容易实现甚至有一堆开源模板可以直接套,还有一堆 lottie 之类的现成轮子,用这些多端 UI 框架就非常难实现。
4421 次点击
所在节点    程序员
34 条回复
w568w
212 天前
几句话看得我一愣一愣的…

> Electron 内存占用已经比我用 Avalonia 写的还小了
Electron 内存占用小于 100 MB 了?

> 比 Flutter 流畅几十倍
??这哪来的数据?什么平台上测试的? Flutter 在 Windows 上可以稳 60fps ,Electron 能跑到几千 fps ?
minami
212 天前
Ionic 还活着,另外,牢 Cordova ,想你了
drymonfidelia
212 天前
@w568w Electron 估计是 Chromium 牛逼的原因,在复杂 UI 下内存占用比 Avalonia 小很多,Avalonia 组件一多就要 500MB 以上内存,Electron 只有 200~300MB
比 Flutter 流畅几十倍:我以前测试过一个页面里面放 2000 个 100*100 图标,拖动连 2fps 都稳不住,Electron 可以稳定 60fps 不掉帧
drymonfidelia
212 天前
@w568w 例如 Bitwarden 的客户端,已经算没有做特别优化的,主页面总内存占用在 240MB 左右,我用 Avalonia 写了一个同复杂度的 Demo ,用了 460MB
drymonfidelia
212 天前
@drymonfidelia 240MB 还是在后台挂了一个月的结果,我重启了一下 Bitwarden 到主页面 4 个进程总内存占用才 145MB ,虽然这个客户端用户体验不怎么经常卡死,一眼套壳网页的感觉

很 Native 的案例也很多 Spotify VSCode 之类的
debuggerx
212 天前
@drymonfidelia 目测经典的长列表渲染问题,flutter 没用列表复用写法。只要写对了 60fps 不成问题,内存占用能少一半。
w568w
212 天前
@drymonfidelia #2

> 我以前测试过一个页面里面放 2000 个 100*100 图标,拖动连 2fps 都稳不住

你写错了,问题如楼上所述。Flutter 列表 handle 上万项都不是问题。
dreamk
212 天前
@drymonfidelia 和 flutter 的实现有关
https://superlistapp.github.io/super_sliver_list/#/
10*10w ,一共一百万条数据的长列表,流畅、自渲染、跨平台且保证一致性
drymonfidelia
212 天前
@debuggerx
@w568w 我觉得不是列表的问题,可能是 Flutter 图片渲染性能比较差,当时测完代码就删了
livin2
212 天前
在移动平台上搞你说的这些测试,有没有可能硬件/系统调度影响更...?😂
不说性能,Android 自己的碎片化导致的 webview 版本差异... 国内厂可没法学 play 每台都 webview 自动更新啊😂
假设 web 轮子用了些很"现代浏览器"的 JS 特性,而项目 build target 不得不博爱,最终一大托 polyfill,那么这个内存占用... 😂
那更别说 ios 的 webview 都是 webkit/jscore ,这也吃不上 V8 啊😂

electron 体验,先等英国 CMA 能复刻欧盟操作硬干 webkit 再说吧😂
w568w
212 天前
@drymonfidelia 楼上发的项目你看看吧。数据摆在那里,我自己的项目也用了这个库。

另外说 Chromium 比 Flutter 快,从技术上也是没道理的。因为两者都是用的 Google 的 Skia 2D 渲染引擎( Android 原生也是)。都是一个师傅,破不了招啊。
jeesk
212 天前
谁来适配 webview ?

工作量半年起步(我帮公司适配过,现在都不敢升级),你干不干?

ionic 官方都不做的玩意。

拼多多套壳可比你淘宝天猫美团的 flutter 快 多了,还天天发技术报告。
okakuyang
212 天前
不是有几个框架都是干这个的
Tabjy
212 天前
> 一键把网站变成用起来接近 Native 体验

PWA ,请。PWA 完美符合这句话的要求,问题是现在的问题是软件厂商宁愿用 web 技术套壳做 native app 也不愿意正儿八经做 web first 然后用 PWA ,至于原因就是老生常谈的互联网越来越封闭的趋势了。

> 为什么 Android 、iOS 上没有

PWA 在 Android 上体验挺好的,iOS 上有 PWA 但是被恶意做得极其残废,不过欧盟好像在立法整顿这个事情。
jchnxu
212 天前
@minami 这些名词感觉是起码 10 年前流行的了
chloerei
212 天前
musi
212 天前
Electron 得益于 chromium 能在桌面端跨平台,chromium 能在安卓上跑但是 ios 上只能跑 safari 啊,所以就只能用系统内置的 webview ,按照这个思路 taurl 这么做了,但是体验就。。。
LinYa
212 天前
@chloerei 第一次见这个,感觉好像更偏向精通 原生端的开发者?
jqtmviyu
212 天前
每次听到吹 Flutter 的我就想起经常发技术报告的闲鱼团队.
套壳套得流畅的还得是拼多多团队. 那么小的安装包, 塞进一堆转盘 广告 喂鸡 农场 打牌. 关键还是一点都不卡, 甚至弹窗弹得太快了.
DingJZ
212 天前
@minami #2 牢 phonegap

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1114744

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX