1.3 安卓开发环境的搭建
上一节已经能够在电脑上运行Cocos2d-x的程序了,可以说经过上一节的学习,好奇的读者已经可以开始直接进行开发方面的学习了。Cocos2d-x一个很大的优势在于它可以跨平台开发,也就是说它可以轻松地将写好的程序移植到安卓、Windows Phone等平台上去。本节就以最常见的安卓平台为例,来说明Cocos2d-x是怎样实现跨平台开发的。
提示:如果是要进行iOS的开发,笔者还是建议直接在Cocos2d而不是Cocos2d-x上开发,虽然它们使用的几乎是同一套代码。但Cocos2d毕竟是专为苹果而生的版本,效果确实要比Cocos2d-x好上不少。而Cocos2d-x虽然号称是可以多平台运行,但实际上由于市场占有率的问题,主要还是用于安卓和Windows Phone两大平台。
1.3.1 JDK的安装
要在Windows平台上开发可以在安卓平台上运行的程序,自然需要有适合安卓开发使用的开发环境,而实现这一切最首要的还是要在电脑上装好Java。
(1)在Cocos引擎中已经提供了JDK(Java Development Kit)的下载(如图1-26所示,在“商店”中可以下载)。单击“立即下载”按钮进行下载。
图1-26 在商店中下载JDK
(2)下载完成之后可直接双击运行安装,双击后出现如图1-27所示的界面。
图1-27 安装JDK
(3)单击“下一步”按钮,在如图1-28所示的界面中可以选择JRE以及一些范例的安装路径,这里保持默认路径不变,直接单击“下一步”按钮。接下来可以一直等待JDK的安装,直到出现如图1-28所示的界面,单击“完成”按钮完成安装。
图1-28 选择安装路径
提示:在“商店”中,默认提示的是Java 6版本而不是比较新的Java 7甚至是Java 8,也许是出于稳定性的考虑吧。不过对于有其他需要的读者来说,自行安装较新版本的Java也许是一个更好的选择。本书以默认的Java 6来演示。
图1-29 完成安装
(4)虽然完成了安装,但并不代表此时的JDK已经可以使用了,还需要对环境变量进行一个简单的配置。回到桌面,右击“我的电脑”|“属性”(在Win7或者Win8中也可能会叫做“计算机”或者“这台电脑”等名称)。单击左侧的“高级系统设置”选项,如图1-30所示。
图1-30 单击“高级系统设置”
(5)在弹出的“系统属性”对话框中单击“高级”选项卡中的“环境变量”按钮,如图1-31所示。可以在其中对Java的环境变量进行配置,效果参考图1-32。
首先找到JDK的安装路径C:\Program Files\Java\jdk1.6.0_32。这就是环境变量Java_HOME的内容。新建一个环境变量Java_HOME,然后将C:\Program Files\Java\jdk1.6.0_32填入其中。
新建环境变量classpath并填入内容“.;%Java_HOME%\lib;%Java_HOME%\lib\tools.jar”,然后再找到path变量发现其中已有内容,比如:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\ OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\ x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL; C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\ Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT; C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\GtkSharp\2.12\bin
图1-31 环境变量
在其结尾处加入分号并加入内容“%Java_HOME%\bin;%Java_HOME%\jre\bin”,使最终的内容为:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program
Files (x86)\Intel\ OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\ x64;C:\Program
Files\Intel\Intel(R) Management Engine Components\DAL;C:\ Program Files\Intel\Intel(R) Management Engine
Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files (x86)\Intel\Intel(R) Management Engine Components\IPT; C:\Program Files\Microsoft SQL
Server\110\Tools\Binn\;C:\Program Files (x86)\ Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL
Server\ 120\Tools\Binn\;C:\Program Files (x86)\GtkSharp\2.12\bin; %Java_HOME%\bin;%Java_HOME%\jre\bin
然后单击“确定”按钮保存。
图1-32 设置环境变量
(6)最后,打开“命令提示符”,分别输入java和javac命令(如图1-33和图1-34)都可以执行的话,则证明环境变量已经配置完成。
图1-33 执行java命令
图1-34 执行javac命令
提示:实际上即使不对环境变量进行配置,只用默认路径安装java,命令也是可以执行的,但是为了保险起见最好还是进行配置。
1.3.2 ADT的使用
本小节应该是最轻松的了,因为谷歌已经将ADT与Eclipse进行了整合,可以直接去安卓开发的官网下载。由于某些原因读者访问谷歌并不是很方便,那也不用担心,笔者访问谷歌同样不方便。因此,为了让自己在重装系统之后安装ADT能够方便一些,笔者下载好了一套程序将其上传到了百度网盘中,地址为:http://pan.baidu.com/s/1i3FzjBR,读者可以直接去下载。
(1)下载完成后,将其解压放置于D盘根目录下,如果嫌它名字后面的一大串数字太长太麻烦,可以给它修改名字,比如adt,然后将其打开可以看到3个文件夹,如图1-35所示。
图1-35 解压后的adt
(2)直接打开eclipse目录运行eclipse.exe就可以了,效果如图1-36所示。
图1-36 Eclipse启动
(3)在Cocos2d-x中使用的语言是C++,而在安卓开发中使用的语言是Java,要想让C++能够在安卓系统下重编译运行,还需要使用到NDK,它可以在“商店”中下载,如图1-37所示。
图1-37 下载NDK
(4)将NDK下载完成之后,同样是将其解压并复制到D盘根目录下,为了方便可以直接给它改成一个比较简短的名字,比如NDK。然后修改NDK的环境变量只需要在path中加入当前的路径就可以了,比如:D:\NDK。
(5)在命令提示符中输入命令ndk-build,出现如图1-38所示的内容则证明NDK配置完成。
图1-38 NDK配置完成
(6)此时创建一个新的项目,然后在Visual Studio中确认程序是可以运行的。打开Eclipse,在菜单中选择File|Import命令(如图1-39)导入一个已存在的项目。
图1-39 导入已存在的项目菜单
(7)在弹出的Import对话框中选中如图1-40所示的选项,表示已经存在的项目,然后单击Next按钮。
图1-40 导入已存在的项目
(8)接下来单击图1-41所示的Browse按钮,找到对应的项目目录下的proj.android目录,并选中,然后单击Finish按钮完成项目的导入。
图1-41 单击Browse按钮找到对应的项目
(9)然后就可以直接在安卓系统上运行,不过这里并不建议在虚拟机中使用。首先是某些版本的虚拟机本身就不支持Cocos2d-x程序,其次是虚拟机的性能要带动Cocos2d-x程序也是挺让人操心的。那么下面就来介绍如何在真机上运行Cocos2d-x程序。
1.3.3 如何在真机上运行Cocos2d-x程序
因为大家都是初学者,这里给出了详细的步骤。
(1)要在真机上运行Cocos2d-x程序你需要有一部手机或者平板。
(2)利用USB将它连接到电脑上,并且确认能够被电脑识别。
(3)在Eclipse中选中当前项目并右击,然后在快捷菜单中选择Run As|Run Configurations命令,如图1-42所示。
图1-42 找到Run Configurations
(4)在弹出的对话框中找到如图1-43所示的选项,选择Active devices选项,再单击右下角的Run按钮运行即可。
图1-43 对项目运行方式进行设置
(5)稍等一会,就能在手机中看到新项目的运行效果了。
1.3.4 多个类的情况
这时程序已经被移植到安卓系统下了,但是这里要预先提醒大家一件事,那就是在本项目中并没有自定义任何额外的类,而在实际开发中肯定会使用到许多额外的类。这时再使用这样的方法Eclipse就会提示类似“该类没有被定义”之类的内容了。
此时就应该找到项目中有一个名为Android.mk的文件,如图1-44所示,打开它之后会发现其中有如下代码:
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
图1-44 Android.mk
不需要理解这几句话的具体含义,直接看一下在本项目中引用了哪些类,如图1-45所示。可以看到其中新加入的类有:HRocker、MapScene、HeroSprite,我们可以模仿其中的格式将其修改如下:
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HRocker.cpp \ ../../Classes/MapScene.cpp \ ../../Classes/HeroSprite.cpp \ ../../Classes/HelloWorldScene.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
提示:笔者是为了便于演示,随意找了一个项目来举例子,读者可以在源文件中寻找范例来测试。
图1-45 查看项目中都定义了哪些类
然后,保存文件就可以在手机上运行了。