转一篇旧文,原文请戳这里:
http://galoisplusplus.coding....


配置Mac OS X开发及iOS打包环境

安装XCode

安装命令行工具

  • 安装Xcode Command Line Tools:
xcode-select --install
  • 安装OS X下的包管理器Homebrew(Mac OS X已自带ruby):
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

之后就可以用brew install安装pythongit等package 。

配置Android打包环境

安装Java

官网下载安装即可。

Android sdk

由于Google被墙了,要在Android官网下载需要翻墙,在以下国内站点下载也可以:

# 中国科学院开源协会
http://mirrors.opencas.cn
 
# 腾讯Bugly镜像
http://android-mirror.bugly.qq.com:8080

sdk下载后,再安装platform-toolsextra-android-supportandroid-20build-tools-20.0.0
可以通过Android SDK Manager图形界面安装,也可以在sdktools目录下通过命令行安装:

./android update sdk --no-ui --all --filter platform-tools
./android update sdk --no-ui --all --filter extra-android-support
./android update sdk --no-ui --all --filter android-20
./android update sdk --no-ui --all --filter build-tools-20.0.0

如果要用代理安装可以用:

./android update sdk --no-ui --all --filter platform-tools --proxy-host android-mirror.bugly.qq.com --proxy-port 8080 -s
./android update sdk --no-ui --all --filter extra-android-support --proxy-host android-mirror.bugly.qq.com --proxy-port 8080 -s
./android update sdk --no-ui --all --filter android-20 --proxy-host android-mirror.bugly.qq.com --proxy-port 8080 -s
./android update sdk --no-ui --all --filter build-tools-20.0.0 --proxy-host android-mirror.bugly.qq.com --proxy-port 8080 -s

adb

在sdk工具中平时开发用得最多的是adb,这里把一些adb常用命令也记一下:

  • 启动adb服务:
adb start-server
  • 关闭adb服务:
adb kill-server
  • 列举Android设备:
adb devices
  • 通过usb连接Android设备:
adb usb
  • 安装apk包:
adb install -r <apk>
  • 卸载应用:
adb uninstall <app>

可以通过以下命令获取app名字:

adb shell pm list packages
  • 清除应用数据:
adb shell pm clear <app>
  • 查看日志:
adb logcat

查看cocos2d-x游戏的日志可以用pipe给grep做过滤:

adb logcat | grep cocos2d

adb logcat本身的过滤选项可以查看官方文档

  • 清除日志缓存:
adb logcat -c
  • 进入设备终端:
adb shell
  • 从Android设备拷贝文件到电脑:
adb pull <remote> <local>
  • 从电脑拷贝文件到Android设备:
adb push <local> <remote>
  • 查看GPU渲染数据。在Android设备的“开发者选项”中选择“GPU呈现模式分析(开启在adb shell dumpsys gfxinfo中)”,就可以用以下命令输出某app最后120帧的渲染情况:
adb shell dumpsys gfxinfo <app>

例如查看Google Calendar的渲染情况:

adb shell dumpsys gfxinfo com.google.android.calendar

输出:

Profile data in ms:

        com.google.android.calendar/com.android.calendar.AllInOneCalendarActivity/android.view.ViewRootImpl@423c4ad0
        Draw    Process Execute
        15.60   3.92    17.66
        54.51   10.14   23.59
        1.59    3.00    1.57
        13.04   13.78   1.54

Draw、Process、Execute三项加起来就是一帧渲染的总时间了,接下来可以用sdk的systrace工具来做进一步的性能分析,这就不是本文要讨论的话题了。

adb shell dumpsys还有其他很多选项(adb shell service list里列举的都能用),不过对于cocos2d-x开发来说并不常用:

  • 查看CPU使用情况:
adb shell dumpsys cpuinfo

当然,Android系统也是Linux,所以也可以用:

adb shell cat /proc/cpuinfo
  • 查看内存使用情况:
adb shell dumpsys meminfo

也可以用:

adb shell cat /proc/meminfo

还可以针对某个app查看内存占用:

adb shell dumpsys meminfo <app>
  • 查看activity:
adb shell dumpsys activity

查看window:

adb shell dumpsys window
  • 查看电池使用情况:
adb shell dumpsys battery

更详细的信息可以用以下命令:

adb shell dumpsys batterystats
  • 查看wifi使用情况:
adb shell dumpsys wifi

Android NDK

和SDK一样,可以翻墙到Android官网或者在国内镜像站点下载。
cocos2d-x对NDK r10的支持有问题,采用NDK r9d。

Update: 目前cocos2d-x已支持NDK r10。

ndk-stack

在NDK工具中平时开发用得最多的是ndk-stack,主要用来分析crash。

一种是实时分析crash:

adb logcat | ndk-stack -sym $PROJECT_PATH/obj/local/armeabi

另一种是分析现有的crash dump:

ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump <dump-file>

安装ant

brew install ant

cocos2d-x游戏引擎

下载cocos2d-x代码,执行以下命令下载所有代码:

git clone https://github.com/cocos2d/cocos2d-x.git
cd cocos2d-x
python download-deps.py
git submodule update --init

再执行setup.py,这个脚本会在~/.bash_profile~/.bash_login~/.profile中设好COCOS_CONSOLE_ROOTCOCOS_X_ROOTCOCOS_TEMPLATES_ROOTNDK_ROOTANDROID_SDK_ROOTANT_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的都非常喜欢它完秒ackgrep的速度,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

Android 性能分析案例

ndk-stack官方文档

How to check crash log using android ndk in cocos2d-x

Android NDK开发Crash错误定位

cocos2dx利用NDK崩溃日志查找BUG

android使用ndk-stack调试JNI部分的C/C++代码


galois
155 声望17 粉丝