一种分配独立环境的方法、智能终端及存储介质与流程

文档序号:21079901发布日期:2020-06-12 16:25阅读:111来源:国知局
一种分配独立环境的方法、智能终端及存储介质与流程

本发明涉及android编译技术领域,尤其涉及一种分配独立环境的方法、智能终端及存储介质。



背景技术:

随着android的迭代,android7.0开始出现新的特性,jackserver(jack服务器)给编译带来了很大的好处,jack是andriod的默认编译工具,只需使用标准的makefile(makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本一样,也可以执行操作系统的命令)命令执行即可。

当第一次执行jack时,它会在你的机器上启动一个jack编译服务(就是前面的jackserver),这个服务大大提高了编译速度,因为它避免了启动一个新的jvm(javavirtualmachine,java虚拟机),加载jack代码,初始化jack和每次编译都要预制jit(justintime,准时制),即使在很小的编译过程中,它也很好的节省了时间(例如,在incremental模式),这个服务也是一个控制jack并行编译的短期解决方案,它可以限制编译的并行数据量,这样也可以避免内存硬盘溢出问题。

当一段时间没有编译活动,jack服务会自动关闭,默认它在本地使用了两个tcp端口,且不对外公开,它也提供了很多参数来配置jack服务,例如并行数量,timeout时间,端口等等,只修改$home/.jack文件即可。

但是在众多项目编译的同时,jack的端口很容易发生冲突导致编译在jack上卡着编译无法通过,即jackserver不能同时被多个用户去进行编译,这是android的限制,一旦已经启动了jackserver,后面的用户就无法再正常启动jackserver,从而导致编译出错。

因此,现有技术还有待于改进和发展。



技术实现要素:

本发明的主要目的在于提供一种分配独立环境的方法、智能终端及存储介质,旨在解决现有技术中在众多项目编译的同时,jack的端口很容易发生冲突导致编译在jack上卡着编译无法通过的问题。

为实现上述目的,本发明提供一种分配独立环境的方法,所述分配独立环境的方法包括如下步骤:

获取基准环境的配置文件;

将所述配置文件分别复制下发到各个项目编译的配置文件夹;

处理所述配置文件的权限,对基准端口号以递增方式设置不重复的jack端口,控制各项目独立使用端口号。

可选地,所述的分配独立环境的方法,其中,所述获取基准环境的配置文件,之前还包括:

给每个项目新建单独的配置文件夹;

所述配置文件夹经过端口的处理和赋予权限后进行拷贝,用于给android项目独立调用环境使用。

可选地,所述的分配独立环境的方法,其中,所述处理所述配置文件的权限,具体包括:

运行脚本工具对所述配置文件的权限进行修改处理,清除所有android项目的独立环境配置,所有android项目的环境进行单独配置处理。

可选地,所述的分配独立环境的方法,其中,所述分配独立环境的方法还包括:

当检测到环境出现异常时,则将配置过的环境文件全部删除。

可选地,所述的分配独立环境的方法,其中,所述对基准端口号以递增方式设置不重复的jack端口,具体包括:

创建单个项目的配置文件夹用于拷贝所述配置文件,从基准配置文件所在的路径拷贝所有的配置文件,再将基准的端口号上分别加一生成新的端口号赋值给传参进来的当前android项目下的配置文件夹。

可选地,所述的分配独立环境的方法,其中,所述分配独立环境的方法还包括:

重置所有项目的配置文件,搜索所有的android项目下面的配置文件夹,将基准配置文件拷贝过来,对涉及到的两口端口配置变量加一赋值依次赋值给所有的项目。

可选地,所述的分配独立环境的方法,其中,所述jack端口包括:设置编译目的的tcp端口和设置管理目的的tcp端口。

可选地,所述的分配独立环境的方法,其中,所述配置文件的权限包括:读写权限、写入权限和执行权限。

此外,为实现上述目的,本发明还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分配独立环境的程序,所述分配独立环境的程序被所述处理器执行时实现如上所述的分配独立环境的方法的步骤。

此外,为实现上述目的,本发明还提供一种存储介质,其中,所述存储介质存储有分配独立环境的程序,所述分配独立环境的程序被处理器执行时实现如上所述的分配独立环境的方法的步骤。

本发明通过获取基准环境的配置文件;将所述配置文件分别复制下发到各个项目编译的配置文件夹;处理所述配置文件的权限,对基准端口号以递增方式设置不重复的jack端口,控制各项目独立使用端口号。本发明通过脚本工具将各个项目的编译环境独立开来,解决编译环境损坏,编译jack端口冲突导致编译异常的问题,可以快速全局或者是局域性的恢复编译环境,从而提高集成软件的效率。

附图说明

图1是本发明分配独立环境的方法的较佳实施例的流程图;

图2为本发明智能终端的较佳实施例的运行环境示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明较佳实施例所述的分配独立环境的方法,如图1所示,所述分配独立环境的方法包括以下步骤:

步骤s10、获取基准环境的配置文件。

具体地,基准环境表示已经配置好的环境;所述配置文件就是android系统编译的时候用到的一些文件,比如拉代码的环境,发邮件的环境,在服务器上都需要环境进行支撑,具体例如:.profile{设置系统相关}、.bashrc{设置bashshell相关}、.ssh{网络协议设置相关}、.jack{jack服务相关}和.mailrc{邮件服务相关},主要用于android编译项目的时候各环节的编译支撑。

在计算机科学领域,配置文件(configurationfile)是一种计算机文件,可以为一些计算机程序配置参数和初始设置。配置文件即对不同对象进行不同配置的文件。例如当第一次登录到一台基于microsoftwindowsxp、windows2000或windowsnt?workstation的计算机上时,系统就会为你创建一个专用的配置文件,来保存用户的屏幕颜色、网络连接、打印机连接、鼠标设置及窗口的大小和位置等。

其中,有三种主要的配置文件类型:

(1)本地用户配置文件;在用户第一次登录到计算机上时被创建,这个本地用户配置文件被储存在计算机的本地硬盘驱动器上;任何对本地用户配置文件所作的更改都只对发生改变的计算机产生作用。

(2)漫游用户配置文件;一个本地配置文件的副本被复制及储存在网络上的一个服务器共享上;当用户每次登录到网络上的任一台计算机上时,这个文件都会被下载,并且当用户注销时,任何对漫游用户配置文件的更改都会与服务器的拷贝同步;漫游用户配置文件要求这台计算机是windowsnt域或activedirectory的一个成员。

(3)强制用户配置文件;是一种特殊类型的配置文件,使用它管理员可为用户指定特殊的设置;只有系统管理员才能对强制用户配置文件作修改;当用户从系统注销时,用户对桌面做出的修改就会丢失。

第四种类型的配置文件是一个临时的配置文件,只有在因一个错误而导致用户配置文件不能被加载时才会出现;临时配置文件允许用户登录并改正任何可能导致配置文件加载失败的配置;临时配置文件在每次会话结束后都将被删除,注销时对桌面设置和文件所作的更改都会丢失。

默认用户配置文件被用作任何新用户的起始点,当一个用户第一次登录到计算机时,windows将创建一个新文件夹,用来储存新用户的配置文件,并且将默认的配置文件复制到这个新文件夹中;用户对默认配置文件所作的更改都被记录到用户的拷贝中;缺省情况下,默认用户配置文件的属性是隐藏的。

进一步地,所述获取基准环境的配置文件,之前还包括:给每个项目新建单独的配置文件夹(jackhome,也叫环境目录);所述配置文件夹经过端口的处理和赋予权限后进行拷贝,用于给android项目独立调用环境使用。

步骤s20、将所述配置文件分别复制下发到各个项目编译的配置文件夹。

具体地,本发明中的项目指的是整个android工程(即android项目),数量可以达到几百个;通过循环语句(在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句,一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件,循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体,循环语句是由循环体及循环的终止条件两部分组成的,在c语言中,有三种类型的循环语句:for语句、while语句和dowhile语句)找每个项目下的jackhome目录,找到后将其基准环境配置文件拷贝到所找到的所有项目下的jackhome目录。

给项目新建单独的环境目录(jackhome),这个单独的环境目录经过基准的环境配置文件经过端口的处理和赋予权限后拷贝到这里,给android项目独立调用环境使用运行脚本工具,sourcebuild/common/server_tools.sh;这个脚本中包含了环境配置文件的权限修改处理(所述配置文件的权限包括:读写权限、写入权限和执行权限),清除所有android项目的独立环境配置,单个android项目的环境配置处理,所有android项目的环境配置处理。

步骤s30、处理所述配置文件的权限,对基准端口号以递增方式设置不重复的jack端口,控制各项目独立使用端口号。

具体地,执行脚本时,clear_jackhome_all#清除所有android项目设置的环境配置,一般所有环境出问题的时候用到,主要是将原先配置过的环境文件全部删除。

其中,create_jackhome#创建单个项目的jackhome拷贝环境配置文件,主要是从基准配置文件所在的路径拷贝所有的环境配置文件,再将上面涉及到的两个端口号再基准的端口号上分别+1生成新的端口号赋值给传参进来的当前android项目下的jackhome目录下。

进一步地,create_jackhome_auto#重置所有项目的环境配置文件,同create_jackhome一样,只是这个会搜索所有的android项目下面的jackhome目录,将其基准配置文件拷贝过来对其涉及到的两口端口配置变量+1赋值给依次赋值给所有的项目。

在jack基准端口的基础上通过sed(sed命令的使用必须配合正则表达式的,sed本省也是一个管道命令,可以分析standardinput,也可以用来进行数据的替换、新增、选取特定行的功能)工具对变量进行自加1的方式分别赋值给各项目下的独立配置文件下的端口号,使其独立并对各项目下的配置文件下的文件赋予可执行的权限;完全处理过的独立配置文件,一个项目一份配置文件,具体编译的时候通过各项目下设置home变量去调用这个相应的jackhome目录文件。

本发明主要是将jack及其.mailrc.bash_history.ssh等配置文件分别复制下发到各个项目编译的配置文件夹jackhome下,将其环境配置文件独立到项目,通过处理环境配置文件的权限,对基准端口号递增的方法设置不重复的jack端口后各项目独立使用其端口号。

本发明主要是通过脚本工具将其各个项目的编译环境独立开来,解决编译环境损坏,编译jack端口冲突等导致编译异常的问题,可以快速全局或者是局域性的恢复编译环境,从而提高集成软件的效率。

本发明实现了多项目多线程同时跑,项目启动至结束编译自动化,释放人力,推进项目进度,在项目周期的优化话起到了关键性的作用;本发明也适用于android,linux等编译流程的问题。

进一步地,如图2所示,基于上述分配独立环境的方法,本发明还相应提供了一种智能终端,所述智能终端包括处理器10、存储器20及显示器30。图2仅示出了智能终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器20在一些实施例中可以是所述智能终端的内部存储单元,例如智能终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述智能终端的外部存储设备,例如所述智能终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器20还可以既包括所述智能终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述智能终端的应用软件及各类数据,例如所述安装智能终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有分配独立环境的程序40,该分配独立环境的程序40可被处理器10所执行,从而实现本申请中分配独立环境的方法。

所述处理器10在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述分配独立环境的方法等。

所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器30用于显示在所述智能终端的信息以及用于显示可视化的用户界面。所述智能终端的部件10-30通过系统总线相互通信。

在一实施例中,当处理器10执行所述存储器20中分配独立环境的程序40时实现以下步骤:

获取基准环境的配置文件;

将所述配置文件分别复制下发到各个项目编译的配置文件夹;

处理所述配置文件的权限,对基准端口号以递增方式设置不重复的jack端口,控制各项目独立使用端口号。

所述获取基准环境的配置文件,之前还包括:

给每个项目新建单独的配置文件夹;

所述配置文件夹经过端口的处理和赋予权限后进行拷贝,用于给android项目独立调用环境使用。

所述处理所述配置文件的权限,具体包括:

运行脚本工具对所述配置文件的权限进行修改处理,清除所有android项目的独立环境配置,所有android项目的环境进行单独配置处理。

所述分配独立环境的方法还包括:

当检测到环境出现异常时,则将配置过的环境文件全部删除。

所述对基准端口号以递增方式设置不重复的jack端口,具体包括:

创建单个项目的配置文件夹用于拷贝所述配置文件,从基准配置文件所在的路径拷贝所有的配置文件,再将基准的端口号上分别加一生成新的端口号赋值给传参进来的当前android项目下的配置文件夹。

所述分配独立环境的方法还包括:

重置所有项目的配置文件,搜索所有的android项目下面的配置文件夹,将基准配置文件拷贝过来,对涉及到的两口端口配置变量加一赋值依次赋值给所有的项目。

所述jack端口包括:设置编译目的的tcp端口和设置管理目的的tcp端口。

所述配置文件的权限包括:读写权限、写入权限和执行权限。

本发明还提供一种存储介质,其中,所述存储介质存储有分配独立环境的程序,所述分配独立环境的程序被处理器执行时实现如上所述的分配独立环境的方法的步骤。

综上所述,本发明提供一种分配独立环境的方法、智能终端及存储介质,所述方法包括:获取基准环境的配置文件;将所述配置文件分别复制下发到各个项目编译的配置文件夹;处理所述配置文件的权限,对基准端口号以递增方式设置不重复的jack端口,控制各项目独立使用端口号。本发明通过脚本工具将各个项目的编译环境独立开来,解决编译环境损坏,编译jack端口冲突导致编译异常的问题,可以快速全局或者是局域性的恢复编译环境,从而提高集成软件的效率。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1