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

有什么办法压缩 android ndk .so

  •  
  •   jeesk · 271 天前 · 6331 次点击
    这是一个创建于 271 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 应用正常打包后 76m
    2. 使用动态加载.so, 应用缩减到 23m

    问题来了, 这里提取的.so 文件, 提取出来快 135m 了. 算上流量不如直接分发.

    7 条回复    2024-04-01 11:54:13 +08:00
    dullwit
        1
    dullwit  
       271 天前 via iPhone
    还是具体情况具体分析。自己的动态库可以开启编译压缩; cppFlags 高的话,可以拆分 c++_shared ;放弃 armbai-v7a 等等
    ysc3839
        2
    ysc3839  
       270 天前 via Android
    jeesk
        3
    jeesk  
    OP
       270 天前
    @ysc3839 压缩之后, 识别不了.
    jeesk
        4
    jeesk  
    OP
       270 天前
    @ysc3839 试了一下效果还可以, 大约从 135m 压缩到了 85m
    liaopen123
        5
    liaopen123  
       269 天前
    大佬 动态加载 so 有什么方案么?我们公司也想做,但是没啥头绪。
    jeesk
        6
    jeesk  
    OP
       269 天前
    @liaopen123 自己看看 android ndk 相关资料?
    jim9606
        7
    jim9606  
       268 天前 via Android
    打分架构包,例如纯 arm64-v8a 包,这种大部分应用都做了。

    还有,你先搞清楚你在乎的是 apk 大小还是传输大小。
    google 推荐不要压缩 apk 内的 so ,因为系统可以直接从 apk 加载 so,否则需要额外先用一份空间存放解压的 so 。
    google play 分发 apk 会使用 http 传输层压缩,所以实际传输大小并没有显著变化的。
    动态下载 so 先不说合规和安全问题,你的 cdn 只要支持传输层压缩(不会还有不支持的吧?),最终传输大小应该是跟整包 apk 差不多的,除非动态加载的逻辑很大。
    当然我知道没多少人知道这些。可能国内的应用商店都把这搞错了,开发者都知之甚少的何况用户了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3402 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:42 · PVG 08:42 · LAX 16:42 · JFK 19:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.