轻量级移动应用虚拟化系统.pdf
![轻量级移动应用虚拟化系统.pdf_第1页](https://img.zhuanlichaxun.net/fileroot4/2021-6/2/d2c8f967-42c9-4f2e-ad2d-7c1a3ad45bb6/d2c8f967-42c9-4f2e-ad2d-7c1a3ad45bb61.gif)
![轻量级移动应用虚拟化系统.pdf_第2页](https://img.zhuanlichaxun.net/fileroot4/2021-6/2/d2c8f967-42c9-4f2e-ad2d-7c1a3ad45bb6/d2c8f967-42c9-4f2e-ad2d-7c1a3ad45bb62.gif)
![轻量级移动应用虚拟化系统.pdf_第3页](https://img.zhuanlichaxun.net/fileroot4/2021-6/2/d2c8f967-42c9-4f2e-ad2d-7c1a3ad45bb6/d2c8f967-42c9-4f2e-ad2d-7c1a3ad45bb63.gif)
《轻量级移动应用虚拟化系统.pdf》由会员分享,可在线阅读,更多相关《轻量级移动应用虚拟化系统.pdf(10页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010588083.6 (22)申请日 2020.06.24 (71)申请人 浙江大学 地址 310013 浙江省杭州市西湖区余杭塘 路866号 (72)发明人 王总辉章新豪刘沛宇陈文志 (74)专利代理机构 杭州天勤知识产权代理有限 公司 33224 代理人 曹兆霞 (51)Int.Cl. G06F 9/455(2006.01) (54)发明名称 一种轻量级移动应用虚拟化系统 (57)摘要 本发明公开了一种轻量级移动应用虚拟化 系统, 包括设于Android系统的容器启动。
2、辅助进 程和AMS进程, 用于管理容器的容器根进程; 所述 容器启动辅助进程构建Intent数据包, 并根据 Intent数据包创建并发送创建虚拟化应用请求 至所述AMS进程; 所述AMS进程接收创建虚拟化应 用请求并解析接收的Intent数据包, 并根据 Intent数据包向容器根进程发送创建容器进程 请求; 所述容器根进程创建并初始化应用运行环 境, 在接收到创建容器进程请求后创建容器进 程, 所述容器进程根据发送的加载容器应用请求 从所述AMS进程获得容器应用的包信息, 并启动 该容器应用。 以减少应用虚拟化需要占用的系统 资源。 权利要求书2页 说明书5页 附图2页 CN 111796。
3、909 A 2020.10.20 CN 111796909 A 1.一种轻量级移动应用虚拟化系统, 其特征在于, 包括设于Android系统的容器启动辅 助进程和Activity Manager Service进程, 还包括用于管理容器的容器根进程; 其中, 所述容器启动辅助进程构建Intent数据包, 并根据Intent数据包创建并发送创 建虚拟化应用请求至所述Activity Manager Service进程; 所述Activity Manager Service进程接收创建虚拟化应用请求并解析接收的Intent 数据包, 并根据Intent数据包向容器根进程发送创建容器进程请求; 根据。
4、接收的加载容器 应用请求发送容器应用的包信息至所述容器根进程; 所述容器根进程创建并初始化应用运行环境, 在接收到创建容器进程请求后创建容器 进程, 所述容器进程根据发送的加载容器应用请求从所述Activity Manager Service进程 获得容器应用的包信息, 并启动该容器应用。 2.如权利要求1所述的轻量级移动应用虚拟化系统, 其特征在于, 在构建Intent数据包 时, 向Intent数据包添加用于识别请求启动的是虚拟化应用的FLAG_ACTIVITY_CONTAINER 标识。 3.如权利要求1所述的轻量级移动应用虚拟化系统, 其特征在于, 所述容器启动辅助进 程在发送启动创建。
5、容器应用的请求前, 还进行应用检查, 向所述Package Manager Service 发起目标组件查询请求, 查看要启动的目标组件是否被安装, 如果目标组件没有安装, 向所 述Package Manager Service发起目标组件安装请求, 并根据目标组件安装请求传入的目 标应用的安装包地址, 安装目标应用。 4.如权利要求1所述的轻量级移动应用虚拟化系统, 其特征在于, 所述Activity Manager Service对Intent数据包解析后, 根据Intent数据中记录的目标应用程序的包名 和UID查看当前Android系统中是否安装目标应用程序, 若存在安装记录, 则查找。
6、并判断目 标应用程序的应用进程是否存在, 若应用进程不存在, 则根据目标应用程序的包名和UID创 建一个新的记录, 用以存储应用程序的信息; 检查Intent数据中是否包含FLAG_ACTIVITY_CONTAINER标志, 在包含FLAG_ACTIVITY_ CONTAINER标志时, 则通过容器socket向所述容器根进程发送容器进程创建请求。 5.如权利要求1所述的轻量级移动应用虚拟化系统, 其特征在于, 所述容器根进程创建 并初始化应用运行环境包括: 创建一个Java虚拟机、 注册jni函数, 加载jni函数中的ZygoteInit类和预加载Java类 和Android资源。 6.如权。
7、利要求1所述的轻量级移动应用虚拟化系统, 其特征在于, 所述创建容器进程包 括: 检查所述创建容器进程请求中的uid、 gid、 gids、 capabilities安全权限和应用程序的 abi, 检查通过后调用fork系统调用创建相应的子进程并加载ActivityThread进行容器应 用的初始化; ActivityThread在初始化过程中会设置应用中需要使用的系统路径、 设置当前应用的 证书保存的位置、 设置进程的名称并创建Binder线程池, 用以处理Android系统服务的 Binder通信。 7.如 权 利 要 求 1 所 述 的 轻 量 级 移 动 应 用 虚 拟 化 系 统 ,。
8、 其 特 征 在 于 , 所 述 ActivityManagerService收到加载容器应用请求后, 根据Binder请求发送者的uid查找容 权利要求书 1/2 页 2 CN 111796909 A 2 器应用的包信息, 并将包信息传递给所述容器进程; 所述容器进程在收到目标容器应用的包信息后加载并启动目标容器应用。 8.如权利要求17任一项所述的轻量级移动应用虚拟化系统, 其特征在于, 所述容器 根进程为每个容器设一个容器标识符作为容器应用实例ID, 该容器标识符映射了容器应用 实例与对应的应用进程记录的匹配关系; 通过该容器标识符与应用程序ID, 当容器标识符与应用程序ID与已经存在的。
9、容器标识 符与应用程序ID无法匹配时, 为容器应用创建新的容器进程和新的Activity Stack, 实现 同应用多虚拟化实例。 9.如权利要求17任一项所述的轻量级移动应用虚拟化系统, 其特征在于, 所述容器 根进程还为每个容器创建一个允许访问权限列表, 为每个允许访问权限列表设置一个名称 Namespace ID; 当容器应用要通过Android系统的service manager服务访问Android系统的系统服务 时, service manager服务根据Namespace ID对应的允许访问权限列表中包含的访问服务 开放对应的系统服务给容器应用。 权利要求书 2/2 页 3 CN。
10、 111796909 A 3 一种轻量级移动应用虚拟化系统 技术领域 0001 本发明属于虚拟化技术领域, 具体涉及一种轻量级移动应用虚拟化系统。 背景技术 0002 移动智能设备的出现和普及, 带来了诸多问题和挑战。 移动应用市场巨大的需求 引导移动应用开发门槛降低, 再加上智能设备操作系统不完善的权限机制和安全模型, 移 动操作系统成为当前病毒软件最具吸引力的目标。 同时, 用户对于移动应用的依赖加深, 需 要多个终端设备扮演不同的用户角色应对不同的应用场景需求, 以保护用户个人隐私和数 据安全。 0003 虚拟化技术具有提升应用的安全和满足解决多场景角色需求的特性, 将虚拟化技 术和移动。
11、操作系统相结合是目前解决方案的重要方向。 不同于传统操作系统应用虚拟化, 安卓设备内核初始化完成后会运行安卓操作系统, 安卓系统中运行大量的系统服务, 供用 户态进程访问系统资源。 应用市场中的app需要在安卓系统框架中安装、 加载和运行, 受安 卓系统的控制和管理。 现有的解决方案都是通过系统级虚拟化, 如Cells, Condroid, Nezha, Gemini, 将一个完整的安卓操作系统运行在虚拟机或容器中, 为用户应用提供资源访问服 务, 再在虚拟化的操作系统环境下运行目标应用, 这大大增加了应用虚拟化的响应时间和 资源消耗, 在资源有限的智能设备终端上并不适用。 0004 申请公布。
12、号为CN106572014A公开了一种虚拟化网络系统, 申请公布号为 CN103207762A公开了一种存储虚拟化系统, 这两中虚拟化系统均不适用于Android系统。 发明内容 0005 本发明的目的就是提供一种轻量级移动应用虚拟化系统, 以减少应用虚拟化需要 占用的系统资源, 提高了应用虚拟化在智能移动设备上的可用性。 0006 为实现上述发明目的, 本发明提供以下技术方案: 0007 一种轻量级移动应用虚拟化系统, 包括设于Android系统的容器启动辅助进程和 Activity Manager Service(AMS)进程, 还包括用于管理容器的容器根进程; 0008 其中, 所述容器。
13、启动辅助进程构建Intent数据包, 并根据Intent数据包创建并发 送创建虚拟化应用的请求至所述Activity Manager Service进程; 0009 所述Activity Manager Service进程接收创建虚拟化应用的请求并解析接收的 Intent数据包, 并根据Intent数据包向容器根进程发送创建容器进程请求; 根据接收的加 载容器应用请求发送容器应用的包信息至所述容器根进程; 0010 所述容器根进程创建并初始化应用运行环境, 在接收到创建容器进程请求后创建 容器进程, 所述容器进程根据发送的加载容器应用请求从所述Activity Manager Service 。
14、进程获得容器应用的包信息, 并启动该容器应用。 0011 其中, 在构建Intent数据包时, 向Intent数据包添加用于识别请求启动的是虚拟 化应用的FLAG_ACTIVITY_CONTAINER标识。 说明书 1/5 页 4 CN 111796909 A 4 0012 优选地, 所述容器启动辅助进程在发送启动创建容器应用的请求前, 还进行应用 检查, 向所述Package Manager Service发起目标组件查询请求, 查看要启动的目标组件是 否被安装, 如果目标组件没有安装, 向所述Package Manager Service发起目标组件安装请 求, 并根据目标组件安装请求传入。
15、的目标应用的安装包地址, 安装目标应用。 0013 优选地, 所述Activity Manager Service对Intent数据包解析后, 根据Intent数 据中记录的目标应用程序的包名和UID查看当前Android系统中是否安装目标应用程序, 若 存在安装记录, 则查找并判断目标应用程序的应用进程是否存在, 若应用进程不存在, 则根 据目标应用程序的包名和UID创建一个新的记录, 用以存储应用程序的信息; 0014 检查Intent数据中是否包含FLAG_ACTIVITY_CONTAINER标志, 在包含FLAG_ ACTIVITY_CONTAINER标志时, 则通过容器socket向。
16、所述容器根进程发送容器进程创建请 求。 0015 优选地, 所述容器根进程创建并初始化应用运行环境包括: 0016 创建一个Java虚拟机、 注册jni函数, 加载jni函数中的ZygoteInit类和预加载 Java类和Android资源。 0017 优选地, 所述创建容器进程包括: 0018 检查所述创建容器进程请求中的uid、 gid、 gids、 capabilities安全权限和应用程 序的abi, 检查通过后调用fork系统调用创建相应的子进程并加载ActivityThread进行容 器应用的初始化; 0019 ActivityThread在初始化过程中会设置应用中需要使用的系统路。
17、径、 设置当前应 用的证书保存的位置、 设置进程的名称并创建Binder线程池, 用以处理Android系统服务的 Binder通信。 0020 优选地, 所述ActivityManagerService收到加载容器应用请求后, 根据Binder请 求发送者的uid查找容器应用的包信息, 并将包信息传递给所述容器进程; 0021 所述容器进程在收到目标容器应用的包信息后加载并启动目标容器应用。 0022 为了实现应用虚拟化实例, 所述容器根进程为每个容器设一个容器标识符作为容 器应用实例ID, 该容器标识符映射了容器应用实例与对应的应用进程记录的匹配关系; 0023 通过该容器标识符与应用程序。
18、ID, 当容器标识符与应用程序ID与已经存在的容器 标识符与应用程序ID无法匹配时, 为容器应用创建新的容器进程和新的Activity Stack, 实现同应用多虚拟化实例。 0024 优选地, 所述容器根进程还为每个容器创建一个允许访问权限列表, 为每个允许 访问权限列表设置一个名称Namespace ID; 0025 当容器应用要通过Android系统的service manager服务访问Android系统的系统 服务时, service manager服务根据Namespace ID对应的允许访问权限列表中包含的访问 服务开放对应的系统服务给容器应用。 0026 与现有技术相比, 本发。
19、明具有的有益效果为: 0027 本发明提供的轻量级移动应用虚拟化系统在安卓操作系统环境下, 利用容器技术 实现应用级虚拟化, 同一个应用可以具备多个虚拟化实例, 同时控制虚拟化应用对系统服 务的访问限制。 减少了应用虚拟化需要占用的系统资源, 提高了应用虚拟化在智能移动设 备上的可用性, 为提升应用的安全性和解决多场景角色需求提供了巨大的支持。 说明书 2/5 页 5 CN 111796909 A 5 附图说明 0028 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图做简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例。
20、, 对于本领域普通技术人员来讲, 在不付出创造性劳动前提下, 还可以根 据这些附图获得其他附图。 0029 图1是实施例提供的轻量级移动应用虚拟化系统的框架图; 0030 图2是实施例提供的应用虚拟化多实例的示例图; 0031 图3是实施例提供的系统服务访问控制的流程图。 具体实施方式 0032 为使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例对本 发明进行进一步的详细说明。 应当理解, 此处所描述的具体实施方式仅仅用以解释本发明, 并不限定本发明的保护范围。 0033 为了实现在安卓操作系统环境下, 实现应用级虚拟化, 同一个应用可以具备多个 虚拟化实例, 控制虚拟化应。
21、用对系统服务的访问限制。 提供了一种轻量级移动应用虚拟化 系统, 如图1所示, 该轻量级移动应用虚拟化系统包括设于Android系统的容器启动辅助进 程contaienrTool和Activity Manager Service进程, 还包括用于管理容器的容器根进程 container-init。 containerTool向安卓系统服务ActivityManagerService进程发送创建 虚 拟 化 应 用 请 求 , c o n t a i n e r - i n i t 进 程 初 始 化 应 用 运 行 环 境 并 接 收 到 ActivityManagerService启动应用请。
22、求后, 创建进程并加载目标应用。 整个系统的运作流 程如图1所示。 0034 容器启动辅助进程contaienrTool设于Android系统host, 主要实现构建Intent、 应用检查和向ActivityManagerService发送创建虚拟化应用请求功能。 0035 针对构建Intent流程, containerTool根据启动者的用户标识以及目标应用组件 名构建Intent数据包, 该Intent数据包是android系统用于数据传输的数据包, 并向Intent 数据包添加FLAG_ACTIVITY_CONTAINER标识, 该FLAG_ACTIVITY_CONTAINER标识用于。
23、识别请 求启动的是正常的应用还是虚拟化应用。 0036 在发送启动创建容器应用的请求前, 容器启动辅助进程还进行应用检查, 向所述 Package Manager Service发起目标组件查询请求, 查看要启动的目标组件是否被安装, 如 果目标组件没有安装, 向所述Package Manager Service发起目标组件安装请求, 并根据目 标组件安装请求传入的目标应用的安装包地址, 安装目标应用。 0037 当应用检查结束后, 容器启动辅助进程向ActivityManagerService发起的创建虚 拟化应用的请求, 并传入之前创建的Intent数据包, 向宿主机上的安卓系统请求创建虚。
24、拟 化应用。 0038 ActivityManagerService进程为安卓系统自带的服务进程, 本发明对其进行了功 能修改, 该ActivityManagerService主要用于处理创建虚拟化应用请求。 0039 ActivityManagerService进程收到创建虚拟化应用请求后, 解析该创建虚拟化应 用请求包含的Intent数据包, 根据Intent数据中记录的目标应用程序的包名和UID查看当 前Android系统中是否安装目标应用程序, 若存在安装记录, 则查找并判断目标应用程序的 说明书 3/5 页 6 CN 111796909 A 6 应用进程是否存在, 若应用进程不存在,。
25、 则根据目标应用程序的包名和UID创建一个新的记 录, 用以存储应用程序的信息; 0040 检查Intent数据中是否包含FLAG_ACTIVITY_CONTAINER标志, 在包含FLAG_ ACTIVITY_CONTAINER标志时, 则通过容器socket向所述容器根进程发送容器进程创建请 求。 0041 容器根进程container-init为实现虚拟化应用的核心, 主要用于创建并初始化应 用运行环境、 创建容器进程和启动容器应用, 下面针对每部分进行详细说明。 0042 容器根进程container-init在创建并初始化应用运行环境过程中, 主要创建一个 Java虚拟机、 注册jn。
26、i函数, 加载jni函数中的ZygoteInit类和预加载Java类和Android资 源。 0043 容器根进程在接收到创建容器进程请求后创建容器进程, 具体检查所述创建容器 进程请求中的uid、 gid、 gids、 capabilities安全权限和应用程序的abi, 检查通过后调用 fork系统调用创建相应的子进程并加载ActivityThread进行容器应用的初始化; 0044 ActivityThread在初始化过程中会设置应用中需要使用的系统路径、 设置当前应 用的证书保存的位置、 设置进程的名称并创建Binder线程池, 用以处理Android系统服务的 Binder通信。 0。
27、045 ActivityManagerService收到加载容器应用请求后, 根据Binder请求发送者的 uid查找容器应用的包信息, 并将包信息传递给所述容器进程; 容器进程在收到目标容器应 用的包信息后加载并启动目标容器应用。 0046 当容器启动的目标应用没有在宿主机或者其他容器内启动时, 由于找不到与之匹 配应用进程记录以及Activity Stack, ActivityManagerService会为其创建新的容器进程 和Activity Stack, 用以启动和存放目标应用的Activity。 而当宿主机或者其他容器启动 了同名的目标应用时, 由于记录ID存在, 所以Activi。
28、tyManagerService不会创建相应的容 器进程和Activity Stack, 导致容器进程启动失败。 0047 当容器启动的目标应用没有在宿主机或者其他容器内启动时, 由于Activity Record中找不到与之匹配应用进程记录以及Activity Stack, ActivityManagerService会 为其创建新的容器进程和Activity Stack, 用以启动和存放目标应用的Activity。 而当宿 主机或者其他容器启动了已经存在的应用的多个虚拟化实例时, 由于记录ID存在, ActivityManagerService不会创建相应的容器进程和Activity St。
29、ack, 导致应用虚拟化启 动失败。 0048 图2描述了应用虚拟化多实例解决方案, 容器根进程为每个容器设一个容器标识 符作为容器应用实例ID, 该容器标识符映射了容器应用实例与对应的应用进程记录的匹配 关系; 0049 实施例中使用容器IPC Namespace ID作为用户ID的标识符, 不同的容器拥有不同 的IPC Namespace ID, 由于用户ID的标识符不同, 不同容器之间的应用记录相互隔离。 当 ActivityManagerService根据UID+APPId作为索引查找记录时, 只查找当前容器对应的应 用记录列表, 启动同类应用时, 由于UID+APPId无法匹配, 则。
30、会为应用容器创建新的容器进 程和新的Activity Stack, 实现同应用多虚拟化实例。 0050 安卓应用虚拟化实例和宿主机上的用户共享宿主机上的安卓系统服务, 应用实例 说明书 4/5 页 7 CN 111796909 A 7 通过service manager服务获取相应的服务的地址便可以通过系统服务获取相应的系统资 源, 这增加了宿主机上数据泄露的风险, 例如设备的传感器数据, 网络信息等等。 0051 如图3所示, 该轻量级移动应用虚拟化系统对安卓应用虚拟化实例在系统服务访 问权限上进行了访问权限控制。 具体地, 容器根进程还为每个容器创建一个允许访问权限 列表, 为每个允许访问。
31、权限列表设置一个名称Namespace ID; 当容器应用要通过Android系 统的service manager服务访问Android系统的系统服务时, service manager服务根据 Namespace ID对应的允许访问权限列表中包含的访问服务开放对应的系统服务给容器应 用。 0052 当用户应用希望获取服务时, 需要向service manager发送服务查询请求service manager服务接收到请求后调用do_find_service方法, 根据请求方发送的服务名称查询服 务地址。 若相应的服务地址存在, 则检查服务请求方是否满足SELinux服务访问权限, 若满 足。
32、, 则将服务地址返还给Binderclient。 在创建应用容器时, 我们将允许容器访问的系统服 务名称写进配置文件中。 当容器运行时, 通过解析应用容器, 将容器的名称、 容器的IPC Namespace ID以及容器允许访问的系统服务建立映射。 当虚拟化应用实例希望获取服务 时, 通过current-nsproxy-ipc_ns将当前进程的IPC Namespace发送给servicemanager。 servicemanager收到服务查询请求并检查请求发送方的SELinux服务访问权限满足后, 通 过Namespace ID到系统服务的映射检查当前请求调用方是否可以获取所请求的服务名,。
33、 若 检查不通过, 则拒绝系统资源获取。 0053 实施例提供的轻量级移动应用虚拟化系统在安卓操作系统上设计并实现轻量级 应用级虚拟化, 相比于现有的系统级虚拟化, 通过多个应用实例共享安卓系统服务的方式 降低了应用虚拟化在响应时间, 内存占用, 磁盘占用等系统资源的消耗。 同时, 轻量级移动 应用虚拟化系统的技术实现对安卓系统源码进行了修改, 增强了本方案的可移植性, 可以 适配在不同版本和不同厂商定制的安卓系统中。 0054 以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明, 应理 解的是以上所述仅为本发明的最优选实施例, 并不用于限制本发明, 凡在本发明的原则范 围内所做的任何修改、 补充和等同替换等, 均应包含在本发明的保护范围之内。 说明书 5/5 页 8 CN 111796909 A 8 图1 说明书附图 1/2 页 9 CN 111796909 A 9 图2 图3 说明书附图 2/2 页 10 CN 111796909 A 10 。
- 内容关键字: 轻量级 移动 应用 虚拟 系统
阻燃B1级高耐热节能环保型聚丙烯绝缘电力电缆.pdf
电池加解锁RGV.pdf
可自动调节加工设备位置的制袋机.pdf
高压变压器、高压发生器和医学影像设备.pdf
铝管密封接头一体成型装置.pdf
汽车分动器控制电路.pdf
护理垫包装生产线的推料装置.pdf
桥梁建设用预制混凝土运输装置.pdf
水泵电机零件试压装置.pdf
折叠式便携首饰盒.pdf
河道防汛水位预警装置.pdf
高压、大流量先导式电磁阀防冲开结构.pdf
半圆形光纤传感器.pdf
环氧树脂分离提纯装置.pdf
计时器.pdf
钢制骨架剪切机.pdf
基于斜滑块的转盘式封口机真空室升降定位高度调节机构.pdf
电加热系统用加热器结构.pdf
拼接式石墨型模具.pdf
波码通信井下智能配水器.pdf
钢波纹管涵内临时支撑装置.pdf
传动式钢材加工成型机.pdf
微纳米复合高稳定性超双疏金属防腐缓蚀材料的制备方法.pdf
血管介入手术机器人.pdf
基于语义元数据的二次模糊搜索方法.pdf
基于污泥焚烧灰渣的复合材料及其制备方法.pdf
矿浆品位仪的压榨装置及滤饼压榨方法.pdf
余热回收蒸汽发生系统.pdf
云计算虚拟网络系统、及其使用方法、装置、设备及介质.pdf
基于潜在扩散模型的双目图像生成方法及系统.pdf
新型船用金属复合板的爆炸焊接制备方法.pdf
脱硫废液蒸发系统以及方法.pdf
相关文档
更多![对防疫装备和公共空间进行环保型消毒灭菌的装置.pdf](/Images/s.gif)
![基于气敏半导体的小型化臭氧监测器及监测方法.pdf](/Images/s.gif)
![聚氨酯/乙烯基树脂IPN阻尼材料及其制备方法.pdf](/Images/s.gif)
![便于安装的安防防盗报警装置.pdf](/Images/s.gif)
![吨袋拆包机.pdf](/Images/s.gif)
![纺织机用进线夹持装置.pdf](/Images/s.gif)
![V2X测试方法及系统.pdf](/Images/s.gif)
![低倾角轨道单轴SADA驱动太阳翼对日的方法与系统.pdf](/Images/s.gif)
![读写分离架构业务系统的强一致性查询方法、装置及系统.pdf](/Images/s.gif)
![用于提供电子书籍的方法与设备.pdf](/Images/s.gif)
![物联网下的服装护理储存系统.pdf](/Images/s.gif)
![挂脖式风扇及其控制方法和控制器.pdf](/Images/s.gif)
![基于Faster R-CNN结合暗通道去雾算法的大型船舶识别方法.pdf](/Images/s.gif)
![工业机器人去毛刺实训站.pdf](/Images/s.gif)
![物料传送机构及水果处理机.pdf](/Images/s.gif)
![n型PbTe基热电材料及其制备方法.pdf](/Images/s.gif)
![自动补偿绘图圆规.pdf](/Images/s.gif)
![高熵金属氧化物催化剂的制备方法及其用途.pdf](/Images/s.gif)
![建筑工程用自动化测量系统.pdf](/Images/s.gif)
![基于直播界面的游戏方法及装置、游戏直播互动系统.pdf](/Images/s.gif)