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

现在 Android 能够在安装完软件之后删除软件的部分组件吗

  •  
  •   RIDESU · 2022-02-11 11:28:52 +08:00 · 5972 次点击
    这是一个创建于 812 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚看到 App Store 里 QQ 的最新安装完大小为 900 多 MB ,鉴于十年没用过安卓了,因此想问问现在安卓能不能像 macOS 一样,在安装完软件之后,手动删除软件的部分组件而不影响基础功能的使用,例如删除 QQ 的虚幻 4 引擎

    12 条回复    2022-02-12 16:07:19 +08:00
    gam2046
        1
    gam2046  
       2022-02-11 11:33:58 +08:00
    1 、软件本身未提供模块禁用能力的话,不能
    2 、Android QQ 不带 UE4
    ohwind
        2
    ohwind  
       2022-02-11 11:52:44 +08:00
    qq 的 ue4.so 是动态库,安卓认为是软件的一部分,所以是删不掉的。
    理论上安卓可以做到模块化,能够单独禁用某些功能。but....why? 伞兵疼讯可不会给你专门去做。
    RIDESU
        3
    RIDESU  
    OP
       2022-02-11 12:55:23 +08:00
    @gam2046 @ohwind 感谢回复,那是否去文件系统中删除相关文件,软件就无法正常启动了?
    cev2
        4
    cev2  
       2022-02-11 13:01:40 +08:00
    @gam2046 #1 Android QQ 当然自带 UE4 ,最后一个不自带 UE4 的 Android QQ 版本是 8.8.50 ,从 8.8.55 开始自带。Google Play 版的 QQ 是不自带的,因为它已经 1 年多没更新了。
    Muniesa
        5
    Muniesa  
       2022-02-11 13:34:00 +08:00 via Android
    能不能删得看情况,那些民间精简版的不就是删了部分功能做出来的嘛
    gam2046
        6
    gam2046  
       2022-02-11 14:39:00 +08:00
    @cev2 #4 当真如此嘛,因为我一直 Google Play 更新,可能消息滞后了。刚才看了一眼,果然最后更新是 2020 年。不过也是不影响使用。

    @RIDESU #3 设备未取得 root 的情况下,不行。因为你没有权限访问应用内部空间。
    abc8678
        7
    abc8678  
       2022-02-11 16:14:12 +08:00 via Android   ❤️ 1
    @gam2046 QQ 适配 XAPK ,就不能占用这么大了。肯定不更新了
    abc8678
        8
    abc8678  
       2022-02-11 16:15:34 +08:00 via Android
    @gam2046 在旧的已经 root 的华为手机折腾 APP 后,备份还原到鸿蒙,是不是相当于变相 root 修改应用了?
    lns103
        9
    lns103  
       2022-02-11 18:41:57 +08:00 via Android
    @gam2046 安卓版本的 QQ 64 位带 UE4 lib 库,32 位不带,但是都有 UE4 的基础资源
    jim9606
        10
    jim9606  
       2022-02-11 22:21:33 +08:00
    我没听说过哪家支持组件删除的,按需下载倒是可以做到,例如 Google Play 支持基于 App Bundles 的 Feature/Assets Delivery 。

    这玩意最严重的问题是 APP 要与应用市场耦合,如果你要上华为应用市场(好像是目前唯一支持 App Bundles 的国内渠道),开发者得针对不同市场改代码和打包。

    另外,这个按需下载的特性对用户也不一定是好事。想想在一个不稳定的网络环境下载一个上百 MB 的用户急需使用的组件,用户会骂谁?还不如一开始在 wifi 网络全安装上备用。

    在七八年前,流行的方法是将可选组件作为一个分离的不能运行的库 APK 安装,但我可以保证,绝大多数用户会觉得这种部署方式是垃圾,不如单一的超级 APP 省空间。

    还有一种方法是运行时静态下载可执行代码(腾讯 TBS 用了这种方案),也就群魔乱舞的国内 Android 市场允许这种危险而难以监管的行为。

    @gam2046 目前 Play 版本不支持小程序组件(例如 B 站分享),会显示一个加载中的灰框,你运气不错没遇到。
    RIDESU
        11
    RIDESU  
    OP
       2022-02-12 10:47:17 +08:00
    @jim9606 感谢解答。其实我想表达的并不是软件开发商准备的组建删除功能,而是用户手动删除软件安装后的部分文件,以 macOS 的 Word 为例,安装软件后可以自由地删除其中的语法纠正文件,这样语法纠正功能就失效了,但是不影响基础功能的使用,同时还可以删除用不到的语言包等等,这样一个 word 的体积就能减少接近 1 个 G 。不知道 Android 上 root 之后是否也能进行类似操作?
    jim9606
        12
    jim9606  
       2022-02-12 16:07:19 +08:00
    @RIDESU 不是 Mac 用户不了解机制。Android 的 APK 和 Windows 的 MSIX 都有 OS 提供的签名验证和完整性保护机制,不允许对包内文件做任何改动。也就是说,开发者和 OS 都假定所有包内资源是经过签名保护完整且永远可用的。
    实际上通常占体积的都是贴图等多媒体资产而不是可执行代码,这种选择在首次运行时下载算是可以接受的。不提供清理功能我觉得 PM 觉得需求少。通常用户不会特意想起要删掉不需要的功能。我在 Windows 上不是空间紧张也不会专门去删除功能组件,而且真遇上这种情况,删组件不如卸载不常用 APP 或者买硬盘那样立竿见影。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1494 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:34 · PVG 00:34 · LAX 09:34 · JFK 12:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.