對程序的同窗來講,若是運營要包,就須要額外騰出時間去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命令。
不過個人建議是可視化操做,這樣不會那麼容易出錯哈
打開控制面板--->打開管理工具--->打開任務計劃程序,而後本身去設置參數吧!