如何有效减少 libcocos.so 库的大小?

游戏使用的是 3.8.0 版本,目前剔除项目未使用的模块后,.so 文件依然很大。


,还是 20多M, 除了剔除未使用的模块还有其他方式减少 .so 文件的大小吗?

你打包后看看多少,这不是实际打包后的大小

打包后是看安卓工程哪里的大小么?

输出的apk大小

apk 大小 16M 左右,目前是游戏不打单独的 apk ,是嵌入到其他安卓工程中,就需要下载引擎引入 .so 库,20 多M,有些大,看有其他办法精简一下大小么

so库打成压缩包再下载解压 能省一半

zip后再下载,下载后本地unzip

除了这种方式,有其他办法有效减少本身 so 库的大小么?

好的,我试试

首先,你可以不使用多个架构,普通的机器arm64-v8a 就够用了,没必要再放v7a了。如果你要支持pc模拟器,就给pc模拟器专门出x86的包。这样可以把你的包内的so总尺寸缩小一半。
然后,就只能缩减代码了。不知道你剔除模块是怎么剔除的,如果只是用宏的话,不一定精细。花点时间以类为粒度来剔除,可以减少一点。

zip so的方法,我以前在写热更so的时候用过,android的话,你要在java层写好下载(或者单独一个launcher.so写好下载),下载完了解压再加载,也可以的,不过要先判断好架构再下载对应的so。

好的,了解,我试试

CMAKE加这个试试

# CMakeLists.txt
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -flto")

好的,我试试

有效果吗?有多大效果

目前先试用了压缩测试,:

目前只上架 googleplay ,就保留了:“armeabi-v7a”, “arm64-v8a”,采用 AAB 方式,剔除模块就是:项目设置中功能裁剪方式。

加完构建后包体反而大了 0.1M

so 文件小了 1M 左右

博主,为什么我打的so体积要80M,而且只是选了v7a的架构,去除了项目中不用的模块,能帮忙分析下不,我用的2.4.12版本的

debug模式?
release模式没有那么大的