手机上的浏览器,其实远比你想象的更加重要

2022-01-07 13:35:44 +08:00
 tiny1994095

你是如何看待手机上的浏览器呢?其实它,远远比你认为的更加重要,你不相信吗?可以说它几乎是我们所使用的大多数应用程序的基础,关于手机上浏览器的所有的内容,就在这个视频里头了,欢迎收看本期内容~

对节目有任何建议,欢迎指出~ 感谢您的支持~

https://youtu.be/nA09MkGDf-A

10639 次点击
所在节点    Android
28 条回复
tiny1994095
2022-01-08 11:20:18 +08:00
@James369 你可以搜索下新闻,log4j 漏洞大概 40%的企业网络都受到了攻击…
tiny1994095
2022-01-08 11:21:29 +08:00
@LeeReamond 最近几年有很多的高危漏洞被披露,而且有一些是低级错误…
lonewolfakela
2022-01-08 14:39:29 +08:00
@tiny1994095 低级错误哪家都有,Windows 至少还给及时更新……很多手机系统可能压根就不更新的……
LxnChan
2022-01-08 15:24:16 +08:00
@cev2 MIUI 从 Play 安装 split APK 不需要关闭优化
tiny1994095
2022-01-08 17:15:07 +08:00
@lonewolfakela 很多手机系统可能压根就不更新的…
这个倒是真的,Windows 我也在用,其实按时更新就没什么~
不过要说安全就是 Linux 了。
jim9606
2022-01-08 23:36:22 +08:00
@cev2
com.android 开头的包就是系统厂商自行维护的,不能由 Google 更新是设计要求。
就算 AOSP Webview 不能更新,也可以自行安装 Google Webview+Trichrome Library 吧,这玩意又不需要特许权限。在开发者选项可以改 Webview 实现,应该能满足需求吧?

不过我知道国内 APP 通常引用腾讯 TBS 或者阿里系那样自带 UC 内核,感觉都不用系统 Webview 的。

顺带吐槽一个我至今不明白 Google 为啥要将 TrichromeLibrary 和 Webview 拆开,前者没法在系统设置里看到和卸载,我听说有些系统因为部署流程有问题 TrichromeLibrary 更新会残留删不掉。
cev2
2022-01-09 01:37:41 +08:00
@jim9606 26# 你的这几个问题一个一个来说。
1.Q: [“就算 AOSP Webview 不能更新,也可以……?”]
A:不行,并不是自己安装了不同的 webview 之后在开发者选项里就一定可以选择,是否在开发者选项里可以选择是系统编译时写死了的,你可以通过
adb pull /system/framework/framework-res.apk
aapt d xmltree framework-res.apk res/xml/config_webview_packages.xml
进行查看,只有在输出中含 [packageName="com.google.android.webview"] 字样时,你安装包名为此的 webview 才会在开发者选项中可选(其它包名同理),否则安装后也不可选(之前用魅族时即是如此)。

2.Q: [“不过我知道国内 APP 通常引用腾讯 TBS 或……”]
A:目前用腾讯 x5 的比较多,微信团队自己维护的 xweb 。如果 APP 没有浏览文档、视频播放、小游戏等需求,也没啥动力非得自带个内核。

3.Q: [“Google 为啥要将 TrichromeLibrary 和 Webview 拆开……”]
A:这个问题比较长,谷歌做了多次改动,每次改动都是为了适应当时的环境变化。
安卓 5+开始,webview 变为一个单独的 apk ,目的是为了在不更新安卓系统的情况下实现对 webview 的更新。但同样问题解决的不“完美”,如果我在安卓上安装了一个 Chrome 浏览器,webview 和 Chrome 之间存在着大量的相同代码,意味着手机上存在多余的存储和性能开销。
安卓 7+开始,webview 和 Chrone 合二为一,解决了上面的问题,你喜欢用 Chrome ,只装一个 Chrome 就可以同时作为 webview ,你不喜欢用 Chrome 那就单独只装 webview 。但仍存在问题,理想状态下 32 位系统上的 APP 全是 32 位的,64 位系统上的 APP 全是 64 位的,但现实中 64 位的安卓系统需要同时兼容 64 位和 32 位的 APP ,64 位的 APP 调用 64 位的库,32 位的 APP 调用 32 位的库,除非等明年 armv9 的 soc 完全取消对 32 位的兼容。这样一个 Chrone 既要做浏览器,又要做 webview ,还要同时兼容 64 位和 32 位的 webview 调用,一个浏览器将变得巨大无比,对性能和维护都有很大的挑战。目前安卓 7 上如果安装一个 arm64&arm32 的 Chrome.apk ,将包含一个完整的 32 位浏览器(没错)+64&32 位的 webview ,单个 apk 体积就达到了近 200M 。
安卓 10+上,便又重新拆分为 Chrome(64 位)、webview(64&32)、Trichrome Library(64&32)三个部分,彼此之间没有重复部分。
目前 Trichrome Library 安装之后确实不会有显示,也确实不会在更新时覆盖旧版本,所以更新几个版本后手机中就会存在几个版本的 Trichrome Library 残留,目前未 root 可以通过 adb 对多余的库进行卸载 [例如 pm uninstall com.google.android.trichromelibrary_463807434] 最后数字为版本号。
jim9606
2022-01-10 00:08:53 +08:00
@cev2
感谢详细解答了。
看得出 Google 为了节省安装体积还是花了很多心思设计的。

不过我感觉大部分 APP 厂商(不分国内外,包括部分 Google 产品)都只将心思放在 APK 体积(或者下载体积,考虑传输层压缩和二进制差分)优化,而忽视了安装体积。这些行为包括:只分发 armeabi 原生库,压缩原生库(安装时需要解压,占用额外空间,甚至用了 App Bundles 还这么干),将资源和可执行代码推迟到运行时下载(然后忘记清理旧版本)。

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

https://www.v2ex.com/t/826807

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

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

© 2021 V2EX