APP下载

Android系统编译服务器搭设及环境配置

2016-08-31刘志锋厦门市厦华科技有限公司福建厦门361006

电子测试 2016年15期
关键词:磁盘线程硬盘

刘志锋(厦门市厦华科技有限公司,福建厦门,361006)



Android系统编译服务器搭设及环境配置

刘志锋
(厦门市厦华科技有限公司,福建厦门,361006)

本文主要论述一种Android系统编译服务器架设及环境配置方案,满足大数据系统编译需求。主要涉及到Ubuntu服务器架设;SVN服务器架设;芯片厂家交叉编译库配置,Ubuntu与windows共享等。

Ubuntu;SVN服务器;交叉编译库;samba

随着android系统的电子产品在市场上的占有量越来越高,Android系统为了拓展自己的业务,迎合客户需要,系统一直在升级,目前最新的是android6.0系统。每升级一次,系统就膨胀一次。我有做过的安卓系统是两年前的android4.1和现在已经量产的安卓产品android5.0。android4.1整个系统代码量占用磁盘空间约30G左右,android5.0点用的磁盘空间约是50G左右。这里所述的是指原码,未经过编译;编译后,整个代码增大1.5倍左右。从开发安卓系统的工程师团队的角度来看,如此巨大的代码对编译时间,工作效率,编译系统软硬件配置,团队合作等都是一个极大的挑战。

如何解决android这种巨大系统工程在开发过程的效率是大家都要面临的问题。此问题大慨可以分解如下几点:1.如何协调开发团队之间的代码合并,管理,审查等。因为大系统,开发人员少则三五个人,多则上百号人;他们在同一个系统代码下工作,就必须给他们提供一个稳定可靠的软件硬件环境平台。2.如此大的系统,编译一次需要很长时间,如何提高编译效率问题,直接摆在大家面前。普通PC已经无法完成此种任务,那么需要更高一级的软硬件环境用于解决此问题。3.如何解决团队中的各位成员,即独立,又合作的工作模式。也是需要强大有力的软件硬件系统来处理此问题。下面将提出一种解决方案,从硬件和软件分别可高效的解决android系统开发面临的难题。

由于系统过于庞大,普通高性能的PC已无法满足此系统的工作需求,所以只有通过高性能的服务器才能完成此艰巨的任务。其搭设软硬件配合平台的基本意图如左图所示:准备两台服务器,分三个层次解决问题,三个层之间是通过高速的千兆光纤网络进行联接。第一层次:此台服务器用于预装SVN的服务器,此服务器的主要目的是预装SVN管理软件。此软件管理公共代码,起到对整个系统开发团队代码版本管理和维护,协同团队各成员之间的开发合作作用;同时具备备份软件代码,当客户端系统崩溃,可能通过此服务器从新下载代码,为软件安全提供通用性的保护作用。第二层次:另一台服务器主要预装android系统的编译环境及为团队各成员分配开发空间等工作。这台服务器是在整个系统架构中占最重要的作用,编译的效率如何,完全取决于此服务器的性能状况。另外此服务器也需要预装了SVN客户端软件,是各成员同步SVN服务器代码所必须具备的工具,实现SVN管理的最终目的。同时也为SVN服务器代码提供双重备份保护作用。当然了,服务器也必须具备较大容量,每个用户编译一个android5.0的系统,最少需要100G的空间,所以根据连接服务器的人数,应合理规划服务器的硬盘大小及分配各客户端空间。第三层次:是团队中个人PC;个人PC通过安装SecureCRT等远程客户端软件,使施对远程的服务器进行控制,完成个人工作任务。

对于上面三个层次的基本论述,我们可以知道,整个系统架构对硬件性能的需求。从大到小来看,对性能要求最高的是Linux系统服务器,不但性能要好,磁盘空间也必须够大(最少存放N个用户的N份代码)。次之是SVN服务器,主要是用于整合各方代码,性能要求一般,磁盘一般就行(最少能存放一份代码)。要求最低的是用户PC,它作为一般客户端起到一种监控编译过程的显示作用,其主要任务是在Linux服务器上完成的。从上面也可以硬件的基本配置可以显示出,本架构的一个优点是经济,高效,安全,性价比高(不需要公司买高性能高价格的个人PC)。

对于SVN和个人PC的硬件配置,只需要通用性就行,我们就不再去论述它们。现在我们着重论述一下整个系统中最重要的环节Linux系统服务器,下面将说一种我们现在开发的系统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。

如何把硬件的性能用到极至,需要我们对硬件系统的参数设置作进一步的优化。其中重点是对硬盘的用Raid进行配置管理。RAID的基本想法就是把多个便宜的小磁盘组合到一起,成为一个磁盘组, 使性能达到或超过一个容量巨大、价格昂贵的磁盘。经过对多种RAID比较分析,我们选择了RAID5。RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。我们是以七个硬盘组成的RAID 5,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,它的利用率为N-1/N(N>=3),最大容量=磁盘数(N-1)x 磁盘容量;数据读取速率是(N-1)*单个硬盘的读取速率,数据写入速率略小于单个硬盘的写入速率。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。剩下第八块硬盘作为热备盘,当七块盘中有某一块损坏,此热备盘就会自动启动,用于恢复被损坏的数据。

由上面RAID5的设置,使我们读取硬盘的速度是单个硬盘的6倍,能够高速度的解决我们大数据处理的要求,同时又保证了我们数据的安全。为了方便对服务器的管理,我们会启动iDRAC服务器远程控制设置,这样我们就不需要经常出入机房或机房可以远离我们的工作区也不会影响我们对他的控制。

搭设好上面的基础硬件设施后,我们就开始着重于软件系统的预装。软件系统选择及设置,也很大程度上会影响编译环境的性能。下面进行十步的软件编译环境搭设。一、安装Ubuntu系统。首先我们必须为服务器选择合适的系统,我们当时选择的是Ubuntu 12.04.5 LTS系统。这个是服务器系统使用无图形界面,可以尽可能的节约资源,把资源最大程度用于系统编译上。安装系统的时候,我们选择硬盘的方式为虚拟一块整盘,这样也最大性能的提高操作系统的运行速度。二、切换更新源。系统自带的源都是国外的服务器内容,读取速度过慢,影响更新速度;所以我们把源切换成国内Ubuntu源服务器。三、安装必须组件,兼容64位和32位的应用。例如lib32ncurses5-dev ia32-libs lib32readline-gplv2-dev lib32z1-dev等。四、安装samba。安装ssh-server服务端及ssh-client客户端。五、Kubuntu安装系统设置的共享模块(windows 可以与ubuntu共享文件)。方便团队人员直接用windows系统通过创建快键盘方式,直接访问Ubuntu服务器。六、安装Android系统编译时需要的java的Jdk,即java1.7以上版本。七、安装芯片厂家提供的tool chain。九、设置账号和共享空间。设置访问Ubuntu服务器的账号和密码,设置开发团队人员的权限及占用的空间大小等,让各方能共享服务器,用服务器来编译自己的软件。十、增加windows和Ubuntu共享用户账号。方便开发人员用windows系统参与开发,调用服务器资源。

通过上面的软件硬件的安装配置,一个完善的,高效的,性价比高的Android系统编译服务器搭设及环境配置架构就完成了。下面我们对整个系统一些测试的数据进行对比分析。在一台中等配置的PC,双核4线程8G内存,首次编译android5.0系统的程序需要3个小时50分钟左右。而我们的服务器是24线程,考虑是整个开发团队共用,所以不用把24线程全部使用,只启用其中8个线程来编译。最后编译的时间是1小时28分钟。

Android系统每年都在更新,系统越来载宏大,上述这种构架方式,逐渐成为系统开发团队编译环境搭设的主流方式,也只有这种方法才能解决如此大数据量的编译任务。

《MSta828开发指导书》,李刚《疯狂android讲义》。

刘志锋(1980.7.7-),性别:男,厦门市厦华科技有限公司,集美大学电子信息工程,工程师,籍贯:福建,研究方向:电子系统开发。

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

猜你喜欢

磁盘线程硬盘
叶腊石聚合成型及其旋转磁盘的制作方法
基于C#线程实验探究
HiFi级4K硬盘播放机 亿格瑞A15
Egreat(亿格瑞)A10二代 4K硬盘播放机
基于国产化环境的线程池模型研究与实现
解决Windows磁盘签名冲突
修改磁盘属性
磁盘组群组及iSCSI Target设置
浅谈linux多线程协作
我区电视台对硬盘播出系统的应用