我在cocos creator中为android编译了cocos2dx项目,但是编译后发现动态库的重量太重了。
对于 arm64-v8a 大小的 libcocos2djs.so - 19 MB。
对于 armeabi-v7a 大小的 libcocos2djs.so - 12 MB。
你知道为什么吗?例如在 libGDX 游戏框架(Core + Box2d)中,arm64-v8a 的动态库的权重 - 0.6 MB。是否可以删除未使用的组件,或使用其他方法减小尺寸?
我在cocos creator中为android编译了cocos2dx项目,但是编译后发现动态库的重量太重了。
对于 arm64-v8a 大小的 libcocos2djs.so - 19 MB。
对于 armeabi-v7a 大小的 libcocos2djs.so - 12 MB。
你知道为什么吗?例如在 libGDX 游戏框架(Core + Box2d)中,arm64-v8a 的动态库的权重 - 0.6 MB。是否可以删除未使用的组件,或使用其他方法减小尺寸?
如果我没记错的话,在发布模式下构建时,未使用的组件将被自动删除。旧版本在自动删除某些组件方面存在一些问题。它们可能已在新版本中得到解决。
如果您想安全起见,可以从 ccconfig.h 手动禁用不需要的组件
例如,如果您不使用 3d 物理,请找到
#define CC_USE_3D_PHYSICS 1
在 ccconfig.h 中并将其更改为
#define CC_USE_3D_PHYSICS 0
您可以通过减少 cocos2dx 源代码构建中的代码来减少二进制文件的大小。你应该看看/cocos/base/ccConfig.
h 文件,有很多功能可以关闭(如果你不使用它)。
例子:
CC_USE_PHYSICS
:将物理集成到节点中(用花栗鼠实现),禁用它可以提高游戏速度CC_USE_3D_PHYSICS
: 3D 物理,我的游戏不需要 3dCC_ENABLE_BULLET_INTEGRATION
: 子弹,我不使用它CC_USE_TIFF
: 使用 .TIFF 图像格式,我只使用 png 图像,所以我禁用它CC_USE_WEBP
,CC_USE_WIC
也然后在你的/cocos/Android.mk
,注释掉一些包含行:
LOCAL_STATIC_LIBRARIES += cocos_tiff_static'
LOCAL_STATIC_LIBRARIES += cocos_webp_static
LOCAL_STATIC_LIBRARIES += bullet_static
LOCAL_STATIC_LIBRARIES += cocosbuilder_static
LOCAL_STATIC_LIBRARIES += cocos3d_static
LOCAL_STATIC_LIBRARIES += bullet_static
$(call import-module,tiff/prebuilt/android)
$(call import-module,webp/prebuilt/android)
$(call import-module,3d)
$(call import-module,editor-support/cocosbuilder)
这可以帮助您减少库的数量,然后您的 .so 文件可以减小大小。注意:以下配置仅适用于我的游戏,您更好地了解您在做什么。