CN112860274A - 程序包部署的方法、装置、终端设备和存储介质 - Google Patents
程序包部署的方法、装置、终端设备和存储介质 Download PDFInfo
- Publication number
- CN112860274A CN112860274A CN201911184397.3A CN201911184397A CN112860274A CN 112860274 A CN112860274 A CN 112860274A CN 201911184397 A CN201911184397 A CN 201911184397A CN 112860274 A CN112860274 A CN 112860274A
- Authority
- CN
- China
- Prior art keywords
- package
- devices
- deployment
- program package
- program
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000011161 development Methods 0.000 claims abstract description 19
- 238000004891 communication Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 20
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 230000003044 adaptive effect Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 230000001413 cellular effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 101150092599 Padi2 gene Proteins 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 101100084902 Mus musculus Psmd14 gene Proteins 0.000 description 2
- 101150057849 Padi1 gene Proteins 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013433 optimization analysis Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Abstract
本申请适用于计算机技术领域,提供了一种程序包部署的方法、装置、终端设备和存储介质。该方法包括:针对已注册的多个设备,分别查找所述多个设备中每个设备所适配的程序包,其中所述多个设备的注册操作是通过预先构建的集成开发环境IDE工具完成的;将查找到的程序包分发部署到对应的设备中,所述对应的设备为所述多个设备中的设备。本申请所构建的IDE工具每次可以注册连接多个不同的设备,针对已注册的多个设备,分别查找每个设备所适配的程序包,然后将查找到的程序包分发部署到相应的各个设备中,从而实现同时将程序包部署到多个不同的设备,有效提高了程序包部署的效率。
Description
技术领域
本申请属于计算机技术领域,尤其涉及程序包部署的方法、装置、终端设备和存储介质。
背景技术
在开发多端适配的场景中,根据设备屏幕尺寸和交互逻辑的不同,一个APP可能会编译出多个程序包,以分别适配不同的设备。例如:某个APP同时支持手机、Pad和大屏电视三种设备,在调试时需要分别编译出三种程序包以分别适配三种设备,同时需要高效的将程序包分发部署到这三种设备上,以便查看程序的运行效果。
在将程序包部署到各类设备时,通常会采用集成开发环境(IntegratedDevelopment Environment,IDE)来实现。IDE是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具,集成了代码编写、代码编译、代码调试等一体化的开发功能。
目前,终端侧IDE主要有Android Studio和XCode等。然而,这些IDE每次只能通过USB连线或者Wifi将程序包部署到单个设备上,当APP需要多设备同时参与调试时,程序包部署的操作难度大,部署效率低。
发明内容
有鉴于此,本申请实施例提供了一种程序包部署的方法、装置、终端设备和存储介质,可以同时将程序包部署到多个不同的设备上,有效提高程序包部署的效率。
第一方面,本申请实施例提供了一种程序包部署的方法,包括:
针对已注册的多个设备,分别查找所述多个设备中每个设备所适配的程序包,其中所述多个设备的注册操作是通过预先构建的集成开发环境IDE工具完成的;
将查找到的程序包分发部署到对应的设备中,所述对应的设备为所述多个设备中的设备。
在本申请中,所构建的IDE工具每次可以注册连接多个不同的设备,针对已注册的多个设备,分别查找每个设备所适配的程序包,然后将查找到的程序包分发部署到相应的各个设备中,从而实现同时将程序包部署到多个不同的设备,有效提高了程序包部署的效率。
在第一方面的一种可能的实现方式中,所述多个设备的注册操作可以包括:
通过所述IDE工具建立与所述多个设备的通信连接;
在通信连接建立成功后,分别接收所述多个设备中每个设备的状态信息;
将接收到的所述状态信息显示在所述IDE工具的设备列表界面,完成注册操作。
多个不同的设备可以通过有线或无线的方式和本申请构建的IDE工具建立通信连接,然后,可以通过该IDE工具分别接收该多个设备中每个设备的状态信息,比如设备的名称、型号、是否正常、是否已接受程序包等信息。最后,可以将接收到的状态信息展示于该IDE工具的设备列表界面,从而使得调试人员可以可视化地发现参与程序包部署调试的各个设备的相关信息。另外,记录每个设备的注册信息,完成注册操作。
进一步的,各个不同设备的状态信息可以用不同的图标、颜色、字体来区分,并采用预设的排列方式展示于该设备列表界面中,而且还可以将这些状态信息存储于某个指定的数据库中,以记录程序包部署调试的相关设备信息。
在第一方面的一种可能的实现方式中,所述将查找到的程序包分发部署到对应的设备中可以包括:
分别判断所述多个设备中的每个设备是否满足预设的程序包分发部署条件;
对于所述多个设备中满足所述程序包分发部署条件的第一设备,将与所述第一设备适配的程序包分发部署到对应的第一设备中;
对于所述多个设备中不满足所述程序包分发部署条件的第二设备,在所述设备列表界面中为所述第二设备的图标添加程序包部署失败的标记,并输出预设的提示信息。
在进行程序包的分发部署之前,需要判断已完成注册连接的各个设备是否满足程序包分发部署的条件,比如相适配的程序包是否准备完毕,设备自身的状态是否能够正常接收并运行程序包等条件。然后,对于满足条件的设备,将与这些设备适配的程序包分发给它们。对于不满足条件的设备,暂无法分发部署相应的程序包,此时可以等待直至满足条件,并且输出相应的提示信息。
具体的,判断所述多个设备中任一设备是否满足预设的程序包分发部署条件可以包括:
获取目标设备的设备标识码,所述目标设备为所述多个设备中的任一设备;
从指定的存储路径中查找与所述设备标识码对应的程序包;
若从所述存储路径中查找到与所述设备标识码对应的程序包,且所述目标设备的状态信息为正常状态,则判定所述目标设备满足所述程序包分发部署条件;
若从所述存储路径中未查到与所述设备标识码对应的程序包,或者所述目标设备的状态信息为异常状态,则判定所述目标设备不满足所述程序包分发部署条件。
在第一方面的一种可能的实现方式中,所述将与所述第一设备适配的程序包分发部署到对应的第一设备中可以包括:
若接收到第一操作指令,则为所有的第一设备分发部署适配的程序包;
若接收到第二操作指令,则从所述第一设备中选择至少一个设备,并为选择的所述至少一个设备分发部署适配的程序包。
比如,在构建的IDE工具中,可以设置一个“一键分发”的操作按钮,用户只需点击该按钮,即可为所有满足程序包分发部署条件的设备分发部署相应的程序包。或者,也可以由用户自己选取一个或多个满足程序包分发部署条件的设备,为选取的设备分发部署相应的程序包。通过这样设置,可以灵活且便捷地完成程序包的分发部署操作。
在第一方面的一种可能的实现方式中,在将查找到的程序包分发部署到对应的设备中之后,还可以包括:
分别接收各个所述设备对各自部署的程序包的调试运行结果;
将所述调试运行结果添加到所述IDE工具的设备列表界面中。
在将各个程序包分发部署到相应的各个设备中之后,为了便于查看程序包在各个设备上的调试运行结果,可以将接收到的调试运行结果添加到该IDE工具的设备列表界面中。
第二方面,本申请实施例提供了一种程序包部署的装置,包括:
程序包查找模块,用于针对已注册的多个设备,分别查找所述多个设备中每个设备所适配的程序包,其中所述多个设备的注册操作是通过预先构建的集成开发环境IDE工具完成的;
程序包部署模块,用于将查找到的程序包分发部署到对应的设备中,所述对应的设备为所述多个设备中的设备。
进一步的,所述程序包部署的装置还可以包括:
通信建立模块,用于通过所述IDE工具建立与所述多个设备的通信连接;
状态信息接收模块,用于在通信连接建立成功后,分别接收所述多个设备中每个设备的状态信息;
状态信息显示模块,用于将接收到的所述状态信息显示在所述IDE工具的设备列表界面,完成注册操作。
进一步的,所述程序包部署模块可以包括:
条件判断单元,用于分别判断所述多个设备中的每个设备是否满足预设的程序包分发部署条件;
程序包部署单元,用于对于所述多个设备中满足所述程序包分发部署条件的第一设备,将与所述第一设备适配的程序包分发部署到对应的第一设备中。
进一步的,所述条件判断单元可以包括:
设备标识码获取子单元,用于获取目标设备的设备标识码,所述目标设备为所述多个设备中的任一设备;
程序包查找子单元,用于从指定的存储路径中查找与所述设备标识码对应的程序包;
第一判定子单元,用于若从所述存储路径中查找到与所述设备标识码对应的程序包,且所述目标设备的状态信息为正常状态,则判定所述目标设备满足所述程序包分发部署条件;
第二判定子单元,用于若从所述存储路径中未查到与所述设备标识码对应的程序包,或者所述目标设备的状态信息为异常状态,则判定所述目标设备不满足所述程序包分发部署条件。
进一步的,所述程序包部署模块还可以包括:
提示信息输出单元,用于对于所述多个设备中不满足所述程序包分发部署条件的第二设备,在所述设备列表界面中为所述第二设备的图标添加程序包部署失败的标记,并输出预设的提示信息。
进一步的,所述程序包部署单元可以包括:
第一程序包部署子单元,用于若接收到第一操作指令,则为所有的第一设备分发部署适配的程序包;
第二程序包部署子单元,用于若接收到第二操作指令,则从所述第一设备中选择至少一个设备,并为选择的所述至少一个设备分发部署适配的程序包。
进一步的,所述程序包部署的装置还可以包括:
运行结果接收模块,用于分别接收各个所述设备对各自部署的程序包的调试运行结果;
运行结果添加模块,用于将所述调试运行结果添加到所述IDE工具的设备列表界面中。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例第一方面提出的程序包部署的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例第一方面提出的程序包部署的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的程序包部署的方法。
本申请实施例与现有技术相比存在的有益效果是:能够同时将程序包部署到多个不同的设备上,从而降低多设备同时参与调试时程序包部署的操作难度,提升程序包部署的效率以及可靠性,具有较强的易用性和实用性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的程序包部署的方法所适用于的手机的硬件结构示意图;
图2是本申请一实施例所构建的一种IDE工具的软件系统架构图;
图3是本申请实施例提供的一种程序包部署的方法的流程图;
图4是本申请实施例提供的另一种程序包部署的方法的流程图;
图5是图4中步骤405的一种具体实施方式的流程图;
图6是图5中步骤4051的一种具体实施方式的流程图;
图7是图5中步骤4052的一种具体实施方式的流程图;
图8是本申请实施例提供的程序包部署的方法的一种实际应用场景的示意图;
图9是本申请实施例提供的程序包部署的方法的另一种实际应用场景的示意图;
图10是本申请实施例提供的程序包部署的方法的另一种实际应用场景的示意图;
图11是图10所示的实际应用场景中,IDE工具的设备列表界面的一种示意图;
图12是本申请实施例提供的一种程序包部署的装置的一个实施例的结构图;
图13是本申请实施例提供的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的程序包部署的方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备或者服务器上,本申请实施例对终端设备和服务器的具体类型不作任何限制。
例如,所述终端设备可以是WLAN中的站点(STAION,ST),可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、无线本地环路(WirelessLocal Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、车联网终端、电脑、膝上型计算机、手持式通信设备、手持式计算设备、卫星无线设备、无线调制解调器卡、电视机顶盒(set top box,STB)、用户驻地设备(customer premise equipment,CPE)和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5G网络中的移动终端或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)网络中的移动终端等。
作为示例而非限定,当所述终端设备为可穿戴设备时,该可穿戴设备还可以是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,如智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
以所述终端设备为手机为例。图1示出的是与本申请实施例提供的手机的部分结构的框图。参考图1,手机包括:射频(Radio Frequency,RF)电路110、存储器120、输入单元130、显示单元140、传感器150、音频电路160、无线保真(wireless fidelity,WiFi)模块170、处理器180、以及电源190等部件。本领域技术人员可以理解,图1中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对手机的各个构成部件进行具体的介绍:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元130可用于接收输入的数字或字符信息,以及产生与手机100的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可包括触控面板131以及其他输入设备132。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板131。除了触控面板131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元140可包括显示面板141,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板141。进一步的,触控面板131可覆盖显示面板141,当触控面板131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图1中,触控面板131与显示面板141是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板131与显示面板141集成而实现手机的输入和输出功能。
手机100还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在手机移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与手机之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一手机,或者将音频数据输出至存储器120以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块170,但是可以理解的是,其并不属于手机100的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
手机100还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机100还可以包括摄像头。可选地,摄像头在手机100的上的位置可以为前置的,也可以为后置的,本申请实施例对此不作限定。
可选地,手机100可以包括单摄像头、双摄像头或三摄像头等,本申请实施例对此不作限定。
例如,手机100可以包括三摄像头,其中,一个为主摄像头、一个为广角摄像头、一个为长焦摄像头。
可选地,当手机100包括多个摄像头时,这多个摄像头可以全部前置,或者全部后置,或者一部分前置、另一部分后置,本申请实施例对此不作限定。
另外,尽管未示出,手机100还可以包括蓝牙模块等,在此不再赘述。
本申请提出的程序包部署的方法,是采用预先构建的一个IDE工具完成的。IDE是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具,集成了代码编写、代码编译、代码调试等一体化的开发功能。目前,流行的终端侧IDE有Google公司的Android Studio和Apple公司的XCode,这两款工具仅可以实现单设备通过USB连线或Wifi将调试程序包分发(部署安装)到手机等设备上。
为了构建面向下一代新型应用的编程框架,极大的降低开发难度和技术门槛,为开发者提供更好的开发体验,本申请提出一种支持跨设备场景APP设计、开发、构建、发布功能的IDE。只需一次开发活动,APP可以在多设备上适配运行,让开发者的开发活动更加简单、高效,降低后期运营成本。
在一次开发多端适配的场景中,根据设备屏幕尺寸和交互逻辑的不同,一个APP可能会编译出多个程序包,分别适配不同的设备。例如:目前代码工程中的应用同时支持手机、Pad和大屏电视三种设备,在调试时需要分别编译出三种程序安装包以分别适配三种设备,同时需要高效的将程序安装包分发到这三种真实设备上,以便在三种设备上查看程序运行效果。IDE中需要一种机制,可以支持在开发调试过程中能够识别目前可用的调试设备,并且将可以运行的程序包分发部署到与其相匹配的调试设备上,完成多设备的分布式场景运行调试,本申请提出的IDE即具备这种机制。
请参阅图2,示出了本申请实施例所构建的一种IDE工具的软件系统架构图,在该系统架构图中:
程序包分发模块负责根据工程管理和编译构建提供的信息,完成程序包向各个端侧设备的分发(部署安装),该模块具体可以包含设备网络配置、路径解析和程序包分发三个功能单元,分别用于设置设备之间的网络、解析程序包的存储路径以及执行程序包的分发部署等功能。
工程管理模块负责维护和提供代码目录适配设备的相关信息;UI设计模块负责完成IDE工具的UI界面设计;代码编辑模块提供代码开发与编辑的功能;编译构建模块可以根据Gradle设置,编译生成可分发的程序包;调试器模块用于提供代码调试的功能;业务插件模块提供满足各类业务需求的相关插件;设备管理模块用于配置与管理与IDE连接的各个外部设备;优化分析模块可以对已编写的代码进行优化与分析;测试模块用于代码的测试工作;应用上架模块用于执行应用上架时所需的相关流程;SDK管理模块用于管理与维护软件开发安装包;插件管理模块用于管理相关的各类插件。
采用该IDE工具开发和生成程序包的过程通常如下:
(1)开发者使用IDE选择符合自身业务目标的工程类型(适配哪种端侧设备,例如:手机、Pad和大屏电视等设备);
(2)开发者选择符合自身业务目标的编译器,编译器可以来自于第三方,只要符合IDE集成接口规范,就可以通过IDE界面,可视化的与IDE挂接集成。编译器提供编程语言的语法编译支持,即:计算机可以通过编译器将开发者开发的代码翻译成计算机可识别的二进制机器码;
(3)开发者使用编译器支持的Java等编程语言在IDE中编写APP的界面(界面布局、界面控件等界面元素)和业务逻辑(接口、类等实现),这些界面和业务逻辑是适配上一步选择的工程类型的;
(4)当开发者编写的代码可以使用编译器编译通过,没有编译错误时,就可以进行APP功能的验证;
(5)APP功能验证主要通过将编译生成的二进制程序安装包在端侧设备上(手机、Pad和大屏电视)运行,验证APP是否符合代码编写预期达到的目标,例如:界面控件大小、颜色、位置是否符合预期,输入值范围等业务处理逻辑是否符合预期等。APP的二进制安装包主要通过编译器通过计算机编译原理将开发者开发的Java等高级语言翻译成计算机可以识别、执行的二进制机器码。需要注意的是,为不同端侧设备编译生成的程序包(二进制)是不同的,分别适配不同设备的底层API;
(6)当程序安装包编译成功后,这些程序安装包会在开发者使用的终端设备的硬盘上存放。
以下实施例可以在具有上述硬件结构/软件结构的终端设备或服务器上实现。
图3示出了本申请提供的一种程序包部署的方法的流程图,包括:
301、针对已注册的多个设备,分别查找所述多个设备中每个设备所适配的程序包;
其中,所述多个设备的注册操作是通过预先构建的集成开发环境IDE工具完成的。关于该IDE工具的具体说明,可以参照上文所述的内容。不同终端侧的多个设备可以通过网络或者其它通信方式在该IDE工作中进行注册操作,在此处注册的各个设备将参与程序安装包的接收,即获得分发的程序包,并在其上自动部署。这多个设备可以是各种类型的不限数量的设备,比如手机、Pad或者大屏电视等设备。
在完成注册连接操作之后,分别查找所述多个设备中每个设备所适配的程序包。不同设备所适配的程序包是不同的,分别适配不同设备的底层API,因此需要分别查找各个设备所适配的程序包。具体的,可以为已生成的各个程序包分别添加相应的设备标识,用于指示该程序包所适配的设备,比如为适配于手机设备的程序包添加手机的设备标识等。各个程序包在采用该IDE工具开发完成后,可以存储于某个特定的存储路径,在步骤301中即可从该存储路径中查找各个程序包。
302、将查找到的程序包分发部署到对应的设备中。
最后,将查找到的程序包分发部署到对应的设备中,所述对应的设备为所述多个设备中的设备。也即,将手机适配的程序包,分发部署到手机设备中;将Pad适配的程序包,分发部署到Pad设备中,以此类推。该IDE工具与该多个设备是通讯连接的,故可以同时将查找到的多个程序包分别部署到各个不同的设备中。
常规的IDE工具每次只能通过USB连线或者Wifi的方式与单个设备连接,将程序包部署到该设备之后,再断开与该设备的连接,准备连接下一个设备。而在本申请中,所构建的IDE工具每次可以注册连接多个不同的设备,针对已注册的多个设备,分别查找每个设备所适配的程序包,然后将查找到的程序包分发部署到相应的各个设备中,从而实现同时将程序包部署到多个不同的设备,有效提高了程序包部署的效率。
图4示出了本申请实施例提供的另一种程序包部署的方法的流程图,包括:
401、通过预先构建的IDE工具建立与多个设备的通信连接;
关于该IDE工具的具体说明,同样可以参照上文所述的内容,不同终端侧的多个不同设备可以通过网络或者其它通信方式与该IDE工具建立通信连接关系。
402、在通信连接建立成功后,分别接收所述多个设备中每个设备的状态信息;
在建立通信连接关系之后,该IDE所应用的终端设备或服务器,可以分别接收所述多个设备中每个设备的状态信息,比如设备的名称、型号、是否正常、是否已接受程序包等信息。
403、将接收到的状态信息展示于所述IDE工具的设备列表界面,完成注册操作;
然后,可以将接收到的状态信息展示于该IDE工具的设备列表界面,完成注册操作,从而使得调试人员可以可视化地发现参与程序包部署调试的各个设备的相关信息。具体的,该设备列表界面可以包含已注册设备的名称、型号、通信状态、电源状态、连接方式、注册连接的时间等各类信息。
404、分别查找所述多个设备中每个设备所适配的程序包;
步骤401-403相当于完成各个设备在该IDE工具中的注册操作,接下来则分别查找所述多个设备中每个设备所适配的程序包,具体的程序包查找方式可以参照步骤301的相关说明。
405、将查找到的程序包分发部署到对应的设备中;
然后,将查找到的程序包分发部署到对应的设备中,具体说明可参照步骤302。
进一步的,如图5所示,步骤405可以包括以下步骤4051-4053:
4051、分别判断所述多个设备中的每个设备是否满足预设的程序包分发部署条件;
在将程序包分发部署到各个设备时,首先需要先判断各个设备是否满足预设的程序包分发部署条件,比如设备当前与IDE的连接状态是否正常,设备当前的状态是否可以接收程序包,与设备适配的程序包是否已经生成等条件。
具体的,如图6所示,所述多个设备中任意的一个目标设备是否满足所述程序包分发部署条件可以通过以下步骤判断:
40511、获取所述目标设备的设备标识码;
40512、从指定的存储路径中查找与所述设备标识码对应的程序包;
40513、若从所述存储路径中查找到与所述设备标识码对应的程序包,且所述目标设备的状态信息为正常状态,则判定所述目标设备满足所述程序包分发部署条件;
40514、若从所述存储路径中未查到与所述设备标识码对应的程序包,或者所述目标设备的状态信息为异常状态,则判定所述目标设备不满足所述程序包分发部署条件。
假设该目标设备是一台手机,则首先获取该手机的设备标识码,然后从某个指定的存储路径(该存储路径是采用该IDE工具开发生成各个不同类型的程序包后,各个程序包的默认存储路径)中查找与该设备标识码对应的程序包。若能够从该存储路径中查找到与手机的设备标识码对应的程序包,且该手机的各项状态信息均正常,比如电源正常,通信连接正常,处于可接受程序包的状态等,则可以判定该手机满足程序包分发部署的条件。反之,若从该存储路径中查找不到与手机的设备标识码对应的程序包,或者该手机的某个状态信息异常,则可以判定该手机不满足程序包分发部署的条件。
4052、对于所述多个设备中满足所述程序包分发部署条件的第一设备,将与所述第一设备适配的程序包分发部署到对应的第一设备中;
在通过步骤4051找到所述多个设备中满足所述程序包分发部署条件的第一设备之后,将与这些设备适配的程序包分发部署到这些设备中。
具体的,如图7所示,所述将与所述第一设备适配的程序包分发部署到所述第一设备中可以包括:
40521、判断接收到的操作指令为第一操作指令还是第二操作指令;
若接收到第一操作指令,则执行步骤40522;若接收到第二操作指令,则执行步骤40523。
40522、为所有的第一设备分发部署适配的程序包;
40523、从所述第一设备中选择至少一个设备,并为选择的所述至少一个设备分发部署适配的程序包。
在该IDE中,根据实际需求,可以设置多种不同的程序包分发部署方式。比如,可以设置一个“一键分发”的操作按钮,用户只需点击该按钮,即可为所有满足程序包分发部署条件的设备分发部署相应的程序包。或者,也可以由用户在该设备列表界面中选取一个或多个满足程序包分发部署条件的设备,为选取的设备分发部署相应的程序包。应当理解的是,用户输入第一操作指令和第二操作指令的方式可以有多种,比如单击、双击某个按钮,拖动某个窗口或滚动条等,具体不做任何限制。通过这样设置,可以灵活且便捷地完成程序包的分发部署操作。
4053、对于所述多个设备中不满足所述程序包分发部署条件的第二设备,在所述设备列表界面中为所述第二设备的图标添加程序包部署失败的标记,并输出预设的提示信息。
对于不满足所述程序包分发部署条件的设备,暂无法分发部署相应的程序包,此时可以等待直至满足条件。另外,还可以在该IDE的设备列表界面中为这些设备的图标添加程序包部署失败(或者是程序包暂无法部署)的标记,并输出预设的提示信息,以通知相关人员程序包部署失败的信息,并且还可以示出程序包部署失败的原因,比如适配的程序包尚未生成,设备通信连接异常等原因。通过这样设置,在该IDE的设备列表界面中,不仅可以可视化发现参与程序包部署调试的各个设备,还可以可视化地识别哪些设备满足程序包分发部署的条件,哪些设备不满足程序包分发部署的条件。
406、分别接收各个所述设备对各自部署的程序包的调试运行结果;
407、将所述调试运行结果添加到所述IDE工具的设备列表界面中。
在将各个程序包分发部署到相应的各个设备中之后,为了便于查看程序包在各个设备上的调试运行结果,还可以将从各个设备接收到的调试运行结果(比如运行通过或者运行未通过等)添加到该IDE工具的设备列表界面中。
在本申请实施例中,构建的IDE工具可以完成多个设备的注册连接操作,即每次可以连接多个不同的设备,自动检测已经注册并且符合程序包分发部署条件的设备,将查找到的程序包分发部署到这些设备中,从而实现同时将程序包部署到多个不同的设备上,降低多设备同时参与调试时程序包部署的操作难度,提升可靠性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为便于理解,下面以几个实际应用场景来说明本申请提出的程序包部署的方法。
场景一:如图8所示,IDE所处的终端设备需要向1个手机和1个Pad分发部署调试程序包。
基于此应用场景一,用户需要在IDE中进行的关键操作如下:
(1)在IDE中选择同时支持手机和Pad的工程模板;
(2)在该工程模板中编写APP适配手机和Pad的界面和业务逻辑;
(3)通过IDE的编译器分别编译生成手机和Pad的调试程序包;
(4)在IDE的设备注册功能中注册连接1个手机设备和1个Pad设备;
(5)点击“一键分发”按钮,将手机设备适配的调试程序包分发部署到该手机设备上,同时将Pad设备适配的调试程序包分发部署到该Pad设备上;
(6)在该手机设备和该Pad设备上调试运行部署的程序包,完成测试功能。
当用户点击“一键分发”按钮之后,该IDE会从指定的存储路径中查找已经编译生成的手机调试程序包和Pad调试程序包,并将查找到的程序包分别部署到该手机设备和该Pad设备上。
场景二:如图9所示,IDE所处的终端设备需要向1个手机、1个Pad和1个大屏电视分发部署调试程序包。
基于此应用场景二,开发人员需要在IDE中进行的关键操作如下:
(1)在IDE中选择同时支持手机、Pad和大屏电视的工程模板;
(2)在该工程模板中编写APP适配手机、Pad和大屏电视的界面和业务逻辑;
(3)通过IDE的编译器分别编译生成手机、Pad和大屏电视的调试程序包;
(4)在IDE的设备注册功能中注册连接1个手机设备、1个Pad设备和1个大屏电视设备;
(5)点击“一键分发”按钮,将手机设备适配的调试程序包分发部署到该手机设备上,同时将Pad设备适配的调试程序包分发部署到该Pad设备上,以及将大屏电视设备适配的调试程序包分发部署到该大屏电视设备上;
(6)在该手机设备、该Pad设备和该大屏电视设备上调试运行部署的程序包,完成测试功能。
当用户点击“一键分发”按钮之后,该IDE会从指定的存储路径中查找已经编译生成的手机调试程序包、Pad调试程序包和大屏电视设备调试程序包,并将查找到的程序包分别部署到该手机设备、该Pad设备和该大屏电视设备上。
场景三:如图10所示,IDE所处的终端设备需要向2个手机、2个pad和2个大屏电视设备分发部署调试程序包。
基于此应用场景三,开发人员需要在IDE中进行的关键操作如下:
(1)在IDE中选择同时支持手机、Pad和大屏电视的工程模板;
(2)在该工程模板中编写APP适配手机、Pad和大屏电视的界面和业务逻辑;
(3)通过IDE的编译器分别编译生成手机、Pad和大屏电视的调试程序包;
(4)在IDE的设备注册功能中注册连接2个手机设备、2个Pad设备和2个大屏电视设备;
(5)点击“一键分发”按钮,将手机设备适配的调试程序包分发部署到该2个手机设备上,同时将Pad设备适配的调试程序包分发部署到该2个Pad设备上,以及将大屏电视设备适配的调试程序包分发部署到该2个大屏电视设备上;
(6)在该2个手机设备、该2个Pad设备和该2个大屏电视设备上调试运行部署的程序包,完成测试功能。
当用户点击“一键分发”按钮之后,该IDE会从指定的存储路径中查找已经编译生成的手机调试程序包、Pad调试程序包和大屏电视设备调试程序包,并将查找到的程序包分别部署到该2个手机设备、该2个Pad设备和该2个大屏电视设备上。
假设在步骤(3)中,大屏电视设备的调试程序包生成失败(即在该存储路径中不存在大屏电视设备的调试程序包),而且其中一个Pad设备(Pad2)在注册连接之后与IDE的通讯中断。那么,在判断各个已注册的设备是否满足程序包分发部署条件时,会得到“2个手机设备,1个Pad设备(Pad1)满足程序包分发部署条件,2个大屏电视设备,1个Pad设备(Pad2)不满足程序包分发部署条件”的结果。在这个情况下,IDE的设备列表界面可以如图11所示,用户可以在该界面中选择将调试程序包分发部署到该2个手机设备,1个Pad设备(Pad1)中的一个或多个设备;或者用户也可以点击“一键分发”的按钮,此时会将调试程序包同时分发部署到该2个手机设备和1个Pad设备(Pad1)中。而且,在该设备列表界面中,对于不满足程序包分发部署条件的2个大屏电视设备和1个Pad设备(Pad2),会添加用于指示无法部署程序包的错误标记,通过点击该错误标记还可以展示相应的指示信息(比如无法部署程序包的原因,相应的操作建议等信息)。
对应于上文实施例所述的程序包部署的方法,图12示出了本申请实施例提供的程序包部署的装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图12,该装置包括:
程序包查找模块501,用于针对已注册的多个设备,分别查找所述多个设备中每个设备所适配的程序包,其中所述多个设备的注册操作是通过预先构建的集成开发环境IDE工具完成的;
程序包部署模块502,用于将查找到的程序包分发部署到对应的设备中,所述对应的设备为所述多个设备中的设备。
进一步的,所述程序包部署的装置还可以包括:
通信建立模块,用于通过所述IDE工具建立与所述多个设备的通信连接;
状态信息接收模块,用于在通信连接建立成功后,分别接收所述多个设备中每个设备的状态信息;
状态信息显示模块,用于将接收到的所述状态信息显示在所述IDE工具的设备列表界面,完成注册操作。
进一步的,所述程序包部署模块可以包括:
条件判断单元,用于分别判断所述多个设备中的每个设备是否满足预设的程序包分发部署条件;
程序包部署单元,用于对于所述多个设备中满足所述程序包分发部署条件的第一设备,将与所述第一设备适配的程序包分发部署到对应的第一设备中。
进一步的,所述条件判断单元可以包括:
设备标识码获取子单元,用于获取目标设备的设备标识码,所述目标设备为所述多个设备中的任一设备;
程序包查找子单元,用于从指定的存储路径中查找与所述设备标识码对应的程序包;
第一判定子单元,用于若从所述存储路径中查找到与所述设备标识码对应的程序包,且所述目标设备的状态信息为正常状态,则判定所述目标设备满足所述程序包分发部署条件;
第二判定子单元,用于若从所述存储路径中未查到与所述设备标识码对应的程序包,或者所述目标设备的状态信息为异常状态,则判定所述目标设备不满足所述程序包分发部署条件。
进一步的,所述程序包部署模块还可以包括:
提示信息输出单元,用于对于所述多个设备中不满足所述程序包分发部署条件的第二设备,在所述设备列表界面中为所述第二设备的图标添加程序包部署失败的标记,并输出预设的提示信息。
进一步的,所述程序包部署单元可以包括:
第一程序包部署子单元,用于若接收到第一操作指令,则为所有的第一设备分发部署适配的程序包;
第二程序包部署子单元,用于若接收到第二操作指令,则从所述第一设备中选择至少一个设备,并为选择的所述至少一个设备分发部署适配的程序包。
进一步的,所述程序包部署的装置还可以包括:
运行结果接收模块,用于分别接收各个所述设备对各自部署的程序包的调试运行结果;
运行结果添加模块,用于将所述调试运行结果添加到所述IDE工具的设备列表界面中。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请提出的各个程序包部署的方法的步骤。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行本申请提出的各个程序包部署的方法的步骤。
图13为本申请一实施例提供的终端设备的结构示意图。如图13所示,该实施例的终端设备6包括:至少一个处理器60(图6中仅示出一个)处理器、存储器61以及存储在所述存储器61中并可在所述至少一个处理器60上运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述任意程序包部署的方法实施例中的步骤。
所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图13仅仅是终端设备6的举例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),该处理器60还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61在一些实施例中可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61在另一些实施例中也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种程序包部署的方法,其特征在于,包括:
针对已注册的多个设备,分别查找所述多个设备中每个设备所适配的程序包,其中所述多个设备的注册操作是通过预先构建的集成开发环境IDE工具完成的;
将查找到的程序包分发部署到对应的设备中,所述对应的设备为所述多个设备中的设备。
2.如权利要求1所述的程序包部署的方法,其特征在于,所述多个设备的注册操作包括:
通过所述IDE工具建立与所述多个设备的通信连接;
在通信连接建立成功后,分别接收所述多个设备中每个设备的状态信息;
将接收到的所述状态信息显示在所述IDE工具的设备列表界面,完成注册操作。
3.如权利要求2所述的程序包部署的方法,其特征在于,所述将查找到的程序包分发部署到对应的设备中包括:
分别判断所述多个设备中的每个设备是否满足预设的程序包分发部署条件;
对于所述多个设备中满足所述程序包分发部署条件的第一设备,将与所述第一设备适配的程序包分发部署到对应的第一设备中。
4.如权利要求3所述的程序包部署的方法,其特征在于,判断所述多个设备中任一设备是否满足预设的程序包分发部署条件包括:
获取目标设备的设备标识码,所述目标设备为所述多个设备中的任一设备;
从指定的存储路径中查找与所述设备标识码对应的程序包;
若从所述存储路径中查找到与所述设备标识码对应的程序包,且所述目标设备的状态信息为正常状态,则判定所述目标设备满足所述程序包分发部署条件;
若从所述存储路径中未查到与所述设备标识码对应的程序包,或者所述目标设备的状态信息为异常状态,则判定所述目标设备不满足所述程序包分发部署条件。
5.如权利要求3所述的程序包部署的方法,其特征在于,在分别判断所述多个设备中的每个设备是否满足预设的程序包分发部署条件之后,还包括:
对于所述多个设备中不满足所述程序包分发部署条件的第二设备,在所述设备列表界面中为所述第二设备的图标添加程序包部署失败的标记,并输出预设的提示信息。
6.如权利要求3所述的程序包部署的方法,其特征在于,所述将与所述第一设备适配的程序包分发部署到对应的第一设备中包括:
若接收到第一操作指令,则为所有的第一设备分发部署适配的程序包;
若接收到第二操作指令,则从所述第一设备中选择至少一个设备,并为选择的所述至少一个设备分发部署适配的程序包。
7.如权利要求1至6中任一项所述的程序包部署的方法,其特征在于,在将查找到的程序包分发部署到对应的设备中之后,还包括:
分别接收各个所述设备对各自部署的程序包的调试运行结果;
将所述调试运行结果添加到所述IDE工具的设备列表界面中。
8.一种程序包部署的装置,其特征在于,包括:
程序包查找模块,用于针对已注册的多个设备,分别查找所述多个设备中每个设备所适配的程序包,其中所述多个设备的注册操作是通过预先构建的集成开发环境IDE工具完成的;
程序包部署模块,用于将查找到的程序包分发部署到对应的设备中,所述对应的设备为所述多个设备中的设备。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的程序包部署的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的程序包部署的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911184397.3A CN112860274A (zh) | 2019-11-27 | 2019-11-27 | 程序包部署的方法、装置、终端设备和存储介质 |
PCT/CN2020/125519 WO2021103936A1 (zh) | 2019-11-27 | 2020-10-30 | 程序包部署的方法、装置、终端设备和存储介质 |
EP20891504.1A EP4047475A4 (en) | 2019-11-27 | 2020-10-30 | METHOD AND DEVICE FOR USE OF A PROGRAM PACKAGE, TERMINAL AND STORAGE MEDIUM |
US17/825,897 US20220283795A1 (en) | 2019-11-27 | 2022-05-26 | Package deployment method and apparatus, terminal device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911184397.3A CN112860274A (zh) | 2019-11-27 | 2019-11-27 | 程序包部署的方法、装置、终端设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860274A true CN112860274A (zh) | 2021-05-28 |
Family
ID=75985770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911184397.3A Pending CN112860274A (zh) | 2019-11-27 | 2019-11-27 | 程序包部署的方法、装置、终端设备和存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220283795A1 (zh) |
EP (1) | EP4047475A4 (zh) |
CN (1) | CN112860274A (zh) |
WO (1) | WO2021103936A1 (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067426A1 (en) * | 2005-09-22 | 2007-03-22 | Sun Microsystems, Inc. | Computer implemented methods for transferring files from a development environment to target mobile devices |
US20110225579A1 (en) * | 2010-03-12 | 2011-09-15 | Nikhil Khandelwal | Configurable software deployment |
CN103853549A (zh) * | 2012-12-06 | 2014-06-11 | 国际商业机器公司 | 用于在网络化计算环境中进行程序代码库搜索和选择的方法和系统 |
CN104321745A (zh) * | 2012-02-07 | 2015-01-28 | 泰利瑞克股份公司 | 用于软件应用程序的跨平台开发的环境及方法 |
CN105786495A (zh) * | 2016-02-24 | 2016-07-20 | 中国联合网络通信集团有限公司 | 软件发布系统及方法、软件开发发布系统 |
US9430207B1 (en) * | 2013-03-13 | 2016-08-30 | MobileForce Software, Inc. | Automated cross-platform native mobile application generation with cloud driven user interface and workflow synthesis |
CN106294158A (zh) * | 2016-08-11 | 2017-01-04 | 北京小米移动软件有限公司 | 终端测试方法、装置及系统 |
US20180143825A1 (en) * | 2016-11-22 | 2018-05-24 | Sap Se | Development of internet of things (iot) applications |
CN108073400A (zh) * | 2017-12-07 | 2018-05-25 | 湖北三新文化传媒有限公司 | 软件自动化构建方法、服务器及存储介质 |
US20180260163A1 (en) * | 2017-03-07 | 2018-09-13 | Hefei Core Storage Electronic Limited | Data programming method, memory storage device and memory control circuit unit |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035797A (zh) * | 2014-06-13 | 2014-09-10 | 四川长虹电器股份有限公司 | 应用程序的分发方法和应用程序的接收方法 |
TWI590152B (zh) * | 2016-05-27 | 2017-07-01 | 緯創資通股份有限公司 | 電子裝置的檢測方法 |
CN106126286A (zh) * | 2016-06-22 | 2016-11-16 | 天维尔信息科技股份有限公司 | 一种软件部署方法及终端 |
CN108509333A (zh) * | 2017-02-28 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 调试方法及装置 |
-
2019
- 2019-11-27 CN CN201911184397.3A patent/CN112860274A/zh active Pending
-
2020
- 2020-10-30 EP EP20891504.1A patent/EP4047475A4/en active Pending
- 2020-10-30 WO PCT/CN2020/125519 patent/WO2021103936A1/zh unknown
-
2022
- 2022-05-26 US US17/825,897 patent/US20220283795A1/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067426A1 (en) * | 2005-09-22 | 2007-03-22 | Sun Microsystems, Inc. | Computer implemented methods for transferring files from a development environment to target mobile devices |
US20110225579A1 (en) * | 2010-03-12 | 2011-09-15 | Nikhil Khandelwal | Configurable software deployment |
CN104321745A (zh) * | 2012-02-07 | 2015-01-28 | 泰利瑞克股份公司 | 用于软件应用程序的跨平台开发的环境及方法 |
CN103853549A (zh) * | 2012-12-06 | 2014-06-11 | 国际商业机器公司 | 用于在网络化计算环境中进行程序代码库搜索和选择的方法和系统 |
US9430207B1 (en) * | 2013-03-13 | 2016-08-30 | MobileForce Software, Inc. | Automated cross-platform native mobile application generation with cloud driven user interface and workflow synthesis |
CN105786495A (zh) * | 2016-02-24 | 2016-07-20 | 中国联合网络通信集团有限公司 | 软件发布系统及方法、软件开发发布系统 |
CN106294158A (zh) * | 2016-08-11 | 2017-01-04 | 北京小米移动软件有限公司 | 终端测试方法、装置及系统 |
US20180143825A1 (en) * | 2016-11-22 | 2018-05-24 | Sap Se | Development of internet of things (iot) applications |
US20180260163A1 (en) * | 2017-03-07 | 2018-09-13 | Hefei Core Storage Electronic Limited | Data programming method, memory storage device and memory control circuit unit |
CN108073400A (zh) * | 2017-12-07 | 2018-05-25 | 湖北三新文化传媒有限公司 | 软件自动化构建方法、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
捕鱼达人 OCT.Y: "【android】Airtest IDE实现多设备管理以及自动装包", pages 1 - 4, Retrieved from the Internet <URL:《https://www.cnblogs.com/starkYang/p/10547278.html》> * |
Also Published As
Publication number | Publication date |
---|---|
EP4047475A4 (en) | 2022-12-07 |
WO2021103936A1 (zh) | 2021-06-03 |
US20220283795A1 (en) | 2022-09-08 |
EP4047475A1 (en) | 2022-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105404585B (zh) | 获取代码覆盖率的方法及装置 | |
CN106502906B (zh) | 一种测试应用程序的方法和装置 | |
CN112052008B (zh) | 代码检查方法、装置、计算机设备及计算机可读存储介质 | |
CN107943683B (zh) | 一种测试脚本生成方法、装置、电子设备及存储介质 | |
CN107908407B (zh) | 编译方法、装置及终端设备 | |
CN112148579B (zh) | 一种用户界面的测试方法和装置 | |
CN111176977B (zh) | 一种安全漏洞自动识别方法和装置 | |
CN105530239B (zh) | 多媒体数据获取方法及装置 | |
CN108595203A (zh) | 应用功能执行方法、移动终端和计算机可读存储介质 | |
CN110058850A (zh) | 一种应用的开发方法、装置以及存储介质 | |
CN108320148A (zh) | 一种资源转移方法及相关设备 | |
CN112116690A (zh) | 视频特效生成方法、装置及终端 | |
CN106155717A (zh) | 一种将sdk集成到第三方apk的方法和装置 | |
CN110851350A (zh) | 网页界面白屏监测的方法及装置 | |
CN105430448B (zh) | 一种视频播放器的控制处理方法和视频播放器客户端 | |
CN110378107A (zh) | 一种安装包检测的方法及相关装置 | |
CN109240902A (zh) | 一种获取电子设备的固件代码的方法和装置 | |
CN107423598B (zh) | 一种解锁控制方法及移动终端 | |
CN109126124A (zh) | 引擎适配方法、相关设备以及计算机可读存储介质 | |
CN111737100A (zh) | 数据获取方法、装置、设备及存储介质 | |
CN107465646B (zh) | 一种应用下载方法、系统及相关设备 | |
CN104102560B (zh) | 系统性能测试的方法及装置 | |
CN110413639A (zh) | 数据核查方法及装置、电子设备和计算机可读存储介质 | |
CN107861827B (zh) | 卡屏检测方法、移动终端及计算机可读存储介质 | |
CN109344035A (zh) | 一种应用程序的运行控制方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |