CN105373384B - 一种软件开发方法和装置 - Google Patents

一种软件开发方法和装置 Download PDF

Info

Publication number
CN105373384B
CN105373384B CN201510785091.9A CN201510785091A CN105373384B CN 105373384 B CN105373384 B CN 105373384B CN 201510785091 A CN201510785091 A CN 201510785091A CN 105373384 B CN105373384 B CN 105373384B
Authority
CN
China
Prior art keywords
file
item
demand
catalogue
basic platform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510785091.9A
Other languages
English (en)
Other versions
CN105373384A (zh
Inventor
林靖明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datang Terminal Technology Co Ltd
Original Assignee
Datang Terminal Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Datang Terminal Technology Co Ltd filed Critical Datang Terminal Technology Co Ltd
Priority to CN201510785091.9A priority Critical patent/CN105373384B/zh
Publication of CN105373384A publication Critical patent/CN105373384A/zh
Application granted granted Critical
Publication of CN105373384B publication Critical patent/CN105373384B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种软件开发方法和装置,其中的方法包括:确定第一项目需求对应的项目文件目录;根据所述第一项目需求生成所述项目文件目录下的项目文件,所述项目文件包括:第一项目更新文件和/或第一项目新增文件;所述根据所述第一项目需求生成项目文件目录下的项目文件,包括:根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下;和/或,根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下。

Description

一种软件开发方法和装置
技术领域
本发明涉及电子设备控制技术领域,具体涉及一种软件开发方法和装置。
背景技术
安卓(Android)是一种基于Linux的自由及开放源代码的操作系统,主要用于终端设备,由谷歌(Google)公司和开放手机联盟领导及开发,目前已成为最大的手机软件平台。Android原生代码中的项目配置有限,无法满足终端设计公司众多软件项目需求,如何在同一个平台上开发出多个项目,而项目之间又不能相互干扰,对于手机软件开发人员来说,是一个不可回避、且亟待解决的问题。
Android原生平台、或基于Android原生平台的其它基础开发平台,如高通平台等的项目配置是固定的,并不能灵活调整。实际的项目需求多种多样,为避免不同项目之间相互影响,一般的软件开发方法是为每一个项目建立一个代码分支,该代码分支需要包括完整的Android原生平台的其它基础开发平台。然而,无论是Android原生平台或其它基础开发平台的代码量都是非常巨大的。拿Android5.1版本的原生平台来说,整个原生平台的源代码占用硬盘空间是20G左右,下载一套代码就要花费几十分钟。而开发工程师在同一时间段内,往往需要进行多个项目的开发,当需要在多个项目上提交修改代码时,仅下载代码和提交就要花上几个小时的时间。当对已开发好的项目进行比较大的需求修改时,也要单独建立代码分支,那么开发工程师的维护工作量会呈几何级数增长。大量类似的重复工作将导致项目开发周期大大延长,而仅仅靠增加开发人员是无法从根本上改变现状的。
发明内容
为了解决现有技术中在软件开发过程中,由于大量类似重复工作而导致的软件开发周期长的问题,本发明实施例期望提供一种软件开发方法和装置。
本发明实施例提供了一种软件开发方法,包括:
确定第一项目需求对应的项目文件目录;
根据所述第一项目需求生成所述项目文件目录下的项目文件,所述项目文件包括:第一项目更新文件和/或第一项目新增文件;
所述根据所述第一项目需求生成项目文件目录下的项目文件,包括:
根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下;和/或,
根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下。
在本发明的另一种可选实施例中,所述方法还包括:
确定第二项目需求对应的需求文件目录;
根据所述第二项目需求生成所述需求文件目录下的需求文件,所述需求文件包括:第二项目更新文件和/或第二项目新增文件;
所述根据所述第二项目需求生成需求文件目录下的需求文件,包括:
根据所述第二项目需求和项目文件目录下的项目文件确定出需要修改的第二目标文件;根据所述第二项目需求确定第二目标文件对应的第二项目更新文件;将所述第二项目更新文件保存至所述需求文件目录下;和/或,
根据所述第二项目需求确定需要向项目文件目录下增加的第二项目新增文件;将所述第二项目新增文件保存至所述需求文件目录下。
上述方案中,所述基础平台文件与所述第一项目更新文件和/或第一项目新增文件和/或所述第二项目新增文件和/或第二项目更新文件具备相同的文件目录结构;
其中,所述相同的文件目录结构包括:相同的存储路径和文件名。
上述方案中,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
上述方案中,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件;
所述需求文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
在本发明的另一种可选实施例中,所述方法还包括:通过以下方式对项目文件进行编译:
加载所述基础平台文件目录中的基础平台文件;
用所述项目文件目录中的项目文件替换所述基础平台文件目录中与所述项目文件同名的基础平台文件,生成第一待编译文件;
对第一待编译文件进行编译,生成编译结果。
在本发明的另一种可选实施例中,所述方法还包括:通过以下方式对需求文件进行编译:
加载所述基础平台文件目录内的基础平台文件;
用所述项目文件目录中的项目文件替换所述基础平台文件目录中与所述项目文件同名的基础平台文件,生成第一待编译文件;
用需求文件目录中的需求文件替换所述第一待编译文件目录中与所述需求文件同名的文件,生成第二待编译文件;
对第二待编译文件进行编译,生成编译结果。
本发明实施例提供了一种软件开发装置,包括:目录确定模块和文件生成模块;其中,
所述目录确定模块,用于确定第一项目需求对应的项目文件目录;
所述文件生成模块,用于根据所述第一项目需求生成所述项目文件目录下的项目文件,所述项目文件包括:第一项目更新文件和/或第一项目新增文件;
其中,所述文件生成模块,包括:文件确定子模块和文件保存子模块;其中,
所述文件确定子模块,用于根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件,以及根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;还用于根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;
所述文件保存子模块,用于将所述第一项目更新文件和/或第一项目新增文件保存于项目文件目录下。
在本发明的另一种可选实施例中,所述目录确定模块,还用于确定第二项目需求对应的需求文件目录;
所述文件生成模块,还用于根据所述第二项目需求生成所述需求文件目录下的需求文件,所述需求文件包括:第二项目更新文件和/或第二项目新增文件;
所述文件确定子模块,还用于根据所述第二项目需求和项目文件目录下的项目文件确定出需要修改的第二目标文件,以及根据所述第二项目需求确定第二目标文件对应的第二项目更新文件;还用于根据所述第二项目需求确定需要向项目文件目录下增加的第二项目新增文件;
所述文件保存子模块,还用于将所述第二项目更新文件和/或第二项目新增文件保存于所述需求文件目录下。
上述方案中,所述基础平台文件与所述第一项目更新文件和/或第一项目新增文件和/或所述第二项目新增文件和/或第二项目更新文件具备相同的文件目录结构;
其中,所述相同的文件目录结构包括:相同的存储路径和文件名。
上述方案中,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
上述方案中,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括有以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件;
所述需求文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
在本发明的另一种可选实施例中,所述装置还包括:编译模块,用于对项目文件或需求文件进行编译;
所述编译模块包括:加载子模块、替换子模块和编译子模块。
当对项目文件进行编译时,所述加载子模块,用于加载所述基础平台文件目录中的基础平台文件;
所述替换子模块,用于用所述项目文件目录中的项目文件替换所述基础平台文件目录中与所述项目文件同名的基础平台文件,生成第一待编译文件;
所述编译子模块,用于对第一待编译文件进行编译,生成编译结果。
上述方案中,当对需求文件进行编译时,所述加载子模块,用于加载所述基础平台文件目录内的基础平台文件;
所述替换子模块,用于用所述项目文件目录中的项目文件替换基础平台文件目录内与所述项目文件同名的基础平台文件,生成第一待编译文件;
所述替换子模块,还用于用需求文件目录中的需求文件替换第一待编译文件目录中与所述需求文件同名的文件,生成第二待编译文件;
所述编译子模块,用于对第二待编译文件进行编译,生成编译结果。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例所提供的一种软件开发方法和装置,确定第一项目需求对应的项目文件目录;根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下;和/或,根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下;这样,基础平台文件夹下仍保存基础平台文件,而软件开发过程中,在基础平台上所进行的更新全部存储于项目文件夹内。当进行多个项目的开发时,可以设置不同的项目文件夹,不同项目对应的更新后的第一项目更新文件和/或第一项目新增文件均保存在相应的项目文件夹下,而多个项目文件夹可以同时和一个基础平台文件夹相关联;也就是说,不同项目所公用或共用的基础平台文件夹可以为同一个,而项目文件夹中只保存与基础平台文件夹的差异化文件。因此,根据本发明实施例提供的软件开发方法,可以大大节省系统存储空间,而且能够实现基础平台代码的重用,从而在进行多个项目的同时开发时,大大提高项目开发速度。
附图说明
图1为本发明实施例提供的软件开发方法流程图一;
图2为本发明实施例提供的软件开发方法流程图二;
图3为本发明实施例提供的一个示例性的基础平台文件夹、项目文件夹和需求文件夹的结构关系图;
图4为本发明实施例提供的软件开发装置的基本结构图。
具体实施方式
实施例一
参照图1,示出了本发明的一种软件开发方法实施例一的步骤流程图,具体可以包括:
步骤101、确定第一项目需求对应的项目文件目录;
在基于第一项目需求进行软件开发时,需要先确定第一项目需求所对应的项目文件目录;因此,在基于本发明实施例一进行软件开发时,对应不同项目的不同项目需求,需求确定其所对应的项目文件目录,也就是说,每一个项目有其对应的项目文件目录。
步骤102、根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下;和/或,根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下。
步骤101中,确定第一项目需求对应的项目文件目录之后,需要根据所述第一项目需求生成所述项目文件目录下的项目文件,所述项目文件包括:第一项目更新文件和/或第一项目新增文件;
所述根据所述第一项目需求生成项目文件目录下的项目文件,包括:
根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下;和/或,根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下。
具体的,第一项目需求可以为针对不同终端进行系统设计时所确定的需求,例如,可以包括硬件驱动需求和软件需求;其中,硬件驱动需求是指不同终端针对具体硬件参数所需要配备的驱动程序;所述软件需求具体可以包括:用户功能、开关机画面、系统应用界面、预装软件等等。
具体的,所述终端可以是手机、平板电脑、个人数字助理(PDA,PersonalDigitalAssistant)、便携式电脑、个人电脑等等。
所述基础平台文件目录下保存有用于进行项目开发的基础平台文件,该基础平台已经具备系统开发中的缺省功能。举例来说,针对安卓开发,这里的基础平台文件可以是指安卓原生平台文件,或者,是不同品牌厂商,例如,高通,针对不同芯片在安卓原生平台基础上所设计的原生平台。
这一步骤中,需要依据第一项目需求对基础平台文件目录下的基础平台文件进行更新,这种更新包括:对基础平台文件进行修改和向基础平台文件目录下添加新文件两种。
在对基础平台文件进行修改时,其具体步骤包括:根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下。
在向基础平台文件目录下添加新文件时,其具体步骤包括:根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下。
在这一步骤中,根据第一项目需求对基础平台文件目录下的基础平台文件进行更新之后,将更新后的第一项目更新文件和/或第一项目新增文件保存于项目文件目录下,这样基础平台文件夹下仍保存原始的基础平台文件,而软件开发过程中,在基础平台上所进行的更新全部存储于项目文件夹内。当进行多个项目的开发时,可以设置不同的项目文件夹,不同项目所对应的更新后的文件保存在相应的项目文件夹下。这样,就可以基于基础平台文件和项目文件来生成满足第一项目需求的软件。
综上,根据本发明实施例一提供的软件开发方法,确定第一项目需求对应的项目文件目录;根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下;和/或,根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下;这样,基础平台文件夹下仍保存基础平台文件,而软件开发过程中,在基础平台上所进行的更新全部存储于项目文件夹内。当进行多个项目的开发时,可以设置不同的项目文件夹,不同项目对应的更新后的第一项目更新文件和/或第一项目新增文件均保存在相应的项目文件夹下,而多个项目文件夹可以同时和一个基础平台文件夹相关联;也就是说,不同项目所公用或共用的基础平台文件夹可以为同一个,而项目文件夹中只保存与基础平台文件夹的差异化文件。但是,在现有技术中,并不能实现基础平台代码的重用,这是因为,开发工程师在开发每个项目时,只能为每一个项目建立一个代码分支,该代码分支需要包括完整的基础平台,从而,直接在相应的基础平台文件上进行修改,生成项目所需文件。
因此,根据本发明实施例提供的软件开发方法,可以大大节省系统存储空间,而且能够实现基础平台代码的重用,从而在进行多个项目的同时开发时,大大提高项目开发速度。
实施例二
参照图2,示出了本发明的一种软件开发方法实施例的步骤流程图,具体可以包括:
步骤201、确定第一项目需求对应的项目文件目录;
在基于第一项目需求进行软件开发时,需要先确定第一项目需求所对应的项目文件目录。
步骤202、根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下;和/或,根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下;
步骤201中,确定第一项目需求对应的项目文件目录之后,通过步骤202来生成所述项目文件目录下的项目文件,所述项目文件包括:第一项目更新文件和/或第一项目新增文件。上述项目文件目录下的项目文件是根据第一项目需求来生成的。
具体的,第一项目需求可以为针对不同终端进行系统设计时所确定的需求,例如,可以包括硬件驱动需求和软件需求;其中,硬件驱动需求是指不同终端针对具体硬件参数所需要配备的驱动程序;所述软件需求具体可以包括:用户功能、开关机画面、系统应用界面、预装软件等等。
具体的,所述终端可以是手机、平板电脑、PDA、便携式电脑、个人电脑等等。
基础平台文件目录下保存有用于进行项目开发的基础平台文件,该基础平台已经具备系统开发中的缺省功能。举例来说,针对安卓开发,这里的基础平台文件可以是指安卓原生平台文件,或者,是不同品牌厂商,如,高通,针对不同芯片在安卓原生平台基础上所设计的原生平台。
这一步骤中,需要依据第一项目需求对基础平台文件目录下的基础平台文件进行更新,这种更新包括:对基础平台文件进行修改和向基础平台文件目录下添加新文件两种。但是更新的文件全部保存于项目文件目录下;
将对基础平台文件的修改文件保存至项目文件目录下,其具体步骤包括:根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下。其中,根据所述第一项目需求确定第一目标文件对应的第一项目更新文件,具体是指,根据第一项目需求将第一目标文件修改为第一项目更新文件。
将向基础平台文件目录下添加的文件保存于项目文件目录下,其具体步骤包括:根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下。
这一步骤中,对基础平台文件目录下的文件进行更新时,更新前和更新后的文件必须具备相同的文件目录结构。具体的,所述更新前和更新后的文件具备相同的文件目录结构是指:所述更新前的文件(即,基础平台文件)与所述更新后的文件(即,第一项目更新文件和/或第一项目新增文件)具备相同的存储路径和文件名。其中,所述相同的文件目录结构包括:相同的存储路径和文件名。
具体的,所述对基础平台文件目录下的文件进行更新包括:
对基础平台文件目录下的第一目标文件进行修改和/或向基础平台文件目录下添加新文件。
具体的,根据第一项目需求对基础平台文件目录下的文件进行更新之后,将更新后的文件保存于项目文件目录下,这样基础平台文件夹下仍保存基础平台文件,而软件开发过程中,在基础平台上所进行的更新全部存储于项目文件夹内。当进行多个项目的开发时,可以设置不同的项目文件夹,不同项目对应的更新后的文件保存在相应的项目文件夹下。
具体的,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
步骤203、确定第二项目需求对应的需求文件目录;
在基于第二项目需求进行软件开发时,需要先确定第二项目需求所对应的需求文件目录。
步骤204、根据所述第二项目需求和项目文件目录下的项目文件确定出需要修改的第二目标文件;根据所述第二项目需求确定第二目标文件对应的第二项目更新文件;将所述第二项目更新文件保存至所述需求文件目录下;和/或,根据所述第二项目需求确定需要向项目文件目录下增加的第二项目新增文件;将所述第二项目新增文件保存至所述需求文件目录下;
在确定第二项目需求所对应的需求文件目录,需要依据步骤204生成需求文件目录下的需求文件,所述需求文件包括:第二项目更新文件和/或第二项目新增文件;具体的,上述需求文件目录下的需求文件是根据第一项目需求生成的。
具体的,与第一项目需求相类似,第二项目需求也可以为针对不同终端进行系统设计时所确定的需求,例如,可以包括硬件驱动需求和软件需求;其中,硬件驱动需求是指针对不同终端针对具体硬件参数所需要配备的驱动程序;所述软件需求具体可以包括:用户功能、开关机画面、系统应用界面、预装软件等等。该步骤中,第二项目需求在依据第一项目需求所设计的软件基础上进行设计,因此,第二项目需求应该是与第一项目需求存在较小差别的需求。
这一步骤中,需要依据第二项目需求对项目文件目录下的项目文件(包括第一项目更新文件和/或第一项目新增文件)进行更新,这种更新包括:对项目文件进行修改和向项目文件目录下添加新文件两种。但是更新的文件全部保存于需求文件目录下。
将对项目文件的修改文件保存于需求文件目录下,其具体步骤包括:根据所述第二项目需求和项目文件目录下的项目文件确定出需要修改的第二目标文件;根据所述第项目需求确定第二目标文件对应的第二项目更新文件;将所述第二项目更新文件保存至所述需求文件目录下。其中,根据所述第二项目需求确定第二目标文件对应的第二项目更新文件,具体是指,根据第二项目需求将第二目标文件修改为第二项目更新文件。
将向项目文件目录下添加的文件保存于需求文件目录下,其具体步骤包括:根据所述第二项目需求确定需要向项目文件目录下增加的第二项目新增文件;将所述第二项目新增文件保存至所述需求文件目录下。
这一步骤中,对项目文件目录下的文件进行更新时,更新前和更新后的文件必须具备相同的文件目录结构。具体的,所述更新前和更新后的文件具备相同的文件目录结构是指:所述更新前的文件(即,项目文件)与所述更新后的文件(即,第二项目更新文件和/或第二项目新增文件)具备相同的存储路径和文件名。其中,所述相同的文件目录结构包括:相同的存储路径和文件名。
具体的,所述对项目文件目录下的文件进行更新包括:
对项目文件目录下的文件进行修改和/或向项目文件目录下添加新文件。
具体的,根据第二项目需求对项目文件目录下的文件进行更新之后,将更新后的文件保存于需求文件目录下,这样,项目文件夹下仍保存项目文件,而软件开发过程中,在项目文件基础上所进行的更新全部存储于需求文件夹内。需求文件夹内存储的文件(包括:第二项目更新文件和/或第二项目新增文件)统称为需求文件。当在同一个项目文件基础上,进行多个不同需求的开发时,可以设置不同的需求文件夹,不同需求所对应的更新后的文件保存在相应的需求文件夹下。
其中,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件;
所述需求文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
在本发明的另一种可选实施例中,所述方法还包括:通过以下方式对项目文件进行编译:
加载所述基础平台文件目录中的基础平台文件;
用所述项目文件目录中的项目文件(即,第一项目更新文件和/或第一项目新增文件)替换所述基础平台文件目录中与所述项目文件同名的基础平台文件,生成第一待编译文件;
对第一待编译文件进行编译,生成编译结果。
因此,本发明实施例二所提供的方法,可以基于基础平台文件和项目文件来生成满足第一项目需求的软件。
在本发明的又一种可选实施例中,所述方法还包括:通过以下方式对需求文件夹进行编译:
加载所述基础平台文件目录内的基础平台文件;
用所述项目文件目录中的项目文件(即,第一项目更新文件和/或第一项目新增文件)替换基础平台文件目录内与所述项目文件同名的基础平台文件,生成第一待编译文件;
用需求文件目录中的需求文件(即,第二项目更新文件和/或第二项目新增文件)替换第一待编译文件目录中与所述需求文件同名的文件,生成第二待编译文件;
对第二待编译文件进行编译,生成编译结果。
因此,本发明实施例二所提供的方法,可以基于基础平台文件、项目文件及需求文件来生成满足第二项目需求的软件。
一个示例性的基础平台文件夹、项目文件夹和需求文件夹之间的结构关系如图3所示,项目文件夹1根据需求1生成,项目文件夹2根据需求2生成;需求3和需求4与需求1相类似,因此,为开发需求3和需求4所对应的软件产品,在项目文件夹1的基础上进一步生成需求文件夹1(根据需求3生成)和需求文件夹2(根据需求4生成);需求5和需求2功能相类似,因此,可以直接在项目文件夹2的基础上依据需求5生成需求文件夹3。上述所有文件夹均具备相同的文件目录结构,即,同名文件的存储路径是完全相同的。因此,从逻辑上来说,图3中的文件结构具有继承关系,即,项目文件夹1和项目文件夹2继承于基础平台文件夹、需求文件夹1和需求文件夹2又继承于项目文件夹1,需求文件夹3继承于项目文件夹2。因此,图3的文件结构中,可以对应五种不同的软件产品,这五种软件产品分别对应需求1至需求5。
需要说明的是,从逻辑上来讲,项目文件继承于相应的基础平台文件,而需求文件继承于相应的项目文件,即,基础平台文件夹、项目文件夹和需求文件夹之间在逻辑上形成了三级目录,但是,在实际存储过程中,这三类目录的存储方式是不受限制的,可以以三级目录的方式存储也可以以其它方式存储,常见的存储方式中,项目文件夹和需求文件夹都保存于基础平台文件夹之下,而各个文件夹之间具有相同的文件目录结构;仍以图3为例,在实际实现中,通常将项目文件夹和需求文件夹都放在基础平台文件夹下,这样,在预编译时,能够通过脚本控制实现上述三级目录的合并与顺序替换。
上面提到了三类文件夹具备相同的文件目录结构,换句话说,项目文件夹和需求文件夹是与基础平台文件夹的目录结构相同,也就是,三类文件夹具有相同的相对路径。
该示例中,假设,基础平台文件夹存储目录是/build/tools,而项目文件夹下的文件的目录结构也必须是/build/tools,需要文件夹下的文件的目录结构也必须是/build/tools。
例如,基础平台目录下的/packages/apps/Settings/res/values/config.xml文件内容如下:
<bool name="config_show_select_battery_data_item">false</bool>;
根据项目1的需求,需要将所述文件中的内修改成true,这时,可以在该项目1文件夹目录下创建一个具有相同存储路径的文件:/packages/apps/Settings/res/values/config.xml,并将其内容修改为:
<bool name="config_show_select_battery_data_item">true</bool>;
这样,就完成了对基础平台目录文件的更新。
根据上述方案生成项目文件夹或需求文件夹后,当需要对需求3对应的文件进行编译时,首先加载基础平台文件夹内的文件,之后用项目文件夹1中的文件替换基础平台文件夹内同名的文件,生成第一待编译文件;之后,再利用需求文件夹1中的文件替换第一待编译文件中的文件,生成第二待编译文件,这样对第二待编译文件进行编译,即可生成需求3所对应的编译结果。举例来说,在预处理时,将项目文件夹1的目录下的/build/tools中的所有文件复制到基础平台文件夹目录下的/build/tools,从而生成第一待编译文件,之后,,将需求文件夹1中的目录下的/build/tools中的所有文件复制到第一待编文件夹目录下的/build/tools,从而生成第二待编译文件,并对所述生成的第二待编译文件进行编译,即可生成需求3所对应的编译结果,也就是,生成需求3所对应的软件产品。
当需要对需求2对应的文件进行编译时,首先加载基础平台文件夹内的文件,之后用项目文件夹2中的文件替换基础平台文件夹内同名的文件,生成第一待编译文件;之后,对第一待编译文件进行编译,即可生成需求2所对应的编译结果。举例来说,在预处理时,将项目文件夹2的目录下的/build/tools中的所有文件复制到基础平台文件夹目录下的/build/tools,从而生成第一待编译文件,并对所述生成的第一待编译文件进行编译,即可生成需求2所对应的编译结果,也就是,生成需求2所对应的软件产品。
可见,利用本发明实施例二提供的软件开发方法,确定第一项目需求对应的项目文件目录,所述方法还包括:根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下;和/或,根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下;确定第二项目需求对应的需求文件目录;根据所述第二项目需求和项目文件目录下的项目文件确定出需要修改的第二目标文件;根据所述第二项目需求确定第二目标文件对应的第二项目更新文件;将所述第二项目更新文件保存至所述需求文件目录下;和/或,根据所述第二项目需求确定需要向项目文件目录下增加的第二项目新增文件;将所述第二项目新增文件保存至所述需求文件目录下;其中,所述项目文件包括:第一项目新增文件和/或第一项目更新文件。这样,本发明实施例二提供的软件开发方法不仅可以基于基础平台文件生成不同的项目文件(即,第一项目更新文件和/或第一项目新增文件),还可以在此基础上,基于不同的项目文件生成不同的需求文件(即,第二项目更新文件和/或第二项目新增文件);从而根据基础平台文件、项目文件及需求文件生成软件。因此,本发明实施例二提供的方法,不仅能够实现基础平台代码的重用,从而实现多个项目的快速开发;还可以以任何一个项目文件为基础进行需求开发,实现项目文件的重用,从而促进项目开发速度。
装置实施例
参照图4,示出了本发明一种软件开发装置实施例的结构框图,所述装置包括:目录确定模块41和文件生成模块42;其中,
所述目录确定模块41,用于确定第一项目需求对应的项目文件目录;
所述文件生成模块42,用于根据所述第一项目需求生成所述项目文件目录下的项目文件,所述项目文件包括:第一项目更新文件和/或第一项目新增文件。
其中,所述文件生成模块42,包括:文件确定子模块和文件保存子模块;其中,
所述文件确定子模块,用于根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件,以及根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;还用于根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;
所述文件保存子模块,用于将所述第一项目更新文件和/或第一项目新增文件保存于项目文件目录下。
上述方案中,所述目录确定模块41,还用于确定第二项目需求对应的需求文件目录;所述文件生成模块42,还用于根据所述第二项目需求生成所述需求文件目录下的需求文件,所述需求文件包括:第二项目更新文件和/或第二项目新增文件。
所述文件确定子模块,还用于根据所述第二项目需求和项目文件目录下的项目文件确定出需要修改的第二目标文件,以及根据所述第二项目需求确定第二目标文件对应的第二项目更新文件;还用于根据所述第二项目需求确定需要向项目文件目录下增加的第二项目新增文件;
所述文件保存子模块,还用于将所述第二项目更新文件和/或第二项目新增文件保存于所述需求文件目录下。
上述方案中,所述基础平台文件与所述第一项目更新文件和/或第一项目新增文件和/或所述第二项目新增文件和/或第二项目更新文件具备相同的文件目录结构;
其中,所述相同的文件目录结构包括:相同的存储路径和文件名。
具体的,所述基础平台文件目录下保存的基础平台文件为以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件目录下保存的项目文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
所述需求文件目录下保存的需求文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
在本发明的另一种可选实施例中,所述装置还包括编译模块43,用于对项目文件或需求文件进行编译。
所述编译模块43包括:加载子模块、替换子模块和编译子模块。
当对项目文件进行编译时,所述加载子模块,用于加载所述基础平台文件目录中的基础平台文件;
所述替换子模块,用于用所述项目文件目录中的项目文件替换所述基础平台文件目录中与所述项目文件同名的基础平台文件,生成第一待编译文件;
所述编译子模块,用于对第一待编译文件进行编译,生成编译结果。
当对需求文件进行编译时,所述加载子模块,用于加载所述基础平台文件目录内的基础平台文件;
所述替换子模块,用于用所述项目文件目录中的项目文件替换基础平台文件目录内与所述项目文件同名的基础平台文件,生成第一待编译文件;
所述替换子模块,还用于用需求文件目录中的需求文件替换第一待编译文件目录中与所述需求文件同名的文件,生成第二待编译文件;
所述编译子模块,用于对第二待编译文件进行编译,生成编译结果。
在具体实施过程中,上述目录确定模块41、文件生成模块42、文件确定子模块、文件保存子模块、编译模块43、修改子模块、添加子模块、加载子模块、替换子模块和编译子模块均可以由数据处理设备内的中央处理器(CPU,Central Processing Unit)、微处理器(MPU,Micro Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程逻辑阵列(FPGA,Field-Programmable GateArray)来实现。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种软件开发方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,根据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种软件开发方法,其特征在于,所述方法包括:
确定第一项目需求对应的项目文件目录;
根据所述第一项目需求生成所述项目文件目录下的项目文件,所述项目文件包括:第一项目更新文件和/或第一项目新增文件;
所述根据所述第一项目需求生成项目文件目录下的项目文件,包括:
根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件;根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;将所述第一项目更新文件保存至所述项目文件目录下;和/或,
根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;将所述第一项目新增文件保存至所述项目文件目录下。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定第二项目需求对应的需求文件目录;
根据所述第二项目需求生成所述需求文件目录下的需求文件,所述需求文件包括:第二项目更新文件和/或第二项目新增文件;
所述根据所述第二项目需求生成需求文件目录下的需求文件,包括:
根据所述第二项目需求和项目文件目录下的项目文件确定出需要修改的第二目标文件;根据所述第二项目需求确定第二目标文件对应的第二项目更新文件;将所述第二项目更新文件保存至所述需求文件目录下;和/或,
根据所述第二项目需求确定需要向项目文件目录下增加的第二项目新增文件;将所述第二项目新增文件保存至所述需求文件目录下。
3.根据权利要求2所述的方法,其特征在于,所述项目文件继承于相应的所述基础平台文件,而所述需求文件继承于相应的所述项目文件。
4.根据权利要求1所述的方法,其特征在于,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
5.根据权利要求2所述的方法,其特征在于,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件;
所述需求文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:通过以下方式对项目文件进行编译:
加载所述基础平台文件目录中的基础平台文件;
用所述项目文件目录中的项目文件替换所述基础平台文件目录中与所述项目文件同名的基础平台文件,生成第一待编译文件;
对第一待编译文件进行编译,生成编译结果。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:通过以下方式对需求文件进行编译:
加载所述基础平台文件目录内的基础平台文件;
用所述项目文件目录中的项目文件替换所述基础平台文件目录中与所述项目文件同名的基础平台文件,生成第一待编译文件;
用需求文件目录中的需求文件替换所述第一待编译文件目录中与所述需求文件同名的文件,生成第二待编译文件;
对第二待编译文件进行编译,生成编译结果。
8.一种软件开发装置,其特征在于,所述装置包括:目录确定模块和文件生成模块;其中,
所述目录确定模块,用于确定第一项目需求对应的项目文件目录;
所述文件生成模块,用于根据所述第一项目需求生成所述项目文件目录下的项目文件,所述项目文件包括:第一项目更新文件和/或第一项目新增文件;
其中,所述文件生成模块,包括:文件确定子模块和文件保存子模块;其中,
所述文件确定子模块,用于根据所述第一项目需求和基础平台文件目录下的基础平台文件确定出需要修改的第一目标文件,以及根据所述第一项目需求确定第一目标文件对应的第一项目更新文件;还用于根据所述第一项目需求确定需要向基础平台文件目录下增加的第一项目新增文件;
所述文件保存子模块,用于将所述第一项目更新文件和/或第一项目新增文件保存于项目文件目录下。
9.根据权利要求8所述的装置,其特征在于,
所述目录确定模块,还用于确定第二项目需求对应的需求文件目录;
所述文件生成模块,还用于根据所述第二项目需求生成所述需求文件目录下的需求文件,所述需求文件包括:第二项目更新文件和/或第二项目新增文件;
所述文件确定子模块,还用于根据所述第二项目需求和项目文件目录下的项目文件确定出需要修改的第二目标文件,以及根据所述第二项目需求确定第二目标文件对应的第二项目更新文件;还用于根据所述第二项目需求确定需要向项目文件目录下增加的第二项目新增文件;
所述文件保存子模块,还用于将所述第二项目更新文件和/或第二项目新增文件保存于所述需求文件目录下。
10.根据权利要求9所述的装置,其特征在于,所述项目文件继承于相应的所述基础平台文件,而所述需求文件继承于相应的所述项目文件。
11.根据权利要求8所述的装置,其特征在于,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
12.根据权利要求9所述的装置,其特征在于,所述基础平台文件包括以下文件至少其中之一:
驱动文件、框架文件、应用程序和第三方文件;
所述项目文件包括有以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件;
所述需求文件包括以下文件至少其中之一:
项目配置文件、驱动差异文件及资源文件。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:编译模块,用于对项目文件或需求文件进行编译;
所述编译模块包括:加载子模块、替换子模块和编译子模块;
当对项目文件进行编译时,所述加载子模块,用于加载所述基础平台文件目录中的基础平台文件;
所述替换子模块,用于用所述项目文件目录中的项目文件替换所述基础平台文件目录中与所述项目文件同名的基础平台文件,生成第一待编译文件;
所述编译子模块,用于对第一待编译文件进行编译,生成编译结果。
14.根据权利要求13所述的装置,其特征在于,当对需求文件进行编译时,所述加载子模块,用于加载所述基础平台文件目录内的基础平台文件;
所述替换子模块,用于用所述项目文件目录中的项目文件替换基础平台文件目录内与所述项目文件同名的基础平台文件,生成第一待编译文件;
所述替换子模块,还用于用需求文件目录中的需求文件替换第一待编译文件目录中与所述需求文件同名的文件,生成第二待编译文件;
所述编译子模块,用于对第二待编译文件进行编译,生成编译结果。
CN201510785091.9A 2015-11-13 2015-11-13 一种软件开发方法和装置 Active CN105373384B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510785091.9A CN105373384B (zh) 2015-11-13 2015-11-13 一种软件开发方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510785091.9A CN105373384B (zh) 2015-11-13 2015-11-13 一种软件开发方法和装置

Publications (2)

Publication Number Publication Date
CN105373384A CN105373384A (zh) 2016-03-02
CN105373384B true CN105373384B (zh) 2018-07-31

Family

ID=55375612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510785091.9A Active CN105373384B (zh) 2015-11-13 2015-11-13 一种软件开发方法和装置

Country Status (1)

Country Link
CN (1) CN105373384B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893259B (zh) * 2016-03-31 2019-04-09 广州华多网络科技有限公司 代码检测系统、方法及装置
CN107277120B (zh) * 2017-06-05 2019-12-17 广州视源电子科技股份有限公司 配置文件管理方法、装置以及服务配置方法与系统
CN113110865A (zh) * 2021-04-21 2021-07-13 北京字跳网络技术有限公司 一种服务器热更新方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477460A (zh) * 2008-12-17 2009-07-08 三星电子(中国)研发中心 浏览器应用在手持设备上的制作和定制方法
CN101763258A (zh) * 2009-12-31 2010-06-30 深圳联友科技有限公司 一种软件复用方法及系统
CN102722370A (zh) * 2012-05-24 2012-10-10 南京华设科技股份有限公司 Android模块化开发方法
CN104424159A (zh) * 2013-09-04 2015-03-18 上海复旦微电子集团股份有限公司 软件项目文档生成方法和软件项目文档生成器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058660B2 (en) * 2002-10-02 2006-06-06 Bank One Corporation System and method for network-based project management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477460A (zh) * 2008-12-17 2009-07-08 三星电子(中国)研发中心 浏览器应用在手持设备上的制作和定制方法
CN101763258A (zh) * 2009-12-31 2010-06-30 深圳联友科技有限公司 一种软件复用方法及系统
CN102722370A (zh) * 2012-05-24 2012-10-10 南京华设科技股份有限公司 Android模块化开发方法
CN104424159A (zh) * 2013-09-04 2015-03-18 上海复旦微电子集团股份有限公司 软件项目文档生成方法和软件项目文档生成器

Also Published As

Publication number Publication date
CN105373384A (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
US10324696B2 (en) Dynamic container deployment with parallel conditional layers
JP6198939B2 (ja) ドライバをロードする方法及び組み込みデバイス
US7895566B2 (en) System and method for building a deployable component based application
CN105893094A (zh) 应用程序插件化的实现方法和装置
US11288055B2 (en) Model-based differencing to selectively generate and deploy images in a target computing environment
US20140196022A1 (en) Cloud Based Application Packaging
US9841953B2 (en) Pluggable components for runtime-image generation
US9912759B2 (en) Dynamically generating solution stacks
CN110098954A (zh) Hyperledger Fabric网络的创建方法、控制器及存储介质
CN106020877A (zh) 系统环境配置自动更新方法及装置
CN109344619A (zh) 应用程序的热修复方法和装置
CN105373384B (zh) 一种软件开发方法和装置
CN104731622A (zh) 一种应用程序的加载方法、装置和移动终端
CN109857432A (zh) 一种游戏应用的热更新方法和装置
US20120159515A1 (en) Sharing object representations
CN117112122A (zh) 一种集群部署方法和装置
US10318262B2 (en) Smart hashing to reduce server memory usage in a distributed system
CN114064083A (zh) 通过在配置中心自定义模板部署云原生应用的方法及应用
KR102141749B1 (ko) App 프로그램 실행 방법 및 장치
CN106557343A (zh) 生成功能应用及加载资源的方法及装置
CN111176912A (zh) 一种继电保护装置硬件配置信息管理系统和方法
CN108334374A (zh) 组件动态加载与执行的方法和装置
Prehofer et al. From IoT mashups to model-based IoT
US20180341475A1 (en) Just In Time Deployment with Package Managers
CN109144601A (zh) 在ios应用内调用函数的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: 300308 unit 602, building 4, financial center, No.158 West 3rd road, Tianjin Free Trade Experimental Zone (Airport Economic Zone), Binhai New District, Tianjin

Patentee after: DATANG TERMINAL TECHNOLOGY Co.,Ltd.

Address before: 300308 No. 1, building 4, financial center, 158 West three road, Tianjin Airport Economic Zone, Binhai New Area, Tianjin, 602-3

Patentee before: DATANG TERMINAL TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder