CN111221613A - 程序调用方法及装置、存储介质 - Google Patents

程序调用方法及装置、存储介质 Download PDF

Info

Publication number
CN111221613A
CN111221613A CN202010006341.5A CN202010006341A CN111221613A CN 111221613 A CN111221613 A CN 111221613A CN 202010006341 A CN202010006341 A CN 202010006341A CN 111221613 A CN111221613 A CN 111221613A
Authority
CN
China
Prior art keywords
component
page
level file
declaration information
application
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.)
Granted
Application number
CN202010006341.5A
Other languages
English (en)
Other versions
CN111221613B (zh
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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN202010006341.5A priority Critical patent/CN111221613B/zh
Publication of CN111221613A publication Critical patent/CN111221613A/zh
Application granted granted Critical
Publication of CN111221613B publication Critical patent/CN111221613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic 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)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Abstract

本公开是关于一种程序调用方法及装置、存储介质。该方法包括:在编译混合模式移动应用时,确定页面级文件中包含的组件标签;在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,其中,所述应用级文件包含:被至少两个页面共同调用的第一类功能组件的组件声明信息;根据所述组件声明信息,在所述页面级文件所对应的页面上加载所述第一类功能组件的页面对象。通过本公开实施例中的技术方案,在应用级文件中加入被不同页面调用的相同的功能组件的组件声明信息,而不需要在每个页面级文件中加入上述组件声明信息,从而减少了应用程序包的大小,提高了文件的执行速度。

Description

程序调用方法及装置、存储介质
技术领域
本公开涉及程序开发领域,尤其涉及一种程序调用方法及装置、存储介质。
背景技术
目前,移动电子设备,如移动电话、平板电脑、智能可穿戴设备等,已经被广泛应用于通信、娱乐、教育等各个领域。用户可以基于移动终端上的应用程序实现相应的功能,包括无需安装客户端的混合模式移动应用(Hibrid App),例如,快应用、小程序等。
以快应用为例,快应用是一种基于手机硬件平台的新型应用形态,用户无需下载安装,即点即用,可以享受原生应用的性能体验。在进行快应用开发的过程中,开发者可以通过编写JS代码,实现快应用在Android***、IOS***,WebView等多端的运行。
快应用在运行时以页面为对象分别进行构建,页面较多时,则程序包占用内存较大,且运行速度慢,容易影响页面构建的速率。
发明内容
本公开提供一种程序调用方法及装置、存储介质。
根据本公开实施例的第一方面,提供一种程序调用方法,包括:
在编译混合模式移动应用时,确定页面级文件中包含的组件标签;
在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,其中,所述应用级文件包含:被至少两个页面共同调用的第一类功能组件的组件声明信息;
根据所述组件声明信息,在所述页面级文件所对应的页面上加载所述第一类功能组件的页面对象。
在一些实施例中,所述方法还包括:
在所述页面级文件中查找所述组件标签对应的组件声明信息;
所述在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,包括:
当在所述页面级文件中未查找到所述组件标签对应的组件声明信息时,在所述应用级文件中,查找所述组件标签对应的组件声明信息。
在一些实施例中,所述页面级文件包含的所述组件声明信息为:被一个页面单独调用的第二类功能组件的组件声明信息;
所述方法还包括:
当在所述页面级文件中查找到所述组件标签对应的组件声明信息时,在所述页面级文件所对应的页面上,加载所述第二类功能组件的页面对象。
在一些实施例中,所述混合模式移动应用的程序包,包括:所述应用级文件和至少两个所述页面级文件;
所述应用级文件包括:所述至少两个页面级文件的页面声明信息,和,所述第一类功能组件的组件声明信息;
所述页面级文件包括:所述第一类功能组件的所述组件标签及所述第二类功能组件的组件声明信息。
在一些实施例中,所述混合模式移动应用的程序包,包括:
第一类组件集合,包含:至少一个所述第一类功能组件;
第二类组件集合,包含:至少一个所述第二类功能组件,其中,不同页面调用的所述第二类功能组件所在的第二类组件集合不同。
在一些实施例中,所述第一类功能组件的页面对象包括:css样式对象。
在一些实施例中,所述方法还包括:
在更新所述混合模式移动应用时,如果添加的页面级文件中与其他页面级文件中存在相同的组件标签,且所述应用级文件中不存在所述组件标签的组件声明信息,则在所述应用级文件中添加所述组件标签的组件声明信息;
将所述组件标签对应的功能组件存储在所述第一类功能组件所在的第一类组件集合中。
根据本公开实施例的第二方面,提供一种程序调用装置,包括:
第一确定模块,用于在编译混合模式移动应用时,确定页面级文件中包含的组件标签;
第一查找模块,用于在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,其中,所述应用级文件包含:被至少两个页面共同调用的第一类功能组件的组件声明信息;
第一加载模块,用于根据所述组件声明信息,在所述页面级文件所对应的页面上加载所述第一类功能组件的页面对象。
在一些实施例中,所述装置还包括:
第二查找模块,用于在所述页面级文件中查找所述组件标签对应的组件声明信息;
所述第一查找模块,具体用于:
当在所述页面级文件中未查找到所述组件标签对应的组件声明信息时,在所述应用级文件中,查找所述组件标签对应的组件声明信息。
在一些实施例中,所述页面级文件包含的所述组件声明信息为:被一个页面单独调用的第二类功能组件的组件声明信息;
所述装置还包括:
第二加载模块,用于当在所述页面级文件中查找到所述组件标签对应的组件声明信息时,在所述页面级文件所对应的页面上,加载所述第二类功能组件的页面对象。
在一些实施例中,所述混合模式移动应用的程序包,包括:所述应用级文件和至少两个所述页面级文件;
所述应用级文件包括:所述至少两个页面级文件的页面声明信息,和,所述第一类功能组件的组件声明信息;
所述页面级文件包括:所述第一类功能组件的所述组件标签及所述第二类功能组件的组件声明信息。
在一些实施例中,所述混合模式移动应用的程序包,包括:
第一类组件集合,包含:至少一个所述第一类功能组件;
第二类组件集合,包含:至少一个所述第二类功能组件,其中,不同页面调用的所述第二类功能组件所在的第二类组件集合不同。
在一些实施例中,所述第一类功能组件的页面对象包括:css样式对象。
在一些实施例中,所述装置还包括:
添加模块,用于在更新所述混合模式移动应用时,如果添加的页面级文件中与其他页面级文件中存在相同的组件标签,且所述应用级文件中不存在所述组件标签的组件声明信息,则在所述应用级文件中添加所述组件标签的组件声明信息;
存储模块,用于将所述组件标签对应的功能组件存储在所述第一类功能组件所在的第一类组件集合中。
根据本公开实施例的第三方面,提供一种程序调用装置,所述装置至少包括:处理器和用于存储能够在所述处理器上运行的可执行指令的存储器,其中:
处理器用于运行所述可执行指令时,所述可执行指令执行上述任一项程序调用方法中的步骤。
根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任一项程序调用方法中的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:通过本公开实施例中的方法,将多个页面需要共用的第一类功能组件的组件声明信息设置于应用级文件,一方面不需要在页面级文件中设置第一类功能组件的组件声明信息,便于程序的编辑更新等。另一方面也不需要在不同的页面级文件对应的组件集合中重复保存相同的第一类功能组件,节省了混合模式移动应用所占用的内存,从而提升了混合模式移动应用整体的运行速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种程序调用方法的流程图一。
图2是根据一示例性实施例示出的一种程序调用方法的流程图二。
图3是根据一示例性实施例示出的一种程序调用方法的流程图三。
图4是根据一示例性实施例示出的一种程序调用装置的结构框图。
图5是根据一示例性实施例示出的一种程序调用装置的实体结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种程序调用方法的流程图,如图1所示,包括以下步骤:
步骤S101、在编译混合模式移动应用时,确定页面级文件中包含的组件标签;
步骤S102、在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,其中,所述应用级文件包含:被至少两个页面共同调用的第一类功能组件的组件声明信息;
步骤S103、根据所述组件声明信息,在所述页面级文件所对应的页面上加载所述第一类功能组件的页面对象。
这里,混合模式移动应用即Hybrid app介于web-app(网页应用)与native-app(原生应用)之间,由云端运行,并将运行结果显示在终端,并从终端接收控制指令。快应用以及小程序等都属于该类型的混合模式移动应用程序。
混合模式移动应用的用户无需下载安装应用包,即点即用。其中,混合模式移动应用框架深度集成在终端设备的操作***中,可以在终端设备的操作***的层面形成用户需求与应用服务的无缝衔接,很多只有在原生应用中才能使用而不能在网页应用使用的功能,在混合模式移动应用中也可以很方便的实现,可以享受原生应用的性能体验。其中,混合模式移动应用的运行由混合模式移动应用平台来执行,并在混合模式移动应用前端进行运行结果的显示,混合模式移动应用前端还可以用于接收混合模式移动应用运行指令。例如,如果基于混合模式移动应用前端接收到了针对于该混合模式移动应用的点击操作,则具体执行点击操作的过程由混合模式移动应用平台来执行。所以,实际运行混合模式移动应用的过程主要基于混合模式移动应用平台和混合模式移动应用前端所构建的网络架构中来实现的。
混合模式移动应用程序从数据角度可以分为组件树(DOM,Document ObjectModel,即文档对象模型)、样式(CSS,Cascading Style Sheets,即层叠样式表)、逻辑(JS代码,即Java Script代码);从组成上可以分为配置文件(manifest.json)、全局文件(app.ux,即应用级文件)、页面级文件(page.ux),对该程序打包后会形成rpk打包文件,该打包文件即为混合模式移动应用的程序包。
在移动终端上使用混合模式移动应用时,首先下载混合模式应用的程序包,然后通过编译和运行程序包中的应用级文件和各页面级文件,来生成混合模式应用的各个页面。
上述混合模式移动应用的程序包中,还可以包括各种功能组件,以独立的文件形式存在。在编译并运行上述页面级文件时,可以通过页面级文件中的组件标签来找到独立存储在页面级文件外的各种功能组件,调用功能组件来实现各种功能。例如,在页面中加载不同功能的模块,包括:按键模块或者视频显示模块等。还可以用于在页面中加载不同样式的对象,包括:对象的颜色、字体以及大小等等。
在通过组件标签调用功能组件时,需要找到在程序文件中声明该功能组件的信息,即上述组件声明信息。组件声明信息用于声明组件标签对应的功能组件,在编译时,通过组件声明信息,能够调用组件标签所对应的功能组件。页面级文件中可以包含有功能组件的组件声明信息,但这样该组件声明信息只能用于当前的页面级文件。如果不同的页面级文件需要调用相同的功能组件,则需要在不同的页面级文件中都加入组件声明信息。同时,需要在不同的页面级文件对应的组件集合中分别存储上述功能组件,这样会使最终的程序包占用很大的空间,降低运行的速度。
因此,本公开实施例中,将至少两个页面都需要调用的第一类功能组件的组件声明信息添加在应用级文件,作为能够全局使用的组件声明信息。而在页面级文件中,只要在需要调用第一类功能组件的位置设置组件标签即可。在编译时,根据页面级文件中的组件标签,在应用级文件中查找对应的组件声明信息,然后根据组件声明信息来调用该第一类功能组件。这样,在构建该页面级文件对应的页面时,就能够在页面上加载该第一类功能组件对应的页面对象。
通过上述方法,不需要在页面级文件中设置调用的第一类功能组件的组件声明信息,也不需要在不同的页面级文件对应的组件集合中重复保存相同的第一类功能组件。因而能够大大减小混合模式移动应用占用空间的大小。
在一些实施例中,如图2所示,所述方法还包括:
步骤S201、在所述页面级文件中查找所述组件标签对应的组件声明信息;
上述S102中,所述在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,包括:
步骤S202、当在所述页面级文件中未查找到所述组件标签对应的组件声明信息时,在所述应用级文件中,查找所述组件标签对应的组件声明信息。
在编译的过程中,如果确定有组件标签时,可以先在页面级文件中查找该组件标签对应的组件声明信息。在页面级文件对应的组件集合中也可能存储有功能组件,页面级文件中的组件声明信息用于调用存储在页面级文件对应的组件集合中的功能组件。因此,在编译的过程中,确定存在组件标签时,需要确定该组件标签对应的功能组件是否存储在当前页面的组件集合中。因此,这里先在页面级文件中查找是否存在组件标签对应的组件声明信息,如果未查找到,才进入应用级文件查找组件声明信息。查找到组件声明信息后,再调用对应的第一类功能组件。
在一些实施例中,也可以同时在应用级文件与页面级文件中查找组件标签对应的组件声明信息,这样,无论在应用级文件还是在页面级文件中查找到组件声明信息,都可以实现对应功能组件的调用。
但是,由于并非每一个组件标签对应的功能组件都会被其他页面所共用,因此,这里可以先在页面级文件中查找是否存在组件标签对应的组件声明信息,如果存在,则不需要再查找应用级文件,从而节省编译所需的时间。
在一些实施例中,所述页面级文件包含的所述组件声明信息为:被一个页面单独调用的第二类功能组件的组件声明信息;
如图3所示,所述方法还包括:
步骤S301、当在所述页面级文件中查找到所述组件标签对应的组件声明信息时,在所述页面级文件所对应的页面上,加载所述第二类功能组件的页面对象。
如果在当前页面级文件中查找到组件标签对应的组件声明信息,则不需要再到应用级文件中查找。此时,页面级文件对应的组件集合中存储有该组件标签对应的第二类功能组件。
由于第二类功能组件是当前页面单独调用的组件,而不需要被其他页面调用,因此,不需要将第二类功能组件存储在全局的组件集合中,只需要存储在当前页面对应的组件集合中即可。并且,只需要在当前页面级文件中设置组件声明信息。
通过上述方法,能够将多个页面能够调用的第一类功能组件与专属于一个页面的第二类功能组件分别进行存储,并分别通过页面级文件和应用级文件的组件声明信息来实现调用。这样,不但减少了共用的第一类功能组件反复存储造成的浪费,也减少了调用第二类功能组件时返回应用级文件查找组件声明信息的步骤,从而提升了程序包整体的运行速度以及构建不同页面时的构建速度。
在一些实施例中,所述混合模式移动应用的程序包,包括:所述应用级文件和至少两个所述页面级文件;
所述应用级文件包括:所述至少两个页面级文件的页面声明信息,和,所述第一类功能组件的组件声明信息;
所述页面级文件包括:所述第一类功能组件的所述组件标签及所述第二类功能组件的组件声明信息。
上述混合模式移动应用在终端运行时,可以先从云端服务器下载程序包。通过运行程序包中的文件,来实现应用中各种页面的构建,展现给用户以供使用。上述应用级文件、页面级文件均以文件形式保存在程序包中,各种功能组件也可以以文件的形式存储在文件包中。在运行时,可以先运行应用级文件,开启应用并显示主页面。应用级文件中可以包含各个页面级文件的页面声明信息,页面声明信息用于调用页面级文件。也就是说,在运行应用级文件时,可以根据页面声明信息进入页面级文件的运行,并构建相应的页面。
而页面级文件中包含有各种组件标签,在编译时,需要根据组件标签来查找相应的组件声明信息,然后调用对应的组件。如果在页面级文件中无法查找到组件标签的组件声明信息,则该组件标签可能是第一类功能组件的组件标签,该组件标签对应的组件声明信息位于应用级文件中。如果在页面级文件中查找到了组件标签的组件声明信息,则该组件标签可能对应于第二类功能组件。
在一些实施例中,所述混合模式移动应用的程序包,包括:
第一类组件集合,包含:至少一个所述第一类功能组件;
第二类组件集合,包含:至少一个所述第二类功能组件,其中,不同页面调用的所述第二类功能组件所在的第二类组件集合不同。
在混合模式移动应用的程序包中,应用级文件与页面级文件都可以是独立存储的文件,而应用级文件和页面级文件需要调用的不同的功能组件也需要以文件的形式存储在文件包中。为了便于全局的调用,可以设置第一类组件集合,将第一类功能组件均保存在第一类组件集合中,保存在第一类组件集合中的功能组件可以被任意其他文件调用,包括不同的页面级文件。对于第一类组件集合中的第一类功能组件的组件声明信息,都可以设置在应用级文件,便于全局的使用。
而对于某一页面要单独调用的第二类功能组件,为了快速查找和调用,可以保存在该页面级文件对应的第二类组件集合中。对于不同页面要调用的第二类功能组件,则存储在不同的第二类组件集合中。
如此,实现了程序包对存储空间占用的优化,合理分配不同文件占用的存储资源,从而较小程序包整体占用的空间,并同时保证程序的运行效率。
在一些实施例中,所述第一类功能组件的页面对象包括:css样式对象。
上述第一类功能组件可以是css样式对象,当然也可以是其他类型的对象。样式对象包括对显示元素的尺寸、颜色以及形状的定义。
对于同一应用的不同页面,可能会有较大概率出现相同样式的显示元素,因此,通过上述实施例中的方式使不同页面共用同一个第一类功能组件对应的样式对象,则可以方便地在不同页面应用这些相同样式的显示元素。
在一些实施例中,所述方法还包括:
在更新所述混合模式移动应用时,如果添加的页面级文件中与其他页面级文件中存在相同的组件标签,且所述应用级文件中不存在所述组件标签的组件声明信息,则在所述应用级文件中添加所述组件标签的组件声明信息;
将所述组件标签对应的功能组件存储在所述第一类功能组件所在的第一类组件集合中。
在对混合模式移动应用进行更新时,可以添加、删除或者修改页面级文件,在添加新的页面级文件或者修改页面级文件时,如果需要在该页面调用与其他页面相同的功能组件,则可以直接在页面级文件中加入对应的组件标签。如果该功能组件保存在应用级文件对应的组件集合中,也就是该功能组件为可以供全局使用的第一类功能组件,则该功能组件对应的组件声明信息已经存在于应用级文件中。因此,在添加页面时可以便捷地使用已有的第一类功能组件。
而对于未保存在第一类组件集合中的功能组件,在更新应用前可能仅被单独的页面所调用,因此保存在调用该功能组件的页面对应的组件集合中,无法被其他页面所共用。而更新时发现该功能组件也存在被其他页面共用的需求,因此,可以将该功能组件重新保存在第一类功能组件对应的第一类组件集合中,同时,在应用级文件中加入该功能组件的组件声明信息,使该功能组件成为能够被不同页面调用的功能组件。
这样,就可以灵活地更新和扩展混合模式移动应用,并且减少由于混合模式移动应用的更新带来的程序包占用内存的过度的增大。
本公开实施例还提供以下示例:
在快应用等混合模式移动应用的开发过程中,为了能够在一个页面的多个位置或者多个页面中使用一个功能单元,可以将该功能单元抽象成组件。从而使多个页面导入该组件以实现组件的复用。
上述功能组件可以以页面维度进行导入,即如果有多个页面都需要导入同一功能组件,则需要在多个页面中定义声明。自定义的功能组件在生成ViewModel(视图模型)实例构建页面的时候,需要执行并将返回的功能组件信息保存在页面内存中,在构建页面的时候根据功能组件的结构、样式以及功能生成实例并构建DOM。
通过上述方式,多个页面需要分别进行功能组件的导入声明,并且多个页面需要分别保存功能组件的信息,浪费内存。
举例说明如下:
假设快应用有多个页面,包括如下页面组件,即页面级文件:index1.ux和index2.ux。这两个页面级文件均需要引用自定义的功能组件part1.ux以及part2.ux。
----自定义组件part1----
Figure BDA0002355419560000091
Figure BDA0002355419560000101
----自定义组件part2----
Figure BDA0002355419560000102
----页面组件index1.ux----
Figure BDA0002355419560000103
----页面组件index2.ux----
Figure BDA0002355419560000104
Figure BDA0002355419560000111
由此可以看出,页面1与页面2均导入了part1组件和part2组件。这两个组件都需要存储在页面1与页面2对应的组件集合中。编译页面时从对应的组件集合中获取,动态生成DOM结构。可见,这样重复存储浪费了大量的内存空间。
在本公开实施例中,将上述共用的功能组件part1组件和part2组件导入到应用级文件中,编译时可以先查找当前页面中是否存储有上述组件,有则直接返回组件信息;如果没有则可以继续查找应用级文件,查找到应用级文件中的组件信息,则返回组件。也就是说,此时上述part1组件和part2组件可以存储在应用级文件对应的组件集合中,以供不同的页面来调用。因此上例可以重新组织如下:
----自定义组件part1----
Figure BDA0002355419560000112
----自定义组件part2----
Figure BDA0002355419560000113
----APP文件app.ux----
Figure BDA0002355419560000114
----页面组件index1.ux----
Figure BDA0002355419560000121
----页面组件index2.ux----
Figure BDA0002355419560000122
如此,实现了代码的优化,节省存储空间。在包含有自定义的功能组件的页面中,通过上述方法抽离样式对象可以大大减小程序包的占用内存大小,从而加速程序包的执行,提升页面的构建速度。并且,通过上述方式解除了css样式与js的耦合,抽离出的css样式可以单独进行修改、更新等处理,便于后期程序的更新和拓展,加速css样式对象的解析注册过程。
图4是根据一示例性实施例示出的一种程序调用装置的框图。参照图4,该装置400包括第一确定模块410,第一查找模块420和第一加载模块430。
第一确定模块410,用于在编译混合模式移动应用时,确定页面级文件中包含的组件标签;
第一查找模块420,用于在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,其中,所述应用级文件包含:被至少两个页面共同调用的第一类功能组件的组件声明信息;
第一加载模块430,用于根据所述组件声明信息,在所述页面级文件所对应的页面上加载所述第一类功能组件的页面对象。
在一些实施例中,所述装置还包括:
第二查找模块,用于在所述页面级文件中查找所述组件标签对应的组件声明信息;
所述第一查找模块,具体用于:
当在所述页面级文件中未查找到所述组件标签对应的组件声明信息时,在所述应用级文件中,查找所述组件标签对应的组件声明信息。
在一些实施例中,所述页面级文件包含的所述组件声明信息为:被一个页面单独调用的第二类功能组件的组件声明信息;
所述装置还包括:
第二加载模块,用于当在所述页面级文件中查找到所述组件标签对应的组件声明信息时,在所述页面级文件所对应的页面上,加载所述第二类功能组件的页面对象。
在一些实施例中,所述混合模式移动应用的程序包,包括:所述应用级文件、所述第一类功能组件和至少两个所述页面级文件;
所述应用级文件包括:所述至少两个页面级文件的页面声明信息,和,所述第一类功能组件的组件声明信息;
所述页面级文件包括:所述第一类功能组件的所述组件标签及所述第二类功能组件的组件声明信息。
在一些实施例中,所述混合模式移动应用的程序包,包括:
第一类组件集合,包含:至少一个所述第一类功能组件;
第二类组件集合,包含:至少一个所述第二类功能组件,其中,不同页面调用的所述第二类功能组件所在的第二类组件集合不同。
在一些实施例中,所述第一类功能组件的页面对象包括:css样式对象。
在一些实施例中,所述装置还包括:
添加模块,用于在更新所述混合模式移动应用时,如果添加的页面级文件中与其他页面级文件中存在相同的组件标签,且所述应用级文件中不存在所述组件标签的组件声明信息,则在所述应用级文件中添加所述组件标签的组件声明信息;
存储模块,用于将所述组件标签对应的功能组件存储在所述第一类功能组件所在的第一类组件集合中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种物联网设备通信的检测装置500的实体结构框图。例如,装置500可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
参照图5,装置500可以包括以下一个或多个组件:处理组件501,存储器502,电源组件503,多媒体组件504,音频组件505,输入/输出(I/O)接口506,传感器组件507,以及通信组件508。
处理组件501通常控制装置500的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件501可以包括一个或多个处理器510来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件501还可以包括一个或多个模块,便于处理组件501和其他组件之间的交互。例如,处理组件501可以包括多媒体模块,以方便多媒体组件504和处理组件501之间的交互。
存储器510被配置为存储各种类型的数据以支持在装置500的操作。这些数据的示例包括用于在装置500上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘或光盘。
电源组件503为装置500的各种组件提供电力。电源组件503可以包括:电源管理***,一个或多个电源,及其他与为装置500生成、管理和分配电力相关联的组件。
多媒体组件504包括在所述装置500和用户之间提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件504包括一个前置摄像头和/或后置摄像头。当装置500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和/或后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件505被配置为输出和/或输入音频信号。例如,音频组件505包括一个麦克风(MIC),当装置500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器510或经由通信组件508发送。在一些实施例中,音频组件505还包括一个扬声器,用于输出音频信号。
I/O接口506为处理组件501和***接口模块之间提供接口,上述***接口模块可以是键盘、点击轮、按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件507包括一个或多个传感器,用于为装置500提供各个方面的状态评估。例如,传感器组件507可以检测到装置500的打开/关闭状态、组件的相对定位,例如所述组件为装置500的显示器和小键盘,传感器组件507还可以检测装置500或装置500的一个组件的位置改变,用户与装置500接触的存在或不存在,装置500方位或加速/减速和装置500的温度变化。传感器组件507可以包括接近传感器,被配置为在没有任何的物理接触时检测附近物体的存在。传感器组件507还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件507还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
通信组件508被配置为便于装置500和其他设备之间有线或无线方式的通信。装置500可以接入基于通信标准的无线网络,如WiFi、2G或3G,或它们的组合。在一个示例性实施例中,通信组件508经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件508还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。
在示例性实施例中,装置500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器502,上述指令可由装置500的处理器510执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述实施例中提供的任一种方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (16)

1.一种程序调用方法,其特征在于,包括:
在编译混合模式移动应用时,确定页面级文件中包含的组件标签;
在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,其中,所述应用级文件包含:被至少两个页面共同调用的第一类功能组件的组件声明信息;
根据所述组件声明信息,在所述页面级文件所对应的页面上加载所述第一类功能组件的页面对象。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述页面级文件中查找所述组件标签对应的组件声明信息;
所述在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,包括:
当在所述页面级文件中未查找到所述组件标签对应的组件声明信息时,在所述应用级文件中,查找所述组件标签对应的组件声明信息。
3.根据权利要求2所述的方法,其特征在于,所述页面级文件包含的所述组件声明信息为:被一个页面单独调用的第二类功能组件的组件声明信息;
所述方法还包括:
当在所述页面级文件中查找到所述组件标签对应的组件声明信息时,在所述页面级文件所对应的页面上,加载所述第二类功能组件的页面对象。
4.根据权利要求3所述的方法,其特征在于,所述混合模式移动应用的程序包,包括:所述应用级文件和至少两个所述页面级文件;
所述应用级文件包括:所述至少两个页面级文件的页面声明信息,和,所述第一类功能组件的组件声明信息;
所述页面级文件包括:所述第一类功能组件的所述组件标签及所述第二类功能组件的组件声明信息。
5.根据权利要求3或4所述的方法,其特征在于,所述混合模式移动应用的程序包,包括:
第一类组件集合,包含:至少一个所述第一类功能组件;
第二类组件集合,包含:至少一个所述第二类功能组件,其中,不同页面调用的所述第二类功能组件所在的第二类组件集合不同。
6.根据权利要求1所述的方法,其特征在于,所述第一类功能组件的页面对象包括:层叠样式表css样式对象。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在更新所述混合模式移动应用时,如果添加的页面级文件中与其他页面级文件中存在相同的组件标签,且所述应用级文件中不存在所述组件标签的组件声明信息,则在所述应用级文件中添加所述组件标签的组件声明信息;
将所述组件标签对应的功能组件存储在所述第一类功能组件所在的第一类组件集合中。
8.一种程序调用装置,其特征在于,包括:
第一确定模块,用于在编译混合模式移动应用时,确定页面级文件中包含的组件标签;
第一查找模块,用于在所述混合模式移动应用的应用级文件中,查找所述组件标签对应的组件声明信息,其中,所述应用级文件包含:被至少两个页面共同调用的第一类功能组件的组件声明信息;
第一加载模块,用于根据所述组件声明信息,在所述页面级文件所对应的页面上加载所述第一类功能组件的页面对象。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二查找模块,用于在所述页面级文件中查找所述组件标签对应的组件声明信息;
所述第一查找模块,具体用于:
当在所述页面级文件中未查找到所述组件标签对应的组件声明信息时,在所述应用级文件中,查找所述组件标签对应的组件声明信息。
10.根据权利要求9所述的装置,其特征在于,所述页面级文件包含的所述组件声明信息为:被一个页面单独调用的第二类功能组件的组件声明信息;
所述装置还包括:
第二加载模块,用于当在所述页面级文件中查找到所述组件标签对应的组件声明信息时,在所述页面级文件所对应的页面上,加载所述第二类功能组件的页面对象。
11.根据权利要求10所述的装置,其特征在于,所述混合模式移动应用的程序包,包括:所述应用级文件和至少两个所述页面级文件;
所述应用级文件包括:所述至少两个页面级文件的页面声明信息,和,所述第一类功能组件的组件声明信息;
所述页面级文件包括:所述第一类功能组件的所述组件标签及所述第二类功能组件的组件声明信息。
12.根据权利要求10或11所述的装置,其特征在于,所述混合模式移动应用的程序包,包括:
第一类组件集合,包含:至少一个所述第一类功能组件;
第二类组件集合,包含:至少一个所述第二类功能组件,其中,不同页面调用的所述第二类功能组件所在的第二类组件集合不同。
13.根据权利要求8所述的装置,其特征在于,所述第一类功能组件的页面对象包括:css样式对象。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括:
添加模块,用于在更新所述混合模式移动应用时,如果添加的页面级文件中与其他页面级文件中存在相同的组件标签,且所述应用级文件中不存在所述组件标签的组件声明信息,则在所述应用级文件中添加所述组件标签的组件声明信息;
存储模块,用于将所述组件标签对应的功能组件存储在所述第一类功能组件所在的第一类组件集合中。
15.一种程序调用装置,其特征在于,所述装置至少包括:处理器和用于存储能够在所述处理器上运行的可执行指令的存储器,其中:
处理器用于运行所述可执行指令时,所述可执行指令执行上述权利要求1至7任一项提供的程序调用方法中的步骤。
16.一种非临时性计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述权利要求1至7任一项提供的程序调用方法中的步骤。
CN202010006341.5A 2020-01-03 2020-01-03 程序调用方法及装置、存储介质 Active CN111221613B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010006341.5A CN111221613B (zh) 2020-01-03 2020-01-03 程序调用方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010006341.5A CN111221613B (zh) 2020-01-03 2020-01-03 程序调用方法及装置、存储介质

Publications (2)

Publication Number Publication Date
CN111221613A true CN111221613A (zh) 2020-06-02
CN111221613B CN111221613B (zh) 2023-04-18

Family

ID=70828104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010006341.5A Active CN111221613B (zh) 2020-01-03 2020-01-03 程序调用方法及装置、存储介质

Country Status (1)

Country Link
CN (1) CN111221613B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756319A (zh) * 2022-04-25 2022-07-15 中国建设银行股份有限公司 小程序页面显示方法、装置、设备及存储介质
WO2023245369A1 (zh) * 2022-06-20 2023-12-28 北京小米移动软件有限公司 应用启动方法、装置、电子设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163206A (zh) * 2011-01-30 2011-08-24 青岛海信传媒网络技术有限公司 页面加载方法及***
CN107368562A (zh) * 2017-07-07 2017-11-21 北京小米移动软件有限公司 页面的显示方法、装置及终端
US20180285173A1 (en) * 2017-03-29 2018-10-04 Microsoft Technology Licensing, Llc Application startup control
CN109325205A (zh) * 2018-09-25 2019-02-12 中国建设银行股份有限公司 一种页面生成方法和装置
US20190266225A1 (en) * 2018-02-26 2019-08-29 Servicenow, Inc. System for Building and Modeling Web Pages
CN110569078A (zh) * 2018-05-18 2019-12-13 广州腾讯科技有限公司 一种网页级程序的预加载方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163206A (zh) * 2011-01-30 2011-08-24 青岛海信传媒网络技术有限公司 页面加载方法及***
US20180285173A1 (en) * 2017-03-29 2018-10-04 Microsoft Technology Licensing, Llc Application startup control
CN107368562A (zh) * 2017-07-07 2017-11-21 北京小米移动软件有限公司 页面的显示方法、装置及终端
US20190266225A1 (en) * 2018-02-26 2019-08-29 Servicenow, Inc. System for Building and Modeling Web Pages
CN110569078A (zh) * 2018-05-18 2019-12-13 广州腾讯科技有限公司 一种网页级程序的预加载方法和装置
CN109325205A (zh) * 2018-09-25 2019-02-12 中国建设银行股份有限公司 一种页面生成方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756319A (zh) * 2022-04-25 2022-07-15 中国建设银行股份有限公司 小程序页面显示方法、装置、设备及存储介质
WO2023245369A1 (zh) * 2022-06-20 2023-12-28 北京小米移动软件有限公司 应用启动方法、装置、电子设备以及存储介质

Also Published As

Publication number Publication date
CN111221613B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
CN111026396B (zh) 页面渲染方法、装置、电子设备及存储介质
CN109032606B (zh) 原生应用程序的编译处理方法、装置及终端
CN110990105B (zh) 界面显示方法、装置、电子设备及存储介质
CN109542417B (zh) 一种dom渲染网页的方法、装置、终端和存储介质
CN109710259B (zh) 一种数据处理方法、装置及存储介质
CN105808305B (zh) 静态资源的加载方法和装置
CN111026491A (zh) 界面显示方法、装置、电子设备、服务器及存储介质
CN109117144B (zh) 页面处理方法、装置、终端及存储介质
CN111221613B (zh) 程序调用方法及装置、存储介质
CN111078325B (zh) 应用程序运行方法、装置、电子设备及存储介质
CN107463372B (zh) 一种数据驱动的页面更新方法和装置
CN107402756B (zh) 用于绘制页面的方法、装置及终端
EP3416070A1 (en) Page display method and device and storage medium
CN112256445A (zh) 基于应用程序的数据处理方法、装置、设备及存储介质
CN115373763B (zh) 插件加载方法、装置、电子设备及存储介质
CN107368562B (zh) 页面的显示方法、装置及终端
CN111104110B (zh) 全局样式共享方法、全局样式共享装置及电子装置
CN111580873B (zh) 页面更新方法及装置、终端、存储介质
CN110989987B (zh) 一种门户网页的生成方法、装置、客户端、服务器及存储介质
CN111104183B (zh) 应用程序运行方法、装置、电子设备及存储介质
CN114546436A (zh) 一种微前端服务更新方法、装置、电子设备及存储介质
CN108427568B (zh) 用户界面的更新方法及装置
CN107423060B (zh) 动画效果的呈现方法、装置及终端
CN112083981A (zh) 一种页面视图组件的创建方法和装置
CN111596949B (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
GR01 Patent grant
GR01 Patent grant