劉志鋒(廈門市廈華科技有限公司,福建廈門,361006)
?
Android系統(tǒng)編譯服務器搭設及環(huán)境配置
劉志鋒
(廈門市廈華科技有限公司,福建廈門,361006)
本文主要論述一種Android系統(tǒng)編譯服務器架設及環(huán)境配置方案,滿足大數(shù)據(jù)系統(tǒng)編譯需求。主要涉及到Ubuntu服務器架設;SVN服務器架設;芯片廠家交叉編譯庫配置,Ubuntu與windows共享等。
Ubuntu;SVN服務器;交叉編譯庫;samba
隨著android系統(tǒng)的電子產品在市場上的占有量越來越高,Android系統(tǒng)為了拓展自己的業(yè)務,迎合客戶需要,系統(tǒng)一直在升級,目前最新的是android6.0系統(tǒng)。每升級一次,系統(tǒng)就膨脹一次。我有做過的安卓系統(tǒng)是兩年前的android4.1和現(xiàn)在已經量產的安卓產品android5.0。android4.1整個系統(tǒng)代碼量占用磁盤空間約30G左右,android5.0點用的磁盤空間約是50G左右。這里所述的是指原碼,未經過編譯;編譯后,整個代碼增大1.5倍左右。從開發(fā)安卓系統(tǒng)的工程師團隊的角度來看,如此巨大的代碼對編譯時間,工作效率,編譯系統(tǒng)軟硬件配置,團隊合作等都是一個極大的挑戰(zhàn)。
如何解決android這種巨大系統(tǒng)工程在開發(fā)過程的效率是大家都要面臨的問題。此問題大慨可以分解如下幾點:1.如何協(xié)調開發(fā)團隊之間的代碼合并,管理,審查等。因為大系統(tǒng),開發(fā)人員少則三五個人,多則上百號人;他們在同一個系統(tǒng)代碼下工作,就必須給他們提供一個穩(wěn)定可靠的軟件硬件環(huán)境平臺。2.如此大的系統(tǒng),編譯一次需要很長時間,如何提高編譯效率問題,直接擺在大家面前。普通PC已經無法完成此種任務,那么需要更高一級的軟硬件環(huán)境用于解決此問題。3.如何解決團隊中的各位成員,即獨立,又合作的工作模式。也是需要強大有力的軟件硬件系統(tǒng)來處理此問題。下面將提出一種解決方案,從硬件和軟件分別可高效的解決android系統(tǒng)開發(fā)面臨的難題。
由于系統(tǒng)過于龐大,普通高性能的PC已無法滿足此系統(tǒng)的工作需求,所以只有通過高性能的服務器才能完成此艱巨的任務。其搭設軟硬件配合平臺的基本意圖如左圖所示:準備兩臺服務器,分三個層次解決問題,三個層之間是通過高速的千兆光纖網絡進行聯(lián)接。第一層次:此臺服務器用于預裝SVN的服務器,此服務器的主要目的是預裝SVN管理軟件。此軟件管理公共代碼,起到對整個系統(tǒng)開發(fā)團隊代碼版本管理和維護,協(xié)同團隊各成員之間的開發(fā)合作作用;同時具備備份軟件代碼,當客戶端系統(tǒng)崩潰,可能通過此服務器從新下載代碼,為軟件安全提供通用性的保護作用。第二層次:另一臺服務器主要預裝android系統(tǒng)的編譯環(huán)境及為團隊各成員分配開發(fā)空間等工作。這臺服務器是在整個系統(tǒng)架構中占最重要的作用,編譯的效率如何,完全取決于此服務器的性能狀況。另外此服務器也需要預裝了SVN客戶端軟件,是各成員同步SVN服務器代碼所必須具備的工具,實現(xiàn)SVN管理的最終目的。同時也為SVN服務器代碼提供雙重備份保護作用。當然了,服務器也必須具備較大容量,每個用戶編譯一個android5.0的系統(tǒng),最少需要100G的空間,所以根據(jù)連接服務器的人數(shù),應合理規(guī)劃服務器的硬盤大小及分配各客戶端空間。第三層次:是團隊中個人PC;個人PC通過安裝SecureCRT等遠程客戶端軟件,使施對遠程的服務器進行控制,完成個人工作任務。
對于上面三個層次的基本論述,我們可以知道,整個系統(tǒng)架構對硬件性能的需求。從大到小來看,對性能要求最高的是Linux系統(tǒng)服務器,不但性能要好,磁盤空間也必須夠大(最少存放N個用戶的N份代碼)。次之是SVN服務器,主要是用于整合各方代碼,性能要求一般,磁盤一般就行(最少能存放一份代碼)。要求最低的是用戶PC,它作為一般客戶端起到一種監(jiān)控編譯過程的顯示作用,其主要任務是在Linux服務器上完成的。從上面也可以硬件的基本配置可以顯示出,本架構的一個優(yōu)點是經濟,高效,安全,性價比高(不需要公司買高性能高價格的個人PC)。
對于SVN和個人PC的硬件配置,只需要通用性就行,我們就不再去論述它們?,F(xiàn)在我們著重論述一下整個系統(tǒng)中最重要的環(huán)節(jié)Linux系統(tǒng)服務器,下面將說一種我們現(xiàn)在開發(fā)的系統(tǒng)Mstar828智能電子白板產品搭設的架構。
Linux服務器的硬件配置:DELL PowerEdge R720服務器;物理上兩顆Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz,每顆CPU為6核12線程,共24線程 ;內存128G;硬盤是8個15000轉的600G,共4.8T。
如何把硬件的性能用到極至,需要我們對硬件系統(tǒng)的參數(shù)設置作進一步的優(yōu)化。其中重點是對硬盤的用Raid進行配置管理。RAID的基本想法就是把多個便宜的小磁盤組合到一起,成為一個磁盤組, 使性能達到或超過一個容量巨大、價格昂貴的磁盤。經過對多種RAID比較分析,我們選擇了RAID5。RAID 5 是一種存儲性能、數(shù)據(jù)安全和存儲成本兼顧的存儲解決方案。我們是以七個硬盤組成的RAID 5,RAID 5不對存儲的數(shù)據(jù)進行備份,而是把數(shù)據(jù)和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,并且奇偶校驗信息和相對應的數(shù)據(jù)分別存儲于不同的磁盤上,它的利用率為N-1/N(N>=3),最大容量=磁盤數(shù)(N-1)x 磁盤容量;數(shù)據(jù)讀取速率是(N-1)*單個硬盤的讀取速率,數(shù)據(jù)寫入速率略小于單個硬盤的寫入速率。當RAID5的一個磁盤數(shù)據(jù)發(fā)生損壞后,利用剩下的數(shù)據(jù)和相應的奇偶校驗信息去恢復被損壞的數(shù)據(jù)。剩下第八塊硬盤作為熱備盤,當七塊盤中有某一塊損壞,此熱備盤就會自動啟動,用于恢復被損壞的數(shù)據(jù)。
由上面RAID5的設置,使我們讀取硬盤的速度是單個硬盤的6倍,能夠高速度的解決我們大數(shù)據(jù)處理的要求,同時又保證了我們數(shù)據(jù)的安全。為了方便對服務器的管理,我們會啟動iDRAC服務器遠程控制設置,這樣我們就不需要經常出入機房或機房可以遠離我們的工作區(qū)也不會影響我們對他的控制。
搭設好上面的基礎硬件設施后,我們就開始著重于軟件系統(tǒng)的預裝。軟件系統(tǒng)選擇及設置,也很大程度上會影響編譯環(huán)境的性能。下面進行十步的軟件編譯環(huán)境搭設。一、安裝Ubuntu系統(tǒng)。首先我們必須為服務器選擇合適的系統(tǒng),我們當時選擇的是Ubuntu 12.04.5 LTS系統(tǒng)。這個是服務器系統(tǒng)使用無圖形界面,可以盡可能的節(jié)約資源,把資源最大程度用于系統(tǒng)編譯上。安裝系統(tǒng)的時候,我們選擇硬盤的方式為虛擬一塊整盤,這樣也最大性能的提高操作系統(tǒng)的運行速度。二、切換更新源。系統(tǒng)自帶的源都是國外的服務器內容,讀取速度過慢,影響更新速度;所以我們把源切換成國內Ubuntu源服務器。三、安裝必須組件,兼容64位和32位的應用。例如lib32ncurses5-dev ia32-libs lib32readline-gplv2-dev lib32z1-dev等。四、安裝samba。安裝ssh-server服務端及ssh-client客戶端。五、Kubuntu安裝系統(tǒng)設置的共享模塊(windows 可以與ubuntu共享文件)。方便團隊人員直接用windows系統(tǒng)通過創(chuàng)建快鍵盤方式,直接訪問Ubuntu服務器。六、安裝Android系統(tǒng)編譯時需要的java的Jdk,即java1.7以上版本。七、安裝芯片廠家提供的tool chain。九、設置賬號和共享空間。設置訪問Ubuntu服務器的賬號和密碼,設置開發(fā)團隊人員的權限及占用的空間大小等,讓各方能共享服務器,用服務器來編譯自己的軟件。十、增加windows和Ubuntu共享用戶賬號。方便開發(fā)人員用windows系統(tǒng)參與開發(fā),調用服務器資源。
通過上面的軟件硬件的安裝配置,一個完善的,高效的,性價比高的Android系統(tǒng)編譯服務器搭設及環(huán)境配置架構就完成了。下面我們對整個系統(tǒng)一些測試的數(shù)據(jù)進行對比分析。在一臺中等配置的PC,雙核4線程8G內存,首次編譯android5.0系統(tǒng)的程序需要3個小時50分鐘左右。而我們的服務器是24線程,考慮是整個開發(fā)團隊共用,所以不用把24線程全部使用,只啟用其中8個線程來編譯。最后編譯的時間是1小時28分鐘。
Android系統(tǒng)每年都在更新,系統(tǒng)越來載宏大,上述這種構架方式,逐漸成為系統(tǒng)開發(fā)團隊編譯環(huán)境搭設的主流方式,也只有這種方法才能解決如此大數(shù)據(jù)量的編譯任務。
《MSta828開發(fā)指導書》,李剛《瘋狂android講義》。
劉志鋒(1980.7.7-),性別:男,廈門市廈華科技有限公司,集美大學電子信息工程,工程師,籍貫:福建,研究方向:電子系統(tǒng)開發(fā)。
Set up the android system compiling server and configure the compiling environment
Liu Zhifeng
(Xiamen Xiahua Technology Co. Ltd,Xiamen Fujian,361006)
This paper make a research about how to set up the android system compiling server and how to configure its environment, in order to fit on the big data system compiling need.it relates to the Ubuntu server set up,the SVN server set up,the compiling libraries configure and how to have a share space between Ubuntu and windows system.
Ubuntu;SVN server;making library;samba