V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tiny1994095
V2EX  ›  Android

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

  •  1
     
  •   tiny1994095 · 2022-01-07 13:35:44 +08:00 · 14800 次点击
    这是一个创建于 1062 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    https://youtu.be/nA09MkGDf-A

    28 条回复    2022-01-10 00:08:53 +08:00
    tiny1994095
        1
    tiny1994095  
    OP
       2022-01-07 13:43:33 +08:00
    这个视频是这个话题的后续~
    tiny1994095
        2
    tiny1994095  
    OP
       2022-01-07 13:45:39 +08:00
    视频的地址是这个~
    2i2Re2PLMaDnghL
        3
    2i2Re2PLMaDnghL  
       2022-01-07 15:12:13 +08:00
    冷知识:IE 也是 Windows 上不少程序的基础,所以就算微软想删也一直删不掉。
    貌似就算是 Win11 也是只把 IE 独立程序删了,IE 的核心组件还在(
    AoEiuV020CN
        4
    AoEiuV020CN  
       2022-01-07 16:08:25 +08:00
    安卓讨论浏览器感觉一般都是 webview 和预装浏览器分开讨论的,
    预装的浏览器没啥影响,我一般冻结或者卸载掉,
    webview 比较重要,但国产手机一般想更新都不容易,
    66beta
        5
    66beta  
       2022-01-07 16:47:59 +08:00
    国产机有些还用 TX 的内核,真的辣鸡
    ubbcou
        6
    ubbcou  
       2022-01-07 18:06:11 +08:00
    @2i2Re2PLMaDnghL 可不嘛。edge 还能直接一键切换 ie 模式呢
    tiny1994095
        7
    tiny1994095  
    OP
       2022-01-07 18:30:55 +08:00
    @2i2Re2PLMaDnghL 不止 IE ,从最近的新闻看,Windows 的安全问题太恐怖了。。。
    @AoEiuV020CN 我觉得他们都是浏览器的话题,所以就一起讲了。
    @66beta 确实如此,太垃圾了:(
    STtree
        8
    STtree  
       2022-01-07 18:35:47 +08:00 via Android
    上次 Android 端 chrome 出 bug ,直接导致我手机上常用 app 通通闪退。
    tiny1994095
        9
    tiny1994095  
    OP
       2022-01-07 19:00:14 +08:00
    @STtree 我也遇到了,当时只能卸载更新,不过谷歌很快就发了更新,毕竟影响重大。
    Kiriya
        10
    Kiriya  
       2022-01-07 19:04:30 +08:00
    上次魅族魔改 webview bug 很多页面和 APP 卡死
    tiny1994095
        11
    tiny1994095  
    OP
       2022-01-07 19:06:22 +08:00
    @Kiriya 这个倒是第一次听说,我没有用魅族手机,但是国内的魔改 webview 也确实是一个大问题。
    vbe
        12
    vbe  
       2022-01-07 19:09:56 +08:00
    能用就行。
    Kiriya
        13
    Kiriya  
       2022-01-07 19:12:52 +08:00
    @tiny1994095 #11 最坑的是魔改 webview 包名和 google webview 不同且不通用,安装 google webview 也没用,最后手工 adb 卸载了更新然后重装老版魔改 webview 才解决问题
    tiny1994095
        14
    tiny1994095  
    OP
       2022-01-07 20:49:07 +08:00 via Android
    @Kiriya 就是说根本没法升级 webview 版本吗?看来国产手机只能买可以解锁的…
    tiny1994
        15
    tiny1994  
       2022-01-07 20:51:21 +08:00
    @vbe #12 但是不升级就有漏洞…万一中招了就惨了…
    hanqian
        16
    hanqian  
       2022-01-07 21:39:51 +08:00 via iPhone
    华为包括现在的荣耀用的都是魔改的 huawei webview
    tiny1994095
        17
    tiny1994095  
    OP
       2022-01-07 22:42:28 +08:00 via Android   ❤️ 1
    @hanqian 华为也这样啊…那太垃圾了…话说用华为手机的朋友,有没有遇到莫名其妙被安装的流氓软件,这样的体验,最近给几个长辈都处理了类似的问题…
    cev2
        18
    cev2  
       2022-01-08 04:23:36 +08:00   ❤️ 5
    很多人在讨论国产手机 webview 更新的问题,分享一下我个人的使用经验:
    第一类最简单,通过谷歌认证的制造商合作伙伴 [列表在这里 https://developer.android.com/about/versions/12/devices] ,像小米(含 Redmi )、OPPO (含 realme 、1+)、vivo (含 iQOO )等这些厂商,除了最低端的百元机外基本上都自带谷歌框架,这类直接 Play 商店更新 webview 即可 [包名为 com.google.android.webview] ,手动下载更新也可,需要注意的是安卓 10+上的 Chrome 和 webview 共用一个名为 Trichrome Library 的库,需要先装后者才能装上前者(嫌麻烦还是 Play 更新,会自动安装依赖库),并且前者均为 split APK ,MIUI 用户需要关闭 MIUI 优化后才可安装。
    第二类稍麻烦,比如魅族等厂商,它们的 webview 包名为 [com.android.webview] 且都为自家签名,魅族虽然不提供解 BL 锁,但自带 root ,我们可以通过 root 后替换系统自带 webview 的 apk 文件为 Bromite webview 的 apk 文件,替换并重启后再手动安装一遍 Bromite webview 的 apk (很重要,不可省略),此时即修改完成。如果你不想手机处于 root 状态,魅族只需要用全量包平刷即可取消 root ,此时不影响你以后正常 OTA 和更新 Bromite webview (只要不对 Bromite webview 卸载更新)。
    第三类比如华为等,不可解 BL 锁、不可 root 、不是安卓…建议,还是不建议了。
    James369
        19
    James369  
       2022-01-08 08:54:26 +08:00
    @tiny1994095 安全问题有这么严重吗,似乎铺天盖地的到处都有漏洞,但是实际也没见到谁谁因为安全问题而受到什么损失。 就比如之前 log4j 漏洞这种核弹级的,也没见什么事故发生。
    LeeReamond
        20
    LeeReamond  
       2022-01-08 10:28:07 +08:00
    @tiny1994095 windows 安全问题恐怖吗?比如什么?
    tiny1994095
        21
    tiny1994095  
    OP
       2022-01-08 11:20:18 +08:00 via Android
    @James369 你可以搜索下新闻,log4j 漏洞大概 40%的企业网络都受到了攻击…
    tiny1994095
        22
    tiny1994095  
    OP
       2022-01-08 11:21:29 +08:00 via Android
    @LeeReamond 最近几年有很多的高危漏洞被披露,而且有一些是低级错误…
    lonewolfakela
        23
    lonewolfakela  
       2022-01-08 14:39:29 +08:00
    @tiny1994095 低级错误哪家都有,Windows 至少还给及时更新……很多手机系统可能压根就不更新的……
    LxnChan
        24
    LxnChan  
       2022-01-08 15:24:16 +08:00
    @cev2 MIUI 从 Play 安装 split APK 不需要关闭优化
    tiny1994095
        25
    tiny1994095  
    OP
       2022-01-08 17:15:07 +08:00
    @lonewolfakela 很多手机系统可能压根就不更新的…
    这个倒是真的,Windows 我也在用,其实按时更新就没什么~
    不过要说安全就是 Linux 了。
    jim9606
        26
    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
        27
    cev2  
       2022-01-09 01:37:41 +08:00   ❤️ 3
    @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
        28
    jim9606  
       2022-01-10 00:08:53 +08:00
    @cev2
    感谢详细解答了。
    看得出 Google 为了节省安装体积还是花了很多心思设计的。

    不过我感觉大部分 APP 厂商(不分国内外,包括部分 Google 产品)都只将心思放在 APK 体积(或者下载体积,考虑传输层压缩和二进制差分)优化,而忽视了安装体积。这些行为包括:只分发 armeabi 原生库,压缩原生库(安装时需要解压,占用额外空间,甚至用了 App Bundles 还这么干),将资源和可执行代码推迟到运行时下载(然后忘记清理旧版本)。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5868 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:22 · PVG 10:22 · LAX 18:22 · JFK 21:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.