cocos2dx移植到安卓那篇文章写得不够详细,缺少编译so库文件,这篇文章能补全
安装软件准备:
从 http://developer.android.com/sdk/ 下载最新的 ADT Bundle for Windows
解压缩 adt-bundle-windows-x86_64-20121030.zip
最终的目录结构:
<PATH_TO>\android\android-ndk-r?
<PATH_TO>\android\android-sdk-windows
<PATH_TO>\android\eclipse
第二步:选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。
第四步:设置本地包暂存路径
第六步:选择下载站点地址
第七步:等待加载安装项载入,选择安装项
我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。
vs2012
cocos2d-x-2.2.1
adt-bundle-windows-x86_64-20121030
android-ndk-r9c-windows-x86_64
jdk-7u21-windows-x64
python-2.7.6.amd64
cygwin64 setup-x86_64
Step 1:安装visual studio 2012
用于开发cocos2dx程序,不用说了
下载方面各位自己去找罗
step 2:下载cocos2d-x源码
在用户变量里添加环境变量:
COCOS2DX_ROOT=<PATH_TO>\cocos2d-x-2.2.1
step3:安装python
在创建cocos2d程序时用到python指令,在cocos2d-x-2.2.1/tools/project-creator/下有个脚本:create_project.py
ps:不要下载最新python,python3.3版本是不兼容cocos2dx2.2.1创建项目的
在系统变量path后面添加内容:
C:\Python27;
Step 3:安装java sdk
SDK 是 Software Development Kit 的缩写,中文意思是“软件开发工具包”
JDK 是 Java Development Kit 的缩写,中文意思是“JAVA开发工具包”
所以,不难看出,SDK是一个总称,JDK是SDK中具体的一种软件开发包
JDK 是 Java Development Kit 的缩写,中文意思是“JAVA开发工具包”
所以,不难看出,SDK是一个总称,JDK是SDK中具体的一种软件开发包
Step 4: 安装最新的 Android ADT bundle 和 Android NDK
Android ADT bundle
ADT:Android Development Tools 安卓开发工具,ecplise 里的插件,安卓开发工具插件
Android ADT bundle里已经包含有了adt和与其兼容的ecplise软件
android sdk可以理解为是一个android开发的工具,实际上它是作为eclipse的一个插件,有了它,就可以在eclipse里开发android程序了
ADT:Android Development Tools 安卓开发工具,ecplise 里的插件,安卓开发工具插件
Android ADT bundle里已经包含有了adt和与其兼容的ecplise软件
android sdk可以理解为是一个android开发的工具,实际上它是作为eclipse的一个插件,有了它,就可以在eclipse里开发android程序了
android NDK
NDK是一系列工具的集合。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将.so和java应用一
起打包成apk。这些工具是对开发者的帮助巨大的。 NDK集成了交叉编译器,并提供了相应的mk文件隔离平台、CPU、API等
差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出.so。NDK可以自
动地将.so和Java应用一起打包,极大地减轻了开发人员的打包工作。NDK提供了一份稳定、功能有限的API头文件声明。Googl
e明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有
限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)
NDK是一系列工具的集合。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将.so和java应用一
起打包成apk。这些工具是对开发者的帮助巨大的。 NDK集成了交叉编译器,并提供了相应的mk文件隔离平台、CPU、API等
差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出.so。NDK可以自
动地将.so和Java应用一起打包,极大地减轻了开发人员的打包工作。NDK提供了一份稳定、功能有限的API头文件声明。Googl
e明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有
限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)
从 http://developer.android.com/sdk/ 下载最新的 ADT Bundle for Windows
解压缩 adt-bundle-windows-x86_64-20121030.zip
将目录 adt-bundle-windows-x86_64-20121030 改名为 android
将目录 android\sdk 改名为 android\android-sdk-windows
从 http://developer.android.com/tools/sdk/ndk/index.html 下载 Android NDK r9c
解压缩 android-ndk-r9c-windows-x86.zip
从 http://developer.android.com/tools/sdk/ndk/index.html 下载 Android NDK r9c
解压缩 android-ndk-r9c-windows-x86.zip
将目录 android-ndk-r9c 移动到 android\android-ndk-r9c
最终的目录结构:
<PATH_TO>\android\android-ndk-r?
<PATH_TO>\android\android-sdk-windows
<PATH_TO>\android\eclipse
<PATH_TO>\android\SDK Manager.exe
运行 android\android-sdk-windows\tools\android.bat, 选中 Android SDK 2.2(如果看不到 Android SDK 2.2,请设置代理), 然后安装需要的包
在用户变量里添加环境变量:
ANDROID_NDK_ROOT=<PATH_TO>\android-ndk-r9c
ANDROID_SDK_ROOT=<PATH_TO>\android-sdk-windows
ANDROID_HOME=%ANDROID_SDK_ROOT%
ANDROID_SDK_ROOT=<PATH_TO>\android-sdk-windows
ANDROID_HOME=%ANDROID_SDK_ROOT%
step5:安装cygwin
因为NDK编译代码时必要用到make和gcc,所以你必须先搭建一个linux景象, cygwin是一个在windows平台上运行的unix模仿景象,它对于进修unix/linux操纵景象,或者从unix到windows的应用法度移植,很是有效。经由过程它,你就可以在不安装linux的景象下应用NDK来编译C、C++代码了
安装详解:
你得先跑到http://www.cygwin.com下载setup.exe
第一步:运行setup程序,第一步图略,直接点击Next进入下一步。
第二步:选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。
第三步:选择安装目录,比如C:\Cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。
暂存目录默认是放到setup.exe的同级目录下,下载后名字类似ftp%3a%2f%2fcygwin.mirrors.pair.com%2f这样格式
第五步:设置网络连接方式
起初尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。http://mirrors.kernel.org,速度感触感染还挺快
我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。
第八步:等待下载完成
下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时,下载后压缩包约950M,下载完成后会自动安装到上文设置的安装目录
下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时,下载后压缩包约950M,下载完成后会自动安装到上文设置的安装目录
提醒:第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。
第九步:验证Cygwin环境
安装完成后,先运行Cygwin一次(Cygwin.bat),以便创建一些用户环境文件,分别输入:
make -v
和,
gcc -v
如果检测成功,会有make和gcc相关版本信息打印出来。
第九步:验证Cygwin环境
安装完成后,先运行Cygwin一次(Cygwin.bat),以便创建一些用户环境文件,分别输入:
make -v
和,
gcc -v
如果检测成功,会有make和gcc相关版本信息打印出来。
接下来是修改在安装cygwin目录下,如本人安装目录如下D:\cygwin64\home\yangxg
然后最好用UE编辑器点开.bash_profile,然后在最下面加上ndk路径以及cocos2dx路径
NDK_ROOT=/cygdrive/e/android/android-ndk-r9c
export NDK_ROOT
COCOS2DX_ROOT=/cygdrive/e/cocos2d-x-2.2.1
export COCOS2DX_ROOT
然后最好用UE编辑器点开.bash_profile,然后在最下面加上ndk路径以及cocos2dx路径
NDK_ROOT=/cygdrive/e/android/android-ndk-r9c
export NDK_ROOT
COCOS2DX_ROOT=/cygdrive/e/cocos2d-x-2.2.1
export COCOS2DX_ROOT
重启cygwin,输入:
cd $NDK_ROOT
可进入ndk对应目录就说明设置OK
cd $NDK_ROOT
可进入ndk对应目录就说明设置OK
在系统变量path后面添加内容:
D:\cygwin64\bin;
step6:编译cocos2dx:
进入cocos2dx目录,运行cocos2d-win32.vc2012.sln
编译HelloCpp
编译成功
=====================================================================
=====================================================================
接下来教大家创建一个cocos2dx项目
进入目录cocos2d-x-2.2.1/tools/project-creator/
--有个脚本:create_project.py
使用此脚本会帮助我们创建一个cocos2dx程序,执行此脚本需要安装python,上面的教程里我们安装python就是为了此处创建项目
eg: python create_project.py -project gametest04 -package cn.yangxg.gametest04 -language cpp
创建一个cocos2dx程序名为:gametest04,包名:cn.yangxg.gametest04,使用语言:cpp
此程序会创建在目录:cocos2d-x-2.2.1/projects/gametest04下
打开gametest04/proj.win32,运行gametest04.sln
编译,首次编译会需要些时间
=====================================================================
=====================================================================
学会创建cocos2dx项目后,接下来我们就要开始学习将项目打包成apk
1)将proj.win32里面的.h以及.cpp文件拷贝到Classes中(如果以后修改那些.cpp文件或.h文件需要继续从proj.win32拷贝到Classes中覆盖掉之前的文件再生成新的android工程)
2)进入proj.android,用UE编辑器修改build_native.sh文件
在第三行下面加入,如下
NDK_ROOT=/cygdrive/e/android/android-ndk-r9c
COCOS2DX_ROOT=/cygdrive/e/cocos2d-x-2.2.1
GAME_ROOT=$COCOS2DX_ROOT/projects/gametest04
GAME_ANDROID_ROOT=$GAME_ROOT/proj.android
RESOURCE_ROOT=$GAME_ROOT/Resources
在第三行下面加入,如下
NDK_ROOT=/cygdrive/e/android/android-ndk-r9c
COCOS2DX_ROOT=/cygdrive/e/cocos2d-x-2.2.1
GAME_ROOT=$COCOS2DX_ROOT/projects/gametest04
GAME_ANDROID_ROOT=$GAME_ROOT/proj.android
RESOURCE_ROOT=$GAME_ROOT/Resources
3)进去proj.android\jni下面修改Android.mk,
将所有.cpp的路径都添加进去即可,如本人增加了下面那些路径
将所有.cpp的路径都添加进去即可,如本人增加了下面那些路径
好了 修改完这些保证没错误之后
打开cygwin,然后进入目录gametest04/proj.android/
打开cygwin,然后进入目录gametest04/proj.android/
执行./build_native.sh
到最后./build_native.sh之后没错误的话(这个过程比较久大概十几二十分钟,有些可能要半个钟头),它就会生产android项目了(成功的判断是看他是否生产.so文件)
成功的话在路径cocos2d-x-2.2.1\projects\gametest04\proj.android\libs\armeabi下能看到libcocos2dcpp.so文件
成功的话在路径cocos2d-x-2.2.1\projects\gametest04\proj.android\libs\armeabi下能看到libcocos2dcpp.so文件
然后接下来就可以生成可以在eclipse上运行的android工程了,导入cocos2d-x-2.2.1\projects\gametest04\proj.android这个就可以在eclipse上看到该工程了
项目加载进来后会提示缺少cocos2dx包,我们去cocos2d-x-2.2.1/cocos2dx/pathform/android/java/scr/
把org文件拷到我们项目gametest04/proj.android/src/下
接着刷新下我们的项目,好了没问题了,可以编译
成功运行后会在bin/生成一个apk文件
如果需要把项目在真机上弄成竖屏,只需在AndroidManifest.xml中改一改, android:screenOrientation="landscape"(横屏),android:screenOrientation="portrait"(竖屏),它默认为横屏
好了,打包apk圆满完成
接下来就是学习开发cocos2dx的时候了
推荐几个软件:
cocostudio_Full_V1.2.0.0
TexturePacker
Visual Assist X
参考资料: