V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
jeesk
V2EX  ›  Android

有什么办法压缩 android ndk .so

  •  
  •   jeesk · Mar 29, 2024 · 9977 views
    This topic created in 760 days ago, the information mentioned may be changed or developed.
    1. 应用正常打包后 76m
    2. 使用动态加载.so, 应用缩减到 23m

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

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

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