对程序的同窗来讲,若是运营要包,就须要额外腾出时间去svn更新--->编译so--->eclipse生成apk,每每须要耗费许多时间,而且以上步骤仍是必须顺序执行,让人十分闹心。java
花了点时间研究了一下,发现编译so能够脱离cygwin而使用ndk,此外,apk的打包也是能够交给ant进行的。所以,经过一系列的批处理命令能够大大减轻程序的压力。(经过定时任务能够定时打包,利用晚上的时间能够提早编译出so,次日能够随时发包)android
批处理执行步骤以下:windows
1.更新资源文件夹resources和代码文件夹classes;api
2.删除android工程里面无关的文件夹,个人建议是所有删除,而后从服务器拿最新的;服务器
3.编译so;eclipse
4.android命令更新cocos2dx引擎下的cocos2dx\platform\android\java目录;svn
5.android命令从新更新项目android目录工具
6.从新从服务器拿下最新的so包(编译的时候会把全部的so包删除,拿;下的是计费的so);ui
7.从新构建build.xml(由于以前的build.xml引入了android下的build.xml);spa
8.ant命令生成apk;
对于通常的项目来讲,6,7是能够省略的,比较简单,可是由于这个项目引入了计费的sdk,尤为是引入了第三方的jar包,并且不是libs文件夹下的那种,就须要特殊的处理,在build.xml里面进行设置了。
对于ant.properties文件,须要提供你的keystore,书写格式以下:
key.store=MyGame
#keystore的密码
key.store.password=QQ123123
#alias名
key.alias=123123
#alias密码
key.alias.password=QQ123123
批处理完整命令以下,须要替换路径和设置好环境变量,工做环境是windows。
@echo off echo 准备开始 echo 设置路径 set PROJECT_PATH="E:\SVNwc\MyGames\proj.android" set COCOS2DX_PATH="E:\SVNwc\cocos2dx-2.2.6\cocos2dx\platform\android\java" set RESOURCES_PATH="E:\SVNwc\MyGames\Resources" set CLASSES_PATH="E:\SVNwc\MyGames\Classes" set SVN_PATH="D:\Program Files\TortoiseSVN\bin\TortoiseProc.exe " echo #################################################################################################################### echo 更新svn,务必保证SVN的win32文件夹无错 ping -n 3 127.0.0.1>nul echo #################################################################################################################### %SVN_PATH% /command:update /path:%CLASSES_PATH% /closeonend:1 %SVN_PATH% /command:update /path:%RESOURCES_PATH% /closeonend:1 %SVN_PATH% /command:update /path:%PROJECT_PATH% /closeonend:1 echo 更新svn完毕 echo #################################################################################################################### echo 拷贝最新的resource资源到android工程assets文件夹下 echo #################################################################################################################### ping -n 3 127.0.0.1>nul call xcopy %RESOURCES_PATH% %PROJECT_PATH%\assets /e /y echo 拷贝完毕 echo #################################################################################################################### echo ndk编译SO文件 echo #################################################################################################################### ping -n 3 127.0.0.1>nul pushd %PROJECT_PATH% call ndk-build echo 编译完毕 popd echo #################################################################################################################### echo 更新android资源 echo #################################################################################################################### ping -n 3 127.0.0.1>nul %SVN_PATH% /command:update /path:%PROJECT_PATH% /closeonend:1 echo 更新完毕 echo #################################################################################################################### echo 更新android工程 echo #################################################################################################################### ping -n 3 127.0.0.1>nul pushd %COCOS2DX_PATH% call android update project --name MyGames -t 1 -p %PROJECT_PATH% popd echo 更新完毕 echo #################################################################################################################### echo 删除bin文件夹 echo #################################################################################################################### ping -n 3 127.0.0.1>nul if exist %PROJECT_PATH%\bin ( del /q /f %PROJECT_PATH%\bin ) echo 删除完毕 echo #################################################################################################################### pushd %PROJECT_PATH% echo 生成debug 版本APK echo #################################################################################################################### ping -n 3 127.0.0.1>nul call ant release popd echo 生成Release完毕 echo 搞定!!! pause
########################################这是分割线##################################################################################
对于build.xml,我作了点小小的修改:
最后一行改为<import file="BaseBuild.xml" />
而后复制以前引入的build.xml到项目目录,找到这句:
<target name="-compile" depends="-pre-build, -build-setup, -code-gen, -pre-compile">
在引入的path中修改以下:
<path id="project.javac.classpath">
...
<pathelement location="runtime/CMBilling.jar"/>
</path>
其中CMBilling.jar就是引入的第三方jar包,ant默认只识别libs下面的jar包,若是不这么写是会找不到CMBilling相关的api方法的。
########################################这是分割线##################################################################################
对于定时任务,可使用schtasks或者at命令。
不过个人建议是可视化操做,这样不会那么容易出错哈
打开控制面板--->打开管理工具--->打开任务计划程序,而后本身去设置参数吧!