[COCOS2DX]交叉編譯實踐+速度最佳化(vs2012修改win32代碼+修改makefile+編譯安卓項目包+部署安卓項目包到Eclipse+運行apk)

來源:互聯網
上載者:User

標籤:

通過前面的部署過程可以知道cocos2dx的開發過程如下:

1.VS2012完成修改

2.因為指定了CPP檔案位置,ndk可以通過jni方式完成C++檔案的編譯,運行以下命令完成proj.android的編譯:

cd C:\ComputerScience\workspace-cocos\HelloWorld\proj.android

python build_native.py

3.將編譯好的安卓項目匯入到Eclipse進行編譯和運行

但是上面這些步驟都是在官網工具包下面啟動並執行,交叉編譯一次耗時非常嚴重(把helloworld單個項目的win32平台開發、交叉編譯安卓項目包、Eclipse編譯安卓項目包、運行apk這幾個步驟),下面開始以官網工具包作為基礎探索最佳化速度的方案。

1.cocos new HelloWorld -p com.cocos2dx.org -l cpp -d C:\ComputerScience\workspace-cocos

2.查看build_naitive.py中存在以下指令碼:

command = ‘cocos compile -p android -s %s -m %s‘ % (app_android_root, build_mode) 

其中app_android_root指向C:\ComputerScience\workspace-cocos\HelloWorld

相關參數解釋詳見http://www.cocos2d-x.org/wiki/Cocos_compile:

修改該命令為:command = ‘cocos compile -p android -j 4 -s %s -m %s‘ % (app_android_root, build_mode),添加了-j4多核編譯以加快編譯速度 

嘗試編譯安卓項目包:

cd C:\ComputerScience\workspace-cocos\FirstDemo\proj.android

python build_native.py

整個編譯過程只需要7秒,快了很多了。

分析jni目錄的android.mk檔案:

可以發現該檔案指定了需要進行編譯的CPP檔案。

2.接下來在vs2012修改運行時候顯示的項目名,然後用

cd C:\ComputerScience\workspace-cocos\HelloWorld\proj.android

python build_native.py

編譯安卓項目包在手機上運行。

2.1vs2012修改名稱為“My HelloWorld”:

同時為了加快編譯速度取消增量連結:

運行結果:

編譯安卓項目包運行結果如下:

cd C:\ComputerScience\workspace-cocos\HelloWorld\proj.android

python build_native.py

在Eclipse編譯運行在安卓手機:

至此整個交叉編譯的過程就都理順了。

[COCOS2DX]交叉編譯實踐+速度最佳化(vs2012修改win32代碼+修改makefile+編譯安卓項目包+部署安卓項目包到Eclipse+運行apk)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.