代码由引擎和业务逻辑代码组成,引擎占体积多;引擎优化非常简单,将没有用到的模块去掉,模块占体积多的模块能不用尽量不要使用;
业务逻辑代码一般没法修改,但要注意 95%以上的同学都会忽略: setting.js,setting.js 的大小是由resources里面的文件数量决定,非代码加载的资源,一定放出resources模块。
以下为引擎模块及说明,供参考:
模块 | 模块说明 | 大小 |
---|---|---|
Core | 必须 | - |
Canvas | 必选,画布 | - |
Sprite | 必选,精灵 | - |
Label | 必选,文本控件 | - |
Audio cc.audioengine | 单例对象,主要用来播放音频。 | 11k |
AudioSource | 音频源组件,可进行音频剪辑 | 2k |
Action | 行为动画 | 55k |
Animation | 动画 | 26k |
Button | 按钮 | 11k |
Collider | 碰撞 | 8k |
Dynamic Atlas | 动态合图/合批 | 5k |
DragonBones | 龙骨动画 | 234k |
EditBox | 输入框 | 21k |
Graphics | 绘画接口 | 21k |
Geom Utils | 检测3D物体碰撞的API(射线) | 31k |
Intersection | 碰撞系统检测辅助类 | 2k |
Layout | 布局组件 | 12k |
LabelEffect | 文本特效( outline,shadow… ) | 2k |
Mask | 遮罩组件 | 8k |
Mesh | 网格 | 13k |
MotionStreak | 拖尾 | 4k |
NodePool | 对象池 | 0.7k |
Native Socket | 网络模块( XMLHttpRequest )加上这模块后 包体反倒降低了8byte | -8byte |
Physics | 物理模块 | 384.7k |
PageView | 页面视图容器 | 6.72k |
PageViewIndicator | 页面视图指示器组件 | 1.73k |
ProgressBar | 进度条 | 2.57k |
ParticleSystem | 粒子系统 | 59.6k |
RichText | 富文本 | 15.9k |
RendererTexture | 资源类型 可以用来截图 与 cc.Label有引用关系 推荐勾上 | 5k |
Slider | 滑条 | 3byte |
ScrollBar | 滚动条 | 3.85k |
ScrollView | 滚动容器 | 19.94k |
SpineSkeleton | Spine动画 | 183k |
StudioComponent CocosStudio | 编辑器项目文件支持 | 555byte |
Toggle CheckBox | 单选勾组件 | 4.9k |
TiledMap | 显示TMX格式的地图 | 49.3k |
VideoPlayer | 视频组件 | 12.99k |
Widget | UI布局组件( 这个比较常用 ) | 6.84k |
WebView | 内部页面交互视角 | 6.9k |
3D | 3D核心模块 | 35.144k |
3DPrimitive | 创建基础3D模型的顶点数据工具类 | 19k |
cannon.js | 开源的物理引擎,使用 JavaScript 开发并实现了比较全面的物理模拟功能 | 192k |
Builtin | 碰撞检测系统 的物理引擎。相对于其它的物理引擎,Builtin 没有物理模拟功能,但它的优势在于更小的包体以及较小的计算量 | 38k |
3DParticle | 3D粒子效果 | 193k |
SafeArea | 该组件会将所在节点的布局适配到 iPhone X 等异形屏手机的安全区域内,可适配 Android 和 iOS 设备,通常用于 UI 交互区域的顶层节点 | 906byte |
jpg格式的图片体积要小于png,导出美术图后可使用TinyPNG工具进行压缩; 图片分辨率960x540即可,大于该分辨率考虑减少分辨率;
尽可能的使用九宫格的图片来代替一张整图 ,可以大大降低的图片分辨率,可以节省资源;
图片清晰度: png格式的图片调整量化系数,使关键信息变少清晰度就会减少但是分辨率不会变,可以达到节省资源的目的;
图片像素格式: 彩色图片采用argb4444格式;
图集打包以后有空白的地方,进行整理、调整,减少空白;
帧动画越少越好, 或者使用骨骼动画替换帧动画,节省资源;
音效资源建议使用 mp3, ogg格式;
双声道音效,体积是单声道音效的2倍,可通过压缩软件或者视频编码工具将采样率调整为每秒44100 sample来降低采样率,减少音效大小;
背景音乐体积一般比较大,优先优化背景音乐大小;
特效文字尽量使用位图字体,几个字母 + 图片,体积远远小于一个完整的字库,而且性能还好;
尽可能的使用系统字体库 ;
使用fontmin工具压缩字体库, 将不用的文字从字库移除,减少体积;
位图字体速度快,但是内存大;矢量字体速度慢,但是内存小;