標籤:android style http io color os ar 使用 java
我們的思路是每天下班後團隊各成員在指定的時間(例如下午18:30)之前把各自的代碼上傳到SVN,然後伺服器在指定的時間(例如下午18:30)更新代碼、執行ant 打包命令、最後將apk包存放在指定目錄(或者上傳指定ftp目錄)、其他部門或者同事可以訪問指定的地址來下載最新的APK包。就是在ubuntu系統中建立一個定時任務,這個任務每天會在指定時間執行事先編寫好的編譯指令碼。這個定時任務在ubuntu中可以使用crontab來實現。(還不瞭解crontab的同學自行腦補啦)
一、環境準備
1、在ubuntu 12.04搭建編譯環境。
關於Linux下ant編譯Android的步驟可以參考 《建立apk定時自動打包系統第一篇——Ant多渠道打包並指定打包目錄和打包日期》和《建立apk定時自動打包系統第二篇——自動上傳檔案》 這個文章。這個文章雖然是在windows上操作的,但是步驟都是相似的。相信作為聰明的程式猿這點是可以舉一反三的。
2、搭建好apk的編譯環境之後我們要安裝SVN用戶端。unbuntu安裝SVN非常簡單。執行下列命令
sudo apt-get install subversion
等待完成之後,執行下面命令
svn --version
如果出現了svn版本以及相關協助等資訊說明svn已經安裝好了。
二、安裝apache服務
由於我的ubuntu伺服器已經綁定了公司內網的IP(192.168.0.115),只要我將apk包存放在指定目錄下(如apk),那麼其他同事就是可以在瀏覽器中使用192.168.0.115/apk下查看或下載已經打好包的apk了。
1、安裝apache服務。
ubuntu中安裝apache服務也是很簡單的。
sudo apt-get install apache2
?安裝好之後,自動開啟了apache服務,其對外訪問的目錄預設是在/var/www/目錄下,所以在瀏覽器中輸入localhost,並出現It work!字樣,說明apache服務安裝成功
1、修改ant.properties
在這個檔案中我們指定一個apk儲存目錄為apache服務下的一個目錄
key.store=./test.keystorekey.alias=test.keystorekey.store.password=testkey.alias.password=testapk.dir=/var/www/apkapp.name=AntDemo#channel numbersmarket_channels=default_channel
這樣,ant打好包之後只要是公司內網的同事就可以訪問192.168.0.115/apk來下載最新的apk包了。
二、編寫apk編譯執行指令碼
在《建立apk定時自動打包系統第一篇——Ant多渠道打包並指定打包目錄和打包日期》文章中,我們是使用
ant deploy
進行打包的。因此我們的指令碼的思路也是很簡單的,先使用svn update 項目代碼,然後使用ant deploy 命令。
1、在項目根目錄(例如我的項目目錄是/data/appworks/AntDemo)下面建立一個build-app.sh檔案。檔案的內容如下:
#!/bin/shexport JAVA_HOME=/data/dev/jdkexport ANT_HOME=/data/dev/antexport PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATHcd /data/appworks/AntDemo/#update echo "updating code from server."svn update --username 你的svn使用者名稱 --password svn密碼,無可省略echo "update finish.begin building the project."#deployant deployecho "building app is finishing."
上面藍色部分一定要設定,否則crontab不會執行這個指令碼。這個問題困擾了樓主好久。切記切記!
編寫好shell指令碼之後,給build-app.sh添加執行許可權
chmod +x build-app.sh
然後在項目目錄下手動執行下這個指令碼看看有沒有錯,如果可以打包成功,那麼說明這個指令碼是正確的了。
2、建立crontab任務。
使用下面命令編輯一個crontab任務
crontab -e
這個時候在shell中就開啟了crontab的編輯狀態下的頁面,在這個頁面的後面插入下面的指令
30 18 * * * /data/appworks/AntDemo/build-app.sh
然後編輯,儲存
這時候crontab就會在每天的18:30執行/data/appworks/AntDemo/build-app.sh 執行打包命令了。
建立apk定時自動打包系統第三篇——代碼自動更新、APP自動打包系統