1

我在cocos creator中为android编译了cocos2dx项目,但是编译后发现动态库的重量太重了。
对于 arm64-v8a 大小的 libcocos2djs.so - 19 MB。
对于 armeabi-v7a 大小的 libcocos2djs.so - 12 MB。

你知道为什么吗?例如在 libGDX 游戏框架(Core + Box2d)中,arm64-v8a 的动态库的权重 - 0.6 MB。是否可以删除未使用的组件,或使用其他方法减小尺寸?

4

2 回答 2

1

如果我没记错的话,在发布模式下构建时,未使用的组件将被自动删除。旧版本在自动删除某些组件方面存在一些问题。它们可能已在新版本中得到解决。

如果您想安全起见,可以从 ccconfig.h 手动禁用不需要的组件

例如,如果您不使用 3d 物理,请找到

#define CC_USE_3D_PHYSICS 1在 ccconfig.h 中并将其更改为 #define CC_USE_3D_PHYSICS 0

于 2018-09-24T19:03:37.700 回答
1

您可以通过减少 cocos2dx 源代码构建中的代码来减少二进制文件的大小。你应该看看/cocos/base/ccConfig.h 文件,有很多功能可以关闭(如果你不使用它)。

例子:

  • CC_USE_PHYSICS:将物理集成到节点中(用花栗鼠实现),禁用它可以提高游戏速度
  • CC_USE_3D_PHYSICS: 3D 物理,我的游戏不需要 3d
  • CC_ENABLE_BULLET_INTEGRATION: 子弹,我不使用它
  • CC_USE_TIFF: 使用 .TIFF 图像格式,我只使用 png 图像,所以我禁用它CC_USE_WEBPCC_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 文件可以减小大小。注意:以下配置仅适用于我的游戏,您更好地了解您在做什么。

于 2018-10-19T03:41:16.213 回答