Почему динамическая библиотека cocos2d слишком тяжелая, как отключить некоторые неиспользуемые функции? - PullRequest
0 голосов
/ 15 сентября 2018

Я скомпилировал проект cocos2dx для android в создателе cocos, но после компиляции я обнаружил, что вес динамических библиотек слишком велик.
Для arm64-v8a размер libcocos2djs.so - 19 МБ.
Для armeabi-v7a размер libcocos2djs.so - 12 МБ.

Знаете почему?Например, в игровом каркасе libGDX (Core + Box2d) масса динамических библиотек для arm64-v8a - 0,6 МБ.Можно ли удалить неиспользуемые компоненты или уменьшить их размер другими методами?

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Вы можете уменьшить размер двоичного файла, уменьшив код в сборке исходного кода cocos2dx. Вы должны взглянуть на файл /cocos/base/ccConfig. h, есть много функций, которые вы можете отключить (если вы не используете его).

Пример:

  • CC_USE_PHYSICS: интегрированный физик в Node (реализуется с бурундуки), отключить это может увеличить скорость вашей игры
  • CC_USE_3D_PHYSICS: 3D физика, моя игра не требует 3D
  • CC_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 файл может уменьшить размер. Примечание: приведенный ниже конфиг только для моей игры, вы лучше понимаете, что делаете.

0 голосов
/ 24 сентября 2018

Если я правильно помню, при сборке в режиме выпуска неиспользуемые компоненты будут автоматически удалены.старые версии имели некоторые проблемы с автоматическим удалением некоторых компонентов.они могли быть адресованы в новых версиях.

Если вы хотите быть в безопасности, вы можете вручную отключить ненужные компоненты, например, из ccconfig.h

, если вы не используете 3d physiscs, найдите

#define CC_USE_3D_PHYSICS 1 в файле ccconfig.h и измените его на #define CC_USE_3D_PHYSICS 0

...