首页 / 专利库 / 软件 / 图形用户界面 / 应用程序的自动部署

应用程序的自动部署

阅读:460发布:2020-05-08

专利汇可以提供应用程序的自动部署专利检索,专利查询,专利分析的服务。并且实施方式总体上涉及一种基于一个应用程序代码源来自动生成用于多个平台的应用程序的方法。实施方式包括从客户端设备接收 信号 以便例如通过图形 用户界面 (GUI)来启动应用程序生成过程。在实施方式中,所述应用程序生成过程分析所述应用程序代码以在许多平台之间共享的核心应用程序代码与特定于设备的代码之间进行区分,并且然后将所述核心应用程序代码与所述特定于设备的代码分开。所述核心应用程序代码然后可以被部署用于在比如web应用程序、渐进式web应用程序等多个应用程序中使用,或者当与特定于设备的代码结合时作为本机移动应用程序来使用。应用程序可以部署有基于其部署方法以及每个平台的特征集而自动确定的特征。,下面是应用程序的自动部署专利的具体信息内容。

1.一种用于自动生成并部署应用程序的方法,所述方法包括:
接受信号以启动应用程序生成过程;
接收应用程序代码以用于分析;
检查所述应用程序代码的属性以确定核心应用程序代码与特定于设备的代码;以及将核心应用程序代码与特定于设备的代码隔离。
2.如权利要求1所述的方法,其中,所述应用程序被部署为具有基于其部署方法以及每个平台的特征集而自动确定的特征。
3.如权利要求1所述的方法,其中,检查所述应用程序代码的属性进一步包括:根据所述应用程序代码的属性来确定要被部署为web应用程序的核心应用程序代码的子集。
4.如权利要求1所述的方法,其中,检查所述应用程序代码的属性进一步包括:根据所述应用程序代码的属性来确定要被部署为渐进式web应用程序的核心应用程序代码的子集。
5.如权利要求1所述的方法,其中,检查所述应用程序代码的属性进一步包括:根据所述应用程序代码的属性来确定要被部署为本机移动应用程序的核心应用程序代码的子集和特定于设备的代码的子集。
6.如权利要求1所述的方法,进一步包括:分析至少一个平台的核心应用程序代码要求,以判定所述核心应用程序代码是否将在所述平台上在至少一个可接受容错阈值内运行。
7.如权利要求1所述的方法,进一步包括:分析至少一个平台的核心应用程序代码要求,以判定所述特定于设备的代码是否将在所述平台上在至少一个可接受容错阈值内运行。
8.如权利要求1所述的方法,进一步包括:分析至少两个平台的核心应用程序代码要求,以确定可接受用于在所述至少两个平台上在所述至少两个平台中的每个平台的至少一个可接受容错阈值内使用的核心应用程序代码的子集。
9.如权利要求1所述的方法,进一步包括:分析至少一个平台的核心应用程序代码要求,以确定可接受用于在所述至少一个平台上在所述至少一个平台的至少一个可接受处理器效率平内使用的核心应用程序代码的子集。
10.如权利要求1所述的方法,进一步包括:分析至少一个平台的特定于设备的代码要求,以确定可接受用于在所述至少一个平台上在所述至少一个平台的至少一个可接受处理器效率水平内使用的特定于设备的代码的子集。
11.一种包括一个或多个指令的非暂时性计算机可读介质,所述一个或多个指令可由一个或多个处理器执行以用于:
接受信号以启动应用程序生成过程;
接收应用程序代码以用于分析;
检查所述应用程序代码的属性以确定核心应用程序代码与特定于设备的代码;以及将核心应用程序代码与特定于设备的代码隔离。
12.如权利要求9所述的非暂时性计算机可读介质,其中,所述应用程序被部署为具有基于其部署方法以及每个平台的特征集而自动确定的特征。
13.如权利要求9所述的非暂时性计算机可读介质,其中,检查所述应用程序代码的属性进一步包括:根据所述应用程序代码的属性来确定要被部署为web应用程序的核心应用程序代码的子集。
14.如权利要求9所述的非暂时性计算机可读介质,其中,检查所述应用程序代码的属性进一步包括:根据所述应用程序代码的属性来确定要被部署为渐进式web应用程序的核心应用程序代码的子集。
15.如权利要求9所述的非暂时性计算机可读介质,其中,检查所述应用程序代码的属性进一步包括:根据所述应用程序代码的属性来确定要被部署为本机移动应用程序的核心应用程序代码的子集和特定于设备的代码的子集。
16.如权利要求9所述的非暂时性计算机可读介质,进一步包括:分析至少一个平台的核心应用程序代码要求,以判定所述核心应用程序代码是否将在所述平台上在至少一个可接受容错阈值内运行。
17.如权利要求9所述的非暂时性计算机可读介质,进一步包括:分析至少一个平台的特定于设备的代码要求,以判定所述特定于设备的代码是否将在所述平台上在至少一个可接受容错阈值内运行。
18.如权利要求9所述的非暂时性计算机可读介质,进一步包括:分析至少两个平台的核心应用程序代码要求,以确定可接受用于在所述至少两个平台上在所述至少两个平台中的每个平台的至少一个可接受容错阈值内使用的核心应用程序代码的子集。
19.如权利要求9所述的非暂时性计算机可读介质,进一步包括:分析至少一个平台的核心应用程序代码要求,以确定可接受用于在所述至少一个平台上在所述至少一个平台的可接受处理器效率水平内使用的核心应用程序代码的子集。
20.一种用于在计算环境中生成并部署应用程序的装置,所述计算环境包括与执行软件的应用程序生成系统通信的一个或多个计算设备,所述软件被配置用于生成并部署所述一个或多个计算设备可访问的应用程序,所述一个或多个计算设备中的计算设备被配置用于执行以下步骤:
接受信号以启动应用程序生成过程;
接收应用程序代码以用于分析;
检查所述应用程序代码的属性以确定核心应用程序代码与特定于设备的代码;以及将核心应用程序代码与特定于设备的代码隔离。
21.一种计算设备,包括:
一个或多个处理器;以及
显示屏,所述显示屏耦接到所述一个或多个处理器,其中,所述一个或多个处理器执行指令以使所述显示屏显示图形用户界面(GUI),所述图形用户界面包括:
第一GUI,所述第一GUI被配置用于使用户能够指定独立于平台的要生成的应用程序的布局和功能;
第二GUI,所述第二GUI被配置用于使所述用户能够对特定于设备的信息进行配置;以及
第三GUI,包括第一UI组件,所述第一UI组件被配置用于使所述用户能够将所述应用程序部署在不同平台中,其中,所述应用程序是至少基于所指定的布局和功能以及所述特定于设备的信息而生成的。
22.如权利要求21所述的计算设备,其中:
基于在所述第一GUI中指定和在所述第二GUI中配置的信息而生成应用程序代码,检查所述应用程序代码的属性以确定核心应用程序代码与特定于设备的代码;
将所述核心应用程序代码与所述特定于设备的代码隔离;以及
所述应用程序被部署为具有基于其部署方法以及每个平台的特征集而自动确定的特征。
23.如权利要求22所述的计算设备,其中,要部署的核心应用程序代码的子集基于所述应用程序代码的属性而被确定为web应用程序。
24.如权利要求22所述的计算设备,其中,要部署的核心应用程序代码的子集基于所述应用程序代码的属性而被确定为渐进式web应用程序。
25.如权利要求22所述的计算设备,其中,要部署的核心应用程序代码的子集和特定于设备的代码的子集基于所述应用程序代码的属性而被确定为本机移动应用程序。
26.如权利要求22所述的计算设备,其中,分析至少一个平台的核心应用程序代码要求,以判定所述核心应用程序代码是否将在所述平台上在至少一个可接受容错阈值内运行。
27.如权利要求22所述的计算设备,其中,分析至少一个平台的特定于设备的代码要求,以判定所述特定于设备的代码是否将在所述平台上在至少一个可接受容错阈值内运行。
28.如权利要求22所述的计算设备,其中,分析至少两个平台的核心应用程序代码要求,以确定可接受用于在所述至少两个平台上在所述至少两个平台中的每个平台的至少一个可接受容错阈值内使用的核心应用程序代码的子集。
29.如权利要求22所述的计算设备,其中,分析至少一个平台的核心应用程序代码要求,以确定可接受用于在所述至少一个平台上在所述至少一个平台的可接受处理器效率水平内使用的核心应用程序代码的子集。
30.如权利要求22所述的计算设备,其中,分析至少一个平台的核心应用程序代码要求,以确定可接受用于在所述至少一个平台上在所述至少一个平台的可接受处理器效率水平内使用的特定于设备的应用程序代码的子集。
31.如权利要求21所述的计算设备,其中,所述第三GUI进一步包括第二UI组件,所述第二UI组件用于使所述用户能够启动应用程序生成过程以便生成用于不同平台的应用程序;
以及
其中,针对不同平台进一步测试自动生成并部署的应用程序。

说明书全文

应用程序的自动部署

[0001] 相关申请的交叉引用
[0002] 本申请要求于2019年3月28日提交的名称为“AUTO-DEPLOYMENT OF APPLICATIONS(应用程序的自动部署)”的美国专利申请序列号16/368,682(ORACP0240/ORA190138-US-NP)以及于2018年10月9日提交的名称为“AUTO-DEPLOYMENT BETWEEN NATIVE MOBILE DEVICE,PROGRESSIVE WEB APPLICATIONS,AND WEB APPLICATIONS(本机移动设备、渐进式WEB应用程序、以及WEB应用程序之间的自动部署)”的美国临时专利申请序列号62/743,420(ORACP0240P/ORA190138-US-PSP)的权益,这两个美国专利申请出于所有目的如同在本申请中完整阐述的那样通过引用结合在此。发明内容
[0003] 由于消费者使用许多软件平台(例如,移动平台、web平台),公司通常会针对每个平台开发应用程序(经常是单独的应用程序)。例如,公司经常会开发可以在计算机浏览器或移动电话浏览器上查看的与本机移动设备应用程序分开的web应用程序。进一步地,比如用于iOS平台的本机移动设备应用程序通常将与用于比如ANDROID平台等另一应用程序平台的本机移动设备应用程序分开开发。为这些平台中的每个平台开发并维护单独的应用程序可能是昂贵且耗时的。
[0004] 渐进式web应用程序(Processive web application,PWA)是一种同样由许多公司开发和维护的新型应用程序。PWA是具有本机移动应用程序的一些特征的web应用程序,这些特征有比如访问设备权限、推送通知和主页屏幕图标。
[0005] 如Cordova等软件框架是可用的,使得开发人员可以编写一次代码并根据此代码来构建本机ANDROID、本机iOS、PWA和web应用程序。这样做减少开发时间,因为不需要为每个平台维护单独的代码库。然而,即使利用共享代码,为多个平台构建并部署应用程序仍然是一个手动的、特定于平台的过程。
[0006] 本文所描述的实施例提供了一种用于响应于输入信号而为不同平台(例如,web、本机iOS、本机ANDROID、PWA)自动生成并部署应用程序的方法,所述输入信号可以是用户提供的输入或从自动流线生成的信号。
[0007] 应用程序被部署为具有基于其部署方法以及每个平台的特征集而自动确定的特征。例如,如果web应用程序仅能在应用程序打开时获得设备位置,而本机移动应用程序可以在应用程序打开和处于后台两种情况下获得设备位置,则所部署的应用程序将考虑平台和这种相应的特征集。当开发人员请求位置跟踪作为其应用程序的特征时,根据平台的能,本机移动应用程序将在app活动或处于后台时获得位置跟踪,而web应用程序将仅在app活动时获得位置跟踪。如在这个示例中,基于部署方法和平台的特征集来自动确定特征,而无需进一步编程。
[0008] 通过参考说明书的其余部分和所附附图,可以实现对本文公开的特定实施例的本质和优点的进一步理解。

附图说明

[0009] 图1图示了示例设备上的应用程序生成环境的框图
[0010] 图2图示了包括核心应用程序代码和特定于设备的代码在内的应用程序代码的框图。
[0011] 图3图示了展示自动生成应用程序的示例性过程的高级流程图
[0012] 图4图示了移动设备开发的示例用户界面
[0013] 图5图示了用于管理特定于设备的代码的配置的示例用户界面。
[0014] 图6图示了用于配置iOS特定构建信息的示例用户界面。
[0015] 图7图示了用于配置ANDROID特定构建信息的示例用户界面。
[0016] 图8图示了用于配置渐进式Web应用程序特定构建信息的示例用户界面。
[0017] 图9图示了用于启动应用程序分级过程的示例用户界面。
[0018] 图10图示了用于对应用程序到不同平台的部署进行配置的示例用户界面。
[0019] 图11图示了用于测试分级应用程序的示例用户界面。
[0020] 图12图示了可以用于本文所描述的实施方式的示例系统的框图。
[0021] 图13图示了可以用于本文所描述的实施方式的示例网络环境的框图。

具体实施方式

[0022] 实施方式总体上涉及一种基于一个应用程序代码源来自动生成用于多个平台的应用程序的方法。如本文更详细描述的,可以接受例如来自客户端设备的一个或多个信号以启动应用程序生成过程。在应用程序生成过程期间,可以确定可在所有或一些平台之间共享的核心应用程序代码,并且然后将其与可能已经例如由开发人员或设计人员等配置的特定于设备的代码隔离。然后可以将核心应用程序代码部署为比如web应用程序、渐进式web应用程序等应用程序,或者当与特定于设备的代码结合时作为本机移动应用程序等。应用程序可以部署有基于比如其部署方法以及每个平台的特征集等因素而自动确定的特征。
[0023] 本文所描述的实施方式提供了一种图形用户界面(GUI),所述GUI使开发人员能够以便利的方式定义能够在不同平台(例如,web、本机iOS、本机ANDROID、PWA等)中使用的应用程序的共同要求,和/或定义要部署的应用程序的设备特定要求,和/或测试根据一些实施方式自动生成并部署的应用程序。
[0024] 图1图示了在示例设备和平台上实例化的可以用于本文所描述的实施方式的应用程序生成系统100的框图。所示出的是可以经由网络106彼此通信的客户端设备102、web服务104、ANDROID应用程序120、iOS应用程序122、渐进式Web应用程序(PWA)124、web应用程序126、和数据库128。在各种实施方式中,客户端设备102可以直接从web服务104访问服务和数据。在一些实施方式中,客户端设备102包括表单组件110,所述表单组件被配置用于生成用户界面(UI)组件以便接收来自一个或多个用户的输入。在一些其他实施方式中,客户端设备102包括例如用于接收来自一个或多个用户的输入的一个或多个GUI,所述一个或多个GUI可以包括由表单组件110生成的UI组件。
[0025] 网络106还可以与可以接收一个或多个所生成的应用程序的其他客户端设备进行通信。例如,ANDROID应用程序120、iOS应用程序122、和渐进式Web应用程序124可以被部署到移动设备,而Web应用程序126可以由台式计算机或膝上型计算机访问。本文更详细地描述了与应用程序生成系统100相关联的示例实施方式。
[0026] 应用程序生成系统100可以是任何类型的计算系统和/或数据处理系统,比如企业计算环境、客户端-服务器系统等。应用程序生成系统100可以被配置用于处理从比如键盘鼠标等用户界面接收的关于与如本文所描述的数据元素、应用程序、信息等相关联的比如确定并区分代码类型、生成、配置、建模、标记、数据绑定、维护等过程的数据。
[0027] 注意,应用程序生成系统100呈现了可以至少部分地在服务器上实施用于实施实施例的计算机代码的特定示例实施方式。然而,实施例并不限于此。例如,托管在例如客户端设备102上的客户端侧软件应用程序可以根据本教导提供应用程序生成系统100或其部分,而无需客户端侧软件应用程序与服务器之间的通信。
[0028] 在一种示例性实施方式中,应用程序生成系统100可以通信地连接到被配置用于例如向其用户显示数据的显示器。如本文所描述的显示器、屏幕等可以是适于允许用户经由用户界面查看显示在其上的图形数据并与之交互的无源或有源显示器。在其他配置中,显示器可以是响应于触摸、手势、滑动等而用于与其用户交互并由其用户操纵数据的触摸屏显示器。手势可以包括适于允许用户能够确定并隔离代码、生成应用程序、转换数据、建模、分析、部署模式、维护数据等的单个手势、多点触摸手势以及手势与用户输入的其他组合。
[0029] 在一些实施方式中,应用程序生成系统100可以包括数据源,比如数据库128。如本文所进一步描述的,数据库128可以是直接或例如经由网络连接106间接连接到应用程序生成系统100的一个或多个数据库,并且可以被实施为存储在比如硬盘驱动器、固态驱动器(SSD)、闪速存储器等计算机可读介质上的非暂时性数据结构,或者可以被存储为网络的一部分。
[0030] 数据库128可以包含数据集130。数据集130可以包括如本文所描述的数据。数据集130还可以包括与确定并区分代码、应用程序部署、应用程序代码、部署模式、数据属性、数据模型、数据结构、数据层次结构、节点位置、值、值类型、总和、可视化算法、代码(例如,C++、JSON、JavaScript、XSD、XML等)、源、安全性、散列等有关的数据。另外,数据集130还可以包含其他数据、数据元素和信息,以及比如元数据、标签、开发时间信息、运行时间信息、用户配置信息、API、界面组件信息、库信息、错误阈值数据、指针等信息。
[0031] 在示例性实施方式中,应用程序生成系统100可以适于从用户界面和/或数据库128接收数据以供其进行处理。在一种配置中,应用程序生成系统100可以是软件引擎,所述软件引擎被配置用于从其用户接收并处理与从用户界面和/或数据库128接收的数据有关的输入数据(比如,应用程序部署参数),以便检查代码、在代码类型之间进行区分、相对于部署模式和错误阈值来部署并验证部署应用程序。例如,在应用程序部署期间,应用程序生成系统100可以相对于数据属性和/或比如区分和部署标准、接收平台的特征集、应用程序的类型等因素来识别核心应用程序代码与特定于设备的代码。
[0032] 此外,应用程序生成系统100可以用于判定所部署应用程序的错误是否在可接受阈值、水平等之内,其中,一些部署错误阈值可以是针对良性错误和/或针对其他类型的用户和/或系统可接受的错误而设置的,从而提供可调整的应用程序部署容差。
[0033] 例如,应用程序生成系统100可以允许具有可接受的错误阈值水平的应用程序部署,比如某些类型的错误、可接受的错误、UI错误、软件代码错误、参考错误等。应用程序生成系统100还可以用于:无论是否向其用户发出警告,都例如通过使用比如代码比较、解决参考、分配目标“QNames”、指定相对路由等技术以递归方式实时地校正和解决此类错误。
[0034] 例如,在其他实施方式中,应用程序生成系统100可以被配置为用于执行与从用户接收的数据相关联的分析功能的数据分析工具。此类分析功能可以包括使用对代码属性和/或其他因素的分析来确定并区分核心应用程序代码与特定于设备的代码。所述分析还可以包括确定与数据相关联的属性,确定数据类型、所需部署模式的类型,确定数据值、数据类型,确定与其他数据的关系,解释与数据相关联的元数据,确定错误类型、容差数据等。
[0035] 例如,应用程序生成系统100可以被配置用于接收并分析数据集130的属性以确定核心应用程序代码组件要求,从而确定与数据集130相关联的特定于设备的代码要求、web应用程序值、渐进式应用程序值、键/值对、字符串标识符、数据特性、错误类型、容错水平、模式类型、用户界面配置、定义、数据处理指令、数据属性、数据层次结构、节点、层次结构内的节点位置、值、数据类型、总和、算法、源、安全性、散列等。
[0036] 应用程序生成系统100可以从数据库128接收现有数据集130以供其进行处理。这样的数据集130可以包括并表示单独的数据集130和与例如组织数据有关的数据元素的复合,所述组织数据可以包括比如职业数据、薪资数据、个人数据等数据。另外,数据集130可以包括其他类型的数据、数据元素和信息,比如联系人数据、销售数据、产品数据、科学数据、金融数据、医疗数据、人口普查数据等。
[0037] 应用程序生成系统100可以被配置用于接收与数据、相关联的数据集130有关的配置数据,以及与比如用户界面组件、图标、用户指点设备信号等数据相关联的用于在显示器上呈现数据的其他数据。在一种示例性实施方式中,应用程序生成系统100可以被配置用于呈现2D和3D图形模型和仿真,以允许用户获得更多关于与数据相关联的数据集130的信息。在一种实施方式中,在例如通过用户界面从用户接收指令时,应用程序生成系统100的一部分可以被配置用于生成对由其用户选择的数据进行的交互式变化的实时显示。
[0038] 图2示出了应用程序代码202的框图200,所述应用程序代码包括核心应用程序代码204和特定于设备的代码206。核心应用程序代码204可以由web服务104确定并且然后与特定于设备的代码206隔离,以便生成比如渐进式web应用程序124、web应用程序126等应用程序。在其他实施方式中,核心应用程序代码304和特定于设备的代码306可以一起使用,以便生成比如本机移动应用程序、嵌入式应用程序、应用程序编程接口(API)应用程序等其他类型的应用程序,这些应用程序在一些实施方式中可以例如是ANDROID应用程序120、iOS应用程序122等。
[0039] 在实施方式中,应用程序生成系统100可以被配置用于确定哪些是核心应用程序代码204和特定于设备的代码206或其组合。例如,应用程序生成系统100可以被配置用于分析应用程序代码,并且基于属性、数据、以及比如元数据、代码值、代码属性、标志、所使用代码的类型(例如,JavaScript、C++等)等其他输入来判定所分析的代码是核心应用程序代码204、特定于设备的代码206、还是其他类型的代码。在这种配置中,可以采用应用程序生成系统100来学习和存储代码类型之间的差异,以便在处理应用程序代码时提高处理器效率。
[0040] 核心应用程序代码204可以是表示为特定应用程序的“核心”的代码,其然后可以用作基础的构建代码源代码。在其他实施方式中,核心应用程序代码204可以经由数据标准被定义为“核心”。在这种情境下,用户(比如开发人员)可以标记和/或定义代码的哪些部分是“核心”,哪些可以是或可以不是关键的操作代码元素。例如,开发人员可以向应用程序生成系统100提供规定将由特定实体、组等编写的代码视为是应用程序的“核心”的信息,或者可以规定“核心”意指必须在所部署应用程序的每个实例中使用的代码、或对于特定用户至关重要的代码等。
[0041] 特定于设备的代码206可以是针对比如iOS、ANDROID等特定设备平台设计的代码。特定于设备的代码206还可以是针对特定平台开发的、将与所述平台的操作有关的特定标准考虑在内的代码。例如,对于移动平台,特定于设备的代码206可以是特定移动设备所需的代码。如此,特定于设备的代码206可以是被设计用于在特定设备或一类特定设备上操作的代码。
[0042] 在其他实施方式中,可以基于比如处理器效率、加载时间、特征集等其他因素来确定和划分这样的核心应用程序代码204和特定于设备的代码206。例如,核心应用程序代码204可以被认为是可以由应用程序采用以便使用更少的处理器资源、减少加载时间、实施减少的特征集、强调或弱化图形、关注或取消关注特定处理任务、设置加电序列和断电序列等的应用程序代码的子集。
[0043] 图3图示了应用程序生成过程300的示例高级流程图。在302处,比如客户端设备102等系统可以从例如表单组件110等获得开发人员提供的输入,所述表单组件提供GUI等以便接受输入。在304处,客户端设备102然后可以使用web服务104通过网络106来将核心应用程序代码204与特定于设备的代码206隔离。在306、308和310处,应用程序生成过程300可以采用比如web服务104等应用程序部署通道来将应用程序部署到一个或多个平台。例如,应用程序生成过程300可以将ANDROID应用程序120、iOS应用程序122、或渐进式Web应用程序124部署到移动设备,或者其可以部署Web应用程序126。
[0044] 在一些实施方式中,在302处,过程300接受一个或多个信号以启动应用程序生成过程。例如,用户可以经由UI输入来输入信号,以启动用于在一个或多个平台上使用的应用程序的生成,所述应用程序比如Web应用程序126,到移动设备的ANDROID应用程序120、iOS应用程序122或渐进式Web应用程序124等。
[0045] 在304处,过程300将核心应用程序代码204与特定于设备的代码206隔离或分离。例如,如上所述,过程300可以分析多种属性和/或其他标准来确定什么代码是核心应用程序代码204和特定于设备的代码206。这种分析可以需要或可以不需要用户输入,因为过程
300可以被配置用于通过分析代码操作、代码属性、代码类型、代码标识符、内省性(introspection)、元数据、标志、标记等来辨别这两类代码之间的差异。一旦过程300已经确定哪种代码是核心应用程序代码204以及哪种代码是特定于设备的代码206,过程300就可以利用不同的标识符来标记这两类代码和/或存储这两类代码,以便将核心应用程序代码204与特定于设备的代码206隔离或分离。
[0046] 在一些情境下,核心应用程序代码204和特定于设备的代码206可以是可在各种不同的平台之间部署的代码的子集。在一些实施方式中,此类核心应用程序代码204和特定于设备的代码206可以被配置为允许此类接收平台在一个或多个可接受容错阈值内进行操作。例如,核心应用程序代码204可以是引起相对于接收平台的容错阈值为可接受的不同错误量的代码的子集。
[0047] 在306处,过程300将核心应用程序代码204部署为web应用程序。在一些情境下,针对web应用程序的此类核心应用程序代码204可以是相对于其他类型的应用程序而不同的。例如,web应用程序的核心应用程序代码204可以是从304得到的核心应用程序代码204的子集。如此,在这种情境下,核心应用程序代码204可以适于特定部署。进一步地,这样的过程
300可以根据需要启用和/或禁用代码的一部分,以允许跨众多平台来部署特定的一组核心应用程序代码204。
[0048] 在308处,过程300将核心应用程序代码204部署为渐进式web应用程序。在一些情境下,针对渐进式web应用程序的此类核心应用程序代码204可以是相对于其他类型的应用程序而不同的。例如,渐进式web应用程序的核心应用程序代码204可以是从304得到的核心应用程序代码的子集。如此,在这种情境下,核心应用程序代码204可以适于特定web应用程序部署。进一步地,这样的过程300可以根据需要启用和/或禁用代码的一部分,以允许跨众多web应用程序平台来部署特定的一组核心应用程序代码204。在其他情境下,核心应用程序代码204是可以在各种不同的web应用程序平台之间部署的代码的子集。
[0049] 在310处,过程300将核心应用程序代码204和特定于设备的代码206部署为本机移动应用程序。在示例性情境下,针对本机移动应用程序的此类核心应用程序代码204和特定于设备的代码206可以是相对于其他类型的应用程序而不同的。例如,本机移动应用程序的核心应用程序代码204可以是从304得到的核心应用程序代码204和特定于设备的代码206的子集。如此,在这种情境下,核心应用程序代码204可以适于特定本机移动应用程序部署。进一步地,这样的过程300可以根据需要启用和/或禁用代码的一部分,以允许跨众多平台来部署特定的一组核心应用程序代码204和特定于设备的代码。在其他情境下,核心应用程序代码204可以是可在各种不同的本机移动应用程序平台之间部署的代码的子集。
[0050] 图4是移动开发的示例用户界面。在显示屏400上,用户(比如,开发人员)可以通过GUI等独立于平台来指定其应用程序的布局和功能。例如,开发人员可以将应用程序配置为具有拍照或使用GPS进行位置跟踪的能力。应用程序还可以配置有比如图表或加载图标等视觉布局项目。
[0051] 在实施方式中,屏幕400可以包括被配置用于接受用户输入以便配置移动应用程序的资源界面402、移动屏幕布局工具404以及报告工具406。资源界面402为用户提供资源工具408,所述资源工具被配置用于为用户提供用于允许用户开发移动应用程序的工具(比如应用程序流、应用程序资源、根页面等)以及其他工具,其他工具比如用于设置错误阈值水平的工具,用于定义某些类型的错误、可接受错误、参考错误的工具等。
[0052] 移动屏幕布局工具408可以包括图表开发工具410、测量工具412、自定义工具414、和移动应用程序仿真工具416。在实施方式中,图表开发工具410可以被配置用于显示预先设计的图表以供用户选择。测量工具412可以被配置用于为用户提供用于在屏幕400显示的多个测量仪器。自定义工具412可以配置有用于允许用户自定义屏幕400的显示和功能的自定义工具。
[0053] 移动应用程序仿真工具416可以用于对UI元素和功能的选择结果进行仿真。例如,在这种情境下,所仿真的移动电话418显示所选择的图表420、图形422、和聊天功能424。
[0054] 在实施方式中,报告工具406为用户提供对于比如视觉报告属性426和一般属性428等属性的控制。例如,视觉报告属性可以允许用户定义比如报告属性等属性。一般属性
428可以允许用户定义比如访问密钥属性、访问密钥标签、类别等属性。
[0055] 图5是用于管理特定于设备的代码的配置(例如,构建配置文件)的示例用户界面500。界面500包括构建窗口502,所述构建窗口被配置为允许用户对应用程序构建的各方面进行配置,比如配置设置、设置构建配置文件等。例如,对于每个部署的本机移动应用程序,通过采用构建窗口502可以对构建配置文件504进行配置。
[0056] 当在屏幕500选择按钮506时,用户(比如,开发人员)可以被导航到另一屏幕,在所述另一屏幕中,可以如例如图6和图7中所示出的那样指定比如本机移动应用程序等应用程序的构建特性。
[0057] 图6示出了用于指定iOS特定构建信息的示例用户界面屏幕600。虽然可以讨论比如硬件操作系统选项等特定平台特性,但是实施例的特征可以与任何合适的平台或平台特性一起使用。UI屏幕600可以包括用于选择和/或输入选项以便指定iOS应用程序的所有特定于设备的信息的多个输入。例如,开发人员可以具有用于指定构建配置文件名称602、构建类型604、包标识符606、包版本名称608和包版本610、开发人员证书612、授权文件616、签名身份618等的选项。在一些实施方式中,UI屏幕600可以包括比如复选框620等UI小工具,以将特定构建设置为用于分级和/或发布应用程序的默认构建。
[0058] 图7示出了用于指定ANDROID特定构建信息的示例用户界面屏幕700。屏幕700可以包括用于指定比如ANDROID应用程序等应用程序的所有特定于设备的信息的选项。例如,用户(比如,开发人员)可以具有用于指定构建配置文件名称602、构建类型604、应用程序标识符702、应用程序版本名称704、版本代码706、开发人员密钥库708、密钥库密码710、密钥别名712、密钥密码714等的选项。
[0059] 图8示出了用于指定渐进式Web应用程序特定构建信息的示例用户界面屏幕800。UI屏幕800可以包括渐进式web应用程序构建UI界面802,所述界面可以包括例如用于指定应用程序名称804、缩写名806、说明808、主题颜色810、应用程序图标810、文件高速缓存模式812等的选项。
[0060] 图9示出了用于一旦配置了特定于设备的信息就启动应用程序分级过程的示例用户界面屏幕900。在屏幕900,用户界面可以具有用于导航到部署屏幕的按钮902,如图10所示。本文中术语“分级的(staged)”和“部署的(deployed)”可以互换使用。在实施方式中,UI屏幕900还可以包括用于表示哪些应用程序正在被分级以便部署的分级标识符904。
[0061] 图10是用于对应用程序到不同平台的部署进行配置的示例用户界面屏幕1000。在屏幕1000,用户(比如,开发人员)可以在栏1002中为web应用程序指定应用程序URL。用户还可以配置渐进式Web应用程序设置1004,所述设置可以包括例如设置离线高速缓存、通知,以及指定与应用程序相关联的名称和图标。另外,用户可以配置本机移动应用程序设置1006,包括设置比如iOS构建和ANDROID构建等多个应用程序构建。例如,本机移动应用程序设置1006可以包括用于设置权限、证书等,以及启用比如GPS跟踪和通知等特征,指定与应用程序相关联的名称和图标等的选项。
[0062] 图11示出了用于测试分级应用程序的示例用户界面屏幕1100。在屏幕1100中,用户(比如,开发人员)可以通过使用QR码将分级应用程序安装在电话上等来在比如浏览器等UI界面中测试分级应用程序。在一种实施方式中,屏幕1100可以包括构建应用程序工具1102,所述构建应用程序工具被配置用于基于例如从本文所描述的输入接收的各种构建输入来构建应用程序,并且然后生成应用程序生成指令1104(比如,QR码),所述应用程序生成指令当被启动时在主机设备1106(比如,移动电话)上生成应用程序。
[0063] 图12图示了可以用于本文所描述的实施方式的示例系统1200的框图。示例系统1200能够支持或运行参考本文所描述的实施方式讨论的各种硬件模和/或软件模块及其相关联的方法。注意,某些实施方式可以使用一个或多个独立应用程序(例如,驻留在用户设备中)和/或使用客户端侧代码与服务器侧代码的组合实施的一个或多个基于web的应用程序来实施。虽然系统1200执行本文所描述的实施方式,但在其他实施方式中,与系统1200相关联的任何合适的组件或组件的组合或者与系统1200相关联的任何合适的一个或多个处理器都可以促进执行本文所描述的实施方式。在各种实施方式中,系统1200可以不具有所示出的所有组件和/或可以具有其他元件,所述其他元件包括替代或除了本文示出的那些组件之外的其他类型的组件。
[0064] 一般系统1200包括用户设备1260至1290,包括一个或多个台式计算机1260、一个或多个笔记本计算机1270、一个或多个智能电话1280、一个或多个移动电话1285、以及一个或多个平板计算机1290。一般系统1200可以与能够显示和导航web页面或其他类型的电子文档和UI、和/或执行应用程序的任何类型的用户设备接口连接,所述用户设备比如瘦客户端计算机、支持因特网的移动电话、移动因特网访问设备、平板计算机、电子书或个人数字助理。虽然系统1200被示出为具有五个用户设备,但是可以支持任何数量的用户设备。
[0065] web服务器1210用于处理来自web浏览器以及针对web页面、电子文档、企业数据或其他内容、以及来自用户计算机的其他数据的独立应用程序的请求。web服务器1210还可以提供与企业运营有关的数据的推送数据或综合内容,比如RSS订阅源。
[0066] 应用程序服务器1220对一个或多个应用程序进行操作。应用程序可以被实施为以任何编程语言或任何脚本语言编写的一个或多个脚本或程序,所述编程语言比如Java、C、C++、C#,所述脚本语言比如JavaScript或欧洲计算机制造商协会脚本(ECMAScript)、Perl、超文本预处理器(PHP)、Python、Ruby、或工具命令语言(TCL)。可以使用库或比如Rails、Enterprise JavaBeans、或.NET等应用程序框架来构建应用程序。可以使用超文本标记语言(HTML)、层叠样式表(CSS)和其他web技术(包括模板语言和解析器)来创建web内容。
[0067] 在应用程序服务器1220上运行的数据应用程序适于处理输入数据和用户计算机请求,并且可以存储或从数据存储设备或数据库1230中取得数据。数据库1230存储由数据应用程序创建和使用的数据。在一些实施方式中,数据库1230包括适于响应于SQL格式命令或其他数据库查询语言而存储、更新、以及取得数据的关系数据库。其他实施方式可以使用非结构化数据存储架构和非关系型(NoSQL)数据库。
[0068] 在一些实施方式中,应用程序服务器1220包括能够执行程序或脚本的一个或多个通用计算机。在一些实施方式中,web服务器1210被实施为在一个或多个通用计算机上运行的应用程序。web服务器1210和应用程序服务器1220可以在相同的计算机上组合和执行。
[0069] 电子通信网络1240至1250实现用户计算机1260至1290、web服务器1210、应用程序服务器1220以及数据库1230之间的通信。在一些实施方式中,网络1240至1250可以进一步包括任何形式的电或光通信设备,包括有线网络1240和无线网络1250。网络1240至1250还可以结合一个或多个局域网(比如以太网)、广域网(比如因特网、蜂窝载波数据网络)以及虚拟网络(比如,虚拟专用网络)。
[0070] 系统1200是根据一些实施方式的用于执行应用程序的一个示例。在一些实施方式中,应用程序服务器1210、web服务器1220以及数据库1230(可选地)可以被组合到单个服务器计算机的应用程序和系统中。在进一步的实施方式中,虚拟化应用程序和虚拟机应用程序可以用于实施应用程序服务器1210、web服务器1220和数据库1230中的一个或多个。
[0071] 在又进一步的实施方式中,web服务功能和应用程序服务功能中的全部或一部分可以整合到在每个用户计算机上运行的应用程序中。例如,用户计算机上的JavaScript应用程序可以用于取得或分析数据并显示应用程序的一部分。
[0072] 在各种实施方式中,系统1200可以不具有所示出的所有组件和/或可以具有其他元件,所述其他元件包括替代或除了本文示出的那些组件之外的其他类型的组件。
[0073] 图13是可用于实施本文所描述的实施例的计算设备1300的总体框图。作为示例,计算设备1300可以被配置用于实施如图3所示的应用程序生成过程300的至少一部分。可替代地或另外地,计算设备1300可以被配置用于实施如图4至图11所示的用户界面的至少一部分。虽然图13的计算设备1300可以被描述为执行本文的实施例中的一个或多个步骤,但在其他实施例中,计算设备1300的任何合适的组件或组件的组合或者与系统1300相关联的任何合适的一个或多个处理器都可以促进执行所述步骤。
[0074] 图13图示了可以用于本文所描述的实施方式的示例计算系统1300的框图。例如,计算系统1300可以用于实施图12的用户设备1260至1290和服务器设备1210、1220,并且用于执行本文所描述的方法实施方式。在一些实施方式中,计算系统1300可以包括处理器1302、操作系统1304、存储器1306、以及输入/输出(I/O)接口1308。在各种实施方式中,处理器1302可以用于实施本文所描述的各种功能和特征,并且用于执行本文所描述的方法实施方式。虽然处理器1302被描述为执行本文所描述的实施方式,但是系统1300的任何合适的组件或组件的组合或者与系统1300或任何合适的系统相关联的任何合适的一个或多个处理器都可以执行所述步骤。本文所描述的实施方式可以在用户设备、服务器、或这两者的组合上执行。
[0075] 计算设备1300还包括软件应用程序1310,所述软件应用程序可以存储在存储器1306或任何其他合适的存储位置或计算机可读介质上。软件应用程序1310提供使处理器
1302能够执行本文所描述的功能和其他功能的指令。计算系统1300的组件可以由一个或多个处理器、或硬件设备的任何组合、以及硬件、软件、固件的任何组合等来实施。
[0076] 为了便于说明,图13针对处理器1302、操作系统1304、存储器1306、I/O接口1308、和软件应用程序1310中的每一个示出了一个框。这些框1302、1304、1306、1308和1310可以表示多个处理器、操作系统、存储器、I/O接口和软件应用程序。在各种实施方式中,计算系统1300可以不具有所示出的所有组件和/或可以具有其他元件,所述其他元件包括替代或除了本文示出的那些组件之外的其他类型的组件。
[0077] 虽然已经关于说明书的特定实施例描述了说明书,但是这些特定实施例仅是说明性的而非限制性的。
[0078] 任何合适的编程语言都可以用于实施特定实施例的例程,所述编程语言包括C、C++、Java、汇编语言等。可以采用比如程序化或面向对象等不同的编程技术。所述例程可以在单个处理设备或多个处理器上执行。虽然这些步骤、操作或计算可能以特定顺序呈现,但是在不同的特定实施例中可以改变这种顺序。在一些特定实施例中,可以同时执行在本说明书中按顺序示出的多个步骤。
[0079] 特定实施例可以在非暂时性处理器可读存储设备中实施,以供指令执行系统、装置、系统、计算机或设备使用或与其结合使用。特定实施例可以以控制逻辑的形式在软件或硬件或这两者的组合中实施。所述控制逻辑当由一个或多个处理器执行时可以是可操作的,用于执行在特定实施例中描述的内容。例如,比如硬件存储设备等有形介质可以用于存储可以包括可执行指令的控制逻辑。
[0080] 特定实施例可以通过使用编程的通用数字计算机、通过使用特定于应用程序的集成电路可编程逻辑器件、现场可编程阵列、光学系统、化学系统、生物系统、量子系统或纳米工程系统等来实施。可以使用其他组件和机制。通常,特定实施例的功能可以通过本领域已知的任何手段来实现。可以使用分布式联网系统、组件和/或电路。可以采用云计算或云服务。数据的通信或传输可以是有线的、无线的或通过任何其他手段。
[0081] 还应当理解,如根据特定应用程序是有用的,附图/图中描绘的元件中的一个或多个元件也可以以更分离或集成的方式实施,或者甚至在某些情况下被移除或呈现为不可操作。实施可以存储在机器可读介质中的程序或代码以允许计算机执行上述任何方法也在本申请的精神和范围内。
[0082] “处理器”包括处理数据、信号或其他信息的任何合适的硬件和/或软件系统、机制或组件。处理器可以包括具有通用中央处理单元、多个处理单元、用于实现功能的专用电路的系统或其他系统。处理不必限于地理位置或具有时间限制。例如,处理器可以“实时”、“离线”、以“批处理模式”等方式执行其功能。可以通过不同(或相同)处理系统在不同时间和不同位置执行部分处理。处理系统的示例可以包括服务器、客户端、终端用户设备、路由器、交换机、联网存储装置等。计算机可以是与存储器通信的任何处理器。存储器可以是任何合适的处理器可读存储介质,比如随机存取存储器(RAM)、只读存储器(ROM)、磁盘或光盘、或适合于存储由处理器执行的指令的其他有形介质。
[0083] 如在本文的说明书以及以下整个权利要求中所使用的,除非上下文中另外明确指明,否则“一个(a)”、“一个(an)”以及“所述(the)”包括复数指代物。同样,如在本文的说明书以及以下整个权利要求中所使用的,除非上下文中另外明确指明,否则“在……中(in)”的含义包括“在……中(in)”和“在……上(on)”。
[0084] 因此,虽然本文已经描述了特定实施例,但是在前述公开内容中意图进行一定范围的修改、各种改变和替换,并且应当理解,在一些实例中,可以在不背离如前所述的范围和精神的情况下采用特定实施例的一些特征而不相应地使用其他特征。因此,可以进行许多修改以使特定情况或材料适于基本范围和精神。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈