要启用这个功能,开发者需要打开项目中的 proj.android/jni/Application.mk
文件,然后将不需要的模块值改为 0
。
MACRO | 体积 | 功能 |
---|---|---|
CC_USE_CURL | 1.3M | 使用 CURL 库提供 HTTP 网络功能。关闭后,assetsmanager等相关功能也会被去掉。quick 在 Android 下使用 Android 系统的 Java 接口提供 HTTP 网络功能,所以 CURL 关闭后仍然可以使用HttpRequest。 |
CC_USE_TIFF | 514KB | 使用 TIFF 图像格式。 |
CC_USE_WEBP | 208KB | 使用 WebP 图像格式。 |
CC_USE_JPEG | 368KB | 使用 JPEG 图像格式。 |
CC_USE_PHYSICS | 416KB | 使用物理引擎。 |
CC_USE_3D | 212KB | 使用 3D 模块。 |
CC_USE_SQLITE | 367KB | 使用 Lua 的 Sqlite 数据库扩展 lsqlite3。 |
CC_USE_CCSTUDIO | 1.2M | 使用 Cocos Studio 支持模块。 |
CC_USE_CCBUILDER | 208KB | 使用 Cocos Builder 支持模块。 |
CC_USE_SPINE | 92KB | 使用 Spine 支持模块。 |
CC_CODE_IDE_DEBUG_SUPPORT | 使用 cocos IDE 调试支持模块。在 release 版本里自动关闭,因此没有统计它在release版本下的体积。 |
只需要在 Applicaiton.mk
中将相应的宏设置为 0
,然后重新编译就可以得到更小的可执行文件。
在proj.android_no_anysdk工程中,以上可选模块均已经关闭。因此如果直接使用no_anysdk工程来编译,生成的apk包将不支持上述模块功能,如需要请自己修改相应的开关。
还有一些常用的基础模块可以去除,由于可能影响常用的功能,请根据自己的情况移除。打开文件 frameworks/runtime-src/Classes/lua_module_register.h ,分别注释掉以下语句:
register_cocosdenshion_module(L); // 简单音效模块 register_network_module(L); // 网络模块,如 socket 和 websocket register_ui_moudle(L); // 基础UI库,如编辑框等 register_extension_module(L); // 基本扩展,如 TableView 等 register_audioengine_module(L); // audio engine 模块这里,如果我们发现编译后的包还是出现找不到sqlite3之类的错误,那么我们可以运行android项目下的clean.bat,然后再重新编译即可。