CN113821203A - App开发平台、app开发方法及电子设备 - Google Patents

App开发平台、app开发方法及电子设备 Download PDF

Info

Publication number
CN113821203A
CN113821203A CN202010569877.8A CN202010569877A CN113821203A CN 113821203 A CN113821203 A CN 113821203A CN 202010569877 A CN202010569877 A CN 202010569877A CN 113821203 A CN113821203 A CN 113821203A
Authority
CN
China
Prior art keywords
component
connection point
user
components
data entity
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
Application number
CN202010569877.8A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111556609.3A priority Critical patent/CN114371844B/zh
Priority to CN202010569877.8A priority patent/CN113821203A/zh
Priority to PCT/CN2021/098215 priority patent/WO2021254167A1/zh
Publication of CN113821203A publication Critical patent/CN113821203A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种APP开发方法以及APP开发平台,该方法包括:用户从组件工具箱中选定组件,电子设备中安装有APP开发平台。组件编排设计器可以创建组件并显示组件的构成,组件可以由一个组件主体和一个或多个连接点组件,连接点支持一种或多种数据实体类型。用户在组件编排设计器的界面中连接第一组件和第二组件;响应于该操作,组件设计编排器连接第一组件和第二组件;用户在组件编排设计器中选择编译完成连接的组件,响应于该操作,代码生成引擎将组件编排设计器中显示的多个完成连接的组件编译成APP的可执行代码。这样,开发人员利用已有的多个组件快速组合成用户需要开发的APP,不需要逐一写程序代码实现APP的功能逻辑。

Description

APP开发平台、APP开发方法及电子设备
技术领域
本发明涉及电子技术领域,尤其涉及一种APP开发平台、APP开发方法及电子设备。
背景技术
目前,各种电子设备(例如,手机、平板、电脑、车机、智能手表等等)都可以安装应用程序(application,APP)。开发人员需要为这些电子设备开发各种APP。一般地,同一个APP,开发人员需要分别给不同操作系统或不同设备形态的电子设备编写一套程序代码。举例来说,对于同一视频APP,开发人员需要给安卓系统的手机、iOS系统的手机、电脑等各写一套程序代码,且开发人员为一种电子设备写的代码无法直接复用到另一种不同操作系统的电子设备中。
另外,许多APP的程序代码使用的编程语言不同,导致开发人员在开发APP时无法复用现有APP中实现某一功能的程序代码。例如,现有拍照APP和美颜类APP中均有拍照功能。若开发人员需要开发一个具有拍照功能的APP,由于现有的具有拍照功能的APP使用的编程语言或者接口不同,使得开发人员无法直接复用现有APP中实现拍照功能部分的程序代码。这样,开发人员无法利用现有APP中实现某些功能的程序代码去便利地开发一个新的APP,开发一个APP需要耗费较多的时间。
由此,如何提升开发平台开发APP的效率,快速地开发新APP是亟待解决的问题。
发明内容
本申请提供了一种APP开发平台、APP开发方法及电子设备。本申请提供的APP开发平台,用户可以在APP开发平台中选择组件进行连接,APP开发平台可以验证用户选择的组件是否可以连接。当用户选择的组件连接成功后,用户可以选择在APP开发平台中将连接成功的组件编译成APP可执行的源代码。这样,用户可以快速开发APP。
第一方面,本申请提供一种APP开发平台,该APP开发平台应用于电子设备,APP开发平台包括组件工具箱,组件编排设计器,代码生成引擎。其中,组件工具箱用于提供组件,组件为实现特定功能的独立模块,组件由一个组件主体和一个或多个连接点构成,连接点支持一种或多种数据实体类型;组件编排设计器用于显示组件,根据用户连接组件的操作连接两个或多个组件;代码生成引擎用于将组件编排设计器中连接的两个或多个组件生成第一APP可执行的源代码,第一APP包括两个或多个组件。
其中,数据实体,即连接点可以支持的数据。数据实体类型即为数据实体的类型。数据实体类型可以包括音频、视频、图像、文字等多种类型。
通过本申请提供的APP开发平台,用户从组件工具箱中选定组件,电子设备中安装有APP开发平台。组件编排设计器可以创建组件并显示组件的构成,组件可以由一个组件主体和一个或多个连接点组件。用户在组件编排设计器的界面中连接第一组件和第二组件;响应于该操作,组件设计编排器连接第一组件和第二组件;用户在组件编排设计器中选择编译完成连接的组件,响应于该操作,代码生成引擎将组件编排设计器中显示的多个完成连接的组件编译成APP的可执行代码。这样,开发人员利用已有的多个组件快速组合成用户需要开发的APP,不需要逐一写程序代码实现APP的功能逻辑。
在一种可能的实现方式中,组件编排设计器还用于:响应于用户连接第一组件和第二组件的操作,验证第一组件和第二组件是否匹配;若第一组件和第二组件匹配,则连接第一连接点和第二连接点,第一连接点为第一组件的连接点,第二连接点为第二组件的连接点。这样,可以避免第一组件和第二组件的数据格式不匹配。
在一种可能的实现方式中,第一组件和第二组件匹配包括:第一数据实体类型与第二数据实体类型相同、第一数据实体类型包括第二数据实体类型、或者第二数据实体类型包括第一数据实体类型,其中,第一数据实体类型为第一连接点支持的数据实体的类型,第二数据实体为第二连接点支持的数据实体的类型。
在一种可能的实现方式中,组件工具箱还用于:响应于用户上传组件或从组件市场下载组件的操作,显示用户上传或从组件市场下载的组件的名称。这样,APP平台可以给用户提供更多的组件,提升用户体验。
在一种可能的实现方式中,组件编排设计器具体用于:显示连接第一连接点和第二连接点的连接线。这样,可以提示用户第一连接点和第二连接点成功连接。
在一种可能的实现方式中,组件编排设计器具体用于:将第一连接点和第二连接点重叠显示。这样,可以提示用户第一连接点和第二连接点成功连接。
在一种可能的实现方式中,组件编排设计器具体用于:根据用户从组件工具箱中选择第一组件的操作,显示第一组件。
在一种可能的实现方式中,组件编排设计器还用于:响应于用户选择对第一组件进行智能编排的操作,显示出第一组件的组件调用树;组件调用树用于展示与第一组件匹配的第二组件和/或第三组件、以及与第二组件匹配的第四组件和/或第五组件、直到与第M组件匹配的第N组件,且第N组件为无输出连接点的组件,其中,M和N为正整数。这样,当用户不知道与第一组件匹配的组件时,可以智能给用户推荐可以和第一组件连接的组件,节约用户时间,提升用户体验。
在一种可能的实现方式中,显示出所述第一组件的组件调用树,具体为:根据第一组件的功能和/或第一组件的连接点支持的数据实体类型,显示出第一组件的组件调用树。这样,可以更准确地推荐出第一组件匹配的组件。
在一种可能的实现方式中,组件编排设计器还用于:响应于用户删除组件的操作,删除组件调用树中的组件。
在一种可能的实现方式中,组件编排设计器还用于:保存完成连接的两个或多个组件的编排模型图,以及编排模型图中的第一信息;第一信息包括中两个或多个组件的ID、名称、两个或多个组件的连接点支持的数据实体类型中的一项或多项。
在一种可能的实现方式中,代码生成引擎具体用于:根据编排模型图、第一信息和组件调用模板生成第一APP可执行的源代码,组件调用模板中包括预设格式的程序代码。组件调用模板是按照不同类型的组件,以及连接点的属性来预设好的代码模板,封装了通用的接口调用代码逻辑。
第二方面,本申请提供了一种APP开发方法,该方法包括:响应于用户从电子设备的组件工具箱中选择组件的操作,电子设备在组件编排设计器中显示所述组件,组件为实现特定功能的独立模块;组件由一个组件主体和一个或多个连接点构成,连接点支持一种或多种数据实体类型;响应于用户连接多个组件的操作,电子设备在组件编排设计器中连接两个或多个组件;响应于用户选择编译的两个或多个组件的操作,电子设备在代码生成引擎中将连接的两个或多个组件生成第一APP的可执行的源代码。
其中,数据实体为连接点可以支持的数据。数据实体类型即为数据实体的类型。数据实体类型可以包括音频、视频、图像、文字等多种类型。
这样,用户可以利用已有的组件连接得到APP,不需要重新的编写APP的代码,可以节约用户开发APP的时间。
在一种可能的实现方式中,电子设备在组件编排设计器中连接两个或多个组件,具体包括:响应于用户连接第一组件和第二组件的操作,电子设备通过组件编排设计器验证第一组件和第二组件是否匹配;若第一组件和第二组件匹配,则电子设备连接第一连接点和第二连接点,第一连接点为第一组件的连接点,第二连接点为第二组件的连接点。这样,可以保证用户连接的两个组件是匹配的。
在一种可能的实现方式中,第一组件和第二组件匹配包括:第一数据实体类型与第二数据实体类型相同、第一数据实体类型包括第二数据实体类型、第二数据实体类型包括第一数据实体类型,第一数据实体类型为第一连接点支持的数据实体的类型,第二数据实体为第二连接点支持的数据实体的类型。
在一种可能的实现方式中,该方法还包括:响应于用户查看第一组件的第一连接点属性的操作,电子设备在组件编排设计器中显示第一连接点支持的数据实体类型。这样,用户可以知道第一组件的第一连接点的属性,以便于用户后续操作,例如,根据第一连接点的属性查找与第一组件匹配的第二组件。
在一种可能的实现方式中,电子设备连接第一连接点和第二连接点包括:显示连接第一连接点和第二连接点的连接线;或,将第一连接点和第二连接点重叠。这样,可以提示用户第一连接点和第二连接点已经建立连接。
在一种可能的实现方式中,该方法还包括:响应于用户选择对第一组件进行智能编排的操作,电子设备在组件编排设计器中显示出第一组件的组件调用树;组件调用树用于展示第一组件匹配的第二组件和/或第三组件、以及与第二组件匹配的第四组件和/或第五组件、直到与第M组件匹配的第N组件,且第N组件为无输出连接点的组件,其中,M和N为正整数。这样,当用户不知道与第一组件匹配的组件时,可以智能给用户推荐可以和第一组件连接的组件,节约用户时间,提升用户体验。
在一种可能的实现方式中,电子设备在组件编排设计器中显示出第一组件的组件调用树,具体包括:根据第一组件的功能和/或第一组件的连接点支持的数据实体类型,显示出第一组件的组件调用树。这样,可以更准确地推荐出第一组件匹配的组件。
在一种可能的实现方式中,该方法还包括:响应于用户删除组件的操作,电子设备删除组件调用树种的组件。这样,用户可以删除组件调用树中跟第一APP无关的组件。
在一种可能的实现方式中,该方法还包括:电子设备在组件编排设计器中保存完成连接的两个或多个组件的编排模型图,以及编排模型图中的第一信息;第一信息包括中两个或多个组件的ID、名称、两个或多个组件的连接点支持的数据实体类型中的一项或多项。
在一种可能的实现方式中,该方法还包括:电子设备在所述代码生成引擎中,根据编排模型图、第一信息和组件调用模板生成第一APP可执行的源代码,组件调用模板中包括预设格式的程序代码。组件调用模板是按照不同类型的组件,以及连接点的属性来预设好的代码模板,封装了通用的接口调用代码逻辑。
第三方面,本申请提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器;该一个或多个存储分别与一个或多个处理器耦合;该一个或多个存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令;当该计算机指令在该处理器上运行时,使得该电子设备执行上述任一方面任一种可能的实现方式中的APP开发方法。
第四方面,本申请实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得通信装置执行上述任一方面任一项可能的实现方式中的APP开发方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述任一方面任一项可能的实现方式中的APP开发方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例中所需要使用的附图进行说明。
图1A为本申请实施例提供的一种视频解码组件的示意图;
图1B为本申请实施例提供的一种复合组件的示意图;
图2为本申请实施例提供的一种APP开发平台10的架构示意图;
图3为本申请实施例提供的组件工具箱101的示意图;
图4为本申请实施例提供的一种用户界面的示意图;
图5A-图5G为本申请实施例提供的用户界面的示意图;
图6A-图6B为本申请实施例提供的用户界面的示意图;
图7A-图7B为本申请实施例提供的用户界面的示意图;
图8A-图8D为本申请实施例提供一种用户界面示意图;
图9为本申请实施例提供的一种APP开发方法的流程示意图;
图10为本申请实施例提供的一种应用场景示意图;
图11为本申请实施例提供的一种组件开发生态示意图;
图12为本申请实施例提供的组件的领域描述语言与组件图形对应关系示意图;
图13为本申请实施例提供的电子设备的硬件结构示意图;
图14为本申请实施例的电子设备的示意性框图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清除、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先对本申请实施例涉及到的一些概念(如组件Component、连接点ConnectPoint)进行介绍。
(1)组件(Component)
组件是一个由一定业务逻辑、以及相关数据组成的独立模块。组件可以完成特定的功能。例如,视频播放组件可以完成播放视频的功能、视频解码组件可以完成对视频解码的功能。一个APP可以由一个或多个组件组成。组件可以有用户界面,也可以没有用户界面。例如,视频解码组件可以没有用户界面,即电子设备通过视频解码组件对视频解码的过程可以不展现在用户界面中,用户不感知。单个组件可以独立运行于用户设备中,例如,TV中可以安装有播放视频组件,然后TV通过该播放视频组件播放视频。
每个组件包括一个组件主体和若干个连接点(输入连接点或输出连接点)。一个组件通过连接点来实现与其他组件传递数据。一般地,组件至少包括一个输入连接点或输出连接点。可以理解的是,有的组件也可以没有连接点,即这类组件无输入连接点和输出连接点。在本申请实施例中,可以用来组成APP的组件至少有一个或多个连接点。
示例性地,一个组件的构成可以如图1A所示。图1A示出了视频解码组件的图形示例。视频解码组件可以包括一个组件主体(如图1A中解码视频10a)和一个输入连接点(如图1A中输入连接点Input ConnectPoint10b)、以及二个输出连接点(如图1A中输出连接点Output ConnectPoint10c和输出连接点10d)。
(2)连接点(ConnectPoint)
连接点是组件的对外的智能化接口,即实现输入或输出功能的代理者,负责与其他连接点进行接口协议检查、协商对接、数据传递等。连接点是组件接收另一个组件输入数据的途径,也是组件向另一个组件输出数据的途径。连接点包括输入连接点或者输出连接点。通常,每个连接点可以支持一种或多种类型的数据实体Entity。连接点支持的数据实体可以是图像、音频、视频、文字等等。
(3)数据实体(Entity)
数据实体,即连接点可以支持的数据。数据实体类型即为数据实体的类型,数据实体有多种类型,例如音频、视频、图像、文字等等。如表1所示,表1示例性的示出了数据实体的一些类型。其中视频可以按照不同的视频编码标准分类。例如,视频编码标准可以包括动态图像专家组(moving pictures experts group,MPEG)压缩编码标准和高效视频编码(high efficiency video coding,HEVC)标准。其中,MPEG压缩编码标准可以包括MPEG、MPEG2和MPEG4等几种编码标准。HEVC可以包含编码标准H265。音频的文件可以有多种格式。例如动态影像专家压缩标准音频层面3(moving picture experts group audio layerIII,简称MP3)格式的音频文件、波形文件(waveform Audio,简称WAVE)格式的音频文件、无损音频压缩编码(Free Lossless Audio Codec,FLAC)格式的音频文件。数据实体的类型还可以包括文本、图片、压缩文件、文档、流和数据集等等。流可以包括视频流、音频流或者复合流。复合流中可以包含视频流和音频流。数据集可以包括数据库表。其中,每一个类型还可以包括一些子类型,格式或者一些其他属性。例如,视频类型数据实体类型可以MPEG、MPEG2和MPEG4等子类型,还可以包括:宽度、高度、字幕、语言等等属性。例如,图1A中输入连接点10b支持的数据实体类型可以为MPEG格式的视频、格式为1920*1080,语言为中文等等。具体可以参考表1,此处不再赘述。
表1
Figure BDA0002549160990000061
Figure BDA0002549160990000071
(4)复合组件
复合组件由多个组件组成,可以完成多个功能。例如,如图1B所示,复合组件100A可以由视频解码组件和视频播放组件组成。其中,视频解码组件包括一个主体(解码视频10a)、一个输入连接点(输入连接点10b)和两个输出连接点(输出连接点10c和输出连接点10d)。视频播放组件包括一个主体(播放视频10e)和一个输入连接点(输入连接点10f)。视频解码组件的输出连接点10d和视频播放组件的输入连接点10f连接。复合组件100A可以实现视频解码和视频播放的功能。
为了解决开发APP比较耗时的问题,在一种实现方式中,开发人员可以在电子设备上通过“快捷指令”应用将现有快捷指令或自定义快捷指令组成新的APP。即开发人员可以通过“快捷指令”应用合并终端中多个应用间的多个操作,以创建一个APP。举例来说,电子设备中应用A具有拍照这个操作。电子设备中应用B具有一键将照片转换为PDF文档这个操作。开发人员可以通过“快捷指令”将应用A中的拍照操作和应用B中一键将照片转换为PDF文档操作串接组合成一个新APP。这样,开发人员可以较为快捷地开发一个新的APP。
但是,这种实现方式中提出的方法只能简单的组合电子设备中的一些操作。当开发人员需要开发一个功能较多的,业务逻辑比较复杂的APP时,上述实现方式中提出的方法难以满足开发人员的需求。
针对上述实现方式中存在的问题,本申请提供了一种APP开发平台。该APP开发平台包括组件工具箱,组件编排设计器以及代码生成引擎。基于该APP开发平台,本申请提出一种APP开发方法。该方法包括:电子设备检测到用户从组件工具箱中选定组件的操作,电子设备中安装有APP开发平台。响应于该操作,组件编排设计器可以创建组件并显示组件的构成,组件可以由一个组件主体和一个或多个连接点组件。电子设备检测到用户在组件编排设计器的界面中连接第一组件和第二组件的操作;响应于该操作,组件设计编排器判断第一组件的输出连接点支持的数据实体类型和第二租件的输入连接点支持的数据实体类型是否匹配。若匹配,组件设计器编排器可以显示连接成功的标识。电子设备检测到用户在组件编排设计器中选择编译完成连接的组件的操作,响应于该操作,代码生成引擎将组件编排设计器中显示的多个完成连接的组件编译成APP的可执行代码。这样,开发人员利用已有的多个组件快速组合成用户需要开发的APP,不需要逐一写程序代码实现APP的功能逻辑。
在本申请实施例中,开发人员又可以称为用户,该用户可以在本申请提供的电子设备中开发APP或组件。
首先对本申请实施例提供的一种APP开发平台进行介绍。如图2所示,图2示出了本申请实施例提供的APP开发平台10的架构示意图。本申请实施例提供的APP开发平台10包括:组件工具箱101、组件编排设计器102、代码生成引擎103。
组件工具箱101用于呈现组件。组件工具箱101中的组件可以按照组件的功能分类。用户可以从组件市场中下载组件,然后保存在组件工具箱101中。用户也可以将自己开发设计的组件上传到组件市场中。
示例性地,组件工具箱101可以如图3所示,图3示出了本申请实施例提供的组件工具箱101。组件工具箱101可以显示在用户界面(未示出)的显示区域1000中。显示区域1000中可以包括控件1001、控件1002、控件1003以及控件1004。用户可以通过控件1001搜索组件工具箱101中的组件。控件1002和控件1003用来展开或收起某一类组件。例如,图3中控件1002用来展开或收起常用组件类的组件。控件1003用来展开或收起影音播放类的组件。图3中示例性的示出了组件工具箱101中包含常用组件类的组件和影音播放类的组件。可以理解的是,组件工具箱101中的组件不限于常用组件类的组件和影音播放类的组件。组件工具箱101中还可以包含其他种类的组件,例如,文档处理类的组件、图片处理类的组件等等。可以理解的是,本申请实施例对组件工具箱101的具体用户界面不做限制。组件工具箱101的用户界面中可以具有比图3中更多或更少的控件。
在一些实施例中,用户可以按照自己的使用习惯对组件进行分类,例如用户可以将播放视频组件添加到常用组件这一分类中。用户可以将预定机票组件、预定酒店组件、订餐外卖分到预定支付类组件中,具体分类名称可由用户自行定义。可以理解的是,不同用户中的组件工具箱101中组件列表中的组件分类可以不一样。例如,图3中示出的常用组件类(例如发送短信组件、拨打电话组件等等)、影音播放类(例如播放视频组件、解码视频组件、解码音频组件等等)的组件等等。关于如何对组件进行分类,本申请实施例不作限制。本申请实施例下文以根据组件的功能对组件分类为例进行阐述。
组件编排设计器102是组件编排和开发的核心工具,具体的,开发者可以在编排设计器中,选择、布局和连接多个组件,选择连接点数据实体类型,设定业务逻辑,构成新的复合组件等。组件编排设计器可具体用于:
显示生成组件:示例性的,组件编排设计器102响应于用户将组件从组件工具箱101中拖拽到组件编排设计器102中,组件编排设计器102可为用户呈现该组件。具体的,开发者可以在组件工具箱101中选择组件,然后组件编排设计器102读取该组件的文件。组件编排设计器102根据该组件的文件中获得组件的组成并将组件绘制出来,呈现在组件编排设计器102中。
连接点对接验证:验证两个组件的连接点的数据实体类型是否一致。
组件连接:根据用户操作将两个或多个组件进行连接。示例性地,开发者可以根据所需APP的业务逻辑或者符合组件的业务逻辑在组件编排设计器102中将两个或多个组件进行连接。在两个组件进行连接时,组件编排设计器102还可以验证两个组件的连接点支持的数据类型是否一致。例如,当视频播放组件的输出连接点和视频解码组件的输入连接点支持相同的数据实体类型时,可以将两个组件之间的连接点进行连接。
业务逻辑编排:开发者可根据组件连接点支持的数据实体类型对连接点增加逻辑判断或循环。
智能化编排:组件编排设计器102可根据组件的功能和组件连接点支持的数据实体类型,自动联想和推荐可以与当前组件对接的其他组件,供开发者选择;或者按照编排策略自动生成对接编排模型。示例性地,组件编排设计器102可以根据用户操作,显示所有能够与第一组件的连接点连接的组件。用户可以在组件编排设计器102显示的组件中选择需要的组件。
支持查看连接点属性:组件编排设计器102可以响应于用户查看组件连接点支持的数据类型的操作,显示该连接点支持的数据类型。
保存组件编排模型图:示例性地,组件编排设计器102还可用于保存多个组件编排完成的模型图,以及模型图中的所有信息。例如,模型图中所有组件的ID和名称、所有连接点的数据实体类型、连接点的连接属性(包括两个相连的连接点支持的数据实体类型,以及数据传输方式(直接传输或需要判断条件,满足判断条件才传输))。
代码生成引擎103用于将编排好的复合组件、APP生成可执行的源代码。具体地,代码生成引擎103根据组件编排设计器102中保存的多个组件编排完成的模型图,以及模型图中的所有信息。例如,模型图中所有组件的ID和名称、所有连接点的数据实体类型、连接点的连接属性和组件调用模板生成可执行的源代码。其中,组件调用模板是按照不同类型的组件,以及连接点的属性来预设好的代码模板,封装了通用的接口调用代码逻辑。示例性地,组件调用模板可以包括如下程序代码:
Figure BDA0002549160990000091
Figure BDA0002549160990000101
Figure BDA0002549160990000111
上述代码中除了<>中的内容之外,其余的代码均为模板。代码生成引擎可以根据具体生成的APP替换上述代码中<>的内容。例如,<ComposePlayer>中的“ComposePlayer”可以替换为具体APP的名称(如123player)。<VideoSplit>中的“VideoSplit”可以替换为实际生成APP所需的组件名称。<ConnectPoint1>中的“ConnectPoint1”可以替换为实际的连接点。<entity.MPEG>,<entity.640_480>中“MPEG”和“640_480”可以替换为实际的数据实体类型。
可以理解的是,本申请中的APP开发平台可以作为一个单独开发APP的工具,也可以是一个开发工具中的一个模块。此处不作限定。
下面通过附图介绍利用本申请实施例提供的APP开发平台开发APP的实现过程。
图4-图8D示例性地示出了开发一个视频APP的过程。本申请实施例以电子设备是电脑为例进行阐述。
如图4所示,图4示出了用户界面400。用户界面400用于用户创建APP。用户界面400中可以包括输入框401、输入框402、输入框403、输入框405、以及控件404、控件406、控件407、控件408、控件409、控件410。其中,输入框401用于输入用户所创建的项目名称,即APP名称,例如“MediaPlayerAPP”。输入框402用于用户输入用户所创建APP的包名(PackageName),例如“com.ex.example.mediaplayerapp”。包名是APP的唯一标识,主要用于系统识别APP。输入框403用于用户选择或输入所创建APP的存储位置。用户可以在输入框403中直接输入所创建APP的存储位置,例如“D:\test\mediaplayerapp”。用户还可以通过输入框403中的控件404来选择所创建APP的存储位置。输入框405用于用户选择或直接输入所创建APP所支持的API最低版本。用户可以在输出框405中直接输入所创建APP支持的API最低版本,例如“xxsdk:1.0.0”。用户还可以通过控件406选择所创建APP支持的API最低版本。控件407用于指导用户如何在用户界面400中进行操作。控件408用于取消用户创建的项目。控件409用于回到上一步操作。控件410用于保存用户创建的项目并刷新用户界面400。当用户填完输入框401、输入框402、输入框403、输入框405中的内容后,点击控件410。
示例性的,响应于用户点击控件410的操作,显示如图5A所示用户界面50A。其中,用户界面50A中可以包含显示区域501和显示区域502。显示区域501用于显示组件工具箱101。当用户在组件工具箱101中选中一个组件(例如分解视频组件)拖到显示区域502中,显示区域502可以显示出组件的图形。这里,显示区域502可以是组件设计编排器102的界面。组件设计编排器102的界面可以用于显示组件的图形。
在一种可能的实现方式中,当电子设备检测到用户在组件工具箱101中拖动分解视频组件的操作时,响应于该用户操作,组件编排设计器102可以创建分解视频组件,以及在显示区域502中绘制出分解视频组件的主体(例如用户界面50A中的分解视频503),以及连接点(例如用户界面50A中的输入连接点504和输出连接点505、输出连接点506)。
用户可以查看组件连接点支持的数据实体类型。电子设备可以检测到用户查看连接点的操作,为用户显示该组件连接支持的数据实体类型。该操作可以有很多种,例如双击连接点,鼠标光标悬停在连接点上2s,或者鼠标右击连接点等等,此处不做限定。如图5B所示,用户可以右击输出连接点506,电子设备检测到用户操作,显示如图5C中的用户界面50C,用户界面50C中可以显示查看控件507和智能编排控件508。查看控件507用于显示输出连接点506支持的数据实体类型。智能编排控件508可用于智能编排,显示能够和输出连接点506连接的组件。示例性的,用户可以点击查看控件507。
示例性地,响应于用户点击查看控件507的操作,显示如图5D中所示的用户界面50D,用户界面50D中可以显示输出连接点506支持的数据实体属性表509。数据实体属性表509中可以用来显示输出连接点506支持的数据实体的数据类型为视频、视频的子类型可以是MPEG和MPEG4、以及视频的格式可以为640*480和1920*1080等等。
在一种可能的实现方式中,用户还可以通过点击用户界面50D中分解视频组件的组件主体分解视频503,来查看分解视频组件所有连接点各自支持的数据实体类型。查看分解视频组件所有连接点各自支持的数据实体类型的方式可以是双击连接点,鼠标光标悬停在连接点上2s,或者鼠标右击连接点等,此处不做限制。示例性的,响应于该用户点击分解视频组件的组件主体分解视频503的操作,电子设备可以显示如图5E示出的用户界面50E。用户界面50E中可以展示分解视频组件的属性表510。属性表510用于展示分解视频组件所有连接点的属性。属性表510中的连接点1可以为输入连接点504,连接点2可以是输出连接点505,连接点3可以是输出连接点506。连接点1可以包含两种数据实体,即数据实体0和数据实体1。控件511用于隐藏连接点的数据实体。即,用户点击控件511,属性表510中显示出的数据实体0、数据实体1和数据实体被隐藏。控件512用于隐藏数据实体0的属性,例如,类型(category),子类型(sub category),宽度(width)、高度(height)、比特率(bitrate)等等。控件513用于展开显示数据实体1的属性。控件514用于展开显示连接点2支持的数据实体。控件515用于展开显示连接点3支持的数据实体。
当连接点支持多种类型的数据实体时,用户可以选择一种数据实体设定为连接点可支持的数据实体。例如,图5F中示出的用户界面50F中,输出连接点506支持多种类型的数据实体。具体地,输出连接点506支持的数据实体可以为子类型为MPEG,格式为640*480的视频数据、和子类型为MPEG,格式为1920*1080的视频数据、和子类型为MPEG4,格式为640*480的视频数据、以及文件类型为MPEG4,格式为1920*1080的视频数据。用户可以在数据实体属性表509中将MPEG4设定为输出连接点506可以支持的子类型。电子设备可以检测到用户设置连接点所述支持数据实体属性的操作。用户设置连接点所述支持数据实体属性的操作可以有多种,例如用户可以双击数据实体属性表格509中的子类型MPEG4。此处对用户设置连接点所述支持数据实体属性的操作不作限定。响应于该用户操作,电子设备可以显示提示框516。提示框516用于提示用户已经对数据实体进行了设置。提示框516的提示内容可以是图5E中显示的文字内容“你已将连接点的子类型设置为MPEG4”,此处对提示框516的具体提示内容不作限定。
在另一种可能的实现方式中,用户可以在图5E示出的属性表510中设置连接点支持的数据实体。例如,用户可以双击属性表510中的数据实体0,响应于用户操作,组件编排设计器102将数据实体0设定为连接点1唯一支持的数据实体。
用户可以依次设定好输出连接点506支持的数据实体(例如视频)的子类型以及格式。例如,用户可以将视频的子类型设置为MPEG4,格式设置为1920*1080。用户可以再次点击查看控件507查看输出连接点506支持的数据实体的属性。如图5G示出的用户界面50G所示,用户界面50G显示了更新后的数据实体属性表511。数据实体属性表511中的子类型和格式均为用户设定,即子类型为MPEG4,格式设置为1920*1080。
同理,用户可按照如上方法再添加组件工具箱101中的其他组件到组件编排设计器102中。示例性的,用户可以将组件工具箱101中的播放视频组件拖动到组件编排设计器102中。电子设备可以检测到用户拖动播放视频组件的操作,响应于该操作,组件编排设计器102可以创建视频播放组件并绘制视频播放组件的组件主体(如用户界面60A中示出的播放视频601)以及连接点(如用户界面60A中示出的输入连接点602),并显示在组件编排设计器102的界面中(例如用户界面60A)。
如图6A所示,用户可以将组件工具箱隐藏。并且用户可以在组件编排设计器102的界面中将两个组件进行连接。例如,如图6A示出的用户界面60A。电子设备可以检测到用户将分解视频组件与播放视频组件进行连接的操作。用户将两个组件进行连接的操作可以有多种,例如,用户可以将输出连接点506拖向输入连接点602,或者,用户也可以将输入连接点602拖向输出连接点506,此处不作限定。响应于该用户操作,组件编排设计器102获取输出连接点506和输入连接点602所支持的数据实体类型。组件编排设计器102判断输出连接点506支持的数据实体类型和输入连接点602支持的数据实体类型是否匹配。输出连接点506支持的数据实体类型和输入连接点602支持的数据实体类型匹配是指,连接点506支持的数据实体类型和输入连接点602支持的数据实体类型相同,或者,输出连接点506支持的多个数据实体类型中至少一个数据实体类型与输入连接点602支持的数据实体类型相同。若匹配,组件编排设计器102的界面中可以显示连接成功的标识。若不匹配,组件编排设计器102的界面中可以提示用户不匹配(图中未示出)。这里,提示两个组件的连接点(例如输出连接点506和输入连接点602)不匹配的方式有多种,例如,用户界面中显示提示文字“无法连接”、“匹配失败”、“连接失败”、“数据实体类型不一致”等等,此处不作限定。在该种实现方式中,即使组件的输入连接点或输出连接点支持多种数据类型,编排器可根据两个连接点支持相同的数据实体类型将输入连接点和输出连接点连接。
示例性地,在另一种可能的实现方式中,当连接点支持多种实体类型时,用户可以先将输出连接点506支持的数据实体类型和输入连接点602支持的数据实体类型设置为相同类型,然后再将输出连接点506和输入连接点602进行连接。此时,由于输出连接点506和输入连接点602所支持的数据实体类型相同,组件编排设计器102可以连接输出连接点506和输入连接点602。
两个组件的连接完成的用户界面可以如图6A所示。图6A示出了本申请实施例提供的用户界面60A。用户界面60A中分解视频组件的输出连接点506和播放视频的输入连接点602成功连接。组件编排设计器102的界面中显示的连接成功的标识可以有多种,例如用户界面60A中示出的输出连接点506与输入连接点602之间的连接线603,此处对连接成功的标识不作限定。
示例性地,在一种可能的方式中,两个组件的连接完成后的用户界面也可以如图6B所示。图6B示出的用户界面60B中分解视频组件的输出连接点506和播放视频的输入连接点602成功连接。输出连接点506和输入连接点602折叠或重叠在一起,即表明输出连接点506和输入连接点602成功连接。
当用户选定所创建APP需要的所有组件后,响应于用户的连接操作,组件编排设计器102可以将组件进行连接,具体连接过程可以参考上述分解视频组件与视频播放组件连接的描述,此处不再赘述。连接完成后的用户界面可以如图7A所示。图7A示出了本申请提供的用户界面700。用户界面700中展示了组成用户所创建APP(即视频播放APP)的所有组件。视频播放APP的所有组件可以包括读取视频文件组件702、分解视频组件705、语音翻译组件710、高清增强组件711、音频播放组件716、视频播放组件717。其中,读取视频文件组件可以包括输入连接点701和输出连接点703。分解视频组件705可以包括输入连接点704、输出连接点706、输出连接点707。语音翻译组件710可以包括输入连接点709和输出连接点712。高清增强组件711可以包括输入连接点708和输出连接点713。音频播放组件716可以包括输入连接点714。视频播放组件717可以包括输入连接点715。输出连接点703和可以输入连接点704连接。输出连接点707和可以输入连接点709、或输入连接点714连接。输出连接点706可以和输入连接点708、或输入连接点715连接。输出连接点712可以和输入连接点714连接。输出连接点713可以和输入连接点715连接。
在一实施例中,用户可以给连接点之间的连接线设置属性。连接线的属性可以包括逻辑控制属性(条件判断/分支/循环)或数据传递属性(Entity的输入输出)。图7A中,对分解视频组件705的输出连接点707,可以判断其语言属性,如果与本地语言一致,可以跳过语音翻译组件710,直接与声音播放组件的输入连接点714连接。即,用户可以对连接点707设置判断条件,该条件判断是连接点707支持的语言是否和电子设备的本地语言一致。若是,则视频分解组件的输出通过输出连接点707输入音频播放组件的输入连接点714。若否,则视频分解组件的输出通过输出连接点707输入语言翻译组件710的输入连接点709。
示例性地,用户可以点击连接线左端点上的连接点来设置连接线属性。例如图7A中示出的连接点707到连接点714之间的连接线,以及连接点707到连接点709之间的连接线。用户可以点击连接点707来设置连接点707到连接点714,以及连接点707到连接点709之间的连接线的控制属性。设置连接线的控制属性的界面可以如图7B中用户界面70B所示。用户界面70B中可以包括条件设置框720、条件设置框722、条件设置框724、条件判断结果选择框725、控件721、控件723、控件726、控件727、控件728、控件729。用户界面70B中还可以包括条件设置框730、条件设置框732、条件设置框734、条件判断结果选择框735、控件731、控件733、控件736、控件737。
其中,条件设置框720用于设置判断主体,例如语言(language)。控件721用于选择判断的条件。条件设置框722用于设置判断主体和比较主体的关系,例如判断主体可以包含比较主体。控件723用于选择判断主体和比较主体的关系。例如,该关系可以为包含或者不包含,此处不作限定。条件设置框724用于设置比较主体,例如本地语言。条件设置框720、条件设置框722和条件设置框724共同完成判断条件设置。例如用户界面70B中示出的判断条件1为“连接点707的语言包含本地语言”。条件判断结果选择框725用于设置条件判断结果。例如若满足条件“连接点707的语言包含本地语言”,则连接点707的数据实体通过连接点707和连接点714之间的连接线传输到连接点714。控件726用于选择条件判断结果。控件727用于增加条件。控件728用于完成条件设置。控件729用于取消条件设置。控件737用于返回上一级界面。同样地,条件设置框730用于设置判断主体,例如语言(language)。控件731用于选择判断的条件。条件设置框732用于设置判断主体和比较主体的关系。控件733用于选择判断主体和比较主体的关系。条件设置框734用于设置比较主体,例如本地语言。条件设置框730、条件设置框732和条件设置框734共同完成判断条件设置。例如用户界面70B中示出的判断条件2为“连接点707的语言不包含本地语言”。条件判断结果选择框735用于设置条件判断结果。例如若满足条件“连接点707的语言不包含本地语言”,则连接点707的数据实体通过连接点707和连接点709之间的连接线传输到连接点709。控件736用于选择条件判断结果。
图7A中的所有组件连接完成后,电子设备可以检测到用户将连接完成的组件编译成可执行代码的操作。该用户操作有很多种,例如图7A中用户点击用户界面700的编译控件718,此处不作限定。响应于该用户操作,代码生成引擎103将其编译成用户所创建APP的可执行程序代码。
具体地,代码生成引擎103可以获取组件编排设计器102中完成编排的多个组件的ID和名称,以及连接点,连接点之间的连接属性。例如图6A中示出的分解组件的输出连接点506和播放视频组件的输入连接点602,两个连接点之间传输的数据实体类型可以为文件类型为MPEG4,格式为1920*1080的视频数据。这两个连接点之间直接传递数据,没有判断或者循环逻辑。然后,代码生成引擎103根据获取的组件信息以及连接点之间的连接属性和对应组件调用模板生成可执行代码。组件调用模板是按照不同类型的组件,以及连接点的属性预设好的代码模板,封装了通用的接口调用代码逻辑。可以理解的是,视频类的组件和音频类的组件调用模板可以不同。两个连接点之间是直接传输数据,还是需要判断条件,满足判断条件才可以传输数据等不同的数据传输方式对应的组件调用模板也可以不同。具体可参考上文中对组件调用模板的介绍,此处对组件调用模板中的具体代码不作限定。
在一些例子中,电子设备接收用于显示第一组件的组件调用树的用户操作,响应于该用户操作,组件编排设计器102启动智能编排功能;基于该智能编排功能,组件编排设计器102的界面中可以显示出第一组件的组件调用树;组件调用树用于展示第一组件所有匹配的第二组件和/或第三组件、以及与第二组件匹配的第四组件和/或第五组件、一直到与第M组件匹配的第N组件,且第N组件为无输出连接点的组件,其中,M和N为正整数。具体地,组件编排设计器102根据第一组件的输出连接点支持的数据实体类型,查找到相匹配的第二组件和/或第三组件。即第二组件以及第三组件的输入连接点支持的数据实体类型与第一组件输出连接点支持的数据实体类型匹配。然后,组件编排设计器102再依次根据第二组件输出连接点支持的数据实体类型,查找与第二组件相匹配的第四组件和/或第五组件。第四组件以及第五组件的输入连接点支持的数据实体类型与第二组件输出连接点支持的数据实体类型相匹配。组件编排设计器102会查找出组件调用树中每一个组件相匹配的组件,直到组件调用树的最后一层组件为无输出连接点。
用于显示第一组件的组件调用树的操作可以有多种,例如,用户可以点击用户界面中用于显示组件调用树的控件,或者,用户可以在页面中设置显示组件调用树的条件,例如组件调用树中的组件可以实现一种或多种功能(例如视频解码功能、播放视频功能等等),此处不作限定。
响应于该用户操作,电子设备显示如图8A中示出的用户界面80A,用户界面80A中组件1的组件调用树。组件1可以和组件2和组件3连接。即组件1和组件2相匹配,组件1和组件3相匹配。组件2可以和组件4和组件5相连接。即组件2和组件4相匹配,组件2和组件5相匹配。组件3可以和组件m相连接,即组件3和组件m相匹配。组件4、组件5、组件m可以和组件n连接。即组件4和组件n相匹配,组件5和组件n相匹配,组件m和组件n相匹配。用户可以选择组件调用树中的部分组件,例如选择组件2和组件4、组件n。然后将其他不需要的组件移除或删除。例如,用户右键双击组件来删除组件,移除或删除的方式不作限定。
表2
Figure BDA0002549160990000161
表2示例性地示出了组件1、组件2、组件3、组件m的连接点支持的数据实体类型。表2中“MPEG4、1920*1080、Chinese”表示该连接点支持的数据实体为格式是MPEG4的视频数据,该视频数据分辨率为1920*1080、视频数据中支持的语言为中文。“MP3、112800、Chinese”表示连接点支持的数据实体为格式是MP3的音频数据,该音频数据的采用率为112800Hz,支持的语言为中文。从表2可以看出,组件2的输入连接点支持的数据实体类型中包含组件1的输出连接点支持的数据实体类型。因此,组件1的输出连接点可以和组件2的输入连接点连接,组件1和组件2是相匹配的。组件3的输入连接点支持的数据实体类型中包含组件1的输出连接点支持的数据实体类型。因此,组件1的输出连接点可以和组件3的输入连接点相连接,组件1和组件3是相匹配的。组件4的输入连接点支持的数据实体类型包括组件2的输出连接点2支持的数据实体类型。因此,组件4的输入连接点可以和组件2的输出连接点2相连接,组件2和组件4是相匹配的。组件5的输入连接点支持的数据实体类型包含组件2的输出连接点2支持的数据实体类型。因此,组件5的输入连接点可以和组件3的输出连接点2相连接,组件5和组件2是相匹配的。组件m的输入连接点支持的数据实体类型包含组件2的输出连接点支持的数据实体类型。因此组件m的输出连接点可以和组件3的输入连接点连接,组件3和组件m是相匹配的。组件n的输入连接点支持的数据实体类型包含了组件4的输出连接点、组件5的输出连接点以及组件m的输出连接点支持的数据实体类型。因此,组件n的输入连接点可以和组件4的输出连接点、组件5的输出连接点以及组件m的输出连接点连接。组件n和组件4、组件5、以及组件m均相匹配。
可以理解的是,表2示出的各个组件的连接点支持的数据实体类型仅为示例。图8A中示出的各个组件的连接点可以支持表1中示出的数据实体类型中的任何一种。本申请实施例对图8A中各个组件的连接点可以支持的数据实体类型不作限定。
示例性地,如图8B所示,用户界面80B可以显示有分解视频组件,分解视频组件可以包括一个主体(分解视频503)和输入连接点504,输出连接点505,输出连接点506。用户不知道组件工具箱101中有哪些组件可以分解视频组件的输出连接点506连接。用户可以点击用户界面80B中智能编排控件508。
响应于该用户操作,电子设备显示如图8C示出的用户界面80C。用户界面80C中显示出分解视频组件的组件调用树。如图8C所示,分解视频组件的组件调用树中可以包括一个视频播放组件,该播放视频组件包括一个主体(播放视频717)和输入连接点715。当用户点击智能编排控件508时,组件编排设计器102可以根据输出连接点506的数据实体类型去组件工具箱101中寻找与输出连接点匹配的组件(例如视频播放组件),并显示在组件编排设计器102的界面(例如用户界面80C)中。
在一种可能的实现方式中,响应于该用户操作,电子设备也可以显示如图8D示出的用户界面80D。用户界面80D中显示出分解视频组件的组件调用树。如图8D所示,分解视频组件的组件调用树中可以包括一个高清增强组件和一个视频播放组件。该高清增强组件包括一个组件主体(高清增强711)、输入连接点708和输出连接点713。该播放视频组件包括一个组件主体(播放视频717)和输入连接点715。输出连接点506可以和输入连接点708连接。输出连接点713可以和输入连接点715连接。
在一种可能的实现方式中,用户可以选择分解视频组件的输入连接点504进行智能编排。例如右键点击输入连接点504后选择智能编排控件,响应于用户操作,组件编排设计器102中可以显示可以和输入连接点504连接的组件。例如,图7A中示出的读取视频组件702。
这样,当用户不知道组件具体可以和哪一个组件相连接时,可以快速找到可以和该组件连接的其他组件,节约了用户的时间。
下面结合附图对本申请实施例提供的一种APP开发方法进行介绍。图9为本申请实施例提供的一种APP开发方法的流程示意图。请参见图9,本申请实施例提供的一种APP开发方法具体包括:
S101、电子设备响应于用户创建第一APP的操作,创建第一APP。
电子设备可以检测到用户创建第一APP的操作。用户创建第一APP的操作可以有很多种。例如,用户打开电子设备中提供创建APP的用户界面,然后在该用户界面中创建APP。此处关于创建APP的用户界面可参见图4中示出的用户界面400。用户如何在用户界面中创建APP可参见上文对图4的描述。此处不再赘述。
S102、响应于用户从电子设备的组件工具箱中选择组件的操作,电子设备在组件编排设计器中显示组件,组件为实现特定功能的独立模块;组件由一个组件主体和一个或多个连接点构成,连接点支持一种或多种数据实体类型。
用户从组件工具箱中选择组件的操作可以有多种,例如,用户拖动组件工具箱中的组件,或者用户鼠标双击组件工具箱中的组件。此处对该用户操作不作限定。
组件的连接点支持一种或多种数据实体类型。数据实体类型可以参考上文对表1的介绍,此处不再赘述。这里,开发人员在开发组件时,可以用程序代码对组件的连接点进行定义。例如,定义组件中连接点支持的数据实体类型,以及连接点中包含的函数。这里,开发人员可以定义所有组件的连接点支持相同的多种的函数。例如用于创建数据实体的create函数、用于连接其他连接点的connect函数、用于接收的accept函数、以及用于将接收的数据存储本地的pull函数、用于发送数据的push函数等等。
在一种可能的实现方式中,响应于用户从电子设备的组件工具箱中选择组件的操作,电子设备显示多个组件的图形具体包括:响应于用户从电子设备的组件工具箱中选择组件的操作,电子设备获取组成第一APP的多个组件的第一文件,解析第一文件后绘制出组件的图形;显示多个组件的图形,第一文件为描述组件功能以及属性的程序代码。用户从电子设备的组件工具箱中选择组件的操作用于选定多个组件,组件的图形用于展示组件的主体和连接点,组件包含一个主体、一个或多个连接点,例如图5A中示出的分解视频组件的图形。用户从电子设备的组件工具箱中选择组件的操作可以是将组件工具箱101中的组件拖到组件编排设计器102中。用户从电子设备的组件工具箱中选择组件的操作还可以是单击或双击选定的组件等等,本申请实施例对第二用户操作不作限定。
在本申请实施例的一个可行的例子中,电子设备可接收用户从工具箱拖拽组件的用户操作。响应于该用户操作,电子设备获取该组件的文件,并解析组件的文件。然后电子设备绘制出组件的图形。具体地,电子设备可通过电子设备中的组件编排设计器102获取组件的文件,解析组件的文件以及绘制出组件的图形。这里可参考上文对图5A的描述,此处不再赘述。
这里,用户会根据自己所开发APP的需求来选择组件。例如,一个可以支持多国语言的视频播放APP,这个APP可以由读取视频文件的组件、分解视频组件、语音翻译组件、高清增强组件、音频播放组件、视频播放组件等组件组成,例如图7A示出的组成视频APP的组件。用户从组件工具箱101中选定组件后,电子设备就获取组件的第一文件。电子设备可以从第一文件中解析出组件包含连接点的数量,以及连接点属性、连接点能传递数据实体的属性等等。电子设备根据第一文件解析出的组件包含的连接点数量将组件绘制成可视化的组件图形。用户可以在用户界面中看到组件图形。如图5A示出的分解视频组件的组件图形。
在一种可能的实现方式中,电子设备接收用于显示第一组件的组件调用树的用户操作,响应于该用户操作,电子设备显示出第一组件的组件调用树;组件调用树用于展示第一组件所有匹配的第二组件和/或第三组件、以及与第二组件匹配的第四组件和/或第五组件、一直到与第M组件匹配的第N组件,且第N组件为无输出连接点的组件。具体地,电子设备根据第一组件的输出连接点支持的数据实体类型,查找到相匹配的第二组件和/或第三组件。即第二组件、第三组件的输入连接点支持的数据实体类型与第一组件输出连接点支持的数据实体类型匹配。然后,电子设备再依次根据第二组件输出连接点支持的数据实体类型,查找与第二组件相匹配的第四组件和/或第五组件。第四组件和第五组件的输入连接点支持的数据实体类型与第二组件输出连接点支持的数据实体类型相匹配。电子设备会查找出组件调用树中每一个组件相匹配的组件,直到组件调用树的最后一层组件为无输出连接点。具体可以参考图8A中对组件1的调用树的描述,此处不再赘述。
显示组件调用树的用户操作可以有很多种,示例性地,如图8C中所示,用户可以点击智能编排控件508。本申请实施例对显示组件调用树的用户操作不作限定。当用户不知道组件工具箱101中的哪一个组件与组件1相匹配时,用户可以选中组件1的输出连接点,然后点击右键,选择智能编排。电子设备响应于用户点击智能编排的操作,显示出组件1的组件调用树。这样,用户可以在组件调用树中快速选择开发APP所需要的组件。因而,可以节约用户的时间,提升用户体验。
在一种可能的实现方式中,电子设备在组件编排设计器中显示出第一组件的组件调用树,具体包括:电子设备根据第一组件的功能和/或第一组件连接点支持的数据实体类型,在组件编排设计器中显示出第一组件的组件调用树。
在一种可能的实现方式中,响应于用户删除组件的操作,电子设备删除所述组件调用树种的组件。
在一种可能的实现方式中,响应于用户上传组件或从组件市场下载组件的操作,电子设备在组件工具箱中显示用户上传或从组件市场下载的组件的名称。
在一种可能的实现方式中,响应于用户查看第一组件的第一连接点属性的操作,电子设备在组件编排设计器中显示第一连接点支持的数据实体类型。
S103、响应于用户连接多个组件的操作,电子设备在组件编排设计器中连接两个或多个组件。
电子设备可以接收用户连接多个组件的操作,用户连接多个组件的操作,可以有很多种。示例性地,用户连接多个组件的操作可以是用户将第二组件的输出连接点拖向第一组件的输入连接点。用户连接多个组件的操作还可以是用户将第二组件向第一组件的方向滑动。或者,用户连接多个组件的操作还可以是用户输入第一组件的输出连接点和第二组件的输入连接点。本申请实施例对第三用户操作不做限定。这里可以参考上文对图6A的描述,此处不再赘述。
在一种可能的实现方式中,电子设备在组件编排设计器中连接两个或多个组件,具体包括:响应于用户连接第一组件和第二组件的操作,电子设备通过组件编排设计器验证第一组件和第二组件是否匹配;若第一组件和第二组件匹配,则电子设备连接第一连接点和第二连接点,第一连接点为第一组件的连接点,第二连接点为第二组件的连接点。
在一种可能的实现方式中,响应于用户连接多个组件的操作,电子设备会执行将第一组件和第二组建建立连接的过程。首先,电子设备会获取第一组件的输出连接点支持的数据实体类型,以及第二组件的输入连接点支持的数据实体类型。电子设备确定第一组件的输出连接点输出的数据实体的类型和第二组件的输入连接点的数据实体的类型相匹配时,电子设备会将第一组件和第二组件建立连接。即第一组件的输出连接点支持的数据实体和第二组件的输入连接点支持的数据实体的类型相同,或第一组件的输出连接点支持的数据实体包括第二组件的输入连接点支持的数据实体的类型,或第二组件的输入连接点的支持数据实体的类型包括第一组件的输出连接点支持的数据实体类型时,第一组件才可以和第二组件建立连接。这里可以参考上文对图6A的描述,此处不再赘述。
举例来说,如表3所示,第一组件输出连接点支持数据实体类型为MPEG格式、尺寸为640*480的视频数据。第二组件输入连接点支持数据实体类型为MPEG格式、尺寸为640*480、1080P、2K的视频数据。
表3
Figure BDA0002549160990000191
Figure BDA0002549160990000201
这样,第一组件的输出连接点支持的数据类型和第二组件的输入连接点支持的数据类型相匹配。电子设备将第一组件和第二组件建立连接。这里数据实体的类型可以参考表1。
在一种可能的实现方式中,电子设备确定两个组件可以建立连接后会展示连接成功标识。连接成功标识可以是两个组件之间的连接线(Connection)。例如,如图6A示出的用户界面60A。用户界面60A中示出的分解视频组件和播放视频组件建立连接后,电子设备绘制出连接线,该连接线用于连接分解视频组件输出连接点(Video Output ConnectPoint)和播放视频输入连接点(Input ConnectPoint2)。开发人员按照APP的逻辑流程,一个一个的从组件工具箱101中选定组件并拖动到组件设计编排器102中。电子设备响应于用户操作依次将组成APP的所有组件建立连接。
在一种可能的实现方式中,连接成功标识可以是两个组件相连的两个连接点折叠或重叠。这里可参考上文对图6B的描述,此处不再赘述。
在一种可能的实现方式中,若第一组件的输出连接点输出的数据实体的类型和第二组件的输入连接点的数据实体的类型不匹配,电子设备显示提示框,提示框用于提示用户第一组件个第二组件连接失败。提示框的提示内容可以有很多种。示例性,提示框的内容可以是“连接失败”。提示框的内容还可以是“数据实体的类型不匹配”。提示框的内容还可以是“第一组件和第二组件不能连接”等等,此处对提示框的具体内容不作限定。
S104、响应于用户选择编译的两个或多个组件的操作,电子设备将完成连接的多个组件编译成第一APP的程序代码。
当组成第一APP的组件都已经完成连接后,用户可以点击用于将连接完成的组件生产程序代码的控件。电子设备可以检测到用户点击该控件的操作。响应于该操作,电子设备将完成连接的多个组件编译成第一APP的程序代码。可以理解的是,第一APP的程序代码用于描述第一APP的逻辑功能以及用户界面。当用户的电子设备中安装有第一APP的程序代码时,电子设备可以运行第一APP。
具体地,电子设备可以通过代码生成引擎103将组建编排设计器102中连接的组件生成第一APP的程序代码。
在一种可能的实现方式中,电子设备在组件编排设计器中保存完成连接的两个或多个组件的编排模型图,以及编排模型图中的第一信息;第一信息包括中两个或多个组件的ID、名称、两个或多个组件的连接点支持的数据实体类型中的一项或多项。
在一种可能的实现方式中,电子设备在代码生成引擎中,根据编排模型图、第一信息和组件调用模板生成第一APP可执行的源代码,组件调用模板中包括预设格式的程序代码。具体可参考上文中对组件调用模板的描述,此处不再赘述。
本申请实施例提供的一种APP开发方法,通过该方法,用户可以将工具箱中的多个组件连接组成APP。在多个组件连接的过程中,电子设备需要确定相连的两个组件的连接点支持的数据实体类型是否匹配。若匹配,电子设备可以显示连接成功标识。最后,电子设备将完成的多个组件生成APP的程序代码。这样,用户可以通过已有组件快速开发APP,缩短用户开发APP的时间。
下面介绍根据本申请实施例提供的一种APP开发方法开发的APP的应用场景。图10示出了本申请开发出的APP的应用场景。如图10所示,以一款由通信组件、存储组件、播放组件、摄像组件、手势输入组件、音频播放组件、媒体下载加速组件组成的APP为例进行阐述。用户A具有手机、TV、PC、路由、音箱、手表、车机等电子设备。用户的所有电子设备均连接了同一个无线网络(例如,家庭中的Wi-Fi网络)。用户的手机中安装了包含通信组件、存储组件、播放组件、摄像组件、手势输入组件、音频播放组件、媒体下载加速组件的APP。PC中安装了存储组件。路由器中安装了媒体下载加速组件。音箱中安装有音频播放组件。手表中安装了手势输入组件。车机安装了摄像组件。TV安装了播放组件。那么,当用户在手机中运行该APP时,可以由手机来执行通信组件的功能,选择TV执行播放组件的功能来播放该APP中的视频,选择PC来运行存储组件的功能来存储该APP中的数据,选择路由器来执行媒体下载加速组件来加速下载该APP中的媒体文件,选择音箱执行音频播放的功能来播放该APP中的音频,选择手表执行手势输入组件来输入手势控制该APP,选择车机执行摄像组件的功能来拍摄该APP需要的图像或视频。这样,组成APP的组件可以分别运行在不同的电子设备上,用户可以使用不同电子设备来执行该APP的多个功能。这样,各个电子设备可以发挥自身的长处(例如,TV的显示屏比手机的显示屏大,手机通信更便捷等等),使得用户使用该APP时体验更佳。
本申请实施例中工具箱以及开发者根据本申请实施例提供的方法开发的复合组件、APP可以形成分布式的组件开发生态。图11示出了本申请实施例提供组件开发生态示意图。如图11所示,组件开发者可以从组件市场中查询和调用组件。组件开发者还可以从已有的应用程序中归纳和提炼出组件。组件开发者可以将开发的组件或者从应用程序中归纳提炼出的组件上传到组件市场。这样就形成了一个组件开发生态。组件开发者可以极其便利地利用组件市场中的组件来开发APP。上文中的组件工具箱101可以从组件市场中下载组件。这样可以更新扩充组件工具箱101中的组件。
在一种可能的实现方式中,电子设备根据用户输入的领域描述语言(DomainSpecific Language,DSL)调用各个组件以及将组件进行连接。图12示出了组件DSL语言与组件的对应关系示意图。如图12所示,图中的DSL语言(Comp1;ConnPoint1)的含义是有一个组件1,组件1包括连接点1。这就对应着组件图形中的组件1和连接点1。DSL语言(Comp2;ConnPoint2)的意思是有一个组件2,这个组件2包括连接点2。这就对应着组件图形中的组件2和连接点2。DSL语言(link entity1,entity2)表明连接点1支持数据实体1,连接点支持数据实体2。若连接点1和连接点2相连,那么连接点1需要查看数据实体1和数据实体2是否相同。同样地,连接点2也需要查看数据实体1和数据实体2是否相同。这样,当用户对组件的DSL语言非常熟悉时,用户可以不按照图9示出的APP开发方法流程来开发APP。用户可以在电子设备中编写DSL来开发APP。这样,用户可以更高效地开发APP。
举例来说,用户可以直接利用DSL语言将图6A示出的分解视频组件和播放视频组件进行连接。即不用执行图4-图5G中的操作。分解视频组件和播放视频组件进行连接的DSL语言可以如下:
Compomentdef
Videosplit://分解视频组件
Connpoint1.entity1(vedio,MPEG4,1920*1080)//分解视频组件的连接点1和该连接点支持的数据实体1
Videoplayer://视频播放组件
Connpoint2.entity2(vedio,MPEG4,1920*1080)://视频播放组件的连接点2和该连接点支持的数据实体2
Link entity1,entity2//建立连接点1和连接点2之间的连接
在上述示出的DSL代码中,“Videosplit”即可表示图6A中的分解视频组件,“Connpoint1”对应图6A中的输出连接点506。“entity1(vedio,MPEG4,1920*1080)”表示输出连接点506支持的数据实体类型。“Videoplayer”即可表示图6A中的视频播放组件,“Connpoint2”对应图6A中的输入连接点602。“entity2(vedio,MPEG4,1920*1080)”表示输出连接点602支持的数据实体类型。
在一种可能的实现方式中,用户可以用DSL语言写出判断条件,例如图7A中示出的连接点707可以和连接点709连接。连接点707也可以和连接点714连接点。用户可以对连接点707设置判断条件,该条件判断是连接点707支持的语言是否和电子设备的本地语言一致。若是,则视频分解组件的输出通过输出连接点707输入音频播放组件的输入连接点714。若否,则视频分解组件的输出通过输出连接点707输入语言翻译组件710的输入连接点709。对于连接点707的判断条件可以通过如下DSL语言实现:
Condition[1]://条件1
State type:if propertyname[language]contain[local language]//如果连接点支持的语言属性中包括本地语言
Result type:connect-branch1//连接线1
Condition[2]://
State type:if propertyname[language]not contain[local language]//如果连接点支持的语言属性中不包括本地语言
Result type:connect-branch2//连接线2
上述DSL语言中,connect-branch1可以表示连接点707与连接点714之间的连接线。connect-branch2可以表示连接点707与连接点709之间的连接线。可以理解的是,在上述DSL语言之前,用户可以定义connect-branch1以及connect-branch2具体代表哪两个连接点之间的连接线。此处,DSL语言仅为示例,本申请对DSL语言实现不做限定。
在使用DSL时,用户可以只写出两个组件中需要建立连接的连接点。如图6A中的分解视频组件的输入连接点504和输出连接点505可以不用写出来。这样,用户只需要输入几行代码就可以实现组件之间的连接,节约了用户的时间。
接着介绍本申请以下实施例中提供的示例性电子设备100。
图13示出了电子设备100的结构示意图。
下面以电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括处理器101,存储器102,收发器103,显示屏104、传感器105等,其中:
处理器101可以用于获取组件的连接点支持的数据实体类型,以及判断两个组件的连接点支持的数据实体类型是否匹配,还用于根据用户操作查找与组件的输出连接点支持数据实体类型相匹配的组件。
在一些实施例中,处理器101可以包括一个或多个处理单元,例如:处理器101可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphicsprocessing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器101中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器101中的存储器为高速缓冲存储器。该存储器可以保存处理器101刚用过或循环使用的指令或数据。如果处理器101需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器101的等待时间,因而提高了系统的效率。
在一些实施例中,处理器101可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器101可以包含多组I2C总线。处理器101可以通过不同的I2C总线接口分别耦合触摸传感器,充电器,闪光灯,摄像头193等。例如:处理器101可以通过I2C接口耦合触摸传感器,使处理器101与触摸传感器通过I2C总线接口通信,实现电子设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器101可以包含多组I2S总线。处理器101可以通过I2S总线与音频模块170耦合,实现处理器101与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器101与无线通信模块。例如:处理器101通过UART接口与无线通信模块中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器101与显示屏104,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器101和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器101和显示屏104通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器101与摄像头193,显示屏104,无线通信模块,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
存储器102可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器101通过运行存储在存储器102的指令,从而执行电子设备100的各种功能应用以及数据处理。存储器102可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,存储器102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
收发器103可以用于与网络设备、其他电子设备进行通信。电子设备100可以通过收发器103上传或者下载组件。在一些实施例中,收发器103可以包括移动通信模块(图中未示出)和无线通信模块(图中未示出),其中:
移动通信模块可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块的至少部分功能模块可以被设置于处理器101中。在一些实施例中,移动通信模块的至少部分功能模块可以与处理器101的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器,受话器等)输出声音信号,或通过显示屏104显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器101,与移动通信模块或其他功能模块设置在同一个器件中。
无线通信模块可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器101。无线通信模块还可以从处理器101接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备100通过GPU,显示屏104,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏104和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器101可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏104可以用于显示组件的图形、以及工具箱中、组件编排设计器等。显示屏104包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏104,N为大于1的正整数。
传感器105可以用于检测用户操作,例如,用户拖动组件的操作,用户滑动组件的操作等等。传感器105可以包括压力传感器和触摸传感器,其中:
压力传感器用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器可以设置于显示屏104。压力传感器的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏104,电子设备100根据压力传感器检测所述触摸操作强度。电子设备100也可以根据压力传感器的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
触摸传感器,也称“触控面板”。触摸传感器可以设置于显示屏104,由触摸传感器与显示屏104组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏104提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器也可以设置于电子设备100的表面,与显示屏104所处的位置不同。
图14为本申请实施例提供的一种电子设备200的示意性框图。如图14所示,该电子设备200可以包括检测单元201、处理单元202,显示单元203。其中,
检测单元201,用于检测电子设备200接收到的用户操作,例如用户从组件工具箱中拖动组件,用户将第二组件的输入连接点拖向第一组件的输出连接点等等。
处理单元202,用于响应于检测单元201检测到的用户操作,获取组件的连接点支持的数据实体类型、确定第一组件的输出连接点与第二组件的输入连接点匹配。
显示单元203,用于显示组件的图形,以及组件的连接点支持的数据实体类型、两个组件连接成功的标识。
本申请实施例的用户设备200中各单元和上述其它操作或功能分别为了APP开发方法中由电子设备执行的相应流程,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (27)

1.一种应用程序APP开发平台,其特征在于,应用于电子设备,所述APP开发平台包括组件工具箱,组件编排设计器和代码生成引擎,其中:
所述组件工具箱用于提供组件,所述组件为实现特定功能的独立模块,所述组件由一个组件主体和一个或多个连接点构成,所述连接点支持一种或多种数据实体类型;
所述组件编排设计器用于显示所述组件,根据用户连接组件的操作连接两个或多个组件;
所述代码生成引擎用于将所述组件编排设计器中连接的所述两个或多个组件生成第一APP可执行的源代码,所述第一APP包括所述两个或多个组件。
2.根据权利要求1所述的APP开发平台,其特征在于,所述两个或多个组件中包含第一组件和第二组件,所述组件编排设计器还用于:
响应于所述用户连接所述第一组件和所述第二组件的操作,验证所述第一组件和所述第二组件是否匹配;
若所述第一组件和所述第二组件匹配,则连接第一连接点和第二连接点,所述第一连接点为所述第一组件的连接点,所述第二连接点为所述第二组件的连接点。
3.根据权利要求2所述的APP开发平台,其特征在于,所述第一组件和所述第二组件匹配包括:第一数据实体类型与第二数据实体类型相同、所述第一数据实体类型包括所述第二数据实体类型、或者所述第二数据实体类型包括所述第一数据实体类型,其中,所述第一数据实体类型为所述第一连接点支持的数据实体的类型,所述第二数据实体为所述第二连接点支持的数据实体的类型。
4.根据权利要求1所述的APP开发平台,其特征在于,所述组件工具箱还用于:
响应于所述用户上传组件或从组件市场下载组件的操作,显示用户上传或从所述组件市场下载的组件的名称。
5.根据权利要求2所述的APP开发平台,其特征在于,所述组件编排设计器还用于:
响应于所述用户查看所述第一连接点属性的操作,显示所述第一连接点支持的数据实体类型。
6.根据权利要求5所述的APP开发平台,其特征在于,所述组件编排设计器具体用于:
响应于所述用户连接所述第一连接点和所述第二连接点的操作,显示连接所述第一连接点和所述第二连接点的连接线。
7.根据权利要求5所述的APP开发平台,其特征在于,所述组件编排设计器具体用于:
响应于所述用户连接所述第一连接点和所述第二连接点的操作,将所述第一连接点和所述第二连接点重叠显示。
8.根据权利要求1所述的APP开发平台,其特征在于,所述组件编排设计器具体用于:
根据所述用户从所述组件工具箱中选择所述第一组件的操作,显示所述第一组件。
9.根据权利要求8所述的APP开发平台,其特征在于,所述组件编排设计器还用于:
响应于所述用户选择对所述第一组件进行智能编排的操作,显示出所述第一组件的组件调用树;所述组件调用树用于展示与所述第一组件匹配的所述第二组件和/或第三组件、以及与所述第二组件匹配的第四组件和/或第五组件、直到与第M组件匹配的第N组件,且所述第N组件为无输出连接点的组件,其中,M和N为正整数。
10.根据权利要求9所述的APP开发平台,其特征在于,所述显示出所述第一组件的组件调用树,具体为:
根据所述第一组件的功能和/或所述第一组件的连接点支持的数据实体类型,显示出所述第一组件的组件调用树。
11.根据权利要求10所述的APP开发平台,其特征在于,所述组件编排设计器还用于:
响应于所述用户删除所述第二组件的操作,删除所述组件调用树中的所述第二组件。
12.根据权利要求1-11任一项所述APP开发平台,其特征在于,所述组件编排设计器还用于:
保存完成连接的所述两个或多个组件的编排模型图,以及所述编排模型图中的第一信息;所述第一信息包括中所述两个或多个组件的ID、名称、所述两个或多个组件的连接点支持的数据实体类型中的一项或多项。
13.根据权利要求12所述的APP开发平台,其特征在于,所述代码生成引擎具体用于:
根据所述编排模型图、所述第一信息和组件调用模板生成所述第一APP可执行的源代码,所述组件调用模板中包括预设格式的程序代码。
14.一种APP开发方法,其特征在于,包括:
响应于用户从电子设备的组件工具箱中选择组件的操作,所述电子设备在组件编排设计器中显示所述组件,所述组件为实现特定功能的独立模块;所述组件由一个组件主体和一个或多个连接点构成,所述连接点支持一种或多种数据实体类型;
响应于用户连接多个组件的操作,所述电子设备在所述组件编排设计器中连接两个或多个组件;
响应于用户选择编译所述两个或多个组件的操作,所述电子设备在代码生成引擎中将连接的所述两个或多个组件生成第一APP的可执行的源代码。
15.根据权利要求14所述的方法,其特征在于,所述两个或多个组件中包含第一组件和第二组件,所述电子设备在所述组件编排设计器中连接两个或多个组件,具体包括:
响应于所述用户连接所述第一组件和所述第二组件的操作,所述电子设备通过所述组件编排设计器验证所述第一组件和所述第二组件是否匹配;
若所述第一组件和所述第二组件匹配,则所述电子设备连接第一连接点和第二连接点,所述第一连接点为所述第一组件的连接点,所述第二连接点为所述第二组件的连接点。
16.根据权利要求15所述的方法,其特征在于,所述第一组件和所述第二组件匹配包括:第一数据实体类型与第二数据实体类型相同、所述第一数据实体类型包括所述第二数据实体类型、所述第二数据实体类型包括所述第一数据实体类型,所述第一数据实体类型为所述第一连接点支持的数据实体的类型,所述第二数据实体为所述第二连接点支持的数据实体的类型。
17.根据权利要求14所述的方法,其特征在于,所述方法还包括:
响应于所述用户上传组件或从组件市场下载组件的操作,所述电子设备在所述组件工具箱中显示用户上传或从所述组件市场下载的组件的名称。
18.根据权利要求15所述的方法,其特征在于,所述方法还包括:
响应于所述用户查看所述第一组件的所述第一连接点属性的操作,所述电子设备在所述组件编排设计器中显示所述第一连接点支持的数据实体类型。
19.根据权利要求15所述的方法,其特征在于,所述电子设备连接第一连接点和第二连接点包括:
显示连接所述第一连接点和所述第二连接点的连接线;
或,将所述第一连接点和所述第二连接点重叠。
20.根据权利要求19所述的方法,其特征在于,所述方法还包括:
响应于所述用户选择对所述第一组件进行智能编排的操作,所述电子设备在所述组件编排设计器中显示出所述第一组件的组件调用树;所述组件调用树用于展示所述第一组件匹配的所述第二组件和/或第三组件、以及与所述第二组件匹配的第四组件和/或第五组件、直到与第M组件匹配的第N组件,且所述第N组件为无输出连接点的组件,其中,M和N为正整数。
21.根据权利要求20所述的方法,其特征在于,所述电子设备在所述组件编排设计器中显示出所述第一组件的组件调用树,具体包括:
所述电子设备根据所述第一组件的功能和/或所述第一组件的连接点支持的数据实体类型,在所述组件编排设计器中显示出所述第一组件的组件调用树。
22.根据权利要求21所述的方法,其特征在于,所述方法还包括:
响应于所述用户删除所述第二组件的操作,所述电子设备删除所述组件调用树中的所述第二组件。
23.根据权利要求14-22任一项所述的方法,其特征在于,所述方法还包括:
所述电子设备在所述组件编排设计器中保存完成连接的所述两个或多个组件的编排模型图,以及所述编排模型图中的第一信息;所述第一信息包括中所述两个或多个组件的ID、名称、所述两个或多个组件的连接点支持的数据实体类型中的一项或多项。
24.根据权利要求23所述的方法,其特征在于,所述方法还包括:
所述电子设备在所述代码生成引擎中,根据所述编排模型图、所述第一信息和组件调用模板生成所述第一APP可执行的源代码,所述组件调用模板中包括预设格式的程序代码。
25.一种电子设备其特征在于,包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器分别与所述一个或多个处理器耦合;所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令在所述处理器上运行时,使得所述电子设备执行如权利要求14-24中任一项所述的APP开发方法。
26.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求14-24中任一项所述的APP开发方法。
27.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求14-24中任一项所述的APP开发方法。
CN202010569877.8A 2020-06-20 2020-06-20 App开发平台、app开发方法及电子设备 Pending CN113821203A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111556609.3A CN114371844B (zh) 2020-06-20 2020-06-20 App开发平台、app开发方法及电子设备
CN202010569877.8A CN113821203A (zh) 2020-06-20 2020-06-20 App开发平台、app开发方法及电子设备
PCT/CN2021/098215 WO2021254167A1 (zh) 2020-06-20 2021-06-03 App开发平台、app开发方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010569877.8A CN113821203A (zh) 2020-06-20 2020-06-20 App开发平台、app开发方法及电子设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202111556609.3A Division CN114371844B (zh) 2020-06-20 2020-06-20 App开发平台、app开发方法及电子设备

Publications (1)

Publication Number Publication Date
CN113821203A true CN113821203A (zh) 2021-12-21

Family

ID=78924852

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010569877.8A Pending CN113821203A (zh) 2020-06-20 2020-06-20 App开发平台、app开发方法及电子设备
CN202111556609.3A Active CN114371844B (zh) 2020-06-20 2020-06-20 App开发平台、app开发方法及电子设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202111556609.3A Active CN114371844B (zh) 2020-06-20 2020-06-20 App开发平台、app开发方法及电子设备

Country Status (2)

Country Link
CN (2) CN113821203A (zh)
WO (1) WO2021254167A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821203A (zh) * 2020-06-20 2021-12-21 华为技术有限公司 App开发平台、app开发方法及电子设备
CN114461208A (zh) * 2022-01-06 2022-05-10 深圳安巽科技有限公司 一种软件自动化编排方法、系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080276217A1 (en) * 2006-02-01 2008-11-06 Fujitsu Limited Program and method for displaying relationships between objects
CN101971143A (zh) * 2008-02-05 2011-02-09 奥多比公司 应用组件之间的自动连接
CN102087597A (zh) * 2011-02-14 2011-06-08 浪潮通信信息系统有限公司 一种基于j2ee和构件集的可视化开发平台
CN104615425A (zh) * 2015-01-16 2015-05-13 贾志东 一种基于功件和功件树开发软件系统的方法和系统
US20170076500A1 (en) * 2015-09-15 2017-03-16 Sartorius Stedim Biotech Gmbh Connection method, visualization system and computer program product
CN110187875A (zh) * 2019-05-28 2019-08-30 深圳市智慧郎数码科技有限公司 一种组件可视化开发方法
CN111258569A (zh) * 2020-01-09 2020-06-09 卓望数码技术(深圳)有限公司 网页组件编辑方法、装置、设备和计算机可读存储介质
CN114371844A (zh) * 2020-06-20 2022-04-19 华为技术有限公司 App开发平台、app开发方法及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716636B2 (en) * 2005-01-10 2010-05-11 Microsoft Corporation User interface for accessing and loading software components of a development set on a computer while other software components of the set are loading
CN101944017B (zh) * 2009-07-09 2014-03-12 华为技术有限公司 一种Widget的制作方法及其制作装置
CN102799430B (zh) * 2012-07-02 2015-07-15 电子科技大学 一种面向移动互联网的离线可视化业务开发生成器
US20140282371A1 (en) * 2013-03-14 2014-09-18 Media Direct, Inc. Systems and methods for creating or updating an application using a pre-existing application
CN105512304B (zh) * 2015-12-11 2019-03-26 西安道同信息科技有限公司 在线生成互联网应用方法和系统集成方法及支撑平台
CN106557314A (zh) * 2016-10-19 2017-04-05 深圳智慧林网络科技有限公司 应用软件开发方法及装置
CN107844299B (zh) * 2017-12-01 2021-01-22 浪潮软件股份有限公司 一种Web应用开发工具的实现方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080276217A1 (en) * 2006-02-01 2008-11-06 Fujitsu Limited Program and method for displaying relationships between objects
CN101971143A (zh) * 2008-02-05 2011-02-09 奥多比公司 应用组件之间的自动连接
CN102087597A (zh) * 2011-02-14 2011-06-08 浪潮通信信息系统有限公司 一种基于j2ee和构件集的可视化开发平台
CN104615425A (zh) * 2015-01-16 2015-05-13 贾志东 一种基于功件和功件树开发软件系统的方法和系统
US20170076500A1 (en) * 2015-09-15 2017-03-16 Sartorius Stedim Biotech Gmbh Connection method, visualization system and computer program product
CN110187875A (zh) * 2019-05-28 2019-08-30 深圳市智慧郎数码科技有限公司 一种组件可视化开发方法
CN111258569A (zh) * 2020-01-09 2020-06-09 卓望数码技术(深圳)有限公司 网页组件编辑方法、装置、设备和计算机可读存储介质
CN114371844A (zh) * 2020-06-20 2022-04-19 华为技术有限公司 App开发平台、app开发方法及电子设备

Also Published As

Publication number Publication date
CN114371844B (zh) 2022-09-23
CN114371844A (zh) 2022-04-19
WO2021254167A1 (zh) 2021-12-23

Similar Documents

Publication Publication Date Title
CN110597512B (zh) 显示用户界面的方法及电子设备
WO2020211709A1 (zh) 一种添加批注的方法及电子设备
WO2023130921A1 (zh) 一种适配多设备的页面布局的方法及电子设备
WO2022057852A1 (zh) 一种多应用程序之间的交互方法
US20140092101A1 (en) Apparatus and method for producing animated emoticon
CN114371844B (zh) App开发平台、app开发方法及电子设备
CN111459466B (zh) 代码生成方法、装置、设备及存储介质
US20180024976A1 (en) Annotation providing method and device
WO2021169466A1 (zh) 信息收藏方法、电子设备及计算机可读存储介质
CN112116690A (zh) 视频特效生成方法、装置及终端
CN111125602B (zh) 页面构建方法、装置、设备和存储介质
CN115700461A (zh) 投屏场景下的跨设备手写输入方法、系统和电子设备
CN115016697A (zh) 投屏方法、计算机设备、可读存储介质和程序产品
WO2023241544A1 (zh) 组件预览的方法和电子设备
CN115941674B (zh) 多设备应用接续方法、设备及存储介质
CN109597620B (zh) 一种数据处理方法、装置、设备及存储介质
CN114595449A (zh) 一种安全扫描方法及装置
CN113822011A (zh) 字体切换方法及电子设备
CN112083979A (zh) 界面展示的方法、程序编译的方法以及相关装置
CN117690147B (zh) 一种文本识别方法及电子设备
WO2023179454A1 (zh) 服务调用方法及电子设备
CN117707453B (zh) 一种节点信息的读取方法、设备及存储介质
WO2024125301A1 (zh) 显示方法和电子设备
WO2024175070A1 (zh) 一种功能协同方法及电子设备
CN117762537A (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