有什么办法压缩 android ndk .so

237 天前
 jeesk
  1. 应用正常打包后 76m
  2. 使用动态加载.so, 应用缩减到 23m

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

5718 次点击
所在节点    Android
7 条回复
dullwit
237 天前
还是具体情况具体分析。自己的动态库可以开启编译压缩; cppFlags 高的话,可以拆分 c++_shared ;放弃 armbai-v7a 等等
ysc3839
237 天前
jeesk
236 天前
@ysc3839 压缩之后, 识别不了.
jeesk
236 天前
@ysc3839 试了一下效果还可以, 大约从 135m 压缩到了 85m
liaopen123
235 天前
大佬 动态加载 so 有什么方案么?我们公司也想做,但是没啥头绪。
jeesk
235 天前
@liaopen123 自己看看 android ndk 相关资料?
jim9606
235 天前
打分架构包,例如纯 arm64-v8a 包,这种大部分应用都做了。

还有,你先搞清楚你在乎的是 apk 大小还是传输大小。
google 推荐不要压缩 apk 内的 so ,因为系统可以直接从 apk 加载 so,否则需要额外先用一份空间存放解压的 so 。
google play 分发 apk 会使用 http 传输层压缩,所以实际传输大小并没有显著变化的。
动态下载 so 先不说合规和安全问题,你的 cdn 只要支持传输层压缩(不会还有不支持的吧?),最终传输大小应该是跟整包 apk 差不多的,除非动态加载的逻辑很大。
当然我知道没多少人知道这些。可能国内的应用商店都把这搞错了,开发者都知之甚少的何况用户了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1028227

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX