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

我比较疑惑,为何在 Github 上部分项目所提供的 APK 文件不直接提供签名后的 Universal APK 打包,而是提供若干分支?

  •  
  •   bclerdx · 1 天前 · 3135 次点击
    比如单独提供 arm64-8a 、armeabi-v7a 、x86 、x64 各一份 APK 包文件呢?
    22 条回复    2026-02-24 13:39:31 +08:00
    fenglala
        1
    fenglala  
       1 天前
    因为体积小
    YGHMXFAL
        2
    YGHMXFAL  
       1 天前 via Android
    ①体积小

    ②其实绝大多数设备都是 ARM-V8 吧?如果开发者不想支持另外仨个冷门平台,此时 universal APK 岂不是让下载者误解?
    bclerdx
        3
    bclerdx  
    OP
       1 天前
    @fenglala Universal APK 的体积也不算很大吧,也就百兆而已吧。如果网络允许或科学好的话,百兆文件下载也很快就下载完毕的。而且我感觉 Universal APK 包的好处也是很多的。
    liyafe1997
        4
    liyafe1997  
       1 天前   ❤️ 4
    @bclerdx 不止是下载,我想到有 100MB 浪费了我的手机存储空间就浑身难受。
    如果只提供 universal apk ,我想更多人会问为什么不提供分架构的。
    当然,像有的项目,两种都提供,各取所需。
    jim9606
        5
    jim9606  
       1 天前
    因为现在手机基本都是 arm64 了,分架构打包可以实现跟 app bundle 类似的省空间功能还不需要特殊安装器来安装,而且 AGP 自带 abiFilters 可以很轻松打出分架构包和多架构包出来。

    我更讨厌的是毫无必要的压缩原生库,安装时会额外占用一份空间来存储解压的库,为了“让 apk 变小”。

    因为很多人压根不了解上面的问题,所以有了“预留 apk3 倍安装空间”的经验,包括部分做应用市场的开发者把这做进逻辑里了,倒带着一票开发者用错误方法解决问题。
    chutsetien
        6
    chutsetien  
       1 天前
    @bclerdx 跟墙没有关系,大部分会去 GitHub 上拉 apk 安装的群体看到过百甚至过 200 MB 的 apk 会马上滑走。
    busier
        7
    busier  
       1 天前 via iPhone
    你猜 google play 为什么要搞拆分包格式
    artiga033
        8
    artiga033  
       1 天前 via Android
    @bclerdx #3 所以 universal 有什么好处,我是真想不到,顶多是跨设备传 apk 直接就能用吧,但是反正开源软件重新下一个对应架构的一样很方便
    OneLiteCore
        9
    OneLiteCore  
       1 天前   ❤️ 2
    包体大小和转化率是息息相关的,对用户来说更看重的是“体验”而不是实际的功能,打个不太洽淡的比方就是需要起飞的时候去下载视频,在封面吸引程度差不多的情况下一个 100MB 另一个 1GB 此时前者肯定更容易被点击,下载快不好看大不了删了无所谓。但是此时如果出现一个 5G 大小的 4K 整合包,即便你知道画质肯定更清晰内容更多,但是等下载完毕了人都要曼巴 out 了大概率不会去点。

    所以回到 apk 打包问题上,不同 ABI 分拆包体简直就是最无脑也是最有效的减少包体的方法。在编译的时候改下配置,也不需要额外的安装器,全自动脚本化操作,没理由不这么做啊。
    OneLiteCore
        10
    OneLiteCore  
       1 天前
    @artiga033 对于给没有电脑知识的小白朋友推广某些功能性应用的时候有点用途,比如你朋友需要梯子你给他帮忙,你知道他用 Android 设备但是你不知道对方设备架构以及是否会被安装到老古董平板上,给人帮忙图的是省事。
    civetcat
        11
    civetcat  
       1 天前
    对于包体积实际上还是挺有用的,有的时候对于某些设备上的下载,还是方便不少
    sheldor
        12
    sheldor  
       1 天前 via iPhone
    旧设备是 v7a 的,一般设备存储容量小,你的 app 如果不是微信这种的话超过一百兆的体积我是不会去下载的,事实上我家里的老手机由于内置证书过期,我浏览器都是装的老版本 Firefox ,60 兆的体积我都觉得大但是不装就没办法正常上网,所以你就看你的 app 能有多牛吧
    rb6221
        13
    rb6221  
       1 天前
    iOS 用户可能很难理解「包体越大越降低用户下载欲望」这种事的,毕竟 iOS 的资源都是一股脑全打包,而用户也不关注大小
    flynaj
        14
    flynaj  
       1 天前 via Android
    先考虑从 google play ,f-droid 下载,没有在去 github 下载,正常设备都是 arm64-8a ,把其它架构编译进去纯属浪费空间。
    docx
        15
    docx  
       1 天前 via iPhone
    GitHub 也有提供多个 arch 的仓库啊

    你在应用商店下载的 APP 也存在只有一个 arch 的情况啊

    并没有什么绝对的说法,只不过开发者把这个事情直接展示给你了,而应用商店面向的是普通用户,除非你主动去翻安装包才会注意到
    docx
        16
    docx  
       1 天前 via iPhone
    我把应用商店下载 apk 随机翻了十来个,都是主流应用,从 2MB 到 220MB 都有,几乎都只有 v8a 或者 v7a 。同时支持多个 arch 的少之又少。

    实际上你的疑惑并非这部分项目的“特殊行为”,而是一个广泛而普遍的现象,用不上的 libs 当然没必要放进来,浪费时间、流量、存储空间,没有实际意义。

    唯一的问题是,应用商店帮你选好了,你没感觉到。而 Github 上需要你去选择下载哪一个,才引起了你的注意。
    catazshadow
        17
    catazshadow  
       1 天前 via Android
    “百兆而已”

    记得当年微信安装包卓只有 5M 的时候吗🤣
    lancelock
        18
    lancelock  
       1 天前
    Universal 有什么优点啊?除了傻瓜一点
    bclerdx
        19
    bclerdx  
    OP
       1 天前 via Android
    @lancelock 全量包是其一。
    sodesga
        20
    sodesga  
       1 天前
    @rb6221 苹果之前也是多架构打包上传到市场,苹果再按架构分发的。只是现在不支持 arm7 而已。
    MisterQ
        21
    MisterQ  
       1 天前
    @bclerdx #19 ,so ?全量包算什么优点,90%+都是 arm64-8a ,好多应用市场上架时也建议区分 32 位和 64 位,不仅是下载快,占用手机空间也小。一个 app 多占用 50M ,10 个就是 500M ,这 500M 完全是没意义的
    wangtian2020
        22
    wangtian2020  
       23 小时 21 分钟前
    专业写代码的人有写代码的打包方式,github 上的 Releases 包就不是面向小白的,能多打个 Universal 就算是很有客气了
    最新的手机 SOC 已经有所有核心都是 64 位的处理器了,x86 ( 32 位)的包会兼容性运行降速
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3335 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:00 · PVG 13:00 · LAX 21:00 · JFK 00:00
    ♥ Do have faith in what you're doing.