CN114968216A - 应用程序开发工程生成方法和装置 - Google Patents
应用程序开发工程生成方法和装置 Download PDFInfo
- Publication number
- CN114968216A CN114968216A CN202110202549.9A CN202110202549A CN114968216A CN 114968216 A CN114968216 A CN 114968216A CN 202110202549 A CN202110202549 A CN 202110202549A CN 114968216 A CN114968216 A CN 114968216A
- Authority
- CN
- China
- Prior art keywords
- data packet
- functional data
- functional
- list
- proxy
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种应用程序开发工程生成方法和装置。该方法包括:响应于开发平台的启动指令,生成启动页面,并获取开发平台待展示的功能数据包,基于获取到的功能数据包,生成用于展示功能数据包的选择页面,功能数据包在选择页面中以功能数据包列表的形式进行展示,响应于选择页面接收的选择指令,从功能数据包列表中选择指定功能数据包,基于指定功能数据包生成应用程序开发工程,提前了获取功能数据包的时间,缩短了在展示选择页面时等待获取功能数据包的时间,降低了选择页面延迟展示的风险,提高了开发平台的使用性能,其中,可以从云存储***、区块链、服务器或客户端中获取开发平台待展示的功能数据包。
Description
技术领域
本申请涉及计算机及通信技术领域,特别涉及一种应用程序开发工程生成方法和装置。
背景技术
在现有技术中,应用程序开发平台可以获取包含有开发工具的功能数据包,开发平台使用功能数据包建立应用程序开发工程。
但是,随着开发工具越来越多,开发平台获取的功能数据包也越来越多,在建立应用程序开发工程时需要花费大量时间获取功能数据包,可能会导致基于获取的功能数据包生成的选择页面延迟显示。
发明内容
本申请旨在提供一种应用程序开发工程生成方法和装置,其能够缩短在展示选择页面时等待获取功能数据包的时间,降低了选择页面延迟展示的风险。
根据本申请实施例的一个方面,提供了一种应用程序开发工程生成方法,包括:响应于开发平台的启动指令,生成启动页面,并获取所述开发平台待展示的功能数据包;基于获取到的所述功能数据包,生成用于展示所述功能数据包的选择页面,所述功能数据包在所述选择页面中以功能数据包列表的形式进行展示;响应于所述选择页面接收的选择指令,从所述功能数据包列表中选择指定功能数据包;基于所述指定功能数据包生成应用程序开发工程。
根据本申请实施例的一个方面,提供了一种应用程序开发工程生成装置,包括:获取模块,配置为响应于开发平台的启动指令,生成启动页面,并获取所述开发平台待展示的功能数据包;展示模块,配置为基于获取到的所述功能数据包,生成用于展示所述功能数据包的选择页面,所述功能数据包在所述选择页面中以功能数据包列表的形式进行展示;选择模块,配置为响应于所述选择页面接收的选中指令,从所述功能数据包列表中选择与所述选中指令对应的指定功能数据包;生成模块,配置为基于所述指定功能数据包生成应用程序开发工程。
在本申请的一个实施例中,基于前述方案,所述获取模块配置为:从远端加载所述功能数据包;若所述功能数据包加载成功,则使用加载的功能数据包替换所述开发平台缓存中存储的历史功能数据包;获取缓存中替换后的历史功能数据包,作为所述功能数据包;若所述功能数据包加载失败,则获取所述缓存中存储的历史功能数据包,作为所述功能数据包。
在本申请的一个实施例中,基于前述方案,所述获取模块配置为:若所述功能数据包加载失败,则监听网络状态变化;若变化后的网络状态为顺畅,则重新加载所述功能数据包,使用重新加载的功能数据包替换所述开发平台缓存中存储的历史功能数据包;获取缓存中替换后的历史功能数据包,作为所述功能数据包。
在本申请的一个实施例中,基于前述方案,所述展示模块配置为:基于所述功能数据包,获取所述功能数据包对应的显示数据;基于所述显示数据生成所述功能数据包列表;在所述功能数据包列表中,获取所述显示数据中用于区分所述功能数据包的区分数据所在的单元格;在所述区分数据所在的单元格中添加勾选框,以生成所述选择页面。
在本申请的一个实施例中,基于前述方案,所述展示模块配置为:从用于提供界面控件的故事版中获取所述功能数据包列表的列表视图;将所述显示数据填充至所述列表视图中,得到所述功能数据包列表。
在本申请的一个实施例中,基于前述方案,所述展示模块配置为:所述功能数据包有多个,获取功能数据包的排序信息;获取所述排序信息对应的排序值,并获取所述排序信息对应的权重;计算对应于同一功能数据包的排序值的加权和,得到各个功能数据包的排序分数;按照所述排序分数对多个所述功能数据包进行排序,将所述功能数据包的显示数据按照所述排序填充至所述表格视图中。
在本申请的一个实施例中,基于前述方案,所述展示模块配置为:将视图滚动容器嵌套入所述列表视图的外层;设置所述视图滚动容器的滚动方向,并隐藏所述视图滚动容器的滚动条。
在本申请的一个实施例中,基于前述方案,所述选择模块配置为:响应于所述选择指令,将所述选择指令对应于所述功能数据包列表的行号发送至用于管理所述功能数据包的代理对象,以使所述代理对象基于所述行号修改用于表示所述行号对应的功能数据包是否可用的目标代理数据;获取所述目标代理数据所在的代理数组;基于所述代理数组中的代理数据筛选所述功能数据包中可用的功能数据包,得到所述指定功能数据包。
在本申请的一个实施例中,基于前述方案,所述选择模块配置为:所述代理对象基于所述行号获取所述行号对应的勾选框标签;所述代理对象基于所述勾选框标签获取所述勾选框标签对应的功能数据包;所述代理对象基于对所述勾选框标签对应的功能数据包在所述代理数组中查找所述目标代理数据;所述代理对象对所述目标代理数据进行取反操作。
根据本申请实施例的一个方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行上任一项所述的方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如上任一项所述的方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请的一些实施例所提供的技术方案中,提供了一种应用程序开发工程生成方法,通过响应于开发平台的启动指令,生成启动页面,并获取开发平台待展示的功能数据包,提前了获取功能数据包的时间,基于获取到的功能数据包,生成用于展示功能数据包的选择页面,缩短了在展示选择页面时等待获取功能数据包的时间,降低了选择页面延迟展示的风险,功能数据包在选择页面中以功能数据包列表的形式进行展示,响应于选择页面接收的选择指令,从功能数据包列表中选择指定功能数据包,基于指定功能数据包生成应用程序开发工程,缩短了开发平台生成应用程序开发工程的时间,从而提高了开发平台的使用性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并于说明书一起用于解释本申请的原理。
图1A示出了可以应用本申请一个实施例的技术方案的数据共享***的示意图;
图1B示出了可以应用本申请一个实施例的区块链示意图;
图1C示出了可以应用本申请一个实施例的区块链中新区块生成的示意图;
图2示出了可以应用本申请实施例的技术方案的示例性***架构的示意图;
图3示意性示出了根据本申请的一个实施例的应用程序开发工程生成方法的流程图;
图4示意性示出了根据本申请的一个实施例的故事版文件的分布结构示意图;
图5示意性示出了根据本申请的一个实施例的启动页面示意图;
图6示意性示出了根据本申请的一个实施例的选择页面示意图;
图7示意性示出了根据本申请的一个实施例的应用程序开发工程生成方法的流程图;
图8示意性示出了根据本申请的一个实施例的应用程序开发工程生成装置的框图;
图9是根据一示例性实施例示出的一种电子设备的硬件图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
目前,存储***的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件***上,文件***将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件***将每个对象分别写入该逻辑卷的物理存储空间,且文件***会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件***能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储***为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
在本申请的一个实施例中,可以将开发平台待展示的功能数据包存储在分布式云存储***中,从而方便的从分布式云存储***中加载功能数据包。
在本申请的一个实施例中,可以将开发平台待展示的功能数据包存储在图1A所示的数据共享***中,参见图1A,数据共享***100是指用于进行节点与节点之间数据共享的***,该数据共享***100中可以包括多个节点101,多个节点101可以是指数据共享***100中各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享***内的共享数据。为了保证数据共享***内的信息互通,数据共享***中的每个节点101之间可以存在信息连接,节点101之间可以通过上述信息连接进行信息传输。例如,当数据共享***中的任意节点接收到输入信息时,数据共享***中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享***中全部节点上存储的数据均一致。
对于数据共享***中的每个节点,均具有与其对应的节点标识,而且数据共享***中的每个节点均可以存储有数据共享***中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享***中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
数据共享***中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1B,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,参见图1C,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享***中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享***中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中,以保证数据库中存储消息的准确性。
图2示出了可以应用本申请实施例的技术方案的示例性***架构200的示意图。
如图2所示,***架构200可以包括客户端201、网络202和服务器203。网络202用以在客户端201和服务器203之间提供通信链路的介质。网络203可以包括各种连接类型,例如有线通信链路、无线通信链路等等,本申请在此不做限制。
应该理解,图2中的客户端201、网络202和服务器203的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端201、网络202和服务器203。比如服务器203可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。客户端201可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
在本申请的一个实施例中,客户端201通过响应于开发平台的启动指令,生成启动页面,并从服务器203中获取开发平台待展示的功能数据包,提前了获取功能数据包的时间,基于获取到的功能数据包,生成用于展示功能数据包的选择页面,缩短了在展示选择页面时等待获取功能数据包的时间,降低了选择页面延迟展示的风险,功能数据包在选择页面中以功能数据包列表的形式进行展示,响应于选择页面接收的选择指令,从功能数据包列表中选择指定功能数据包,基于指定功能数据包生成应用程序开发工程,缩短了开发平台生成应用程序开发工程的时间,从而提高了开发平台的使用性能。
需要说明的是,本申请实施例所提供的应用程序开发工程生成方法一般由客户端201执行,相应地,应用程序开发工程装置一般设置于客户端201中。但是,在本申请的其它实施例中,服务器203也可以与客户端201具有相似的功能,从而执行本申请实施例所提供的应用程序开发工程生成方法。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图3示意性示出了根据本申请的一个实施例的应用程序开发工程生成方法的流程图,该应用程序开发工程生成方法的执行主体可以是客户端,比如可以是图1中所示的客户端201。
参照图3所示,该应用程序开发工程生成方法至少包括步骤S310至步骤S340,详细介绍如下:
在步骤S310中,响应于开发平台的启动指令,生成启动页面,并获取开发平台待展示的功能数据包。
在本申请的一个实施例中,开发平台是用于开发应用程序的平台,可以是移动金融开发平台(Tencent Mobile FinTech Platform,TMF)或其他开发平台,开发平台的启动指令可以是开发平台的用户打开开发平台的指令,可以通过双击开发平台图标向开发平台发送启动指令,响应于启动指令开发平台显示的界面作为启动界面,并于响应启动指令的同时获取开发平台待展示的功能数据包。
在本申请的一个实施例中,开发平台待展示的功能数据包可以是开发平台能够获得的功能数据包,功能数据包可以是软件开发工具包(Software Development Kit,SDK),功能数据包中可以包括建立应用程序时需要的开发工具,功能数据包中也可以存储与开发工具相关的数据。
在本申请的一个实施例中,可以从远端加载功能数据包,远端可以是服务器、区块链或云存储***。
在本申请的一个实施例中,若从远端加载功能数据包成功,则使用加载的功能数据包替换开发平台缓存中存储的历史功能数据包,获取缓存中替换后的历史功能数据包,以使缓存中存储距离启动时间最近版本的功能数据包,以供开发者在网络不畅时也能获取到相对较新版本的功能数据包。
在本申请的一个实施例中,若从远端加载功能数据包失败,则获取缓存中存储的历史功能数据包作为功能数据包,不必等待加载,能够快速的获取到功能数据包。
在本申请的一个实施例中,若功能数据包加载失败,则监听网络状态变化,若变化后的网络状态为顺畅,则重新加载功能数据包,使用重新加载的功能数据包替换开发平台缓存中存储的历史功能数据包,获取缓存中替换后的历史功能数据包,作为功能数据包,及时更新缓存,以及时获取最新版本的功能数据包。
在本申请的一个实施例中,可以根据加载的功能数据包更新缓存中的历史功能数据包,使缓存中存储的功能数据包存储的版本号不变,但是版本号对应的功能数据包内容更新。
在本申请的一个实施例中,历史功能数据包可以是开发平台在本次加载之前从远端加载到的功能数据包。
在上述实施例中,为获取功能数据包提供了多种选择,当某一种获取功能数据包的方法不能成功实现,则更换另一种获取功能数据包的方法,提高了获取功能数据包的速度,提升了开发平台性能。
继续参照图3,在步骤S320中,基于获取到的功能数据包,生成用于展示功能数据包的选择页面,功能数据包在选择页面中以功能数据包列表的形式进行展示。
在本申请的一个实施例中,可以基于功能数据包,获取功能数据包对应的显示数据;基于显示数据生成功能数据包列表;在功能数据包列表中,获取显示数据中用于区分功能数据包的区分数据所在的单元格;在区分数据所在的单元格中添加勾选框,以生成选择页面。
在该实施例中,在区分数据所在的单元格中添加勾选框,相比于将勾选框单独设置在一个单元格中,能够节约创建工程消耗的内存和中央处理器(Central ProcessingUnit/Processor,CPU)的调度,提升开发平台的使用性能。
在本申请的一个实施例中,功能数据包对应的显示数据可以存储在功能数据包中,或者功能数据包对应的显示数据可以存储在开发平台的缓存。显示数据可以是能够让开发平台的使用者知晓功能数据包对应的开发功能的数据,从而根据显示数据进行选择,显示数据可以包括功能数据包的名称、简介及版本号等。区分数据是于区分功能数据包的数据,各个功能数据包对应的区分数据不同,区分数据可以是显示数据中的一个或多个数据,显示数据中的各个数据可以单独存储在一个单元格中。
在本申请的一个实施例中,可以从用于提供界面控件的故事版(Storyboard)中获取功能数据包列表的列表视图(TableView),将显示数据填充至列表视图中,得到功能数据包列表。
具体的,由于Storyboard参数中只有NSButton(勾选框控件),此处我们通过控件获取函数superview.superview获取TableView。图4示意性示出了根据本申请的一个实施例的故事版文件的分布结构示意图,在Storyboard文件中的控件可以如图4所示,Storyboard文件中的控件可以包括名称对应的勾选框、介绍对应的勾选框及版本对应的勾选框。
在本申请的一个实施例中,在将显示数据填充至列表视图中之前,可以将视图滚动容器嵌套入列表视图的外层,设置视图滚动容器的滚动方向,并隐藏视图滚动容器的滚动条,以实现列表视图的可滚动,其中,滚动方向可以是水平方向或竖直方向。
在本申请的一个实施例中,可以获取故事版提供的***类列表视图NSTableView,视图滚动容器可以是ScrollView,ScrollView被加入到NSTableView的外层,可以设置NSTableView的显示行数、列数、行高和列宽等。
在本申请的一个实施例中,可以自定义功能数据包勾选框(SDKSelectCell)继承***类列表视图(NSTableView),实现点击框的勾选事件,继承***类列表视图(NSTableView)的数据包勾选框(SDKSelectCell)具有继承***类列表视图(NSTableView)的功能,并在其中增加了勾选框选择的功能。
在本申请的一个实施例中,可以获取功能数据包的排序信息,获取排序信息对应的排序值,并获取排序信息对应的权重,计算对应于同一功能数据包的排序值的加权和,得到各个功能数据包的排序分数,按照排序分数对多个功能数据包进行排序,将功能数据包的显示数据按照排序填充至表格视图中。
在本申请的一个实施例中,排序信息可以包括功能数据包更新时间、功能数据包使用频率等。
仍然参照图3,在步骤S330中,响应于选择页面接收的选择指令,从功能数据包列表中选择指定功能数据包。
在本申请的一个实施例中,不同的功能数据包在功能数据包列表的不同行或不同列中,可以响应于选择指令,将选择指令对应于功能数据包列表的行号或列号发送至用于管理所述功能数据包的代理对象,以使代理对象基于行号或列号修改用于表示行号或列号对应的功能数据包是否可用的目标代理数据;获取目标代理数据所在的代理数组;基于代理数组中的代理数据筛选功能数据包中可用的功能数据包,得到指定功能数据包。
在本申请的一个实施例中,在获取目标代理数据所在的代理数组之后,可以复制代理数组,基于复制的代理数组中的代理数据筛选功能数据包中可用的功能数据包,得到指定功能数据包。
在本申请的一个实施例中,可以维护一个名为SSDKVC的类作为代理对象,代理对象是负责管理功能数据包是否可用的状态、控制页面跳转和分发事件的中心,代理对象创建列表视图,列表视图需要的数据信息和事件传递都由代理对象执行和分发。代理对象中可以持有列表视图实例,并且维护一个代理数组selCom,代理数组中的数据是对选择的功能数据包的标记,默认为全选,因此代理数组中默认代理数据均为true。进入功能数据包列表选择页面之前,代理对象会调用缓存层提供的校验功能数据包是否可用的方法,如果调用返回为true,则正常生成选择页面。
在本申请的一个实施例中,代理对象可以基于行号或列号获取行号或列号对应的勾选框标签(tag);代理对象基于勾选框标签获取勾选框标签对应的功能数据包;代理对象基于对勾选框标签对应的功能数据包在代理数组中查找目标代理数据,代理对象对目标代理数据进行取反操作,例如,当某一功能数据包的代理数据为true,则选择指令选择该功能数据包后,代理数据变更为false,该功能数据包不可用,则不将该功能数据包作为指定功能数据包;当某一功能数据包的代理数据为false,则选择指令选择该功能数据包后,代理数据变更为true,该功能数据包可用,则将该功能数据包作为指定功能数据包。
在本申请的一个实施例中,选择指令可以是点击事件,可以设置选择按钮点击函数(selectButtonClick)接收用户的点击事件,捕获用户的点击事件关联Storyboard中的勾选框。
仍然参照图3,在步骤S340中,基于指定功能数据包生成应用程序开发工程。
在图3的实施例中,通过响应于开发平台的启动指令,生成启动页面,并获取开发平台待展示的功能数据包,提前了获取功能数据包的时间,基于获取到的功能数据包,生成用于展示功能数据包的选择页面,缩短了在展示选择页面时等待获取功能数据包的时间,降低了选择页面延迟展示的风险,功能数据包在选择页面中以功能数据包列表的形式进行展示,响应于选择页面接收的选择指令,从功能数据包列表中选择指定功能数据包,基于指定功能数据包生成应用程序开发工程,缩短了开发平台生成应用程序开发工程的时间,从而提高了开发平台的使用性能。
在本申请的一个实施例中,可以创建多个功能层执行上述应用程序开发工程生成方法,多个功能层可以包括界面层、交互逻辑层、数据预加载层以及缓存和重试机制层。
在本申请的一个实施例中,界面层可以响应于开发平台的启动指令,生成启动页面,再基于获取到的功能数据包,生成用于展示功能数据包的选择页面,功能数据包在选择页面中以功能数据包列表的形式进行展示。
在本申请的一个实施例中,交互逻辑层可以进行选择页面的加载和缓存,以及连接界面层,交互逻辑层可以维护代理对象。交互逻辑层加载选择页面的过程可以具体包括:在交互逻辑层初始化表格视图时会设置其代理对象和数据源为SSDKVC;设置表格视图的行高并允许多选;创建显示列表用于存储从缓存中取出的显示数据,在ViewFortableColumn函数中创建或复用表格视图,通过NSUserInterfaceItemIdentifier方法从Storyboard中取出每列对应的单元格(cell)对象,从显示数组中取出对应于单元格的显示数据(SDK名称、简介、版本号),在第三列中需要对勾选框设置勾选框标签,点击时根据勾选框标签进行每行的区分;在接收到UI层传入的点击事件后,将勾选框标签进行检查,匹配到对应的功能数据包,在点击一次对代理数组中的数据进行一次取反操作(true值变为false,false变为true)。在用户点击下一步时对代理数组进行复制一份,然后根据代理数组中的代理数据筛选功能数据包,选择出用户最终选择的SDK。
在本申请的一个实施例中,代理数据可以存储在显示数组中,显示数据也可以存储在代理数组中,节约存储空间。
在本申请的一个实施例中,数据预加载层用于响应启动指令从远端加载功能数据包。在打开应用程序时,展示给用户的启动页面可以为图5,图5示意性示出了根据本申请的一个实施例的启动页面示意图,图5开始渲染时,该层会维护一个双端队列GQueue,在GQueue中进行功能数据包的请求、接收、缓存、解析及更新等处理,使用多线程处理功能数据包,在网络正常的情况下,进入如图6所示的选择页面时功能数据包中的数据已经解析完成了,图6示意性示出了根据本申请的一个实施例的选择页面示意图。数据请求回来时会替换掉开发平台本地缓存中存储的历史功能数据包。
在该实施例中,界面的操作和渲染是在主线程进行的,使用多线程处理功能数据包能够避免把数据和网络操作放在主线程造成的页面卡顿。
在本申请的一个实施例中,缓存和重试机制层用于缓存从远端加载的功能数据包,若加载失败,则直接使用缓存的历史功能数据包,可以基于沙盒NSuserdefaults建立缓存池,对显示数据进行键值对(key-value的映射),映射后的数据结构可以如下所示:
在开发工程建立完成对应用程序进行打包时,我们会将默认的功能数据包显示数据存入缓存池,保证用户在无网的环境下选择页面能够显示正常。若用户无网或弱网导致加载失败,则监听网络状态,在网络状态进行改变时会发送通知,在通知中进行预加载的网络请求,进行功能数据包的重新获取。
在本申请的一个实施例中,基于多个功能层执行本申请的应用程序开发工程的过程可以如图7所示,图7示意性示出了本申请的一个实施例的应用程序开发工程生成方法的流程图。在该实施例中,响应于应用程序开发平台程序启动,在GQueue进行预加载,如果请求成功,则使用请求数据替换掉缓存数据,列表页即功能数据包列表所在的选择页面开始加载,初始化并设置TableView页面加载成功,用户开始点击勾选框时SDKSelectCell传给SSDKVC数据,根据tag进行数据校验,完成筛选;如果请求不成功,则监听网络变化,在网络顺畅时,发送请求,并且请求成功后继续执行替换掉缓存数据至完成筛选的步骤。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的应用程序开发工程生成方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的应用程序开发工程生成方法的实施例。
图8示意性示出了根据本申请的一个实施例的应用程序开发工程生成装置的框图。
参照图8所示,根据本申请的一个实施例的应用程序开发工程生成装置800,包括获取模块801、展示模块802、选择模块803和生成模块804。
在本申请的一些实施例中,基于前述方案,获取模块801配置为响应于开发平台的启动指令,生成启动页面,并获取开发平台待展示的功能数据包;展示模块802配置为基于获取到的功能数据包,生成用于展示功能数据包的选择页面,功能数据包在选择页面中以功能数据包列表的形式进行展示;选择模块803配置为响应于选择页面接收的选中指令,从功能数据包列表中选择与选中指令对应的指定功能数据包;生成模块804配置为基于指定功能数据包生成应用程序开发工程。
在本申请的一个实施例中,基于前述方案,获取模块801配置为:从远端加载功能数据包;若功能数据包加载成功,则使用加载的功能数据包替换开发平台缓存中存储的历史功能数据包;获取缓存中替换后的历史功能数据包,作为功能数据包;若功能数据包加载失败,则获取缓存中存储的历史功能数据包,作为功能数据包。
在本申请的一个实施例中,基于前述方案,获取模块801配置为:若功能数据包加载失败,则监听网络状态变化;若变化后的网络状态为顺畅,则重新加载功能数据包,使用重新加载的功能数据包替换开发平台缓存中存储的历史功能数据包;获取缓存中替换后的历史功能数据包,作为功能数据包。
在本申请的一个实施例中,基于前述方案,展示模块802配置为:基于功能数据包,获取功能数据包对应的显示数据;基于显示数据生成功能数据包列表;在功能数据包列表中,获取显示数据中用于区分功能数据包的区分数据所在的单元格;在区分数据所在的单元格中添加勾选框,以生成选择页面。
在本申请的一个实施例中,基于前述方案,展示模块802配置为:从用于提供界面控件的故事版中获取功能数据包列表的列表视图;将显示数据填充至列表视图中,得到功能数据包列表。
在本申请的一个实施例中,基于前述方案,展示模块802配置为:功能数据包有多个,获取功能数据包的排序信息;获取排序信息对应的排序值,并获取排序信息对应的权重;计算对应于同一功能数据包的排序值的加权和,得到各个功能数据包的排序分数;按照排序分数对多个功能数据包进行排序,将功能数据包的显示数据按照排序填充至表格视图中。
在本申请的一个实施例中,基于前述方案,展示模块802配置为:将视图滚动容器嵌套入列表视图的外层;设置视图滚动容器的滚动方向,并隐藏视图滚动容器的滚动条。
在本申请的一个实施例中,基于前述方案,选择模块803配置为:响应于选择指令,将选择指令对应于功能数据包列表的行号发送至用于管理功能数据包的代理对象,以使代理对象基于行号修改用于表示行号对应的功能数据包是否可用的目标代理数据;获取目标代理数据所在的代理数组;基于代理数组中的代理数据筛选功能数据包中可用的功能数据包,得到指定功能数据包。
在本申请的一个实施例中,基于前述方案,选择模块803配置为:代理对象基于行号获取行号对应的勾选框标签;代理对象基于勾选框标签获取勾选框标签对应的功能数据包;代理对象基于对勾选框标签对应的功能数据包在代理数组中查找目标代理数据;代理对象对目标代理数据进行取反操作。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为***、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图9来描述根据本申请的这种实施方式的电子设备90。图9显示的电子设备90仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图9所示,电子设备90以通用计算设备的形式表现。电子设备90的组件可以包括但不限于:上述至少一个处理单元91、上述至少一个存储单元92、连接不同***组件(包括存储单元92和处理单元91)的总线93、显示单元94。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元91执行,使得所述处理单元91执行本说明书上述“实施例方法”部分中描述的根据本申请各种示例性实施方式的步骤。
存储单元92可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)921和/或高速缓存存储单元922,还可以进一步包括只读存储单元(ROM)923。
存储单元92还可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块925包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线93可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备90也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备90交互的设备通信,和/或与使得该电子设备90能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口95进行。并且,电子设备90还可以通过网络适配器96与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器96通过总线93与电子设备90的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备90使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。
根据本申请一个实施例,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。
根据本申请一个实施例,用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种应用程序开发工程生成方法,其特征在于,包括:
响应于开发平台的启动指令,生成启动页面,并获取所述开发平台待展示的功能数据包;
基于获取到的所述功能数据包,生成用于展示所述功能数据包的选择页面,所述功能数据包在所述选择页面中以功能数据包列表的形式进行展示;
响应于所述选择页面接收的选择指令,从所述功能数据包列表中选择指定功能数据包;
基于所述指定功能数据包生成应用程序开发工程。
2.根据权利要求1所述的应用程序开发工程生成方法,其特征在于,所述获取所述开发平台待展示的功能数据包,包括:
从远端加载所述功能数据包;
若所述功能数据包加载成功,则使用加载的功能数据包替换所述开发平台缓存中存储的历史功能数据包;
获取缓存中替换后的历史功能数据包,作为所述功能数据包;
若所述功能数据包加载失败,则获取所述缓存中存储的历史功能数据包,作为所述功能数据包。
3.根据权利要求1所述的应用程序开发工程生成方法,其特征在于,所述获取所述开发平台待展示的功能数据包,包括:
若所述功能数据包加载失败,则监听网络状态变化;
若变化后的网络状态为顺畅,则重新加载所述功能数据包,使用重新加载的功能数据包替换所述开发平台缓存中存储的历史功能数据包;
获取缓存中替换后的历史功能数据包,作为所述功能数据包。
4.根据权利要求1所述的应用程序开发工程生成方法,其特征在于,所述基于获取到的所述功能数据包,生成用于展示所述功能数据包的选择页面,所述功能数据包在所述选择页面中以功能数据包列表的形式进行展示,包括:
基于所述功能数据包,获取所述功能数据包对应的显示数据;
基于所述显示数据生成所述功能数据包列表;
在所述功能数据包列表中,获取所述显示数据中用于区分所述功能数据包的区分数据所在的单元格;
在所述区分数据所在的单元格中添加勾选框,以生成所述选择页面。
5.根据权利要求4所述的应用程序开发工程生成方法,其特征在于,所述基于所述显示数据生成所述功能数据包列表,包括:
从用于提供界面控件的故事版中获取所述功能数据包列表的列表视图;
将所述显示数据填充至所述列表视图中,得到所述功能数据包列表。
6.根据权利要求5所述的应用程序开发工程生成方法,其特征在于,所述功能数据包有多个,所述将所述显示数据填充至所述列表视图中,包括:
获取功能数据包的排序信息;
获取所述排序信息对应的排序值,并获取所述排序信息对应的权重;
计算对应于同一功能数据包的排序值的加权和,得到各个功能数据包的排序分数;
按照所述排序分数对多个所述功能数据包进行排序,将所述功能数据包的显示数据按照所述排序填充至所述表格视图中。
7.根据权利要求5所述的应用程序开发工程生成方法,其特征在于,在将所述显示数据填充至所述列表视图中之前,所述方法包括:
将视图滚动容器嵌套入所述列表视图的外层;
设置所述视图滚动容器的滚动方向,并隐藏所述视图滚动容器的滚动条。
8.根据权利要求1所述的应用程序开发工程生成方法,其特征在于,不同的所述功能数据包在所述功能数据包列表的不同行中,所述响应于所述选择页面接收的选择指令,从所述功能数据包列表中选择指定功能数据包,包括:
响应于所述选择指令,将所述选择指令对应于所述功能数据包列表的行号发送至用于管理所述功能数据包的代理对象,以使所述代理对象基于所述行号修改用于表示所述行号对应的功能数据包是否可用的目标代理数据;
获取所述目标代理数据所在的代理数组;
基于所述代理数组中的代理数据筛选所述功能数据包中可用的功能数据包,得到所述指定功能数据包。
9.根据权利要求8所述的应用程序开发工程生成方法,其特征在于,所述代理对象基于所述行号修改用于表示所述行号对应的功能数据包是否可用的目标代理数据,包括:
所述代理对象基于所述行号获取所述行号对应的勾选框标签;
所述代理对象基于所述勾选框标签获取所述勾选框标签对应的功能数据包;
所述代理对象基于对所述勾选框标签对应的功能数据包在所述代理数组中查找所述目标代理数据;
所述代理对象对所述目标代理数据进行取反操作。
10.一种应用程序开发工程生成装置,其特征在于,包括:
获取模块,配置为响应于开发平台的启动指令,生成启动页面,并获取所述开发平台待展示的功能数据包;
展示模块,配置为基于获取到的所述功能数据包,生成用于展示所述功能数据包的选择页面,所述功能数据包在所述选择页面中以功能数据包列表的形式进行展示;
选择模块,配置为响应于所述选择页面接收的选中指令,从所述功能数据包列表中选择与所述选中指令对应的指定功能数据包;
生成模块,配置为基于所述指定功能数据包生成应用程序开发工程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110202549.9A CN114968216A (zh) | 2021-02-18 | 2021-02-18 | 应用程序开发工程生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110202549.9A CN114968216A (zh) | 2021-02-18 | 2021-02-18 | 应用程序开发工程生成方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968216A true CN114968216A (zh) | 2022-08-30 |
Family
ID=82954364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110202549.9A Pending CN114968216A (zh) | 2021-02-18 | 2021-02-18 | 应用程序开发工程生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968216A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116560637A (zh) * | 2023-04-13 | 2023-08-08 | 珠海沃德尔软件科技有限公司 | 一种可用于数字化转型的以配置形式开发应用***的方法及*** |
-
2021
- 2021-02-18 CN CN202110202549.9A patent/CN114968216A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116560637A (zh) * | 2023-04-13 | 2023-08-08 | 珠海沃德尔软件科技有限公司 | 一种可用于数字化转型的以配置形式开发应用***的方法及*** |
CN116560637B (zh) * | 2023-04-13 | 2023-10-20 | 珠海沃德尔软件科技有限公司 | 一种可用于数字化转型的以配置形式开发应用***的方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818112B (zh) | 一种大数据分析作业***及任务提交方法 | |
US20170161038A1 (en) | Code placement using a dynamic call graph | |
US11442830B2 (en) | Establishing and monitoring programming environments | |
CN109144619B (zh) | 图标字体信息处理方法、装置及*** | |
US9590859B2 (en) | Discovering resources of a distributed computing environment | |
US9374417B1 (en) | Dynamic specification auditing for a distributed system | |
CN109445841B (zh) | 接口文档管理方法、装置、服务器及存储介质 | |
US8280197B1 (en) | Managed background loading of image resources in resource-constrained devices | |
WO2015057188A1 (en) | Package dependency maps for distributed computing | |
US10235223B2 (en) | High-performance computing framework for cloud computing environments | |
US11271895B1 (en) | Implementing advanced networking capabilities using helm charts | |
CN112765023A (zh) | 测试用例生成方法、装置 | |
US20210042196A1 (en) | Data Migration For A Shared Database | |
US11249885B2 (en) | Test case generator and user interface | |
CN114398023A (zh) | 生成文件的方法、配置页面的方法和装置 | |
CN114968216A (zh) | 应用程序开发工程生成方法和装置 | |
CN113204425A (zh) | 供进程管理内部线程的方法、装置、电子设备及存储介质 | |
CN111125257B (zh) | 词典更新方法、装置、设备和存储介质 | |
US20200220910A1 (en) | Idempotent processing of data streams | |
US20230205619A1 (en) | Common platform for fulfilling different actions | |
CN112152988B (zh) | 用于异步nbmp请求处理的方法、***以及计算机设备和介质 | |
CN114860203A (zh) | 项目创建方法、装置、服务器及存储介质 | |
US11340952B2 (en) | Function performance trigger | |
CN113472638A (zh) | 边缘网关控制方法及***、装置、电子设备、存储介质 | |
CN115373831A (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 |