CN113760239A - 应用程序开发方法、装置、终端设备及可读存储介质 - Google Patents
应用程序开发方法、装置、终端设备及可读存储介质 Download PDFInfo
- Publication number
- CN113760239A CN113760239A CN202010502124.5A CN202010502124A CN113760239A CN 113760239 A CN113760239 A CN 113760239A CN 202010502124 A CN202010502124 A CN 202010502124A CN 113760239 A CN113760239 A CN 113760239A
- Authority
- CN
- China
- Prior art keywords
- debugging
- application
- package
- file
- code
- 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 73
- 238000011161 development Methods 0.000 claims abstract description 84
- 230000001960 triggered effect Effects 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008521 reorganization Effects 0.000 claims description 12
- 230000006798 recombination Effects 0.000 claims description 10
- 238000005215 recombination Methods 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 11
- 230000001976 improved effect Effects 0.000 abstract description 9
- 230000001360 synchronised effect Effects 0.000 abstract description 6
- 230000004048 modification Effects 0.000 abstract description 5
- 238000012986 modification Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 49
- 230000006854 communication Effects 0.000 description 49
- 230000006870 function Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 13
- 230000005236 sound signal Effects 0.000 description 12
- 238000010295 mobile communication Methods 0.000 description 11
- 238000009877 rendering Methods 0.000 description 11
- 210000000988 bone and bone Anatomy 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008859 change Effects 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
- 238000005516 engineering process Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000036772 blood pressure Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 101100369915 Drosophila melanogaster stas gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010349 pulsation Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal 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/30—Creation or generation of source code
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请适用于终端技术领域,提供了一种应用程序开发方法、装置、终端设备及计算机可读存储介质。在本申请的应用程序开发方法中,将应用程序的代码划分为公共逻辑代码和差异逻辑代码,在编译不同设备类型对应的应用包时,可以复用公共逻辑代码,提高开发效率。并且,后期修改公共逻辑代码中的内容时,一次修改就可以同步至各个设备类型对应的应用程序,无需逐一修改各个设备类型对应的应用程序的代码,降低维护难度。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种应用程序开发方法、装置、终端设备及计算机可读存储介质。
背景技术
开发应用程序是指编写应用程序的代码并编译成可执行文件的过程。
当前开发人员在开发应用程序的过程中,为了适应不同种类的终端设备的渲染逻辑,开发人员需要逐一开发不同版本的应用程序,开发效率低,并且不利于后期维护。
发明内容
本申请提供一种应用程序开发方法、装置、终端设备及计算机可读存储介质,解决了现有技术中开发不同设备类型对应的应用程序时,开发效率低,后期维护难度大的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种应用程序开发方法,包括:
获取应用编译指令;
基于所述应用编译指令执行文件重组操作,以确定第一预设设备类型对应的目标文件,所述目标文件包括公共逻辑代码以及所述第一预设设备类型对应的差异逻辑代码;
对所述目标文件进行编译,得到所述第一预设设备类型对应的应用包。
需要说明的是,在开发应用程序的过程中,开发应用程序的终端设备(即开发设备)可以在该应用程序的文件目录下创建不同的文件夹以分别存放上述公共逻辑代码和上述差异逻辑代码。
其中,公共逻辑代码用于实现在不同的设备类型上通用的逻辑。差异逻辑代码用于实现适用于部分设备类型的逻辑。
当开发设备获取到应用编译指令时,可以执行文件重组操作,得到第一预设设备类型对应的目标文件。
目标文件中应当包括公共逻辑代码以及该第一预设设备类型对应的差异逻辑代码。
开发设备对目标文件进行编译,可以得到该第一预设设备类型对应的应用包。
由于同一应用程序在不同的设备类型上大部分的逻辑是通用的,仅小部分逻辑(比如渲染逻辑)存在差异,因此,通过上述方法开发不同设备类型的应用程序时,不同的第一预设设备类型对应的应用程序可以复用公共逻辑代码以生成应用包,提高了开发效率。并且,后期修改公共逻辑代码中的内容时,一次修改就可以同步至各个设备类型对应的应用程序,无需逐一修改各个设备类型对应的应用程序的代码,降低维护难度。
在第一方面的一种可能的实现方式中,所述应用编译指令包括第一预设设备类型的标识。
需要说明的是,上述第一预设设备类型可以是开发设备中已设置的所有设备类型。或者,上述第一预设设备类型也可以由应用编译指令设置,此时,开发设备中设置有至少两种设备类型,开发设备响应于应用编译指令,根据应用编译指令中第一预设设备类型的标识确定第一预设设备类型,编译第一预设设备类型对应的应用包。例如,假设开发设备中设置有手机和平板电脑这两种设备类型,此时,开发设备可以根据应用编译指令中第一预设设备类型的标识,将手机确定为第一预设设备类型,或者,将平板电脑确定为第一预设设备类型,或者,将手机和平板电脑都确定为第一预设设备类型。
在第一方面的一种可能的实现方式中,在所述获取应用编译指令之前,还包括:
当获取到浏览器调试指令时,获取第二预设设备类型对应的第一代码,所述第一代码包括公共逻辑代码以及所述第二预设设备类型对应的差异逻辑代码;
将所述第一代码转化成目标脚本文件;
通过浏览器加载所述目标脚本文件,以显示所述第二预设设备类型对应的界面组件。
需要说明的是,当开发设备获取到浏览器调试指令时,可以获取第二预设类型对应的第一代码,第一代码应当包括公共逻辑代码以及第二预设设备类型对应的差异逻辑代码。
然后,开发设备对第一代码进行语法和语义处理,将第一代码转化为浏览器可以识别的目标脚本文件。
之后,开发设备使用浏览器加载目标脚本文件,显示第二预设设备类型对应的界面组件,以便开发人员预览该界面组件的显示效果。
在第一方面的一种可能的实现方式中,所述目标脚本文件的编程语言为Javascript。
需要说明的是,上述目标脚本文件的编程语言类型可以根据实际情况进行设置。例如,目标脚本文件的编程语言类型可以为Javascript,此时,集成开发环境将第一代码转成Javascript脚本文件。
在第一方面的一种可能的实现方式中,所述通过浏览器加载所述目标脚本文件,以显示所述第二预设设备类型对应的界面组件,包括:
将各个所述目标脚本文件封装至同一预览包中;
通过所述浏览器加载所述预览包,得到各个所述第二预设设备类型对应的界面组件以及各个所述界面组件对应的选择组件;
当所述选择组件被触发时,显示被触发的选择组件对应的界面组件,隐藏其他界面组件,其中,所述其他界面组件为所述第二预设设备类型对应的界面组件中除所述被触发的选择组件对应的界面组件以外的界面组件。
需要说明的是,浏览器可以将不同的目标脚本文件封装至同一预览包中,浏览器加载该预览包时,同时显示各个第二预设设备类型的界面组件以及各个界面组件对应的选择组件。
此时,当某一选择组件被触发时,浏览器显示该被触发的选择组件对应的界面组件,隐藏其他界面组件,用户可以通过触发不同的选择组件以切换显示相应设备类型对应的界面组件,在界面组件切换的过程中,浏览器无需重新加载预览包中的目标脚本文件,提高了浏览器切换不同的界面组件的流畅度。
在第一方面的一种可能的实现方式中,在所述获取应用编译指令之前,还包括:
获取终端调试指令;
基于所述终端调试指令执行文件重组操作,确定第三预设设备类型对应的调试编译文件,所述调试编译文件包括公共逻辑代码以及所述第三预设设备类型对应的差异逻辑代码;
对所述调试编译文件进行编译,得到所述第三预设设备类型对应的调试包。
需要说明的是,当开发设备获取到终端调试指令时,可以根据终端调试指令执行文件重组操作,确定第三预设设备类型对应的调试编译文件。
调试编译文件应当包括公共逻辑代码以及第三预设设备类型对应的差异逻辑代码。
确定了调试编译文件后,对调试编译文件进行编译,得到第三预设设备类型对应的调试包。
用户可以在真实的终端设备上查看该调试包的显示效果,使用真实的终端设备进行调试。
在第一方面的一种可能的实现方式中,在所述得到所述第三预设设备类型对应的调试包之后,还包括:
将所述调试包存储至第一存储地址;
根据所述第一存储地址生成调试包下载链接;
根据所述调试包下载链接生成调试包二维码。
需要说明的是,开发设备分发调试包的方式可以根据实际情况进行设置。
比如,开发设备可以将调试包存储至一特定的第一存储地址,然后生成访问该第一存储地址的调试包下载链接。
之后,开发设备根据该调试包下载链接生成调试包二维码。
当某一终端设备需要下载调试包时,可以通过识别该调试包二维码得到调试包下载链接,然后访问调试包下载链接,在第一存储地址中下载调试包。
在第一方面的一种可能的实现方式中,在所述得到所述第一预设设备类型对应的应用包之后,还包括:
将所述应用包存储至目标存储地址;
根据所述目标存储地址生成应用包下载链接;
根据所述应用包下载链接生成应用包二维码。
需要说明的是,开发设备分发应用包的方式可以根据实际情况进行设置。
比如,开发设备可以将应用包存储至一特定的目标存储地址,然后生成访问该目标存储地址的应用包下载链接。
之后,开发设备根据该应用包下载链接生成应用包二维码。
当某一终端设备需要下载应用包时,可以通过识别该应用包二维码得到应用包下载链接,然后访问应用包下载链接,在目标存储地址中下载应用包。
第二方面,提供一种应用程序开发装置,包括:
编译指令模块,用于获取应用编译指令;
目标文件模块,用于基于所述应用编译指令执行文件重组操作,以确定第一预设设备类型对应的目标文件,所述目标文件包括公共逻辑代码以及所述第一预设设备类型对应的差异逻辑代码;
应用生成模块,用于对所述目标文件进行编译,得到所述第一预设设备类型对应的应用包。
在第二方面的一种可能的实现方式中,所述应用编译指令包括第一预设设备类型的标识。
在第二方面的一种可能的实现方式中,所述装置还包括:
第一调试模块,用于当获取到浏览器调试指令时,获取第二预设设备类型对应的第一代码,所述第一代码包括公共逻辑代码以及所述第二预设设备类型对应的差异逻辑代码;
文件转换模块,用于将所述第一代码转化成目标脚本文件;
界面预览模块,用于通过浏览器加载所述目标脚本文件,以显示所述第二预设设备类型对应的界面组件。
在第二方面的一种可能的实现方式中,所述目标脚本文件的编程语言为Javascript。
在第二方面的一种可能的实现方式中,所述界面预览模块,包括:
封装子模块,用于将各个所述目标脚本文件封装至同一预览包中;
加载子模块,用于通过所述浏览器加载所述预览包,得到各个所述第二预设设备类型对应的界面组件以及各个所述界面组件对应的选择组件;
显示子模块,用于当所述选择组件被触发时,显示被触发的选择组件对应的界面组件,隐藏其他界面组件,其中,所述其他界面组件为所述第二预设设备类型对应的界面组件中除所述被触发的选择组件对应的界面组件以外的界面组件。
在第二方面的一种可能的实现方式中,所述装置还包括:
第二调试模块,用于获取终端调试指令;
调试文件模块,用于基于所述终端调试指令执行文件重组操作,确定第三预设设备类型对应的调试编译文件,所述调试编译文件包括公共逻辑代码以及所述第三预设设备类型对应的差异逻辑代码;
调试生成模块,用于对所述调试编译文件进行编译,得到所述第三预设设备类型对应的调试包。
在第二方面的一种可能的实现方式中,所述装置还包括:
第一存储模块,用于将所述调试包存储至第一存储地址;
调试链接模块,用于根据所述第一存储地址生成调试包下载链接;
调试下载模块,用于根据所述调试包下载链接生成调试包二维码。
在第二方面的一种可能的实现方式中,所述装置还包括:
目标存储模块,用于将所述应用包存储至目标存储地址;
应用链接模块,用于根据所述目标存储地址生成应用包下载链接;
应用下载模块,用于根据所述应用包下载链接生成应用包二维码。
第三方面,提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
第五方面,提供了一种芯片系统,所述芯片系统可以为单个芯片,或者多个芯片组成的芯片模组,所述芯片系统包括存储器和处理器,所述处理器执行所述存储器中存储的计算机程序,以实现如上述方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:
在本申请提供的应用程序开发方法中,将应用程序的代码划分为公共逻辑代码和差异逻辑代码,在编译不同设备类型对应的应用包时,可以复用公共逻辑代码,提高开发效率。并且,后期修改公共逻辑代码中的内容时,一次修改就可以同步至各个设备类型对应的应用程序,无需逐一修改各个设备类型对应的应用程序的代码,降低维护难度。综上,本申请提供的应用程序开发方法解决了现有技术中开发不同设备类型对应的应用程序时,开发效率低,后期维护难度大的问题,具有较高的实用性和易用性。
附图说明
图1为本申请实施例提供的一种应用场景的示意图;
图2为本申请实施例提供的另一种应用场景的示意图;
图3为本申请实施例提供的另一种应用场景的示意图;
图4为本申请实施例提供的另一种应用场景的示意图;
图5为本申请实施例提供的另一种应用场景的示意图;
图6为本申请实施例提供的另一种应用场景的示意图;
图7为本申请实施例提供的另一种应用场景的示意图;
图8为本申请实施例提供的另一种应用场景的示意图;
图9为本申请实施例提供的另一种应用场景的示意图;
图10为本申请实施例提供的另一种应用场景的示意图;
图11为本申请实施例提供的另一种应用场景的示意图;
图12为本申请实施例提供的一种应用程序开发方法的流程示意图;
图13为本申请实施例提供的一种应用程序开发装置的结构示意图;
图14为本申请实施例提供的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的应用开发方法可以应用于手机、平板电脑、可穿戴设备、车载设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等具备编译功能的终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
例如,所述终端设备可以是WLAN中的站点(STAION,ST),可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、无线本地环路(WirelessLocal Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、车联网终端、电脑、膝上型计算机、手持式通信设备、手持式计算设备、卫星无线设备、用户驻地设备(customer premise equipment,CPE)和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5G网络中的移动终端或者未来演进的公共陆地移动网络(PublicLand Mobile Network,PLMN)网络中的移动终端等。
开发应用程序是指编写应用程序的代码并将代码编译成可执行文件的过程。
当前开发人员在开发应用程序的过程中,需要在集成开发环境中创建该应用程序对应的工程。目前的开发方式是一个工程中开发一种终端设备对应的应用程序,当需要将该应用程序移植至不同的终端设备时,需要创建新的工程。不同工程之间的代码无法复用,开发效率极低。
并且,当后期需要修改某一应用程序的业务逻辑或增添新的业务逻辑时,需要在不同终端设备对应的工程中手动进行同步,维护难度高。
有鉴于此,本申请提供了一种应用程序开发方法、装置、终端设备及计算机可读存储介质,可以解决当前在开发应用程序时,开发效率低,维护难度的问题。
接下来,将从开发应用程序的终端设备的角度,对本实施例提供的一种应用程序开发方法进行描述。
1、代码管理。
在开发应用程序的终端设备(即开发设备)内,可以设置有集成开发环境(Integrated Development Environment,IDE)。当用户需要开发应用程序时,IDE可以响应于用户触发的新建指令,创建工程,用户可以在工程中编写代码以开发应用程序。
触发新建指令的方式可以根据实际需求进行定义。例如,触发新建指令的方式可以为用户点击IDE中的“新建”选项。
由于不同设备类型的终端设备的显示区域存在差异,因此,用户在开发应用程序时,需要针对不同的设备类型开发不同的应用包。这些应用包中的大部分业务逻辑是相同的,主要是在渲染逻辑上存在差异。
为此,用户在IDE中开发应用程序时,IDE可以响应于用户的操作,在一个工程创建多个管理源代码的文件夹。
其中,在上述多个管理源代码的文件夹中,可以包括一个公共文件夹和多个设备文件夹。
用户可以在公共文件中放置公共逻辑代码文件。公共逻辑代码文件中的公共逻辑代码可以适用于不同设备类型的终端设备,上述公共逻辑代码用于实现在不同的设备类型上通用的逻辑。例如,上述公共逻辑代码可以为适用于不同设备类型的终端设备的业务逻辑的代码。
并且,用户可以在设备文件夹中放置该设备文件夹对应的设备类型的差异逻辑代码文件。其中,一个设备文件夹对应一种设备类型。差异逻辑代码文件中的差异逻辑代码适用于该设备文件夹对应的设备类型对应的终端设备。例如,上述差异逻辑代码可以为适用于某一设备类型的终端设备的渲染逻辑的代码。
此外,IDE可以支持添加和删除设备文件夹。当用户需要在IDE的某个工程中开发新的设备类型对应的应用程序时,IDE可以响应于用户触发的添加指令,在该工程中添加该设备类型对应的设备文件夹,用户可以在该设备文件中编译该设备类型对应的差异逻辑代码。触发添加指令的方式可以根据实际需求进行定义。例如,触发添加指令的方式可以为用户点击IDE中的“添加”选项。
当用户想要在IDE的某个工程中删除某个设备类型对应的代码文件时,IDE可以响应于用户触发的删除指令,在该工程中删除该终端设备的设备类型对应的设备文件夹。其中,删除指令中包括待删除的设备文件夹的标识。触发删除指令的方式可以根据实际需求进行定义。例如,触发删除指令的方式可以为用户选中某一设备文件夹后,右键点击该设备文件夹,IDE弹出操作选项列表,然后用户左键点击操作选项列表中的“删除”选项,触发删除指令。
以下将结合具体的应用场景对上述代码管理的内容进行描述。
应用场景一:
轻应用泛指运行在终端设备上的,体积小巧,具备免安装特点的轻量级应用程序。轻应用包括但不限于快应用程序、快服务卡片、微信小程序、支付宝小程序等,轻应用具有样式简洁、体积小巧、免安装、易分发的优点。
假设用户要开发一款天气预报卡片的轻应用。该天气预报卡片的轻应用在不同设备类型的终端设备上的业务逻辑相同,渲染逻辑不同。
如图1所示,IDE在获取到新建指令后,创建该天气预报卡片的工程。然后,IDE可以在源代码(source,src)文件夹的目录下创建公共文件夹(common),以及响应于添加指令,在文件夹“src”的目录下创建4个设备文件夹。
4个设备文件夹分别被命名为“car”、“pad”、“phone”、“tv”,分别对应车载设备、平板电脑、手机以及智能电视这四种设备类型的终端设备。
然后,用户可以在“common”文件夹中编写天气预报卡片的业务逻辑的代码,在“car”文件夹中编写车载设备对应的渲染逻辑的代码,在“pad”文件夹中编写平板电脑对应的渲染逻辑的代码,在“phone”文件夹中编写手机对应的渲染逻辑的代码,在“tv”文件夹中编写智能电视对应的渲染逻辑的代码。
如图2所示,假设用户想要开发适用于笔记本电脑的天气预报卡片,则IDE可以响应于添加指令,创建新的设备文件夹,并根据添加指令中的目标名称“Laptop”,将该设备文件夹命名为“Laptop”。之后,用户在“Laptop”文件夹中编写笔记本电脑对应的渲染逻辑的代码。
如图3所示,假设用户想要删除智能电视对应的差异逻辑代码,则IDE可以获取删除指令,删除指令包括“tv”文件夹的标识,IDE响应于删除指令,删除“tv”文件夹,从而删除智能电视对应的差异逻辑代码。
2、应用调试。
用户在IDE中将应用程序的代码编写完成之后,IDE可以对应用程序进行调试。
在进行应用程序调试时,IDE可以是在浏览器上进行应用程序的调试,或者,IDE也可以是在相应设备类型的终端设备上进行真机调试。
2.1、浏览器调试。
当用户想要使用浏览器进行应用程序调试时,可以通过操作IDE以触发浏览器调试指令。
在一些实施例中,浏览器调试指令中可以包括预览设备类型的标识,即预览设备类型为用户指定的;在另一些实施例中,浏览器调试指令中可以不包括预览设备类型的标识,此时,预览设备类型默认为该工程中所有设备文件夹对应的设备类型。预览设备类型为前述第二预设设备类型。
IDE在获取到浏览器调试指令之后,可以根据公共文件夹中的公共逻辑代码和各个设备文件夹中差异逻辑代码生成各个设备类型对应的第一代码。其中,某一设备类型对应的第一代码包括公共逻辑代码和该设备类型对应设备文件夹中的差异逻辑代码。
然后,IDE对各个设备类型对应的第一代码进行语法和语义处理,将第一代码转换成浏览器引擎可渲染的目标脚本文件。
目标脚本文件的编程语言类型可以根据实际情况进行设置。例如,目标脚本文件的编程语言类型可以为Javascript。Javascript是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言,可作为开发浏览器页面的脚本语言。此时,IDE将第一代码转成Javascript脚本文件。
在一些可能的实现方式中,IDE可以将各个设备类型对应的目标脚本文件编译至不同的预览包中,一个预览包对应一个目标脚本文件。
当用户想要预览某一设备类型对应的界面组件时,可以操作IDE以触发预览指令,预览指令包括第一设备类型。IDE可以响应于预览指令,控制浏览器加载第一设备类型对应的目标脚本文件,显示第一设备类型对应的界面组件。
当用户想要切换其他设备类型对应的界面组件时,可以操作IDE以触发切换指令,切换指令包括第二设备类型。IDE可以响应于切换指令,控制浏览器重新加载第二设备类型对应的目标脚本文件,显示第二设备类型对应的界面组件。
在另一些可能的实现方式中,IDE也可以将各个设备类型对应的目标脚本文件编译至同一个预览包中,并在预览包中增加设备类型选择逻辑。
浏览器加载了该预览包中的各个目标脚本文件以及设备类型选择逻辑之后,得到各个设备类型对应的界面组件以及各个设备类型对应的选择组件。
上述设备类型选择逻辑的内容为当选择组件被触发时,显示该选择组件对应的界面组件,隐藏其他选择组件对应的界面组件。
当某一设备类型对应的选择组件被触发时,浏览器显示该设备类型对应的界面组件,隐藏其他设备类型对应的界面组件。
隐藏界面组件的方式可以根据情况进行设置。例如,浏览器可以将界面组件的透明度调为100%,从而实现隐藏界面组件的目的。
用户可以通过触发不同的选择组件以切换显示相应设备类型对应的界面组件,在界面组件切换的过程中,浏览器无需重新加载预览包中的目标脚本文件,提高了浏览器切换不同的界面组件的流畅度。
以下将结合具体的应用场景对上述浏览器调试的内容进行描述。
应用场景二:
用户在IDE中将天气预报卡片的代码编写完成之后,点击“浏览器调试”选项,选择需要预览的设备类型,触发浏览器调试指令。
如图1所示,假设该天气预报卡片的工程中包括1个公共文件夹以及4个设备文件夹。公共文件夹命名为“common”。4个设备文件夹分别命名为“car”、“pad”、“phone”、“tv”,分别对应车载设备、平板电脑、手机以及智能电视这四种类型的终端设备。
IDE获取到浏览器调试指令之后,分别生成车载设备、平板电脑、手机以及智能电视对应的第一代码。
其中,车载设备的第一代码包括“common”文件夹中的公共逻辑代码以及“car”文件夹中的差异逻辑代码;平板电脑的第一代码包括“common”文件夹中的公共逻辑代码以及“pad”文件夹中的差异逻辑代码;手机的第一代码包括“common”文件夹中的公共逻辑代码以及“phone”文件夹中的差异逻辑代码;智能电视的第一代码包括“common”文件夹中的公共逻辑代码以及“tv”文件夹中的差异逻辑代码。
然后,IDE对各个第一代码进行语义和语法处理,将各个第一代码转化成Javascript脚本文件,并将各个Javascript脚本文件分别编译至不同的预览包中,得到车载设备对应的车载设备预览包、平板电脑对应的平板电脑预览包、手机对应的手机预览包以及智能电视对应的智能电视预览包。
之后,用户可以通过操作IDE以触发预览指令,预览指令中包括第一设备类型。IDE获取到预览指令后,获取第一设备类型对应的预览包,控制浏览器加载第一设备类型对应的预览包,在浏览器显示第一设备类型对应的界面组件。
假设预览指令中的第一设备类型为手机,则IDE控制浏览器加载手机预览包,显示手机对应的界面组件。
假设预览指令中的第一设备类型为智能电视,则IDE控制浏览器加载智能电视预览包,显示智能电视对应的界面组件。
此外,用户还可以操作IDE以触发切换指令,切换指令包括第二设备类型。IDE获取到切换指令后,获取第二设备类型对应的预览包,控制浏览器加载第二设备类型对应的预览包,在浏览器显示第二设备类型对应的界面组件。
假设浏览器当前显示的界面组件为智能电视对应的界面组件。当IDE获取到切换指令时,确定第二设备类型为手机,则IDE控制浏览器加载手机预览包,显示手机对应的界面组件。
应用场景三:
用户在IDE中将天气预报卡片的代码编写完成之后,点击“浏览器调试”选项,选择需要预览的设备类型,触发浏览器调试指令。
如图1所示,假设该天气预报卡片的工程中包括1个公共文件夹以及4个设备文件夹。公共文件夹命名为“common”。4个设备文件夹分别命名为“car”、“pad”、“phone”、“tv”,分别对应车载设备、平板电脑、手机以及智能电视这四种类型的终端设备。
IDE获取到浏览器调试指令之后,分别生成车载设备、平板电脑、手机以及智能电视对应的第一代码。
其中,车载设备的第一代码包括“common”文件夹中的公共逻辑代码以及“car”文件夹中的差异逻辑代码;平板电脑的第一代码包括“common”文件夹中的公共逻辑代码以及“pad”文件夹中的差异逻辑代码;手机的第一代码包括“common”文件夹中的公共逻辑代码以及“phone”文件夹中的差异逻辑代码;智能电视的第一代码包括“common”文件夹中的公共逻辑代码以及“tv”文件夹中的差异逻辑代码。
然后,IDE对各个第一代码进行语义和语法处理,将各个第一代码转化成Javascript脚本文件,并将各个Javascript脚本文件分别编译至同一预览包中。
并且,IDE还在该预览包中增加设备类型选择逻辑。该设备类型选择逻辑为:当选择组件被触发时,显示该选择组件对应的界面组件,隐藏其他选择组件对应的界面组件。
如图4所示,在生成预览包后,浏览器可以加载该预览包,生成预览界面。在预览界面中,可以分为设备切换区域和预览区域。
在设备切换区域设置有4个选择组件,分别对应手机、平板电脑、智能电视和车载设备这4种设备类型。预览区域用于显示界面组件。
当手机对应的选择组件被触发时,手机对应的选择组件被圆形圈住,表示手机对应的选择组件被选中,浏览器在预览区域显示手机对应的界面组件,隐藏平板电脑、智能电视和车载设备对应的界面组件。手机对应的界面组件中显示当前天气为“多云”。
当用户想要切换预览其他页面组件时,可以通过点击等方式触发相应的选择组件。如图5所示,假设被触发的选择组件为智能电视对应的选择组件,则智能电视对应的选择组件被圆形圈住,表示智能电视对应的选择组件被选中,浏览器在预览区域显示智能电视对应的界面组件,隐藏手机、平板电脑和车载设备的界面组件。智能电视的显示区域大于手机的显示区域,因此,智能电视对应的界面组件可以显示最近三天的天气,当前天气为“多云”,第二天的天气为“中雨”,第三天的天气为“多云”。
2.2、真机调试。
当用户想用真实的终端设备调试应用程序时,用户可以通过操作IDE以触发终端调试指令。例如,用户可以在IDE中点击“调试编译”选项,触发终端调试指令。
在一些实施例中,终端调试指令中可以包括调试设备类型,即调试设备类型为用户指定的;在另一些实施例中,终端调试指令中可以不包括调试设备类型,此时,调试设备类型默认为该工程中所有设备文件夹对应的设备类型。调试设备类型为前述第三预设设备类型。
IDE在获取到终端调试指令后,可以对该应用程序对应的工程中的各个文件执行文件重组操作,确定各个调试设备类型对应的调试编译文件,然后分别对各个调试设备类型对应的调试编译文件进行编译,得到各个调试设备类型对应的调试包。
其中,各个调试设备类型对应的调试编译文件可以根据实际情况进行确定。例如,在一些实施例中,某一调试设备类型对应的调试编译文件可以包括公共逻辑代码以及该调试设备类型对应的差异逻辑代码;在另一些实施例中,某一调试设备类型对应的调试编译文件可以包括公共逻辑代码、该调试设备类型对应的差异逻辑代码、用户体验(Userexperience,ux)文件以及该设备类型对应的配置文件。
编译的方式可以根据实际情况进行确定。在一些实施例中,IDE可以通过全量编译的方式对各个调试设备类型对应的调试编译文件分别进行编译,得到各个调试设备类型对应的调试包。在另一些实施例中,IDE可以通过增量编译的方式对各个调试设备类型对应的调试编译文件分别进行编译,得到各个调试设备类型对应的调试包。
以下将结合具体的应用场景对上述调试包生成过程进行描述。
应用场景四:
如图6所示,假设用户在IDE中创建了开发天气预报卡片的轻应用的工程。
当用户对该工程内的代码编写完成后,该工程可以包括1个公共文件夹以及4个设备文件夹。公共文件夹命名为“common”。4个设备文件夹分别命名为“car”、“pad”、“phone”、“tv”,分别对应车载设备、平板电脑、手机以及智能电视这四种类型的终端设备。
此外,该工程中还包括用户体验(User experience,ux)文件“app.ux”,车载设备对应的配置文件“manifest_car.json”,平板电脑对应的配置文件“manifest_pad.json”,手机对应的配置文件“manifest_phone.json”,智能电视对应的配置文件“manifest_tv.json”。
当用户想要进行真机调试时,可以点击“调试编译”选项,触发终端调试指令。
IDE获取到终端调试指令后,对该工程内的文件进行重组,确定各个调试设备类型对应的调试编译文件。
如图7所示,在文件重组之后,可以得到各个设备类型对应的调试编译文件。车载设备对应的调试编译文件中包括签名文件夹“sign”、源文件夹“src”、用户体验文件“app.ux”以及配置文件“manifest.json”。其中,源文件夹“src”包括公共文件夹“common”以及文件夹“weather_card”,文件夹“weather_card”对应重组前车载设备对应的设备文件夹“car”,配置文件“manifest.json”对应重组前车载设备对应的配置文件“manifest_car.json”。
平板电脑对应的调试编译文件中包括签名文件夹“sign”、源文件夹“src”、用户体验文件“app.ux”以及配置文件“manifest.json”。其中,源文件夹“src”包括公共文件夹“common”以及文件夹“weather_card”,文件夹“weather_card”对应重组前平板电脑对应的设备文件夹“pad”,配置文件“manifest.json”对应重组前平板电脑对应的配置文件“manifest_pad.json”。
手机对应的调试编译文件中包括签名文件夹“sign”、源文件夹“src”、用户体验文件“app.ux”以及配置文件“manifest.json”。其中,源文件夹“src”包括公共文件夹“common”以及文件夹“weather_card”,文件夹“weather_card”对应重组前手机对应的设备文件夹“phone”,配置文件“manifest.json”对应重组前手机对应的配置文件“manifest_phone.json”。
智能电视对应的调试编译文件中包括签名文件夹“sign”、源文件夹“src”、用户体验文件“app.ux”以及配置文件“manifest.json”。其中,源文件夹“src”包括公共文件夹“common”以及文件夹“weather_card”,文件夹“weather_card”对应重组前智能电视对应的设备文件夹“tv”,配置文件“manifest.json”对应重组前智能电视对应的配置文件“manifest_tv.json”。
然后,IDE分别对各个调试设备类型对应的调试编译文件进行全量编译,生成车载设备对应的调试包、平板电脑对应的调试包、手机对应的调试包以及智能电视对应的调试包。
在获取到各个调试设备类型对应的调试包后,IDE可以将各个调试设备类型对应的调试包分发至相应设备类型的终端设备上。
在一些可能的实现方式中,IDE可以与相应设备类型的终端设备建立第一通信连接通道。
该通信连接通道的类型可以根据实际情况进行确定。例如,通信连接通道可以为蓝牙连接通道、Wi-Fi连接通道、近场通信(Near Field Communication,NFC)连接通道、蜂窝网络连接通道等。
然后,IDE通过上述通信连接通道,将调试包发送至相应设备类型的终端设备。
在另一些可能的实现方式中,IDE可以将上述调试包存储至第一存储地址,根据目标存储位置生成调试包下载链接,并根据调试包下载链接生成调试包二维码。
当其他终端设备需要下载调试包时,如果该终端设备设置有摄像头,则该终端设备可以扫描该调试包二维码,得到调试包下载链接,访问该调试包下载链接,下载相应类型的调试包。
如果该终端设备无摄像头,则该终端设备可以与具备摄像头的终端设备建立第二通信连接通道,具备摄像头的终端设备通过摄像头拍摄调试包二维码或扫描调试包二维码后,将具有调试包二维码的图像或调试包下载链接通过第二通信连接通道发送至上述无摄像头的终端设备,使得该无摄像头的终端设备可以间接获取到调试包二维码或调试包下载链接。
以下结合具体的应用场景对上述调试包分发过程进行描述。
应用场景五:
IDE生成调试包后,可以把调试包分发至手机802和平板电脑803进行调试。
如图8所示,用户可以控制开发设备801触发热点指令,开发设备801根据热点指令开启局域网功能,创建局域网。然后,用户控制手机802和平板电脑803接入上述局域网,建立开发设备801与手机802的Wi-Fi连接通道804以及开发设备801与平板电脑803的Wi-Fi连接通道805。其中,开发设备801为上述开发应用程序的终端设备。
之后,IDE通过Wi-Fi连接通道804将手机对应的调试包发送至手机802,通过Wi-Fi连接通道805将平板电脑对应的调试包发送至平板电脑803。
应用场景六:
如图9所示,IDE在生成了车载设备对应的调试包、平板电脑对应的调试包、手机对应的调试包以及智能电视对应的调试包之后,可以将上述调试包上传至第一存储地址,根据第一存储地址生成调试包下载链接。
IDE根据该调试包下载链接生成调试包二维码。
当用户想在手机上调试该应用程序时,用户可以控制手机扫描该调试包二维码,得到调试包下载链接,访问该调试包下载链接,从第一存储地址的多个调试包中选择手机对应的调试包并下载。
当用户想在智能电视上调试该应用程序时,用户可以控制手机、平板电脑等具有摄像头的终端设备拍摄该调试二维码的图像,然后具有摄像头的终端设备可以通过一些助手类的应用程序将含有二维码的图像发送至智能电视,使智能电视间接获取到二维码。
然后智能电视识别该含有二维码的图像,得到调试包下载链接,访问调试包下载链接,从第一存储地址的多个调试包中选择智能电视对应的调试包并下载。
当终端设备获取到调试包以后,用户可以在真实的终端设备查看显示效果。
并且,调试包中可以预先设置有多套场景参数,一套场景参数对应一个场景。用户可以在应用程序中切换不同的场景,查看不同场景下的显示效果,从而确定显示效果较佳的场景以及相应的场景参数。
例如,假设用户在终端设备上调试用于车辆交易的应用程序,在该应用程序中设置了两套应用场景,图10为该应用程序在场景一显示的界面,图11为该应用程序在场景二显示的界面。
在场景一的界面中,车辆介绍卡片的高度较低,显示的内容包括应用程序的名称(即“汽车之家”)、车辆的型号(即“XX3008”)、车辆的售价(即“12.34万-15.68万”)以及车辆的照片(车辆介绍卡片的右侧)。
在场景二的界面中,车辆介绍卡片的高度较高,显示内容除了应用程序的名称(即“汽车之家”)、车辆的型号(即“XX3008”)、车辆的售价(即“12.34万-15.68万”)和车辆的照片(车辆介绍卡片的右侧)以外,还包括该车辆来源的可信度(即“可信度96%”)。
用户可以通过左滑屏幕或者右滑屏幕的方式切换场景一的界面和场景二的界面,进而确定显示效果较优的应用场景。
比如,用户在调试过程中,觉得场景二中虽然增加了车辆来源的可信度这一信息,但是该信息的帮助不大,而且场景二中车辆介绍卡片的高度较高,在屏幕较小的终端设备上显示效果不佳。那么,用户就可以将场景一确认为显示效果较佳的应用场景,在IDE中保留场景一,删除场景二的场景参数。
3、应用包的生成与分发。
当用户想要生成应用包时,用户可以操作IDE以触发应用编译指令。例如,用户可以在IDE中点击“应用编译”选项,触发应用编译指令。
目标设备类型为前述第一预设设备类型。在一些实施例中,应用编译指令中可以包括目标设备类型的标识,即目标设备类型为用户指定的;在另一些实施例中,应用编译指令中可以不包括目标设备类型,此时,目标设备类型默认为该工程中所有设备文件夹对应的设备类型。
当IDE获取到应用编译指令后,执行文件重组操作,可以对工程内的各个文件进行重组,确定各个目标设备类型对应的目标文件。
其中,各个目标设备类型对应的目标文件可以根据实际情况进行确定。例如,在一些实施例中,某一目标设备类型对应的目标文件可以包括公共逻辑代码以及该目标设备类型对应的差异逻辑代码;在另一些实施例中,某一目标设备类型对应的目标文件可以包括公共逻辑代码、该目标设备类型对应的差异逻辑代码、用户体验(User experience,ux)目标文件以及该目标设备类型对应的配置目标文件。
在确定了各个目标设备类型的目标文件之后,分别对各个目标设备类型的目标文件进行编译,得到各个目标设备类型对应的应用包。
编译的方式可以根据实际情况进行确定。在一些实施例中,IDE可以通过全量编译的方式对各个目标设备类型对应的目标文件分别进行编译,得到各个目标设备类型对应的应用包。在另一些实施例中,IDE可以通过增量编译的方式对各个目标设备类型对应的目标文件分别进行编译,得到各个目标设备类型对应的应用包。
在获取到各个目标设备类型对应的应用包后,IDE可以将应用包分发至有需求的终端设备。
分发应用包的方式可以参照2.2中调试包的分发方式。开发设备可以与终端设备建立通信连接通道以分发应用包;或者,开发设备也可以将应用包存储至目标存储地址,根据目标存储位置生成应用包下载链接,并根据应用包下载链接生成应用包二维码,当其他终端设备需要下载应用包时,该终端设备可以使用摄像头扫描该应用包二维码以获取应用包下载链接,访问应用包下载链接以获取相应目标设备类型的应用包。如果终端设备无摄像头,则该终端设备可以与具备摄像头的终端设备建立第三通信连接通道,具备摄像头的终端设备通过摄像头拍摄应用包二维码或扫描应用包二维码后,将具有应用包二维码的图像或应用包下载链接通过第二通信连接通道发送至上述无摄像头的终端设备,使得该无摄像头的终端设备可以间接获取到应用包二维码或应用包下载链接。
在本申请实施例提供的应用程序开发方法中,将应用程序的代码划分为公共逻辑代码和差异逻辑代码,在编译不同设备类型对应的应用包时,可以复用公共逻辑代码,提高开发效率。并且,后期修改公共逻辑代码中的内容时,一次修改就可以同步至各个设备类型对应的应用程序,无需逐一修改各个设备类型对应的应用程序的代码,降低维护难度。综上,本申请提供的应用程序开发方法解决了现有技术中开发不同设备类型对应的应用程序时,开发效率低,后期维护难度大的问题,具有较高的实用性和易用性。
当用户需要对应用程序进行调试时,开发设备可以使用浏览器进行调试,或者,开发设备也可以生成各设备类型对应的调试包,将调试包分发至真实的终端设备进行调试。
在浏览器调试的过程中,开发设备可以将各设备类型对应的目标脚本文件编译至同一个预览包中,浏览器加载该预览包,显示各个目标脚本文件对应的界面组件以及各个界面组件对应的选择组件。当选择组件被触发时,显示该选择组件对应的界面组件,隐藏其他选择组件对应的界面组件。用户可以通过触发不同的选择组件以切换显示相应设备类型对应的界面组件,在界面组件切换的过程中,浏览器无需重新加载预览包中的目标脚本文件,提高了浏览器切换不同的界面组件的流畅度。
在使用真实的终端设备进行调试时,开发设备可以执行文件重组操作,确定各设备类型对应的调试编译文件,然后对各设备类型对应的调试编译文件进行编译,可以生成各设备类型对应的调试包。之后,开发设备将调试包存储至第一存储地址,根据第一存储地址生成调试包下载链接,并根据调试包下载链接生成调试包二维码,以分发二维码的方式分发调试包,降低分发调试包占用的网络资源。
调试完毕后,开发设备可以执行文件重组操作,确定各设备类型对应的目标文件,然后对各设备类型对应的目标文件进行编译,可以生成各设备类型对应的应用包。
开发设备分发应用包时,可以将应用包存储至目标存储地址,根据目标存储地址生成应用包下载链接,并根据应用包下载链接生成应用包二维码,以分发二维码的方式分发应用包,降低分发应用包占用的网络资源。
请参阅图12,本申请实施例提供了一种应用程序开发方法。如图12所示,应用程序开发方法包括:
S1201、获取应用编译指令;
S1202、基于所述应用编译指令执行文件重组操作,以确定第一预设设备类型对应的目标文件,所述目标文件包括公共逻辑代码以及所述第一预设设备类型对应的差异逻辑代码;
S1203、对所述目标文件进行编译,得到所述第一预设设备类型对应的应用包。
需要说明的是,在开发应用程序的过程中,开发应用程序的终端设备(即开发设备)可以在该应用程序的文件目录下创建不同的文件夹以分别存放上述公共逻辑代码和上述差异逻辑代码。
其中,公共逻辑代码为用于实现在不同的设备类型上通用的逻辑的代码。差异逻辑代码为用于实现适用于部分设备类型的逻辑的代码。
当开发设备获取到应用编译指令时,可以执行文件重组操作,得到第一预设设备类型对应的目标文件。
目标文件中应当包括公共逻辑代码以及该第一预设设备类型对应的差异逻辑代码。
开发设备对目标文件进行编译,可以得到该第一预设设备类型对应的应用包。
由于同一应用程序在不同的设备类型上大部分的逻辑是通用的,仅小部分逻辑(比如渲染逻辑)存在差异,因此,通过上述方法开发不同设备类型的应用程序时,不同的第一预设设备类型对应的应用程序可以复用公共逻辑代码以生成应用包,提高了开发效率。并且,后期修改公共逻辑代码中的内容时,一次修改就可以同步至各个设备类型对应的应用程序,无需逐一修改各个设备类型对应的应用程序的代码,降低维护难度。
可选地,所述应用编译指令包括第一预设设备类型的标识。
需要说明的是,上述第一预设设备类型可以默认为开发设备中已设置的所有设备类型。或者,上述第一预设设备类型也可以由应用编译指令设置,此时,开发设备中设置有至少两种设备类型,开发设备响应于应用编译指令,根据应用编译指令中第一预设设备类型的标识确定第一预设设备类型,编译第一预设设备类型对应的应用包。
例如,假设开发设备中设置有手机和平板电脑这两种设备类型,此时,开发设备可以直接将手机和平板电脑均作为第一预设设备类型。
或者,开发设备可以根据应用编译指令中第一预设设备类型的标识,根据第一预设设备类型的标识确定第一预设设备类型。此时,如果第一预设设备类型的标识包括手机的标识,则开发设备将手机确定为第一预设设备类型;如果第一预设设备类型的标识包括平板电脑的标识,则开发设备将平板电脑确定为第一预设设备类型,如果第一预设设备类型的标识包括手机的标识和平板电脑的标识,则开发设备将手机和平板电脑都确定为第一预设设备类型。
可选地,在所述获取应用编译指令之前,还包括:
A1、当获取到浏览器调试指令时,获取第二预设设备类型对应的第一代码,所述第一代码包括公共逻辑代码以及所述第二预设设备类型对应的差异逻辑代码;
A2、将所述第一代码转化成目标脚本文件;
A3、通过浏览器加载所述目标脚本文件,以显示所述第二预设设备类型对应的界面组件。
需要说明的是,在开发应用程序的过程中,为了测试代码是否可以运行以及为了确定显示效果,通常需要对应用程序进行调试。
当开发设备获取到浏览器调试指令时,可以获取第二预设类型对应的第一代码,第一代码应当包括公共逻辑代码以及第二预设设备类型对应的差异逻辑代码。
然后,开发设备对第一代码进行语法和语义处理,将第一代码转化为浏览器可以识别的目标脚本文件。
之后,开发设备使用浏览器加载目标脚本文件,显示第二预设设备类型对应的界面组件,以便开发人员预览该界面组件的显示效果。
可选地,所述目标脚本文件的编程语言为Javascript。
需要说明的是,上述目标脚本文件的编程语言类型可以根据实际情况进行设置。例如,目标脚本文件的编程语言类型可以为Javascript,此时,IDE将第一代码转成Javascript脚本文件。
可选地,所述通过浏览器加载所述目标脚本文件,以显示所述第二预设设备类型对应的界面组件,包括:
B1、将各个所述目标脚本文件封装至同一预览包中;
B2、通过所述浏览器加载所述预览包,得到各个所述第二预设设备类型对应的界面组件以及各个所述界面组件对应的选择组件;
B3、当所述选择组件被触发时,显示被触发的选择组件对应的界面组件,隐藏其他界面组件,其中,所述其他界面组件为所述第二预设设备类型对应的界面组件中除所述被触发的选择组件对应的界面组件以外的界面组件。
需要说明的是,浏览器可以将不同的目标脚本文件封装至同一预览包中,浏览器加载该预览包时,同时显示各个第二预设设备类型的界面组件以及各个界面组件对应的选择组件。
此时,当某一选择组件被触发时,浏览器显示该被触发的选择组件对应的界面组件,隐藏其他界面组件,用户可以通过触发不同的选择组件以切换显示相应设备类型对应的界面组件,在界面组件切换的过程中,浏览器无需重新加载预览包中的目标脚本文件,提高了浏览器切换不同的界面组件的流畅度。
可选地,在所述获取应用编译指令之前,还包括:
C1、获取终端调试指令;
C2、基于所述终端调试指令执行文件重组操作,确定第三预设设备类型对应的调试编译文件,所述调试编译文件包括公共逻辑代码以及所述第三预设设备类型对应的差异逻辑代码;
C3、对所述调试编译文件进行编译,得到所述第三预设设备类型对应的调试包。
需要说明的是,当开发设备获取到终端调试指令时,可以根据终端调试指令执行文件重组操作,确定第三预设设备类型对应的调试编译文件。
调试编译文件应当包括公共逻辑代码以及第三预设设备类型对应的差异逻辑代码。
确定了调试编译文件后,对调试编译文件进行编译,得到第三预设设备类型对应的调试包。
用户可以在真实的终端设备上查看该调试包的显示效果,使用真实的终端设备进行调试。
可选地,在所述得到所述第三预设设备类型对应的调试包之后,还包括:
D1、将所述调试包存储至第一存储地址;
D2、根据所述第一存储地址生成调试包下载链接;
D3、根据所述调试包下载链接生成调试包二维码。
需要说明的是,开发设备分发调试包的方式可以根据实际情况进行设置。
比如,开发设备可以将调试包存储至一特定的第一存储地址,然后生成访问该第一存储地址的调试包下载链接。
之后,开发设备根据该调试包下载链接生成调试包二维码。
当某一终端设备需要下载调试包时,可以通过识别该调试包二维码得到调试包下载链接,然后访问调试包下载链接,在第一存储地址中下载调试包。
通过调试包二维码的方式分发调试包,其他终端设备可以不用与开发设备建立通信连接通道,提高了分发调试包的灵活性,并且,与直接传输调试包相比,分发调试包二维码可以降低分发调试包占用的网络资源。
可选地,在所述得到所述第一预设设备类型对应的应用包之后,还包括:
E1、将所述应用包存储至目标存储地址;
E2、根据所述目标存储地址生成应用包下载链接;
E3、根据所述应用包下载链接生成应用包二维码。
需要说明的是,开发设备分发应用包的方式可以根据实际情况进行设置。
比如,开发设备可以将应用包存储至一特定的目标存储地址,然后生成访问该目标存储地址的应用包下载链接。
之后,开发设备根据该应用包下载链接生成应用包二维码。
当某一终端设备需要下载应用包时,可以通过识别该应用包二维码得到应用包下载链接,然后访问应用包下载链接,在目标存储地址中下载应用包。
通过应用包二维码的方式分发应用包,其他终端设备可以不用与开发设备建立通信连接通道,提高了分发应用包的灵活性,并且,与直接传输应用包相比,分发应用包二维码可以降低分发应用包占用的网络资源。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
请参阅图13,本申请实施例提供了一种应用程序开发装置,为便于说明,仅示出与本申请相关的部分,如图13所示,应用程序开发装置包括,
编译指令模块1301,用于获取应用编译指令;
目标文件模块1302,用于基于所述应用编译指令执行文件重组操作,以确定第一预设设备类型对应的目标文件,所述目标文件包括公共逻辑代码以及所述第一预设设备类型对应的差异逻辑代码;
应用生成模块1303,用于对所述目标文件进行编译,得到所述第一预设设备类型对应的应用包。
可选地,所述应用编译指令包括第一预设设备类型的标识。
可选地,所述装置还包括:
第一调试模块,用于当获取到浏览器调试指令时,获取第二预设设备类型对应的第一代码,所述第一代码包括公共逻辑代码以及所述第二预设设备类型对应的差异逻辑代码;
文件转换模块,用于将所述第一代码转化成目标脚本文件;
界面预览模块,用于通过浏览器加载所述目标脚本文件,以显示所述第二预设设备类型对应的界面组件。
可选地,所述目标脚本文件的编程语言为Javascript。
可选地,所述界面预览模块,包括:
封装子模块,用于将各个所述目标脚本文件封装至同一预览包中;
加载子模块,用于通过所述浏览器加载所述预览包,得到各个所述第二预设设备类型对应的界面组件以及各个所述界面组件对应的选择组件;
显示子模块,用于当所述选择组件被触发时,显示被触发的选择组件对应的界面组件,隐藏其他界面组件,其中,所述其他界面组件为所述第二预设设备类型对应的界面组件中除所述被触发的选择组件对应的界面组件以外的界面组件。
可选地,所述装置还包括:
第二调试模块,用于获取终端调试指令;
调试文件模块,用于基于所述终端调试指令执行文件重组操作,确定第三预设设备类型对应的调试编译文件,所述调试编译文件包括公共逻辑代码以及所述第三预设设备类型对应的差异逻辑代码;
调试生成模块,用于对所述调试编译文件进行编译,得到所述第三预设设备类型对应的调试包。
可选地,所述装置还包括:
第一存储模块,用于将所述调试包存储至第一存储地址;
调试链接模块,用于根据所述第一存储地址生成调试包下载链接;
调试下载模块,用于根据所述调试包下载链接生成调试包二维码。
可选地,所述装置还包括:
目标存储模块,用于将所述应用包存储至目标存储地址;
应用链接模块,用于根据所述目标存储地址生成应用包下载链接;
应用下载模块,用于根据所述应用包下载链接生成应用包二维码。
图14是本申请实施例提供的终端设备的示意图。终端设备1400可以包括处理器1410,外部存储器接口1420,内部存储器1421,通用串行总线(universal serial bus,USB)接口1430,充电管理模块1440,电源管理模块1441,电池1442,天线1,天线2,移动通信模块1450,无线通信模块1460,音频模块1470,扬声器1470A,受话器1470B,麦克风1470C,耳机接口1470D,传感器模块1480,按键140,马达141,指示器142,摄像头143,显示屏144,以及用户标识模块(subscriber identification module,SIM)卡接口145等。其中传感器模块1480可以包括压力传感器1480A,陀螺仪传感器1480B,气压传感器1480C,磁传感器1480D,加速度传感器1480E,距离传感器1480F,接近光传感器1480G,指纹传感器1480H,温度传感器1480J,触摸传感器1480K,环境光传感器1480L,骨传导传感器1480M等。
可以理解的是,本发明实施例示意的结构并不构成对终端设备1400的具体限定。在本申请另一些实施例中,终端设备1400可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器1410可以包括一个或多个处理单元,例如:处理器1410可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器1410中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器1410中的存储器为高速缓冲存储器。该存储器可以保存处理器1410刚用过或循环使用的指令或数据。如果处理器1410需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器1410的等待时间,因而提高了系统的效率。
在一些实施例中,处理器1410可以包括一个或多个接口。接口可以包括集成电路(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)。在一些实施例中,处理器1410可以包含多组I2C总线。处理器1410可以通过不同的I2C总线接口分别耦合触摸传感器1480K,充电器,闪光灯,摄像头143等。例如:处理器1410可以通过I2C接口耦合触摸传感器1480K,使处理器1410与触摸传感器1480K通过I2C总线接口通信,实现终端设备1400的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器1410可以包含多组I2S总线。处理器1410可以通过I2S总线与音频模块1470耦合,实现处理器1410与音频模块1470之间的通信。在一些实施例中,音频模块1470可以通过I2S接口向无线通信模块1460传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块1470与无线通信模块1460可以通过PCM总线接口耦合。在一些实施例中,音频模块1470也可以通过PCM接口向无线通信模块1460传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器1410与无线通信模块1460。例如:处理器1410通过UART接口与无线通信模块1460中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块1470可以通过UART接口向无线通信模块1460传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器1410与显示屏144,摄像头143等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器1410和摄像头143通过CSI接口通信,实现终端设备1400的拍摄功能。处理器1410和显示屏144通过DSI接口通信,实现终端设备1400的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器1410与摄像头143,显示屏144,无线通信模块1460,音频模块1470,传感器模块1480等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口1430是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口1430可以用于连接充电器为终端设备1400充电,也可以用于终端设备1400与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备1400的结构限定。在本申请另一些实施例中,终端设备1400也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块1440用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块1440可以通过USB接口1430接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块1440可以通过终端设备1400的无线充电线圈接收无线充电输入。充电管理模块1440为电池1442充电的同时,还可以通过电源管理模块1441为终端设备供电。
电源管理模块1441用于连接电池1442,充电管理模块1440与处理器1410。电源管理模块1441接收电池1442和/或充电管理模块1440的输入,为处理器1410,内部存储器1421,显示屏144,摄像头143,和无线通信模块1460等供电。电源管理模块1441还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块1441也可以设置于处理器1410中。在另一些实施例中,电源管理模块1441和充电管理模块1440也可以设置于同一个器件中。
终端设备1400的无线通信功能可以通过天线1,天线2,移动通信模块1450,无线通信模块1460,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备1400中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块1450可以提供应用在终端设备1400上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块1450可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块1450可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块1450还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块1450的至少部分功能模块可以被设置于处理器1410中。在一些实施例中,移动通信模块1450的至少部分功能模块可以与处理器1410的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器1470A,受话器1470B等)输出声音信号,或通过显示屏144显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器1410,与移动通信模块1450或其他功能模块设置在同一个器件中。
无线通信模块1460可以提供应用在终端设备1400上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块1460可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块1460经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器1410。无线通信模块1460还可以从处理器1410接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备1400的天线1和移动通信模块1450耦合,天线2和无线通信模块1460耦合,使得终端设备1400可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobilecommunications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband codedivision multiple access,WCDMA),时分码分多址(time-division code divisionmultiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenithsatellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备1400通过GPU,显示屏144,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏144和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器1410可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏144用于显示图像,视频等。显示屏144包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matri14organic light emitting diode的,AMOLED),柔性发光二极管(fle14 light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备1400可以包括1个或N个显示屏144,N为大于1的正整数。
终端设备1400可以通过ISP,摄像头143,视频编解码器,GPU,显示屏144以及应用处理器等实现拍摄功能。
ISP用于处理摄像头143反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头143中。
摄像头143用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-o14ide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备1400可以包括1个或N个摄像头143,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备1400在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端设备1400可以支持一种或多种视频编解码器。这样,终端设备1400可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture e14perts group,MPEG)14,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备1400的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口1420可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备1400的存储能力。外部存储卡通过外部存储器接口1420与处理器1410通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器1421可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器1421可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备1400使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器1421可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器1410通过运行存储在内部存储器1421的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备1400的各种功能应用以及数据处理。
终端设备1400可以通过音频模块1470,扬声器1470A,受话器1470B,麦克风1470C,耳机接口1470D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块1470用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块1470还可以用于对音频信号编码和解码。在一些实施例中,音频模块1470可以设置于处理器1410中,或将音频模块1470的部分功能模块设置于处理器1410中。
扬声器1470A,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备1400可以通过扬声器1470A收听音乐,或收听免提通话。
受话器1470B,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备1400接听电话或语音信息时,可以通过将受话器1470B靠近人耳接听语音。
麦克风1470C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风1470C发声,将声音信号输入到麦克风1470C。终端设备1400可以设置至少一个麦克风1470C。在另一些实施例中,终端设备1400可以设置两个麦克风1470C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端设备1400还可以设置三个,四个或更多麦克风1470C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口1470D用于连接有线耳机。耳机接口1470D可以是USB接口1430,也可以是3.5mm的开放移动终端设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器1480A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器1480A可以设置于显示屏144。压力传感器1480A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器1480A,电极之间的电容改变。终端设备1400根据电容的变化确定压力的强度。当有触摸操作作用于显示屏144,终端设备1400根据压力传感器1480A检测所述触摸操作强度。终端设备1400也可以根据压力传感器1480A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器1480B可以用于确定终端设备1400的运动姿态。在一些实施例中,可以通过陀螺仪传感器1480B确定终端设备1400围绕三个轴(即,14,y和z轴)的角速度。陀螺仪传感器1480B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器1480B检测终端设备1400抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备1400的抖动,实现防抖。陀螺仪传感器1480B还可以用于导航,体感游戏场景。
气压传感器1480C用于测量气压。在一些实施例中,终端设备1400通过气压传感器1480C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器1480D包括霍尔传感器。终端设备1400可以利用磁传感器1480D检测翻盖皮套的开合。在一些实施例中,当终端设备1400是翻盖机时,终端设备1400可以根据磁传感器1480D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器1480E可检测终端设备1400在各个方向上(一般为三轴)加速度的大小。当终端设备1400静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器1480F,用于测量距离。终端设备1400可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备1400可以利用距离传感器1480F测距以实现快速对焦。
接近光传感器1480G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备1400通过发光二极管向外发射红外光。终端设备1400使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端设备1400附近有物体。当检测到不充分的反射光时,终端设备1400可以确定终端设备1400附近没有物体。终端设备1400可以利用接近光传感器1480G检测用户手持终端设备1400贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器1480G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器1480L用于感知环境光亮度。终端设备1400可以根据感知的环境光亮度自适应调节显示屏144亮度。环境光传感器1480L也可用于拍照时自动调节白平衡。环境光传感器1480L还可以与接近光传感器1480G配合,检测终端设备1400是否在口袋里,以防误触。
指纹传感器1480H用于采集指纹。终端设备1400可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器1480J用于检测温度。在一些实施例中,终端设备1400利用温度传感器1480J检测的温度,执行温度处理策略。例如,当温度传感器1480J上报的温度超过阈值,终端设备1400执行降低位于温度传感器1480J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端设备1400对电池1442加热,以避免低温导致终端设备1400异常关机。在其他一些实施例中,当温度低于又一阈值时,终端设备1400对电池1442的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器1480K,也称“触控器件”。触摸传感器1480K可以设置于显示屏144,由触摸传感器1480K与显示屏144组成触摸屏,也称“触控屏”。触摸传感器1480K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏144提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器1480K也可以设置于终端设备1400的表面,与显示屏144所处的位置不同。
骨传导传感器1480M可以获取振动信号。在一些实施例中,骨传导传感器1480M可以获取人体声部振动骨块的振动信号。骨传导传感器1480M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器1480M也可以设置于耳机中,结合成骨传导耳机。音频模块1470可以基于所述骨传导传感器1480M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器1480M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键140包括开机键,音量键等。按键140可以是机械按键。也可以是触摸式按键。终端设备1400可以接收按键输入,产生与终端设备1400的用户设置以及功能控制有关的键信号输入。
马达141可以产生振动提示。马达141可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏144不同区域的触摸操作,马达141也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器142可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口145用于连接SIM卡。SIM卡可以通过插入SIM卡接口145,或从SIM卡接口145拔出,实现和终端设备1400的接触和分离。终端设备1400可以支持14个或N个SIM卡接口,N为大于14的正整数。SIM卡接口145可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口145可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口145也可以兼容不同类型的SIM卡。SIM卡接口145也可以兼容外部存储卡。终端设备1400通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备1400采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端设备1400中,不能和终端设备1400分离。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种应用程序开发方法,其特征在于,包括:
获取应用编译指令;
基于所述应用编译指令执行文件重组操作,以确定第一预设设备类型对应的目标文件,所述目标文件包括公共逻辑代码以及所述第一预设设备类型对应的差异逻辑代码;
对所述目标文件进行编译,得到所述第一预设设备类型对应的应用包。
2.根据权利要求1所述的方法,其特征在于,所述应用编译指令包括第一预设设备类型的标识。
3.根据权利要求1所述的方法,其特征在于,在所述获取应用编译指令之前,还包括:
当获取到浏览器调试指令时,获取第二预设设备类型对应的第一代码,所述第一代码包括公共逻辑代码以及所述第二预设设备类型对应的差异逻辑代码;
将所述第一代码转化成目标脚本文件;
通过浏览器加载所述目标脚本文件,以显示所述第二预设设备类型对应的界面组件。
4.根据权利要求3所述的方法,其特征在于,所述目标脚本文件的编程语言为Javascript。
5.根据权利要求3所述的方法,其特征在于,所述通过浏览器加载所述目标脚本文件,以显示所述第二预设设备类型对应的界面组件,包括:
将各个所述目标脚本文件封装至同一预览包中;
通过所述浏览器加载所述预览包,得到各个所述第二预设设备类型对应的界面组件以及各个所述界面组件对应的选择组件;
当所述选择组件被触发时,显示被触发的选择组件对应的界面组件,隐藏其他界面组件,其中,所述其他界面组件为所述第二预设设备类型对应的界面组件中除所述被触发的选择组件对应的界面组件以外的界面组件。
6.根据权利要求1所述的方法,其特征在于,在所述获取应用编译指令之前,还包括:
获取终端调试指令;
基于所述终端调试指令执行文件重组操作,确定第三预设设备类型对应的调试编译文件,所述调试编译文件包括公共逻辑代码以及所述第三预设设备类型对应的差异逻辑代码;
对所述调试编译文件进行编译,得到所述第三预设设备类型对应的调试包。
7.根据权利要求6所述的方法,其特征在于,在所述得到所述第三预设设备类型对应的调试包之后,还包括:
将所述调试包存储至第一存储地址;
根据所述第一存储地址生成调试包下载链接;
根据所述调试包下载链接生成调试包二维码。
8.根据权利要求1所述的方法,其特征在于,在所述得到所述第一预设设备类型对应的应用包之后,还包括:
将所述应用包存储至目标存储地址;
根据所述目标存储地址生成应用包下载链接;
根据所述应用包下载链接生成应用包二维码。
9.一种应用程序开发装置,其特征在于,包括:
编译指令模块,用于获取应用编译指令;
目标文件模块,用于基于所述应用编译指令执行文件重组操作,以确定第一预设设备类型对应的目标文件,所述目标文件包括公共逻辑代码以及所述第一预设设备类型对应的差异逻辑代码;
应用生成模块,用于对所述目标文件进行编译,得到所述第一预设设备类型对应的应用包。
10.根据权利要求9所述的装置,其特征在于,所述应用编译指令包括第一预设设备类型的标识。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一调试模块,用于当获取到浏览器调试指令时,获取第二预设设备类型对应的第一代码,所述第一代码包括公共逻辑代码以及所述第二预设设备类型对应的差异逻辑代码;
文件转换模块,用于将所述第一代码转化成目标脚本文件;
界面预览模块,用于通过浏览器加载所述目标脚本文件,以显示所述第二预设设备类型对应的界面组件。
12.根据权利要求11所述的装置,其特征在于,所述目标脚本文件的编程语言为Javascript。
13.根据权利要求11所述的装置,其特征在于,所述界面预览模块,包括:
封装子模块,用于将各个所述目标脚本文件封装至同一预览包中;
加载子模块,用于通过所述浏览器加载所述预览包,得到各个所述第二预设设备类型对应的界面组件以及各个所述界面组件对应的选择组件;
显示子模块,用于当所述选择组件被触发时,显示被触发的选择组件对应的界面组件,隐藏其他界面组件,其中,所述其他界面组件为所述第二预设设备类型对应的界面组件中除所述被触发的选择组件对应的界面组件以外的界面组件。
14.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二调试模块,用于获取终端调试指令;
调试文件模块,用于基于所述终端调试指令执行文件重组操作,确定第三预设设备类型对应的调试编译文件,所述调试编译文件包括公共逻辑代码以及所述第三预设设备类型对应的差异逻辑代码;
调试生成模块,用于对所述调试编译文件进行编译,得到所述第三预设设备类型对应的调试包。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
第一存储模块,用于将所述调试包存储至第一存储地址;
调试链接模块,用于根据所述第一存储地址生成调试包下载链接;
调试下载模块,用于根据所述调试包下载链接生成调试包二维码。
16.根据权利要求9所述的装置,其特征在于,所述装置还包括:
目标存储模块,用于将所述应用包存储至目标存储地址;
应用链接模块,用于根据所述目标存储地址生成应用包下载链接;
应用下载模块,用于根据所述应用包下载链接生成应用包二维码。
17.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,终端设备实现如权利要求1至8任一项所述方法的步骤。
18.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得终端设备实现如权利要求1至8任一项所述方法的步骤。
19.一种芯片系统,其特征在于,所述芯片系统包括存储器和处理器,所述处理器执行所述存储器中存储的计算机程序,以实现如权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010502124.5A CN113760239A (zh) | 2020-06-04 | 2020-06-04 | 应用程序开发方法、装置、终端设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010502124.5A CN113760239A (zh) | 2020-06-04 | 2020-06-04 | 应用程序开发方法、装置、终端设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113760239A true CN113760239A (zh) | 2021-12-07 |
Family
ID=78783774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010502124.5A Pending CN113760239A (zh) | 2020-06-04 | 2020-06-04 | 应用程序开发方法、装置、终端设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760239A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857405A (zh) * | 2019-02-02 | 2019-06-07 | Oppo广东移动通信有限公司 | 应用程序安装包的编译方法、装置、存储介质及终端 |
CN111045683A (zh) * | 2019-12-13 | 2020-04-21 | 深圳前海微众银行股份有限公司 | 小程序代码编译方法、装置、设备及介质 |
-
2020
- 2020-06-04 CN CN202010502124.5A patent/CN113760239A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857405A (zh) * | 2019-02-02 | 2019-06-07 | Oppo广东移动通信有限公司 | 应用程序安装包的编译方法、装置、存储介质及终端 |
CN111045683A (zh) * | 2019-12-13 | 2020-04-21 | 深圳前海微众银行股份有限公司 | 小程序代码编译方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347269B (zh) | 一种空鼠模式实现方法及相关设备 | |
CN109559270B (zh) | 一种图像处理方法及电子设备 | |
WO2020062159A1 (zh) | 无线充电方法及电子设备 | |
WO2021159746A1 (zh) | 文件共享方法、系统及相关设备 | |
JP7173670B2 (ja) | 音声制御コマンド生成方法および端末 | |
CN114556294A (zh) | 一种主题切换方法以及主题切换装置 | |
CN114489533A (zh) | 投屏方法、装置、电子设备及计算机可读存储介质 | |
US12032938B2 (en) | Plug-in installation method, apparatus, and storage medium | |
CN113568634B (zh) | 应用优化的处理方法及处理装置 | |
CN111556479B (zh) | 信息共享方法及相关装置 | |
WO2022022319A1 (zh) | 一种图像处理方法、电子设备、图像处理系统及芯片系统 | |
CN112445762A (zh) | 一种移动终端的文件共享方法及设备 | |
CN114466107A (zh) | 音效控制方法、装置、电子设备及计算机可读存储介质 | |
CN113973398A (zh) | 无线网络连接方法、电子设备及芯片系统 | |
WO2023273543A1 (zh) | 一种文件夹管理方法及装置 | |
CN113473013A (zh) | 图像美化效果的显示方法、装置和终端设备 | |
CN115129410A (zh) | 桌面壁纸配置方法、装置、电子设备及可读存储介质 | |
CN111343326A (zh) | 获取测试日志的方法及相关装置 | |
CN115314591A (zh) | 设备交互方法、电子设备及计算机可读存储介质 | |
CN113485709B (zh) | 应用优化方法、装置以及电子设备 | |
CN115016697A (zh) | 投屏方法、计算机设备、可读存储介质和程序产品 | |
CN114064160A (zh) | 应用图标布局方法及相关装置 | |
CN113542574A (zh) | 变焦下的拍摄预览方法、终端、存储介质及电子设备 | |
WO2023029916A1 (zh) | 批注展示方法、装置、终端设备及可读存储介质 | |
CN113901485B (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 |