一种应用程序的安装方法及终端设备与流程

文档序号:15557441发布日期:2018-09-29 01:27阅读:166来源:国知局

本发明涉及计算机领域,尤其涉及一种应用程序的安装方法及终端设备。



背景技术:

目前,android系统的终端产品已经成为了智能终端设备市场的主流产品。为提供更加丰富的功能体验,终端设备厂商一般会选择与第三方应用提供商合作,将体验好且受用户欢迎的应用程序预置为产品的系统应用,这种方式已经成为智能终端设备市场的主流趋势。

现在应用程序的很多算法或是与平台相关的功能都采用更加高效的c语言来实现,并以库文件的形式在应用程序运行时进行动态加载。进而在将应用程序作为系统应用进行预置时,在将apk(androidpackage,安卓安装包)文件放置在/system目录下的相应位置后,还需要将应用程序的库文件单独放置到/system/lib目录下,以使在应用程序运行时通过通用接口来加载/system/lib目录下相应的库文件。

针对上述现有技术,发明人发现:随着应用程序的功能逐渐强大,库文件也越来越多,当需要预置的应用程序较多时,需要将每个预置的应用程序的库文件放置到/system/lib目录下,这就可能出现由于库文件同名所造成库文件冲突的问题,进而导致部分应用程序无法正确加载其库文件,使得应用程序的功能异常。



技术实现要素:

本发明提供一种应用程序的安装方法及终端设备,能够避免由于终端设备中预置的应用程序的库文件重名而造成库文件冲突,进而影响应用程序正常运行的问题。

为了实现上述目的,本发明实施例采用如下技术方案:

第一方面,本发明提供一种应用程序的安装方法,应用于采用android安卓操作系统的终端设备,该方法包括:获取系统分区中应用程序的apk安卓安装包文件,其中apk文件中包含应用程序的库文件;将应用程序的库文件保存至用户分区中应用程序对应的用户目录下,以使应用程序运行时通过通用接口加载用户目录下的应用程序的库文件。

第二方面,本发明提供一种终端设备,该终端设备采用android安卓操作系统,该终端设备包括:获取单元,用于获取系统分区中应用程序的apk安卓安装包文件,其中apk文件中包含应用程序的库文件;库文件安装单元,用于在获取单元获取apk文件后,将应用程序的库文件保存至用户分区中应用程序对应的用户目录下,以使应用程序运行时通过通用接口加载用户目录下的应用程序的库文件。

第三方面,提供一种终端设备,包括:通信接口、处理器、存储器、总线;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述终端设备运行时,所述处理器执行所述存储器存储的计算机执行指令,以使所述终端设备执行如上述第一方面提供的方法。

第四方面,提供一种计算机存储介质,包括指令,当其在计算机上运行时,使得所述计算机执行如上述第一方面提供的方法。

本发明实施例提供的应用程序的安装方法,考虑到安卓系统中应用程序运行时,一般通过通用接口方法system.loadlibrary来实现库文件的加载。而system.loadlibrary在实际执行过程中会通过库文件名查找的方式加载库文件,其查找的过程具体包括:先在系统分区中的库文件目录(通常为/system/lib)下查找应用程序对应的库文件,若有则加载;若系统分区中的库文件目录下没有查找到对应的库文件,则在用户分区中的库文件目录下的该应用程序对应的用户目录下查找对应库文件,并加载该库文件。进而本发明实施例中,通过将预置的应用程序的库文件保存至用户分区中该应用程序对应的用户目录下的方式,避免发生现有技术中预置应用程序的库文件都混放在系统分区中的库文件目录下的情况,进而避免了当出现应用程序的库文件重名时可能出现库文件冲突的问题发生。另外,在本发明实施例中是在操作系统的只读存储器镜像rom写入终端设备后并且操作系统启动后,将库文件保存至用户分区的相应目录下的,因此还省去了在将预置应用程序集成至rom中时,需要单另将apk文件解压,从中取出库文件,并将库文件放置与项目工程sdk(softwaredevelopmentkit,软件开发工具包)的system/lib目录下的步骤,简化了apk库文件的集成步骤。

可以理解地,上述提供的任一种终端设备或计算机存储介质均用于执行上文所提供的第一方面对应的方法,因此,其所能达到的有益效果可参考上文第一方面的方法以及下文具体实施方式中对应的方案的有益效果,此处不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明的实施例提供的一种应用程序的安装方法的流程图;

图2为本发明的实施例提供的另一种应用程序的安装方法的流程图;

图3为本发明的实施例提供的又一种应用程序的安装方法的流程图;

图4为本发明的实施例提供的一种终端设备的结构示意图;

图5为本发明的实施例提供的另一种终端设备的结构示意图;

图6为本发明的实施例提供的又一种终端设备的结构示意图。

具体实施方式

下面结合附图,对本发明的实施例进行描述。

首先,对本发明的发明原理进行介绍:

目前,采用android安卓操作系统的终端设备中的应用程序分为预置应用(也称系统应用)和用户应用。预置应用即终端设备出厂时预置的应用,其特点是:应用程序保存在只读属性的系统分区的应用安装目录下,通常指/system/app目录下。而应用程序对应的库文件则保存在系统分区中/system/lib目录下,并且不可删除。而用户应用即用户自主安装的应用,它的特点是:应用保存在读写权限的用户分区即/data分区,对应的库文件在安装时自动保存在用户分区中/data/app-lib目录下的应用程序对应的用户目录下,可自行卸载。其中,由于终端设备的各项预置应用的库文件都保存在系统分区中/system/lib目录下,因此当多个应用程序采用了同名的库文件时,就会出现库文件冲突的情况,此时只能保证其中某一个库文件,如果其库文件实现的功能存在差异,那么会导致某个应用的功能异常或者运行时退出的问题。

基于上述情况,本发明发明人考虑到安卓系统中应用程序运行时,一般通过通用接口方法system.loadlibrary来实现库文件的加载。而system.loadlibrary在实际执行过程中会通过库文件名查找的方式加载库文件,其查找的过程具体包括:先在系统分区中的库文件目录(通常为/system/lib)下查找应用程序对应的库文件,若有则加载;若系统分区中的库文件目录下没有查找到对应的库文件,则在用户分区中的库文件目录下的该应用程序对应的用户目录下查找对应库文件,并加载该库文件。进而本发明实施例中,通过将预置的应用程序的库文件保存至用户分区中该应用程序对应的用户目录下的方式,避免发生现有技术中预置应用程序的库文件都混放在系统分区中的库文件目录下的情况,进而避免了当出现应用程序的库文件重名时可能出现库文件冲突的问题发生。另外,在本发明实施例中是在操作系统的只读存储器镜像rom写入终端设备后并且操作系统启动后,将库文件保存至用户分区的相应目录下的,因此还省去了在将预置应用程序集成至rom中时,需要单另将apk文件解压,从中取出库文件,并将库文件放置与项目工程sdk(softwaredevelopmentkit,软件开发工具包)的system/lib目录下的步骤,简化了apk库文件的集成步骤。

实施例一:

基于上述发明原理,本发明提供一种应用程序的安装方法,如图1所示,该方法包括:

s101、获取系统分区中应用程序的apk文件。其中,apk文件中包含了应用程序的库文件。

具体的,在制作终端设备的rom(readonlymemoryimage,只读内存镜像)版本时,可以将该apk文件集成在rom版本中,以使在将rom版本写入终端设备后,将apk文件存入只读权限的系统分区中的相应目录下,从而将该应用程序预置在终端设备中。

s102、将应用程序的库文件保存至用户分区中应用程序对应的用户目录下。以使在该应用程序运行时能够通过通用接口加载用户目录下的应用程序的库文件。

示例性的,在用户分区中,通常将应用程序的库文件存储在/data/app-lib目录下应用程序对应的存储目录下。例如将应用程序a的库文件保存在/data/app-lib/a下,将应用程序b的库文件保存在/data/app-lib/b下。进而本发明中通过将预置在系统分区中的应用程序的库文件保存至用户分区中该应用程序对应的用户目录下,从而避免了由于多个应用程序的库文件同名,而导致库文件冲突的情况。

另外,在现有技术中,在将应用程序作为系统应用进行预置时,需要将apk(androidpackage,安卓安装包)文件放置在/system目录下的相应位置,以及将应用程序的库文件单独放置到/system/lib目录下。具体的,将应用程序进行预置的一般步骤包括如下:第一、手动将应用程序的apk文件解压,取出apk文件中lib目录下所包含的库文件;第二、将apk文件放置于项目工程sdk(softwaredevelopmentkit,软件开发工具包)的system/app或/system/priv_app目录下;第三、将取出的库文件放置于项目工程sdk的system/lib目录;第四、通过项目工程编译命令进行编译打包,并生成rom版本。可以看出,现有技术中,为了将库文件放置到系统分区中system/lib目录下,需要手动将apk文件解压,并从中取出库文件放置到sdk的system/lib目录下。这样不仅增加了开发人员的工作量,而且这种人工手动操作的过程也容易出错,可能导致apk的库文件被遗漏。而在本发明中,由于库文件是保存在用户分区中应用程序对应的用户目录下的,因此可以在安卓系统启动后,通过包管理服务程序packagemanagerserver,对库文件进行相应安装,避免了手动放置库文件的过程。而在编译生成rom版本时,通过本发明的方法,仅需要将应用程序的apk文件放置在项目工程sdk的相应目录下,之后编译生成rom版本即可,省去了应用程序库文件预置安装的过程,降低了开发成本。

实施例二:

基于上述实施例一所提供的应用程序的安装方法,在一种实现方式中,apk文件存储在系统分区中的应用安装目录下。具体的,系统分区中的应用安装目录通常为/system/app或者/system/priv_app。即在生成rom版本时,将apk文件放置在项目工程sdk的/system/app或者/system/priv_app目录下。进而,如图2所示,本发明所提供的应用程序的安装方法,具体包括:

s201、利用packagemanagerserver包管理服务程序对系统分区中的应用安装目录进行扫描,获取apk文件。

其中,在android系统启动后,systemserver启动android包管理服务程序packagemanagerserver。在packagemanagerserver初始化完成后,扫描/system/app目录下所有的apk文件,进而获取应用程序的apk文件。

s202、根据apk文件,确定应用程序信息。

具体的,packagemanagerserver调用packageparser解析apk文件中的配置文件androidmenifest.xml,进而确定该应用程序的版本号等信息。

s203、在确定包管理服务程序中不存在该应用程序信息后,将该应用程序信息保存至包管理服务程序。

具体的,在确定packagemanagerserver中不存在该应用程序信息后,通过调用packageparser将应用程序信息保存至packagemanagerserver。

s204、在确定包管理服务程序中不存在该应用程序信息后,将该应用程序的库文件保存至用户分区中该应用程序对应的用户目录下。

具体的,当packagemanagerserver中不存在该应用程序信息时,即就说明终端设备中没有安装该应用程序,进而本发明中通过将该应用程序信息保存至包管理服务程序并将库文件保存至用户分区中对应的用户目录下的方式,实现对应用程序以及对库文件的安装。

本发明实施例中通过将apk文件存储在系统分区中的应用安装目录下,并利用packagemanagerserver在对应用程序的安装的过程中实现对库文件的安装,使终端设备在开机启动后当判断当前未安装该应用程序时,对该应用程序以及库文件自动安装。

在一种实现方式中,考虑到由于本发明实施例中将应用程序的库文件保存到了可读写的用户分区中,为了避免因为用户误操作等原因导致库文件被删除的问题,在确定包管理服务程序中存在应用程序信息后,本发明实施例所提供的方法还包括:

s205、判断用户分区中是否存在应用程序对应的用户目录,以及用户目录中是否保存有应用程序的库文件。

具体的,packagemanagerserver判断data目录下是否存在当前应用程序的用户目录。

s206、在确定用户分区中不存在应用程序对应的用户目录后,建立应用程序的用户目录,并将应用程序的库文件保存至用户分区中应用程序对应的用户目录下。

具体的,当packagemanagerserver判断data目录不存在应用程序的用户目录后,则创建该用户目录,以使将应用程序的库文件保存至用户分区中应用程序对应的用户目录下。

再例如,当packagemanagerserver读取应用程序的apk文件的包名,并判断/data/app-lib目录下不存在以包名命名的目录,则创建该目录/data/app-lib/aaa,进而将库文件拷贝至/data/app-lib/aaa目录下。

s207、在确定用户分区中存在应用程序对应的用户目录,并且用户目录中没有应用程序的库文件后,将应用程序的库文件保存至用户分区中应用程序对应的用户目录下。

例如,当packagemanagerserver读取应用程序的apk文件的包名,并判断/data/app-lib目录下存在以包名命名的目录,但该目录下没有库文件,则将库文件拷贝至/data/app-lib/aaa目录下。

另外,在一种实现方式中,考虑到在终端设备使用过程中,应用程序可能会进行更新。因此在确定包管理服务程序中存在该应用程序信息后,本发明所提供的安装方法还包括:packageparser读取包管理服务程序中保存的该应用程序信息,与当前应用程序信息进行比对,若不一致则将当前应用程序信息更新至包管理服务程序。

以下结合示例,对本发明实施例二所提供的应用程序安装方法的具体实现步骤进行介绍:

首先,在安装应用程序之前,在生成终端设备的rom版本时,先要将应用程序的apk文件放置在项目工程sdk的/system/app目录下,然后编译成终端设备的rom版本。

之后,android包管理服务程序packagemanagerserver实现应用程序的安装,其中包括库文件的安装,具体包括以下步骤:

s301、android系统启动,systemserver启动android包管理服务程序packagemanagerserver。

s302、packagemanagerserver初始化完成,并扫描/system/app目录下所有的apk文件。

s303、packagemanagerserver调用packageparser解析apk文件中的配置文件androidmenifest.xml,判断当前packagemanagerserver中是否存在该应用程序信息,若不存在,则执行步骤s305;若存在,则执行步骤s304。

s304、packageparser读取已存在的应用程序版本信息,与当前应用程序信息进行比对,若不一致,则执行步骤s305;若一致,则执行步骤s306。

s305、packageparser将应用程序信息更新或保存至packagemanagerserver。

s306、packagemanagerserver判断data目录是否存在当前apk的用户目录,若不存在,则创建并执行下一步;若存在,则直接执行下一步。

s307、packagemanagerserver调用packageparser解析apk文件,并判断是否存在so库文件,若存在,则执行下一步;若不存在,则结束。

s308、packagemanagerserver读取当前apk包名,并判断data/app-lib下是否存在以包名命名目录,若没有,则创建并执行下一步;若有,则执行下一步。

s309、packagemanagerserver判断data/app-lib目录下是否存在对应的库文件,若没有,则下一步;若有,则结束。

s310、packagemanagerserver将so库文件copy至对应的data/app-lib目录下。

本发明实施例中,通过将预置的应用程序的库文件保存至用户分区中该应用程序对应的用户目录下的方式,避免发生现有技术中预置应用程序的库文件都混放在系统分区中的库文件目录下的情况,进而避免了当出现应用程序的库文件重名时可能出现库文件冲突的问题发生。另外,在本发明实施例中是在操作系统的只读存储器镜像rom写入终端设备后并且操作系统启动后,将库文件保存至用户分区的相应目录下的,因此还省去了在将预置应用程序集成至rom中时,需要单另将apk文件解压,从中取出库文件,并将库文件放置与项目工程sdk(softwaredevelopmentkit,软件开发工具包)的system/lib目录下的步骤,简化了apk库文件的集成步骤。

实施例三:

基于上述实施例一所提供的应用程序的安装方法,考虑到实施例二所提供的应用程序的安装方法中,需要对android现有的包安装机制进行修改,即对packagemanagerserver进行改进。但在实际应用中,可能不想对android现有的安装机制进行修改,即不想修改andiod系统。进而本发明实施例还提供了另一种应用程序的安装方法,其中应用程序的apk文件存储在系统分区中的私有目录下。具体的,如图3所示,该方法包括:

s402、利用预设服务程序扫描系统分区中的私有目录,获取应用程序的apk文件。

例如,在system分区中创建一个私有目录thirdapp,该目录中保存有包括上述应用程序在内的所有预置的第三方应用程序。

s403、利用预设服务程序调用系统安装接口并将apk文件安装至用户分区中。

其中将apk文件安装至用户分区中,包括:获取apk文件中包含的应用程序的库文件,并将应用程序的库文件保存至用户分区中应用程序对应的用户目录下。

具体的,本发明中通过实现一个预设服务程序,具体可以是android服务程序apk(installthidapp)。进而通过该预设服务程序,将系统分区中私有目录下的apk文件安装至用户分区中,进而将应用程序的库文件自动放置到data分区该应用程序对应的目录下,去掉手动操作过程,同时,由于不同的应用程序对应于不同的用户目录,其对应的库文件也可放置在不同的位置,有效解决了库文件重名导致的冲突问题。

在一种实现方式中,为了能够在系统启动时自动安装存储在系统分区中私有目录下的应用程序,以实现上述效果,本发明实施例所提供的安装方法在执行上述步骤s402和s403之前,还包括:

s401、检测安卓操作系统的启动,在确定安卓操作系统启动成功后,运行预设服务程序。以使预设服务程序扫描系统分区中的私有目录,获取应用程序的apk文件,以及调用系统安装接口并将apk文件安装至用户分区中。

以下结合示例,对本发明实施例二所提供的应用程序安装方法的具体实现步骤进行介绍:

首先,在生成终端设备的rom版本时,在system分区创建一个私有目录thirdapp,该目录保存所有第三方apk程序。

然后,实现一个android服务程序apk(installthidapp),该apk在android系统启动成功后自动运行,并扫描/system/thirdapp目录,对该目录下的应用程序逐一安装。具体以下步骤包括:

s1、监听系统启动成功的消息,系统启动成功则下一步。

s2、遍历system/thirdapp目录下文件,判断是否为apk文件,若存在,则下步;若不存在,则结束。

s3、解析apk文件,判断当前系统是否已经安装该apk,若已安装,则返回s2并遍历下一个apk文件;若未安装,则下一步。

s4、调用系统安装接口,对apk进行安装,系统安装的过程中,会将so库文件copy至对应的app-lib目录下。

通过本发明上述实施例所提供的应用程序的安装方法,能够使应用程序的库文件全部在系统启动的时候自动放置到data分区该应用程序对应的目录下,去掉手动操作过程。同时,不同的应用程序对应于不同的用户分区目录,其对应的库文件也可放置在不同的位置,有效解决了库文件重名导致的冲突问题。

实施例四:

基于上述业务办理方法,本发明提供一种终端设备。图4示出本发明所涉及终端设备的一种可能的结构示意图。具体的,该终端设备50包括:获取单元501、库文件安装单元502,其中:

获取单元501,用于获取系统分区中应用程序的apk安卓安装包文件,其中apk文件中包含应用程序的库文件;

库文件安装单元502,用于在获取单元501获取apk文件后,将应用程序的库文件保存至用户分区中应用程序对应的用户目录下,以使应用程序运行时通过通用接口加载用户目录下的应用程序的库文件。

在一种实现方式中,apk文件存储在系统分区中的应用安装目录下;终端设备50还包括:应用安装单元503;

获取单元501,具体用于利用packagemanagerserver包管理服务程序对系统分区中的应用安装目录进行扫描,获取apk文件;

应用安装单元503,用于在库文件安装单元502将应用程序的库文件保存至用户分区中应用程序对应的用户目录下之前,根据apk文件,确定应用程序信息;在确定包管理服务程序中不存在应用程序信息之后,将应用程序信息保存至包管理服务程序;

库文件安装单元502,具体用于在应用安装单元503确定包管理服务程序中不存在应用程序信息之后,将应用程序的库文件保存至用户分区中应用程序对应的用户目录下。

其中,可选的,库文件安装单元502,还用于:在应用安装单元503确定包管理服务程序中存在应用程序信息之后,判断用户分区中是否存在应用程序对应的用户目录,以及用户目录中是否保存有应用程序的库文件;在确定用户分区中不存在应用程序对应的用户目录后,建立应用程序对应的用户目录并将应用程序的库文件保存至用户分区中应用程序对应的用户目录下,以及在确定用户分区中存在应用程序对应的用户目录,并且用户目录中没有应用程序的库文件后,将应用程序的库文件保存至用户分区中应用程序对应的用户目录下。

在另一种实施例中apk文件存储在系统分区中的私有目录下;

获取单元501,具体用于利用预设服务程序扫描私有目录,获取apk文件;

库文件安装单元502,具体用于利用预设服务程序调用系统安装接口并将apk文件安装至用户分区中;其中将apk文件安装至用户分区中,包括:获取apk文件中包含的应用程序的库文件,并将应用程序的库文件保存至用户分区中应用程序对应的用户目录下。

其中,可选的,终端设备50还包括:启动单元504;

启动单元504,用于检测安卓操作系统的启动,并在确定安卓操作系统启动成功后,运行预设服务程序。

由于本发明实施例中的终端设备可以应用于实施上述方法实施例,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。

在采用集成的单元的情况下,附图5示出了上述实施例中所涉及的终端设备的一种可能的结构示意图。终端设备60包括:处理模块601和通信模块602。处理模块601用于对终端设备的动作进行控制管理。通信模块602用于支持终端设备与其他实体设备的通信,终端设备60还可以包括存储模块603,用于存储终端设备60的程序代码和数据。

其中,处理模块601可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块602可以是收发器、收发电路或通信接口等。存储模块603可以是存储器。

当处理模块601为处理器,通信模块602为通信接口,存储模块603为存储器时,本发明实施例所涉及的终端设备可以为附图6所示的终端设备。

参阅附图6所示,该终端设备70包括:处理器701、通信接口702、存储器703以及总线704。其中,通信接口702、处理器701以及存储器703通过总线704相互连接;总线704可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,附图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。本发明实施例还提供一种存储介质,该存储介质可以包括存储器,用于储存终端设备所用的计算机软件指令,其包含执行上述实施例中提供的业务办理方法所设计的程序代码。具体的,软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。

本发明实施例还提供一种计算机程序,该计算机程序可直接加载到存储器中,并含有软件代码,该计算机程序经由计算机载入并执行后能够实现上述实施例所提供的业务办理方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

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