一週總結-胡言亂語

這一週都做了什麼?

主要是重構,但是重構的結構早就寫好了,大部分的時候都是在無聊的分離UI和邏輯。

學到的新東西有哪些?

因爲有過高的計算量和數據操作,因此開始處理多線程,開始寫線程中通訊。

因爲要發佈版本,開始寫shell和鼓搗ant.

說一下線程的一些思路。說來慚愧,大學的時候明明學過操作系統,現在居然連信號量這種最基礎的東西都忘記了。多線程其實並不複雜,唯一麻煩點得就是線程間的通訊。現在處理的思路爲:假設有兩道線程,主線程和邏輯線程。爲主線程和邏輯線程各自分配一段緩存區。然後主線程和邏輯線程每幀都檢測一下自己的緩存區,如果主線程緩存區有數據,則發送出去,如果邏輯線程緩存區有數據,則執行相應的操作。至於如何每一幀操作,主線程有schedule,邏輯線程需要自己寫。這裏注意一下cocos2d裏面幾乎所有東西都是非線程安全的。

緩衝區一定要用自己分配的內存區,不要用類似的list+struct之類的數據結構,好處是可以統一處理各種事件。格式可以是int32_t的長度,int32_t的消息類型,後面是消息數據,這樣子取和存都可以統一處理了。

說一下ant吧,前面有寫過一篇小白的ant博客。但是說的是如何打debug版本。如果要打release,則運行ant release。不過生成的是未簽名的。如果想打完之後是簽名的需要在工程目錄的build.xml裏面添加類似代碼(注意是在<import file="${sdk.dir}/tools/ant/build.xml" />之前)

<property name="key.store" value=""/>
    <property name="key.store.password" value=""/>

    <property name="key.alias" value=""/>
    <property name="key.alias.password" value=""/>

    <property name="out.packaged.file" value=""/>
    <property name="out.unaligned.file" value=""/>

具體原因是爲什麼?可以查看一下ant下面的build.xml。

最後不貼點代碼貌似說不過去,就把寫的shell腳本貼上來。還是不錯的東西,原先出版本要改腳本,壓縮腳本,拷貝資源,打包整個下來要花十幾分鍾,現在有了這個一下子打了30個不同的包,總共用了不到十分鐘。腳本果然是我們的好朋友。

names=(139MM UC Taobao shiziMao dangle xiaomi mobileHome androidMarket NearMe busStore anzhiMarket meizu androidStars mumayi leMarket handsStore soCool huaweiHui feifan jifeng youyi neng yingyonghui xiazaiduo kupai Nduo lenovo muzhiwan)
export LC_COLLATE='C'
export LC_CTYPE='C'

for((i=17;i<=44;i++));do

echo "changeContent"
distance=1
((preI=$i-$distance))
oldString="APPROACH = \"${preI}\""
newString="APPROACH = \"${i}\""
sed -i "" "s/${oldString}/${newString}/" ../scripts/app/MyApp.lua

echo "compress"
sh compile_script.sh

echo "compile"
ant release -Dsdk.dir=/Users/user/Documents/quick-cocos2d-x/android/android-sdk-macosx

echo "changepackagename"
file=17
((index=$i-$file))
mv bin/Thpbook-release.apk "bin/thm-${names[${index}]}.apk" 



發佈了27 篇原創文章 · 獲贊 0 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章