Customize Development Environment for cocos2d-x
本渣不久前答完辩毕了业,很快就入职开始新的搬砖历程——在一个只有四名码农的团队里做cocos2d-x的前端开发——说起来我们还是公司第一个做大型手游和cocos2d-x手游的团队呢!搬砖的第一步自然是配置相关环境啦,这里就来记录一下自己近来在这方面的学习和折腾吧。
配置Mac OS X开发及iOS打包环境
安装XCode
安装命令行工具
- 安装Xcode Command Line Tools:
1 | |
- 安装OS X下的包管理器Homebrew(Mac OS X已自带
ruby):
1 | |
之后就可以用brew install安装python、git等package 。
配置Android打包环境
安装Java
在官网下载安装即可。
Android sdk
由于Google被墙了,要在Android官网下载需要翻墙,在以下国内站点下载也可以:
1 2 3 4 5 | |
sdk下载后,再安装platform-tools、extra-android-support、android-20和build-tools-20.0.0。
可以通过Android SDK Manager图形界面安装,也可以在sdk的tools目录下通过命令行安装:
1 2 3 4 | |
如果要用代理安装可以用:
1 2 3 4 | |
adb
在sdk工具中平时开发用得最多的是adb,这里把一些adb常用命令也记一下:
- 启动adb服务:
1 | |
- 关闭adb服务:
1 | |
- 列举Android设备:
1 | |
- 通过usb连接Android设备:
1 | |
- 安装apk包:
1 | |
- 卸载应用:
1 | |
可以通过以下命令获取app名字:
1 | |
- 清除应用数据:
1 | |
- 查看日志:
1 | |
查看cocos2d-x游戏的日志可以用pipe给grep做过滤:
1 | |
adb logcat本身的过滤选项可以查看官方文档。
- 清除日志缓存:
1 | |
- 进入设备终端:
1 | |
- 从Android设备拷贝文件到电脑:
1 | |
- 从电脑拷贝文件到Android设备:
1 | |
- 查看GPU渲染数据。在Android设备的“开发者选项”中选择“GPU呈现模式分析(开启在adb shell dumpsys gfxinfo中)”,就可以用以下命令输出某app最后120帧的渲染情况:
1 | |
例如查看Google Calendar的渲染情况:
1 | |
输出:
1 2 3 4 5 6 7 8 | |
Draw、Process、Execute三项加起来就是一帧渲染的总时间了,接下来可以用sdk的systrace工具来做进一步的性能分析,这就不是本文要讨论的话题了。
adb shell dumpsys还有其他很多选项(adb shell service list里列举的都能用),不过对于cocos2d-x开发来说并不常用:
- 查看CPU使用情况:
1 | |
当然,Android系统也是Linux,所以也可以用:
1 | |
- 查看内存使用情况:
1 | |
也可以用:
1 | |
还可以针对某个app查看内存占用:
1 | |
- 查看activity:
1 | |
查看window:
1 | |
- 查看电池使用情况:
1 | |
更详细的信息可以用以下命令:
1 | |
- 查看wifi使用情况:
1 | |
Android NDK
和SDK一样,可以翻墙到Android官网或者在国内镜像站点下载。
cocos2d-x对NDK r10的支持有问题,采用NDK r9d。
Update: 目前cocos2d-x已支持NDK r10。
ndk-stack
在NDK工具中平时开发用得最多的是ndk-stack,主要用来分析crash。
一种是实时分析crash:
1 | |
另一种是分析现有的crash dump:
1 | |
安装ant
1 | |
cocos2d-x游戏引擎
下载cocos2d-x代码,执行以下命令下载所有代码:
1 2 3 4 | |
再执行setup.py,这个脚本会在~/.bash_profile或~/.bash_login或~/.profile中设好COCOS_CONSOLE_ROOT、COCOS_X_ROOT、COCOS_TEMPLATES_ROOT、NDK_ROOT、ANDROID_SDK_ROOT、ANT_ROOT等环境变量。之后source一下被写入环境变量的文件,就可以用cocos命令了。
IDE?
本渣一开始用XCode,但XCode实在太慢太卡了,XVim也一点都不好用。作为vim粉,要毛线IDE,果断用vim做为cocos2d-x开发编辑器XD
由于平时主要是写C++,所以本渣主要用了以下的vim插件:
-
a.vim:快速在
.h/.hpp和.c/.cpp之间切换 -
c.vim:针对C/C++的代码片段(code snippet)、热键等综合工具
-
snipmate:代码片段自动补全
-
clang_complete:使用强大的
clang来做C/C++的代码自动补全 -
ag.vim:想必用过ag的都非常喜欢它完秒
ack和grep的速度,ag.vim就是在vim中用ag进行搜索(其实用:!ag也可以哈)。 -
YouCompleteMe:YCM是本渣非常喜欢的神器!不过要在cocos2d-x开发中更好使用YCM需要配置
.ycm_extra_conf.py文件,本渣写了一份放到项目目录下,对于cocos2d-x项目基本是够用的。
后来本渣在Stackoverflow上看到一个话题Cocos2d-x C++ development tool (no need to be a full IDE),题主希望开发工具能做到:
auto code complement, class function hint, code formatting and available to see cocos2d-x source code conveniently.
这么简单的需求,vim完全能胜任啊!而且还不需要用以上所有插件,所以本渣写了个酱紫的回答。
参考资料
Android性能-gfxinfo、systrace、traceview
How to check crash log using android ndk in cocos2d-x