CN110618874B - 一种终端设备控制方法及装置、终端设备及计算机可读存储介质 - Google Patents

一种终端设备控制方法及装置、终端设备及计算机可读存储介质 Download PDF

Info

Publication number
CN110618874B
CN110618874B CN201810634186.4A CN201810634186A CN110618874B CN 110618874 B CN110618874 B CN 110618874B CN 201810634186 A CN201810634186 A CN 201810634186A CN 110618874 B CN110618874 B CN 110618874B
Authority
CN
China
Prior art keywords
message
target
application program
application
framework
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.)
Active
Application number
CN201810634186.4A
Other languages
English (en)
Other versions
CN110618874A (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.)
Meizu Technology Co Ltd
Original Assignee
Meizu Technology 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 Meizu Technology Co Ltd filed Critical Meizu Technology Co Ltd
Priority to CN201810634186.4A priority Critical patent/CN110618874B/zh
Publication of CN110618874A publication Critical patent/CN110618874A/zh
Application granted granted Critical
Publication of CN110618874B publication Critical patent/CN110618874B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

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

Abstract

本发明提供一种终端设备控制方法及装置、终端设备及计算机可读存储介质,该方法包括获取目标应用程序的第一注册信息,第一注册信息用于目标应用程序注册接收目标消息;根据第一注册信息,将目标应用程序记录在接收目标消息的第一接收队列中;根据第一注册信息,向操作系统的消息管理模块发送第二注册信息;根据第二注册信息,将应用程序框架记录在接收目标消息的第二接收队列中。本发明的终端设备具有处理器以及存储器,处理器执行计算机程序时实现上述的终端设备控制方法。本发明的计算机可读存储介质上存储有用于实现上述方法计算机程序。本发明实现应用程序框架上的应用程序与原生应用程序之间的消息发送与接收。

Description

一种终端设备控制方法及装置、终端设备及计算机可读存储 介质
技术领域
本发明涉及电子设备的控制领域,具体地,是在一种实现对终端设备进行控制方法以及实现这种方法的装置,还涉及一种实现上述方法的终端设备以及计算机可读存储介质。
背景技术
智能手机、平板电脑等终端设备成为人们日常生活中最经常使用的电子设备,人们喜欢在智能电子设备上安装各种应用程序,并且在终端设备上同时运行大量的应用程序。由于应用程序运行时往往需要接收其他应用程序所发送的消息,因此,终端设备的操作系统往往会设置一套机制让应用程序接收另一个应用程序发送的消息。
例如,用户设定闹钟以后,闹钟的应用程序将在设定的时间以设定的方式响铃。但是,如果用户设定的时间更新后,则闹钟应用程序需要根据更新后的时间来确定响铃的时刻,因此,闹钟应用程序需要接收时间更新的消息。
以安卓系统为例,由于闹钟的应用程序需要接收时间更新的消息,因此闹钟应用程序需要在操作系统的消息管理模块中进行注册,以声明闹钟应用程序需要接收时间更新的消息,通常,注册操作是由闹钟应用程序向操作系统发送注册信息的方式进行的。当操作系统接收到闹钟发送的注册信息后,将闹钟应用程序添加到时间更新消息的接收队列中。
当用户更新系统时间,则由系统的时间管理进程向操作系统发出时间更新的消息,操作系统从消息管理模块中查找时间更新的消息对应的接收队列,并且向该队列中的应用程序发送时间更新的消息,例如向闹钟应用程序发送时间更新的消息。闹钟应用程序接收到时间更新的消息后,使用更新后的时间更新当前所记录的时间,从而使得闹钟应用程序所记录的时间与系统的时间同步。可见,运行在操作系统下的应用程序是通过在操作系统的消息管理模块内注册来实现消息的接收,并且,操作系统下的多个应用程序的消息发送,也是通过消息管理模块进行消息的分发。
另外,由于应用程序中往往包括多个功能模块,为了让各个功能模块能够及时接收到其他应用程序发送的消息,每一个功能模块均可以向消息管理模块发送注册信息,消息管理模块向每一个发送注册信息的功能模块赋予一个唯一的ID,这样,在接收到消息以后,消息管理模块向消息接收队列中的每一个接收者发送该消息。因此,消息接收队列中每一个接收者可以是一个应用程序,也可以是一个应用程序中的某一个功能模块,也就是说,一个应用程序可能有多个接收者,不同的接收者可能是该应用程序下的多个不同的功能模块。
然而,现有的一些应用程序运行在应用程序框架上,这些应用程序与运行在操作系统上的原生应用程序之间进行消息发送与接收时,无法通过现有的消息分发机制处理,因此,需要提供一种实现应用程序框架的应用程序与原生应用程序之间的消息发送、接收的方法。
发明内容
本发明的第第一目的是提供一种实现应用程序框架上的应用程序与原生应用程序之间的消息接收注册的终端设备控制方法。
本发明的第二目的是提供一种实现应用程序框架上应用程序与原生应用程序之间的消息接收注册的终端设备控制装置。
本发明的第三目的是提供一种能够实现上述终端设备控制方法的终端设备。
本发明的第四目的是提供一种被处理器读取并执行时能够实现上述终端设备控制方法的计算机可读存储介质。
为了实现上述的第一目的,本发明提供的终端设备控制方法包括:获取目标应用程序的第一注册信息,第一注册信息用于目标应用程序注册接收目标消息;根据第一注册信息,将目标应用程序记录在接收目标消息的第一接收队列中;根据第一注册信息,向操作系统的消息管理模块发送第二注册信息,第二注册信息用于应用程序框架注册接收目标消息;根据第二注册信息,将应用程序框架记录在接收目标消息的第二接收队列中。
由上述方案可见,当目标应用程序需要接收某一种消息时,首先由应用程序框架获取目标应用程序需要接收目标消息的第一注册信息,并且根据目标应用程序的第一注册信息将目标应用程序记录到在应用程序框架所记录的第一接收队列中,然后由应用程序框架向操作系统的消息管理模块发送第二注册信息,声明需要接收原生应用程序发出的目标消息,由消息管理模块将应用程序框架记录在目标消息的第二接收队列中。
这样,当原生应用程序发送目标消息以后,消息管理模块可以将目标消息发送至应用程序框架,由应用程序框架通过第一接收队列查找目标应用程序,从而将所接收到的目标消息发送至目标应用程序。
一个优选的方案是,将应用程序框架记录在接收目标消息的第二接收队列中包括:设定对应于目标应用程序的消息接收者,将消息接收者记录到第二接收队列中。
由此可见,通过设置至少一个消息接收者,可以方便将对应于目标应用程序的消息接收者记录到第二接收队列中,与现有的操作系统下的消息注册机制相匹配,有利于消息注册与消息分发。
进一步的方案是,设定对应于目标应用程序的消息接收者,将消息接收者记录到第二接收队列中包括:查找应用程序框架已设定的消息接收者,并判断所设定的消息接收者是否与目标应用程序相匹配,如不匹配,设定新的消息接收者,并将新设定的消息接收者记录到第二接收队列中。
由此可见,如果应用程序框架已经设定的消息接收者与目标应用程序不匹配,则设定新的消息接收者,这样,应用程序框架可以设定二个以上的消息接收者来接收目标消息,从而对应用程序框架上的多个应用程序的消息接收权限进行隔离,提高应用程序框架上的应用程序运行安全性。
更进一步的方案是,接收目标应用程序发送的第一注册信息包括:获取目标应用程序的配置文件,并获取配置文件中的描述信息,从描述信息中获取第一注册信息;或者接收目标应用程序发送的第一注册信息。
可见,应用程序框架可以从应用程序的描述文件中获取第一注册信息,实现消息接收的静态注册。并且,应用程序运行过程中,也可以主动的向应用程序框架发送第一注册信息,实现消息接收的动态注册,满足应用程序运行的需求。
本发明提供的终端设备的控制方法还可以是,接收原生应用程序发送的目标消息;查找与目标消息对应的第三接收队列,向第三接收队列中的消息接收者发送目标消息;消息接收者查找应用程序框架记录的与目标消息对应的第四接收队列,并向第四接收队列中的目标应用程序发送目标消息。
由上述方案可见,在原生应用程序发送目标消息以后,可以向应用程序框架的消息接收者发送目标消息,由消息接收者向应用程序框架上的应用程序发送所接收的消息,实现应用程序框架上的应用程序接收原生应用程序所发送的消息。
优选的方案是,消息接收者对应于至少一个目标应用程序;消息接收者向第四接收队列中的目标应用程序发送目标消息包括:消息接收者从第四接收队列中查找对应于该消息接收者的目标应用程序,并且向对应于该消息接收者的目标应用程序发送目标消息。
可见,应用程序框架上的一个消息接收者可以对应于一个或者多个应用程序,这样,只需要若干个消息接收者接收到信息以后,由消息接收者向多个应用程序发送目标消息,避免大量的应用程序注册接收目标消息,减小操作系统的消息分发工作量。此外,每一个消息接收者仅向自己对应的目标应用程序发送目标消息,可以有效隔离多个应用程序之间的数据,提高应用程序的数据安全性。
本发明提供的终端设备的控制方法还可以是,接收目标应用程序发送的目标消息;应用程序框架将目标消息发送至操作系统的消息管理模块,消息管理模块查找与目标消息对应的消息接收者,消息接收者对应于一个原生应用程序;向消息接收者发送目标消息。
由上述方案可见,当应用程序框架的应用程序向原生应用程序发送消息时,首先将目标消息发送至应用程序框架,再由应用程序框架向操作系统的消息管理模块发送消息,此时,消息管理模块可以根据普通的消息分发机制进行分发,如查找需要接收该消息的原生应用程序,并且将目标消息发送至原生应用程序。这样,实现了应用程序框架上的应用程序向原生应用程序的消息发送。
为实现上述的第二目的,本发明提供的终端设备控制装置包括第一注册信息获取模块,用于获取目标应用程序的第一注册信息,第一注册信息用于目标应用程序注册接收目标消息;第一记录模块,用于根据第一注册信息,将目标应用程序记录在接收目标消息的第一接收队列中;第二注册信息发送模块,用于根据第一注册信息,向操作系统的消息管理模块发送第二注册信息,第二注册信息用于应用程序框架注册接收目标消息;第二记录模块,用于根据第二注册信息,将应用程序框架记录在接收目标消息的第二接收队列中。
为实现上述的第三目的,本发明提供的终端设备包括处理器,处理器用于执行存储器中存储的计算机程序时实现上述终端设备控制方法的各个步骤。
为实现上述的第四目的,本发明提供的计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述终端设备控制方法的各个步骤。
附图说明
图1是本发明终端设备控制方法第一实施例中目标应用程序静态注册信息的流程图。
图2是本发明终端设备控制方法第一实施例中目标应用程序动态注册信息的流程图。
图3是本发明终端设备控制方法第二实施例中操作系统的消息分发的流程图。
图4是本发明终端设备控制方法第二实施例中应用程序框架的消息分发的流程图。
图5是本发明终端设备控制方法第三实施例的流程图。
图6是本发明终端设备控制装置第一实施例的结构框图。
图7是本发明终端设备控制装置第二实施例的结构框图。
图8是本发明终端设备控制装置第三实施例的结构框图。
图9是本发明终端设备实施例的结构框图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明终端设备控制方法是应用在诸如智能手机或者平板电脑等终端设备上,用于实现运行在应用程序框架上的应用程序与运行在操作系统上的原生应用程序之间的消息的发送与分发、消息接收注册。本发明的终端设备控制装置运行在终端设备上,并且用于实现上述的终端设备控制方法。
由于现有的应用程序直接运行在终端设备的操作系统上,例如,用户需要运行某一个应用程序时,需要先下载该应用程序的安装包,并且由操作系统对安装包进行解析。但是,由于现有的应用程序的安装包的数据量非常大,导致应用程序的安装包下载时间较长,且安装时间也较长。
为此,本实施例的终端设备上设置应用程序框架以支持应用程序的运行。例如,应用程序框架是运行在终端设备操作系统上的软件,在终端设备的操作系统上运行有应用程序框架,并且,操作系统上还可以运行现有的原生应用程序。可以理解,应用程序框架以及原生应用程序都是直接运行在操作系统上,并且由操作系统支持运行。因此,本实施例中,应用程序框架可以预先是下载安装到终端设备上,也可以随操作系统一并安装到终端设备上。
应用程序框架运行过程中,与原生应用程序相似的地方在于,应用程序框架可以直接使用操作系统所提供的资源与服务,例如应用程序框架运行时可以根据需求调用操作系统所提供的各种接口、使用操作系统的原生控件,还可以从操作系统接收消息与广播等,也可以通过操作系统向应用程序等发送消息。
为了避免原生应用程序在下载安装包、安装的过程中,用户需要长时间等待的问题,运行在应用程序框架上的应用程序在启动前需要下载的是应用程序的配置文件,配置文件下载到终端设备以后,由应用程序框架进行解析,因此运行在应用程序框架上的应用程序由应用程序框架支持运行。
通常,运行在应用程序框架上的应用程序的配置文件中包括有签名模块以及源文件模块,其中,签名模块包括已经签名并且加密的秘钥文件。源文件模块包括公用资源以及组件、页面目录、项目配置文件manifest等,此外,配置文件还包括开发者针对该应用程序自行定义项目需要的各种模块及配置信息等。
其中,公用资源包括诸如应用程序的图标、应用程序所使用的特殊字体或者特定的背景图片、应用程序的欢迎视频、音频等数据。应用程序公用的组件,例如多个页面或者多个代码段都需要使用的组件,也可以作为公用资源,设置在配置文件的公用资源库中。
页面目录包括应用程序中各个页面的信息,即应用程序的文件夹结构,例如包括各个页面的名称、页面的路径等信息,并且,页面目录还包括每一页面的描述信息,例如该页面的具体布局信息、渲染过程中所需要调用的组件,当然,如果某一页面有特殊的渲染要求,页面目录页可以记录该页面的信息。此外,页面目录还记载各个页面之间的运行逻辑,例如多个页面之间的跳转关系、调用关系等。
项目配置文件包括应用程序的描述,例如声明所需要调用的接口、声明应用程序所需要接收的消息、声明可以被其他应用程序调用等,当然,如果应用程序设置有自定义的组件,也可以将自定义的组件设置在项目配置文件中。
应用程序框架设置有运行支持模块、沙箱模型模块、消息管理模块以及应用管理模块,并且,应用程序框架上可以运行多个应用程序。需要说明的是,运行在应用程序框架上的应用程序在运行过程中通常并不直接使用操作系统所提供的资源或者服务,主要是使用应用程序框架所提供的资源与服务。
应用程序框架的运行支持模块用于支持运行在应用程序框架上的应用程序的运行,当前应用程序框架上有应用程序运行时,运行支持模块将启动并且提供应用程序运行过程中所需要的服务。运行支持模块的具体结构将在下文详细描述。
沙箱模型模块为运行在应用程序框架上的应用程序提供运行所需要的沙箱模型,从而实现不同应用程序之间的权限隔离、数据隔离,例如为每一个应用程序提供自身的权限管理,且隔离各个应用程序的数据,避免一个应用程序不恰当的获取另一个应用程序的数据。例如,沙箱模型模块可以设定、记录每一个应用程序能够获取的权限以及不允许获取的权限,并且设定应用程序之间的数据分享、调用机制,通过该机制对各个应用程序的数据进行管理。
消息管理模块用于对应用程序框架上的每一个应用程序接收、发送消息的活动进行管理,包括消息接收注册、消息分发以及消息发送的管理。例如应用程序需要接收某一消息,可以向应用程序框架发出请求接收该消息的请求指令,消息管理模块将创建该消息的接收队列,并且将应用程序添加到该消息接收队列中,实现应用程序消息接收的注册。
优选的,运行在应用程序框架上的应用程序可以静态的注册接收消息,也可以动态的注册接收消息。应用程序静态注册接收消息是在应用程序的配置文件中声明需要接收某一消息,消息管理模块根据该声明将应用程序记录到该消息的接收队列中。应用程序动态注册接收消息是在应用程序运行过程中临时需要接收某一消息,向应用程序框架发出临时接收某一消息的注册请求,消息管理模块根据该请求临时将应用程序框架记录到该消息的接收队列中。
当然,消息管理模块还需要对动态注册接收消息的应用程序进行管理,例如当应用程序不需要再接收该消息时,由应用程序发出注销信息,消息管理模块即将动态注册的应用程序从该消息的接收队列中移除。
如果应用程序框架接收到消息,消息管理模块还需要对所接收到的消息进行分发,例如应用程序框架上的第一个应用程序向第二个应用程序发送消息,第一个应用程序并不是直接向第二个应用程序发送消息,而是由第一个应用程序向应用程序框架发送该消息,由消息管理模块查找到该消息的接收队列,并且向接收队列中的应用程序发送该消息。例如该消息队列中包括第二个应用程序,则消息管理模块向第二个应用程序分发该消息。
应用管理模块用于管理各个应用程序的运行,例如根据用户的指令启动某一个应用程序,或者根据用户的指令关闭某一个应用程序。又例如,将某一个应用程序置于前台运行或者转入后台运行,在某一个应用程序后台运行时间过长后,将该应用程序转入非活跃状态等。
并且,用户可以直接运行一个并未下载配置文件的应用程序,例如在应用程序框架的主页面上显示多个应用程序的图标,这些应用程序包括已经下载配置文件的应用程序以及未下载配置文件的应用程序,用于可以直接点击一个并未下载配置文件的应用程序的图标,应用管理模块可以从服务器上下载该应用程序的配置文件,并且对配置文件进行解析,启动运行该应用程序。当然,如果用户需要删除某一应用程序的配置文件,也可以由应用管理模块对该应用程序的配置文件进行删除的操作。
由于应用程序运行前下载的是配置文件,而不是安装包,且下载的配置文件由应用程序框架进行解析。因此,为了减小用户下载配置文件时的等待时间,需要减小配置文件的数据量,例如,应用程序的配置文件中所包含的页面信息中,仅仅包括应用程序页面的描述信息,但不包括该页面渲染后的完整数据,对于应用程序所需要调用的接口,应用程序的配置文件仅仅给出了应用程序所需要调用的各种接口的名称与调用的规则,但不提供具体的调用接口的函数。这样,运行在应用程序框架上的应用程序的配置文件数据量很少,通常在1M以下。终端设备可以在极短时间内完成应用程序的配置文件的下载。
在应用程序的配置文件下载完毕以后,应用程序框架对配置文件进行解析并随即运行应用程序,例如由运行支持模块支持应用程序的运行。
运行支持模块内设置有第一JS引擎、渲染引擎、控件管理模块、桥接模块、接口管理模块、第三方服务模块以及应用框架等。
在应用程序框架运行过程中,需要使用操作系统提供的资源,因此,运行支持模块也需要获取操作系统提供的资源,如使用操作系统提供的原生控件以及接口等。
由于应用程序的配置文件是由终端设备下载,因此应用程序框架需要从操作系统获取所下载的配置文件。目前,大部分应用程序的配置文件使用JS(Java Script)语言编写,在操作系统内设置第二JS引擎,用于将配置文件编译成应用程序框架能够解析的语言。当然,应用程序框架也可以直接从操作系统获取配置文件,由运行支持模块内的第一JS引擎对配置文件进行解析。
对配置文件解析后,需要渲染生成应用程序的页面,例如由渲染引擎获取配置文件中页面的描述信息,并且根据描述信息来渲染页面。优选的,应用程序的配置文件中包含有关于页面的基础设置信息,例如包括页面背景图案的信息、页面字体样式的信息、图标的位置信息、头像显示位置等信息,但并不包含该页面渲染后的数据,也就是配置文件中页面信息并不是渲染后的页面的数据。
进一步的,应用程序的配置文件中包含有多个组件、运行逻辑以及描述信息等,其中配置文件的组件是根据应用程序框架的要求预先设定的组件,且组件与终端设备的操作系统的原生控件存在对应关系,也就是通过该组件的标识可以确定该组件对应的操作系统原生控件的名称等。配置文件的运行逻辑用于确定应用程序运行时的逻辑,例如页面之间的上下级关系,即从某一个页面进入下一级页面或者返回上一级页面的关系,并且指示页面上不同按键的作用,如点击某一按键后跳转至下一个页面的逻辑关系等。而描述信息则包含页面的布局信息、颜色、字体、资源、各种声明等。
因此,在渲染引擎渲染应用程序的页面时,需要使用配置文件中的运行逻辑、描述信息,由于描述信息已经给出了页面上各种图标、文字的布局、样式等信息,因此,根据这些描述信息可以实现某一个页面的渲染。
优选的,应用程序框架使用操作系统提供的原生控件生成原生页面,因此,在渲染应用程序的页面时,需要根据配置文件中组件与原生控件之间的对应关系,获取配置文件中的组件所对应的原生控件,即获取操作系统中用于生成图标、窗口或者导航栏等控件,并且基于这些原生控件渲染生成应用程序的原生页面。因此,控件管理模块需要获取配置文件中组件与原生控件的映射关系,并且根据这些映射关系获取操作系统相对应的原生控件,使用原生控件并根据描述信息来实现页面的渲染,从而获得应用程序的原生页面。可见,原生页面是基于操作系统的原生控件所渲染形成的页面,这些页面的显示效果与传统的应用程序的页面显示效果相同,从而确保用户体验不会变化。
当然,应用程序框架也提供自身的控件,例如应用框架内包含有应用程序框架所提供的内建控件,渲染生成应用程序的页面时,也可以获取内建控件进行渲染,因此,控件管理模块可以根据实际需要从应用框架中获取所需要的内建控件。
在应用程序运行过程中,应用程序可能需要调用各种接口,例如使用操作系统提供的某一个接口。接口管理模块根据应用程序的描述信息,获取应用程序所需要使用的操作系统的某一个接口的声明,根据该声明确定所需要调用的接口的名称或者ID等信息,并通过桥接模块从操作系统中调取该接口。因此,在应用程序的配置文件中,只需要声明调用某一接口即可,而不需要提供使用该接口的具体函数,从而减小应用程序的配置文件的数据量。
当然,应用程序框架也提供内建接口,例如在应用框架中提供内建接口,应用程序也可以调用内建接口,例如在描述文件中声明需要调用哪一内建接口,接口管理模块将根据描述文件确定所需要调用的内建接口并且提供相应的内建接口给应用程序使用。
此外,应用程序框架还可以向应用程序提供第三方服务,第三方服务是由运行在操作系统上的应用程序等提供的服务,例如运行在应用程序框架上的应用程序需要使用运行在操作系统上的应用程序的功能时,可以通过第三方服务模块来使用该功能。
通常,第三方服务是在应用程序框架内提供专用的调用接口,当应用程序需要使用第三方服务时,通过这些专用的调用接口使用相应的功能。例如,在第三方服务模块内设置有推送模块、注册模块、支付模块以及统计模块等,应用程序可以通过这些模块实现推送消息的接收、账号注册、支付以及信息统计等功能。可以理解,推送模块注册模块、支付模块以及统计模块是第三方应用程序提供给应用程序框架的调用接口。
此外,应用程序框架自身也可以向应用程序提供多种服务,例如在应用框架内还设置有页面管理模块、路由管理模块以及MVVM模块等,页面管理模块用于实现应用程序的页面管理,例如实现页面的跳转控制、页面的开启与关闭等。并且,页面管理模块可以通过获取应用程序的配置文件中的运行逻辑,实现多个页面之间的跳转关系的设定,从而确定应用程序的多个页面的逻辑。
路由管理模块为应用程序提供路由服务,例如应用程序需要发送消息到某一个特定的节点时,路由管理模块将提供发送该消息的路径,并且将该信息按照该路径发送至当前终端设备的下一个节点上。MVVM模块用于实现MVVM(Model-View-View-Model)功能,例如实现应用程序中视图与模型的分离。
应用框架内提供的内建控件、内建接口以及各种服务都可以被应用程序调用,因此,应用程序的配置文件中并不需要提供实现这些功能的代码,只需要在描述文件中声明需要调用这些功能模块即可。
当应用程序的配置文件下载以后,应用程序框架对配置文件进行解析,首先获取配置文件的签名信息,即获取配置文件中的秘钥文件,使用秘钥文件对配置文件的真实性进行验证。在配置文件通过验证以后,在对配置文件中的源文件模块进行解析。
例如,运行应用程序时,首先获取项目配置文件,获取各种声明信息,如注册接收消息、设置应用程序的调用信息等。同时,渲染生成应用程序的主页面,此时需要从页面目录获取主页面的描述信息,并且确定渲染过程中所需要使用的组件,应用程序框架根据这些组件获取对应的原生控件或者内建控件,由渲染引擎渲染生成主页面。
如果用户在主页面执行操作,例如点击某一按键或者滑动形成预设的轨迹,则根据设定的运行逻辑,执行相应的操作,例如调用某一接口或者调整至另一页面等。
可见,正是由于运行在应用程序框架上的应用程序的配置文件中仅仅包含多个组件、运行逻辑以及各个页面的描述信息,而不会提供渲染后的页面的完整数据,可以大大减少配置文件的数据量。另一方面,对于应用程序运行过程中需要调用的接口以及调用的服务,只需要在配置文件中声明需要调用哪些接口或者服务即可,而不需要提供实现这些服务的具体函数或者代码,因此配置文件的数据量非常小,其下载速度非常快,可以在极短时间内完成配置文件的下载,且应用程序框架在解析配置文件时,所花费的时间也很短,能够在很短时间内实现应用程序的运行。
这样,运行在应用程序框架上的应用程序与传统的应用程序相比,运行在应用程序框架上的应用程序的配置文件下载、解析能够在极短时间内完成,因此对于未下载配置文件的应用程序而言,只要用户发出了运行该应用程序的指令,即可以瞬间完成配置文件的下载与运行,从而瞬间打开应用程序。通常,应用程序的配置文件的下载与解析可以在后台完成,用户只需要点击应用程序的图标,即使该应用程序的配置文件并未下载,用户几乎不需要等待即已经打开应用程序的主页面。
由于应用程序运行的时候,所显示的页面也是经过原生控件渲染后的页面,且各种接口均由应用程序框架提供,因此,不会影响用户使用应用程序的体验。
但是,在操作系统下,应用程序框架被视为一个原生应用程序,且应用程序框架上的应用程序是运行在应用程序框架上,由于应用程序框架上的应用程序并不直接运行在操作系统上,无法直接在操作系统的消息管理模块内进行消息接收的注册,因此无法直接通过消息管理模块实现消息的发送、接收,因此,需要提供一套应用程序框架上应用程序与原生应用程序之间的消息发送、接收机制来实现应用程序框架上的应用程序与原生应用程序之间的消息发送与接收。
因此,本发明主要提供一种在应用程序框架上的应用程序与原生应用程序之间的消息发送、接收消息的机制,包括应用程序接收消息的静态注册信息、动态注册信息,还包括应用程序通过应用程序框架向原生应用程序发送消息的方法、原生应用程序向应用程序框架上的应用程序发送消息方法。
下面结合图1介绍本发明的终端设备控制方法,图1所揭示的方法是目标应用程序静态注册接收目标消息的方法。
首先,执行步骤S101,获取目标应用程序的配置文件。
由于应用程序框架上的应用程序并不需要通过下载安装包并且安装以后才能执行,而是通过下载配置文件并由应用程序框架对配置文件进行解析的方式来运行,因此,步骤S101需要获取应用程序的配置文件。最常见的获取配置文件的方式是从预设的服务器下载应用程序的配置文件,例如,用户首次运行目标应用程序时,终端设备下载获取目标应用程序的配置文件。
用户可以在终端设备上运行应用程序框架,并且进入应用程序框架的主页面,并且在应用程序框架的主页面下点击“程序列表”的虚拟按键,应用程序框架的应用程序列表页面上将显示多个应用程序的信息,包括应用程序的图标、名称、预览信息以及摘要信息等。优选的,已经下载的应用程序将显示在程序列表的上方,而未下载的应用程序将显示在列表的下方。更优选的,应用程序框架提供搜索应用程序的功能,例如在程序列表页面的最上方显示搜索栏,用户可以在搜索栏中输入关键词,如应用程序的名称、功能、属性等关键词,并且点击搜索按键,应用程序列表中将显示搜索结果。
当用户希望使用某一应用程序时,可以点击该应用程序的图标或者名称等,终端设备即接收到运行应用程序的指令,并且开启运行该应用程序。当然,用户可以通过其他方式发出运行应用程序的指令,例如通过声控指令或者按下Home键等,也可以在屏幕上滑动形成预定轨迹的图案等。
当应用程序框架接收到用户发出的点击某一应用程序的图标的指令以后,首先需要判断该应用程序的配置文件是否已经下载,如果未下载,则需要向服务器发送下载应用程序配置文件的指令。
由于应用程序框架上运行的都是基于配置文件运行的应用程序,因此,应用程序框架发送的请求指令是向服务器发出下载应用程序的配置文件的请求指令。服务器接收到终端设备所发送的请求下载应用程序配置文件的指令后,查找出该应用程序的配置文件,并且将应用程序配置文件发送至终端设备。
当然,获取配置文件并不一定是用户点击目标应用程序的图标并启动运行目标应用程序时执行的,也可以是在目标应用程序运行一次或者多次以后,才获取目标应用程序的配置文件并执行后续的操作。
然后,执行步骤S102,获取配置文件中的描述信息。
在获取应用程序的配置信息以后,还需要获取配置文件中的描述信息,通常,描述信息包含有诸如应用程序的调用信息、是否需要接收某种消息的信息等。因此,在获取配置文件以后,应用程序对配置文件进行解析,并且根据配置文件的逻辑获取配置文件中的描述文件。
接着,执行步骤S103,从描述信息中获取目标应用程序的第一注册信息。
由于描述信息中包含有目标应用程序需要接收其他目标应用程序发出的消息的信息,该信息声明目标应用程序需要接收哪些消息,因此该信息是本实施例的第一注册信息。
优选的,如果目标应用程序包含有多个功能模块,例如目标应用程序运行时将产生多个进程,每一个功能模块可能需要分别接收不同的消息,则第一注册信息中将包括目标应用程序需要接收的多种消息的信息,并且,第一注册信息可以并不区分这些消息分别由哪一个功能模块接收,仅仅记载需要接收哪些消息。
然后,执行步骤S104,应用程序框架将目标应用程序记录到第一接收队列中。
应用程序框架可以设置一个消息管理模块,消息管理进程记录有多个消息队列,每一个消息队列对应于一个消息,例如时间更新的消息、地理位置更新的消息等。在应用程序框架获取目标应用程序的第一注册信息以后,确定目标应用程序需要接收哪些消息,在确定目标应用程序需要接收的目标消息以后,将应用程序记录到对应的目标消息的第一接收队列中。
优选的,每一个应用程序均有自己对应的ID,将目标应用程序记录在第一接收队列时,可以将目标应用程序的名称、类别或者将目标应用程序的ID记录在第一接收队列中。需要说明的是,第一接收队列是应用程序框架上的消息管理进程所记录的队列,并且队列中所有成员均为目标应用程序,而不是目标应用程序的进程。优选的,如果目标应用程序需要接收多种消息,则消息管理进程分别将目标应用程序记录到多个不同的消息的接收队列中。
然后,执行步骤S105,根据第一注册信息,向操作系统的消息管理模块发送第二注册信息。
应用程序框架在获取目标应用程序的第一注册信息以后,确定目标应用程序需要接收的目标消息,由此向操作系统的消息管理模块发送注册接收目标消息的第二注册信息。
由于目标应用程序并不能直接作为消息接收者被注册到操作系统的消息管理模块内,因此,只能由应用程序框架向操作系统的消息管理模块发送第二注册信息,以声明应用程序框架需要接收目标消息。例如,目标应用程序需要接收由原生应用程序发送的A消息,则应用程序框架向消息管理模块发送需要接收A消息的第二注册信息。
接着,执行步骤S106,查找应用程序框架中已经设定的消息接收者。
由于应用程序并不能直接注册到操作系统的消息管理模块中,因此应用程序框架将设定一个或者多个消息接收者来注册到消息管理模块中。在确定目标应用程序需要接收目标消息以后,需要确定目标应用程序对应的一个消息接收者,如果应用程序框架已经存在消息接收者,则首先需要查找到已经设定的消息接收者,再判断该消息接收者是否与目标应用程序相匹配。
例如,应用程序框架的消息管理进程记录有多个消息接收者,每一个消息接收者可以对应于一个或者多个应用程序,并且每一个消息接收者均有自己唯一的标识,例如每一个消息接收者具有唯一的ID,通过该ID可以确定对应的消息接收者。
步骤S106中,目标应用程序可以获取应用程序框架上每一个消息接收者的信息,包括每一个消息接收者的ID以及该消息接收者已经设定的对应的应用程序等。
步骤S107,判断已经设定的消息接收者与目标应用程序是否相匹配,如是,执行步骤S108,否则,执行步骤S109。
在获取某一个消息接收者的信息以后,需要判断当前所获取的消息接收者是否与目标应用程序相匹配,例如,当前的消息接收者是否对应于目标应用程序,如果已经设定当前的消息接收者对应于目标应用程序,则可以确定当前的消息接收者与目标应用程序相匹配。
如果应用程序框架上没有任何一个消息接收者被设定与目标应用程序对应,则可以从多个消息接收者中确定一个消息接收者来接收目标应用程序所需要接收的目标消息。通常,由于一个消息接收者可能对应于多个应用程序,在确定多个应用程序能否共用一个消息接收者时,首先需要考虑多个应用程序之间的关联性,例如多个应用程序是否由同一个开发者所开发,如果多个应用程序由同一个开发者所开发,则可以确定多个应用程序可以共用一个消息接收者。
另外,如果多个应用程序属于同一类型的应用程序,例如都属于工具类的应用程序,或者都是游戏类、浏览器类或者视频播放器类的应用程序,则相同类型的应用程序可以共用一个消息接收者。
因此,判断当前消息接收者是否与目标应用程序相匹配,可以获取该消息接收者对应的应用程序,通过判断该应用程序的开发者或者应用程序的类型,来确定目标应用程序是否与当前获取的消息接收者相匹配。
步骤S108,将该消息接收者记录到第二接收队列中。
在确定当前的消息接收者与目标应用程序相匹配后,例如当前消息接收者对应的其他应用程序与目标应用程序由同一开发者开发,则可以将该消息接收者记录在操作系统的消息管理模块的第二接收队列中。本实施例中,第二接收队列是操作系统的消息管理模块记录的用于接收原生应用程序发送的消息的队列。
将消息接收者记录到第二接收队列以后,一旦原生应用程序发送目标消息以后,消息管理模块即可以从第二接收队列中查找出该消息接收者,由于该消息接收者对应于应用程序框架的一个或者多个应用程序,因此,当消息管理模块向消息接收者发送目标消息时,实现了向应用程序框架的应用程序发送目标消息。
步骤S109,设定新的消息接收者,将新的消息接收者记录到第二接收队列中。
如果应用程序框架中已经设定的所有消息接收者都与目标应用程序不匹配,例如都与目标应用程序的开发者不相同并且与目标应用程序的类型都不相同,则需要由消息管理进程设定一个新的消息接收者,并且赋予该消息接收者唯一的ID,同时记录该消息接收者对应的应用程序。
然后,将新设定的消息接收者记录到操作系统的消息管理模块的第二接收队列中,即记录到目标应用程序需要接收的目标消息的队列中,以便于消息接收者接收原生应用程序所发送的目标消息。
以上的过程是目标应用程序静态的注册接收消息的过程,即由目标应用程序声明需要接收目标消息,从目标应用程序的描述信息中获取第一注册信息并进行注册。但是,在应用程序的运行过程中,应用程序可能需要临时接收某些消息,例如即时通讯应用程序只需要在一个较短的时间段内接收位置更新的消息,这种情况需要通过动态注册的方式来实现消息的接收注册。下面结合图2介绍动态注册接收消息的过程。
首先,执行步骤S201,接收运行过程中的目标应用程序发送的第一注册信息。
在目标应用程序运行过程中,如果目标应用程序或者目标应用程序中的某一个目标功能模块需要临时接收某一种消息,则目标应用程序向应用程序框架发送接收目标消息的第一注册信息。本实施例中,第一注册信息是目标应用程序向应用程序框架主动发送的用于声明需要临时接收某一种消息的注册信息,并且,第一注册信息需要包含有所需要接收的目标消息的名称、类型或者消息发送方的名称等信息。
可以理解,通过动态注册方式接收的消息,都是目标应用程序没有通过静态注册的方式接收的消息,也就是在目标应用程序的描述文件中所没有记录的需要接收的消息。
然后,执行步骤S202,将目标应用程序记录到应用程序框架的第一接收队列中。
应用程序框架的消息管理模块记录有多个消息队列,每一个消息队列对应于一种消息,因而,在应用程序框架接收到正在运行的目标应用程序发送的第一注册信息以后,确定目标应用程序需要临时接收某一消息,此时,需要将应用程序记录到对应的目标消息的第一接收队列中。
然后,执行步骤S203,根据第一注册信息,向操作系统的消息管理模块发送第二注册信息。
由于目标应用程序是临时接收目标消息的,也就是目标应用程序并未通过静态注册的方式注册接收目标消息,因此,应用程序框架需要向操作系统的消息管理模块发送第二注册信息,以声明应用程序框架需要临时接收目标消息。
接着,执行步骤S204,获取目标应用程序对应的消息接收者。
由于应用程序并不能直接注册到操作系统的消息管理模块中,因此应用程序框架将设定一个或者多个消息接收者来注册到消息管理模块中。由于目标应用程序已经通过静态注册的方式注册接收消息,此时,也就是目标应用程序已经有对应的消息接收者,因此,步骤S204通过遍历应用程序框架中的每一个消息接收者,可以查找出与目标应用程序对应的消息接收者。当然,应用程序也可以记录对应的消息接收者的ID。
如果目标应用程序并没有通过静态注册的方式注册接收消息,则目标应用程序并不存在对应的消息接收者,则需要查找一个与目标应用程序相匹配的消息接收者,例如消息接收者对应的其他应用程序的开发者与目标应用程序的开发者为同一开发者,或者消息接收者对应的其他应用程序与目标应用程序属于同一类型的应用程序。
当然,如果已经设定的多个消息接收者中,没有任一个消息接收者与目标应用程序相匹配,则应用程序框架设置一个新的消息接收者,并且设定该消息接收者对应于目标应用程序。
最后,执行步骤S205,将消息接收者记录到第二接收队列中。
在确定目标应用程序对应的消息接收者以后,将目标应用程序对应的消息接收者记录到操作系统的消息管理模块的第二接收队列中,即记录到目标应用程序需要接收的目标消息的队列中,以便于消息接收者接收原生应用程序所发送的目标消息。
优选的,原生应用程序所发送的消息可以是普通消息、有序消息或者是粘性消息。如果原生应用程序发送的消息是普通消息,则需要向该消息的接收队列中的每一个消息接收者发送该消息,如果消息管理模块所接收的目标消息是有序消息,则需要按照预设的顺序发送目标消息,并且收到上一个接收者反馈已经接收该有序消息并且处理完毕后,才能够将目标消息发送至下一个消息接收者。如果所接收的消息是粘性消息,则需要在接收的目标应用程序处于活动状态时才发送该消息,如果接收目标消息的目标应用程序处于非活动状态,则不发送该消息。
在完成消息接收的注册以后,应用程序框架上的应用程序可以接收原生应用程序发出的目标消息。下面结合图3介绍原生应用程序向应用程序框架上的目标应用程序发送目标消息的流程。
首先,执行步骤S301,接收原生应用程序发送的目标消息。
当原生应用程序发送目标消息时,即原生应用程序向操作系统的消息管理模块发送目标消息,消息管理模块需要接收原生应用程序所发出的目标消息,并且获取目标消息的信息,包括目标消息的名称、类型以及目标消息的发送方等信息。其中,目标消息的名称、类型可以通过对目标消息进行解析获取,也就是消息管理模块接收到目标消息以后,需要对目标消息进行解析,并且获取目标消息的信息,从而确定目标消息的名称以及类型。
然后,执行步骤S302,消息管理模块查找与目标消息对应的第三接收队列。
由于在确定目标消息的名称、类型以后,消息管理模块根据目标消息的名称、类型查找与目标消息对应的第三接收队列。本实施例中,第三接收队列是操作系统的消息管理模块所记录的用于接收原生应用程序发出的目标消息的队列,该队列中包含有多个消息接收者,这些消息接收者可以是某一原生应用程序的消息接收者,也可以是应用程序框架的消息接收者。
优选的,由于每一个消息接收队列均具有自己唯一的标识,例如具有唯一的ID,并且每一个消息接收队列均有对应的目标消息,因此可以通过遍历每一个消息接收队列来确定目标消息所对应的第三接收队列。
然后,执行步骤S303,向第三接收队列中的每一个消息接收者发送目标消息。
由于第三接收队列的消息接收者可能是原生应用程序的消息接收者,也可能是应用程序框架的消息接收者,消息管理模块都向第三接收队列中的所有消息接收者发送目标消息,因此,其他原生应用程序以及应用程序框架的接收者都接收到目标消息。
接着,执行步骤S304,应用程序框架的消息接收者从第四接收队列中查找与该消息接收者对应的目标应用程序。
由于应用程序框架的应用程序并不能直接接收操作系统的消息管理模块所发送的目标消息,而是通过应用程序框架所设定的消息接收者接收目标消息,因此,应用程序框架上的消息接收者在接收到消息管理模块发送的目标消息以后,还需要将目标消息发送至应用程序框架上的目标应用程序。
由于应用程序框架记录了每一个目标消息对应的消息接收队列,因此,消息接收者可以从该消息接收队列中查找出需要向哪些应用程序发送目标消息。本实施例中,应用程序框架的消息管理进程所记录的目标消息接收队列为第四接收队列,因此,第四接收队列中记录有需要接收目标消息的一个或者多个目标应用程序。消息接收者接收到目标消息以后,可以在消息管理进程中查找与目标消息对应的第四接收队列,例如根据目标消息的名称、类型等确定该目标消息对应的第四接收队列。
然而,消息接收者并不是向第四接收队列中所有的应用程序均发送该目标消息。由于每一个消息接收者对应于一个或者多个应用程序,因此,第四接收队列中的应用程序并不是都是对应于该消息接收者。例如,应用程序框架上设置了三个消息接收者,分别是消息接收者A1、A2以及A3,并且每一个消息接收者对应于一个或者多个应用程序,例如消息接收者A1对应的应用程序为应用程序B11、B12、B13,而消息接收者A2对应的应用程序为应用程序B21与B22,消息接收者A3对应的应用程序为应用程序B31、B32、B33。
如果目标消息对应的第四接收队列中包括应用程序B11、B22以及B32,则三个消息接收者A1、A2以及A3均为目标消息的接收者,也就是操作系统的消息管理模块分别向消息接收者A1、A2以及A3发送目标消息。
例如,消息接收者A1接收到目标消息以后,从消息管理进程查找第四接收队列,由于第四接收队列中包括应用程序B11、B22以及B32,此时,消息接收者A1并不会向三个应用程序B11、B22、B32发送目标消息,而是查找与自己对应的目标应用程序。由于应用程序B11、B22、B32中,与消息接收者A1对应的应用程序是B11,因此,步骤S304所查找到的应用程序是B11。同理,消息接收者A2查找到的目标应用程序是B22,而消息接收者A3查找到的目标应用程序是B32。
最后,执行步骤S305,消息接收者向对应的目标应用程序发送目标消息。
消息接收者在第四接收队列中查找到对应的目标应用程序以后,向目标应用程序发送目标消息,例如,消息接收者A1向对应的目标应用程序B11发送目标消息,而不会向应用程序B22、B32发送目标消息。相同的,消息接收者A2只会向应用程序B22发送目标消息,而消息接收者A3只会向应用程序B32发送目标消息。
因此,消息接收者只是向对应的目标应用程序发送目标消息,这样可以避免应用程序之间不恰当的获取另一应用程序的数据,实现了不同应用程序的之间的数据隔离。由于对应于同一消息接收者的多个应用程序之间存在一定关联性,例如具有相同的开发者或者属于相同的类型,这些应用程序之间可能存在数据共享的情况,因此共用一个消息接收者接收目标消息,并不会导致应用程序的数据被泄露获取不恰当使用的问题。
需要说明的是,如果一个消息接收者对应应用程序中,有多个应用程序在第四接收队列中,则消息接收者需要向在第四接收队列中的对应的多个应用程序发送目标消息。例如,假设第四接收队列中包括应用程序B11以及B12,由于应用程序B11以及B12均对应于消息接收者A1,在消息接收者A1接收到目标消息以后,需要向应用程序B11以及B12发送目标消息。
应用程序框架的消息接收者在接收到目标消息以后,需要确定目标消息的类型,并且根据相应的规则发送目标消息。优选的,应用程序发出目标消息时,可以在目标消息的预设标志位处设定相应的标志,用于声明当前发送的消息是那种类型的消息。
通过图3的流程,实现了原生应用程序向应用程序框架上的应用程序发送目标消息的流程。由于应用程序框架上的应用程序还设置有多个功能模块,例如目标应用程序运行时存在多个进程,目标应用程序所接收的消息需要进一步的向目标进程分发。
因此,如果目标功能模块需要接收某一目标消息,需要向目标应用程序发送注册信息,请求注册接收某一目标消息,目标应用程序将目标功能模块记录在接收目标消息的队列中,例如第五接收队列。需要说明的是,目标功能模块可以静态的注册接收目标消息,例如在应用程序的配置文件的描述文件中记录目标功能模块需要接收某一目标消息。目标功能模块也可以动态的注册接收消息,例如在目标功能模块运行过程中动态的向目标应用程序发送注册接收目标消息的注册信息。目标应用程序接收到注册信息后,将目标功能模块记录到第五接收队列中。本实施例中,第五接收队列是目标应用程序记录的用于接收目标消息的目标功能模块。
目标应用程序接收到目标消息以后,需要向目标应用程序中的目标功能模块分发目标消息。下面结合图4介绍目标应用程序接收到目标消息以后,对目标消息进行分发的过程。
首先,执行步骤S401,目标应用程序接收目标消息。
应用程序框架的消息接收者接收操作系统的消息管理模块发出的目标消息以后,向目标应用程序发送目标消息,此时,目标应用程序将接收目标应用程序接收到目标消息。优选的,接收到目标消息以后,需要对目标消息进行解析,确定目标消息的名称、类型等。
当然,目标应用程序也可能因自身运行的需要接收目标消息,这些目标消息并不需要分发至任一功能模块。
因此,需要执行步骤S402,目标应用程序判断是否存在接收目标消息的第五接收队列,如是,执行步骤S403,否则,执行步骤S404。
目标应用程序接收到目标消息以后,首先需要判断目标消息是否需要处理,或者需要向某一进程发送目标消息。如果目标应用程序下的某一个进程需要接收该目标消息,在存在接收目标消息的第二接收队列,因此,步骤S402需要判断是否存在接收目标消息的第二接收队列。由于目标消息具有自己的名称、ID等,因此,目标应用程序的消息管理进程可以通过目标消息的名称、ID等确定是否存在与目标消息对应的第五接收队列。
步骤S403,向第五接收队列中的目标功能模块发送目标消息。
如果确定存在与目标消息对应的第五接收队列,则根据目标消息的类型按照预设的规则向目标功能模块发送目标消息。例如,如果目标消息是普通消息,在获取第五接收队列中的每一个目标功能模块以后,向每一目标功能模块发送目标消息。如果目标消息是有序消息,则需要按照预设的顺序依次向多个目标功能模块发送目标消息,如果目标消息是粘性消息,则需要确定目标功能模块处于活动状态的情况下,才向目标功能模块发送该目标消息。
步骤S404,执行目标消息匹配的操作。
如果目标消息并没有对应的第五接收队列,则目标应用程序需要按照预设的逻辑执行与目标消息对应的操作。例如,根据描述文件预设的运行逻辑,判断目标消息是否为不需要处理的消息,或者获取目标消息的内容,执行目标消息的操作等。
具体的,如果目标消息是设置项变更的消息,如更改当前时间,则目标应用程序需要根据所接收到的目标消息,对目标应用程序的时间进行更改。如果目标消息是打开某一页面的消息,目标应用程序接收到目标消息以后,需要打开目标消息所对应的页面。
上述的实施例介绍了操作系统的原生应用程序向应用程序框架上的应用程序发送消息的过程,本发明实施例还提供应用程序框架的应用程序向原生应用程序发送消息的机制。原生应用程序需要接收应用程序框架上的应用程序发送的消息时,首先需要向操作系统的消息管理模块发送注册信息,用于声明原生应用程序需要接收应用程序框架上的某一个应用程序所发送的消息。
实际应用时,原生应用程序通常只注册接收某一类型或者某一名称的消息,不管这个消息是由其他原生应用程序还是由应用程序框架上的应用程序发送。因此,原生应用程序发送的注册信息通常并不会声明所需要接收的目标消息由应用程序框架发送,或者由另一原生应用程序发送,而只是声明需要接收某一类类型或者某一名称的消息。
在原生应用程序向操作系统的消息管理模块发送注册信息以后,消息管理模块将原生应用程序记录在接收该目标消息的消息接收队列中,例如原生应用程序设定一个消息接收者并且被记录在接收目标消息的第六接收队列中。本实施例中,第六接收队列是操作系统的消息管理模块记录的用于接收某一类型的消息的接收队列,该队列包括一个或者多个原生应用程序对应的消息接收者。
下面,结合图5介绍应用程序框架上的应用程序向原生应用程序发送消息的过程。
首先,执行步骤S501,应用程序框架接收应用程序框架上的应用程序所发送的目标消息。
当应用程序框架上的应用程序需要向原生应用程序发送消息时,应用程序将所需要发送的消息发送至应用程序框架,由应用程序框架的消息管理进程接收应用程序所发送的目标消息。通常,应用程序所发送的目标消息包含有该目标消息的名称、类型等信息,应用程序框架接收到该目标消息以后,可以获取目标消息的名称、类型等信息。
优选的,应用程序发送的目标消息中设置一个标记,用于标识该目标消息是否需要被原生应用程序接收,如果需要被原生应用程序接收,则应用程序框架需要将目标消息发送至操作系统,由操作系统分发至原生应用程序。如果目标消息不需要被原生应用程序接收,则应用程序框架将目标消息分发至应用程序框架内的其他应用程序。
步骤S502,应用程序框架向操作系统的消息管理模块发送目标消息。
如果应用程序发出的目标消息需要被原生应用程序接收,由于应用程序并不能直接将目标应用程序发送至操作系统,因此需要应用程序框架将目标消息发送至操作系统的消息管理模块。应用程序框架向消息管理模块发送目标消息时,所发送的目标消息将包含目标消息的名称、类型等信息。当然,目标消息还可以包括目标消息的发送方,例如目标消息由应用程序框架上的某一个应用程序发送。
步骤S503,消息管理模块查找与目标消息对应的第六接收队列。
操作系统的消息管理模块接收到目标消息以后,对目标消息进行解析,获取目标消息的名称、类型等信息,并且从消息接收队列中查找出与目标消息相对应的消息接收队列。由于消息管理模块记录有多个消息接收队列,每一个消息接收队列对应于一种消息,如显示屏被点亮的消息或者时间更改的消息。消息管理模块在接收到目标消息以后,通过目标消息的名称以及类型可以确定目标消息对应的第六接收队列。
步骤S504,消息管理模块向第六消息接收队列中的每一个消息接收者发送目标消息。
在确定目标消息对应的第六接收队列以后,消息管理模块获取第六接收队列中的每一个消息接收者,优选的,第六接收队列中的每一个消息接收者均对应于一个原生应用程序,也就是第六接收队列中的消息接收者都是原生应用程序的消息接收者。这样,消息管理模块向第六接收队列中的每一个消息接收者发送目标消息后,原生应用程序即接收到目标消息,实现了由应用程序框架上的应用程序向原生应用程序发送目标消息。
可见,应用程序框架的应用程序向原生应用程序发送消息时,并不是直接向操作系统的消息管理模块发送目标消息,而是先将目标消息发送至应用程序框架,由应用程序框架向消息管理模块发送目标消息,再由消息管理模块按照现有的消息分发机制对目标消息进行分发。
本发明实施例还提供终端设备的控制装置,参见图6,控制装置第一实施例包括第一注册信息获取模块601、第一记录模块602、第二注册信息发送模块603、接收者设定模块604以及第二记录模块605。
其中,第一注册信息获取模块601用于获取目标应用程序的第一注册信息,本实施例中,获取目标应用程序的第一注册信息有两种方式,一种方式是目标应用程序静态注册接收目标消息,这种方式需要从目标应用程序的配置文件中获取目标应用程序的描述信息,从描述信息中获取目标应用程序的第一注册信息,第一注册信息用于声明目标应用程序需要注册接收目标消息。优选的,第一注册信息包括需要接收的目标消息的名称、类型或者ID等。
另一种方式是动态的接收目标应用程序发送的第一注册信息,例如在应用程序运行过程中,应用程序动态的发送临时需要接收某一目标消息的注册信息。
第一记录模块602用于根据所接收的第一注册信息,将目标应用程序记录在接收目标消息的第一接收队列中。本实施例中,第一接收队列是应用程序框架的消息管理进程记录需要接收目标消息的目标应用程序的队列,每一个第一接收队列对应于一个目标消息,并且一个接收队列中可能存在一个或者多个目标应用程序。
第二注册信息发送模块603用于根据第一注册信息,应用程序框架向操作系统的消息管理模块发送第二注册信息,第二注册信息用于应用程序框架向消息管理模块声明需要注册接收目标消息。
接收者设定模块604用于设定应用程序框架用于接收原生应用程序发送的目标消息的接收者,接收者用于接收消息管理模块发送的目标消息,并且将所接收的目标消息分发至应用程序框架的应用程序。优选的,应用程序框架设置一个或者多个消息接收者,每一个消息接收者可以对应于一个或者多个应用程序,优选的,每一个消息接收者对应的多个应用程序之间具有关联性,例如多个应用程序由同一个开发者开发,或者多个应用程序属于相同的类型。
如果发出第一注册信息的应用程序与应用程序框架当前的任一个消息接收者均不匹配,则可以设定新的消息接收者,新的消息接收者对应于当前的发出第一注册信息的应用程序。
第二记录模块605用于根据第二注册信息,将应用程序对应的消息接收者记录在接收目标消息的第二接收队列中。优选的,如果应用程序框架的对个应用程序均需要接收目标消息,且多个应用程序分别对应于多个消息接收者,则多个消息接收者均被记录到第二接收队列中。如果原生应用程序发送目标消息以后,消息管理模块将向多个消息接收者分别发送目标消息,这样,应用程序框架的多个应用程序均可以接收到原生应用程序发出的目标消息。
本发明的实施例还提供应用程序框架接收原生应用程序发出的目标消息的控制装置,参见图7,本实施例包括目标消息接收模块701、第一查找模块702、第一发送模块703、第二查找模块704以及第二发送模块705。
其中,目标消息接收模块701用于接收目标消息,如操作系统的消息管理模块接收原生应用程序发送的目标消息,优选的,目标消息包含有目标消息的名称、类型等信息。
第一查找模块702用于查找与目标消息对应的第三接收队列,例如由操作系统的消息管理模块通过目标消息的名称、ID等查找与目标消息对应的第三接收队列。
第一发送模块703用于向第一接收队列中的消息接收者发送目标消息。优选的,第三接收队列中的多个消息接收者可以是另一原生应用程序的消息接收者,也可以是应用程序框架的消息接收者。并且,消息管理模块根据目标消息的类型发送目标消息,如目标消息是普通消息,则直接向消息接收者发送目标消息,如果目标消息是有序消息,则根据预设的顺序,依次向多个消息接收者发送目标消息。如果目标消息是粘性消息,则需要在消息接收者对应的应用程序处于活动状态时发送目标消息。
第二查找模块704用于应用程序框架的消息接收者接收到目标消息以后,从应用程序框架的第四接收队列中查找与该接收者对应的目标应用程序,本实施例中,第四接收队列是应用程序框架中需要接收目标消息的多个应用程序所在的队列,但第四队列中的多个应用程序并不全部对应于一个消息接收者,因此,消息接收者需要从第四接收队列中查找与自己对应的应用程序。
第二发送模块705用于在消息接收者从第四接收队列中查找到对应的目标应用程序以后,向对应的目标应用程序发送目标消息,从而实现原生应用程序向应用程序框架的应用程序发送目标消息的过程。
当然,应用程序框架的应用程序接收到目标消息以后,还需要将目标消息分发至应用程序的功能模块,例如分发至某一进程。因此,在目标应用程序接收目标消息后,查找与目标消息对应的第五接收队列。本实施例中,第五接收队列是目标应用程序记录的接收目标消息的队列,该队列中包含有目标应用程序的一个或者多个功能模块。在目标应用程序查找到第五接收队列以后,向第五接收队列中的目标功能模块发送目标消息。优选的,可以根据目标消息的类型,按照预设的规则向目标功能模块发送目标消息。
本发明实施例还提供应用程序框架的应用程序向原生应用程序发送目标消息的装置,参见图8,该装置包括目标消息接收模块801、目标消息发送模块802、第三查找模块803以及第三发送模块804。
目标消息接收模块801用于接收应用程序框架的应用程序发出的目标消息,优选的,目标消息包括有目标消息的名称、类型等信息。
目标消息发送模块802用于应用程序框架向操作系统的消息管理模块发送目标消息,应用程序框架将目标消息的名称、类型等一并发送至消息管理模块。
第三查找模块803用于消息管理模块查找与目标消息对应的第六接收队列,第六接收队列包含有多个消息接收者,每一个消息接收者对应于一个原生应用程序。当然,一个原生应用程序可以有多个消息接收者,多个消息接收者分别接收同一个目标消息。
第三发送模块804用于消息管理模块向第六接收队列中的每一个消息接收者发送目标消息。这样可以实现原生应用程序接收应用程序框架的应用程序发送的目标消息。
本发明实施例还提供了一种终端设备,如图9所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文缩写:PDA)等任意终端设备。
参考图9,终端设备包括有处理器901、存储器902、电源903以及存储在存储器中并可在处理器上运行的计算机程序。其中,处理器901执行计算机程序时实现上述各个信息处理方法实施例中的步骤,例如图1所示的步骤S101至S109等。或者,处理器执行计算机程序时实现上述各装置实施例中各模块或单元的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明。上述的一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。
本领域技术人员可以理解,图9中示出的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,例如上述的终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
当然,上述的方案只是本发明优选的实施方案,实际应用是还可以有更多的变化,例如,目标消息的类型改变、获取第一注册信息的方式的改变,这样的改变并不影响本发明的实施,也应该包括在本发明的保护范围内。

Claims (9)

1.一种终端设备控制方法,其特征在于,该方法包括:
应用程序框架获取目标应用程序的第一注册信息,所述第一注册信息用于所述目标应用程序注册接收目标消息,所述第一注册信息是所述应用程序框架从所述目标应用程序的配置文件中的描述信息中进行解析得到的,或者,是所述目标应用程序向应用程序框架主动发送的用于声明需要接收某一种消息的注册信息;
所述应用程序框架根据所述第一注册信息,将所述目标应用程序记录在接收所述目标消息的第一接收队列中;
所述应用程序框架根据所述第一注册信息,向操作系统的消息管理模块发送第二注册信息,所述第二注册信息用于应用程序框架注册接收所述目标消息;
所述消息管理模块根据所述第二注册信息,设定对应于所述目标应用程序的消息接收者,将所述消息接收者记录到第二接收队列中,所述第二接收队列是所述操作系统的消息管理模块记录的用于接收原生应用程序发送的消息的队列;
所述消息管理模块接收原生应用程序发送的目标消息,并查找与所述目标消息对应的第三接收队列;
所述消息管理模块向所述第三接收队列中的每一个消息接收者发送所述目标消息,以使所述应用程序框架的消息接收者接收到所述目标消息;
所述应用程序框架的消息接收者在接收到所述消息管理模块发送的所述目标消息之后,将所述目标消息发送至所述目标应用程序。
2.根据权利要求1所述的终端设备控制方法,其特征在于,设定对应于所述目标应用程序的消息接收者,将所述消息接收者记录到所述第二接收队列中包括:
查找所述应用程序框架已设定的消息接收者,并判断所设定的消息接收者是否与目标应用程序相匹配,如不匹配,设定新的消息接收者,并将新设定的消息接收者记录到所述第二接收队列中。
3.根据权利要求1至2任一项所述的终端设备控制方法,其特征在于,获取目标应用程序的第一注册信息包括:
获取目标应用程序的配置文件,并获取所述配置文件中的描述信息,从描述信息中获取第一注册信息;或者
接收目标应用程序发送的第一注册信息。
4.根据权利要求1所述的方法,其特征在于,所述应用程序框架的消息接收者在接收到所述消息管理模块发送的所述目标消息之后,将所述目标消息发送至所述目标应用程序包括:
所述消息接收者查找应用程序框架记录的与所述目标消息对应的第四接收队列,并向所述第四接收队列中的目标应用程序发送所述目标消息。
5.根据权利要求4所述的终端设备控制方法,其特征在于,所述消息接收者对应于至少一个目标应用程序;
向所述第四接收队列中的目标应用程序发送所述目标消息包括:所述消息接收者从所述第四接收队列中查找对应于该消息接收者的目标应用程序,并且向对应于该消息接收者的目标应用程序发送所述目标消息。
6.一种终端设备控制方法,其特征在于,包括:
原生应用程序向操作系统的消息管理模块发送注册信息,所述注册信息用于声明所述原生应用程序需要接收应用程序框架上的目标应用程序发送的消息;
所述消息管理模块将所述原生应用程序记录在接收所述目标应用程序发送的消息的第六接收队列中;
所述应用程序框架接收目标应用程序发送的目标消息,所述目标应用程序为运行在所述应用程序框架上的应用程序,所述目标消息的预设标志位处设定相应地标志,用于声明当前发送的消息的类型,所述目标消息包括所述目标消息的发送方;
所述应用程序框架将所述目标消息发送至操作系统的消息管理模块;
所述消息管理模块接收到所述目标消息之后,查找出与所述目标消息对应的第六接收队列;
所述消息管理模块向所述第六接收队列中原生应用程序对应的消息接收者发送所述目标消息,以使所述原生应用程序接收到所述目标消息。
7.一种终端设备控制装置,其特征在于,该装置包括:
第一注册信息获取模块,用于应用程序框架获取目标应用程序的第一注册信息,所述第一注册信息用于所述目标应用程序注册接收目标消息,所述第一注册信息是所述应用程序框架从所述目标应用程序的配置文件中的描述信息中进行解析得到的,或者,是所述目标应用程序向应用程序框架主动发送的用于声明需要接收某一种消息的注册信息;
第一记录模块,用于所述应用程序框架根据所述第一注册信息,将所述目标应用程序记录在接收所述目标消息的第一接收队列中;
第二注册信息发送模块,用于所述应用程序框架根据所述第一注册信息,向操作系统的消息管理模块发送第二注册信息,所述第二注册信息用于应用程序框架注册接收所述目标消息;
第二记录模块,用于所述消息管理模块根据所述第二注册信息,设定对应于所述目标应用程序的消息接收者,将所述消息接收者记录到第二接收队列中,所述第二接收队列是所述操作系统的消息管理模块记录的用于接收原生应用程序发送的消息的队列;
目标消息接收模块,用于所述消息管理模块接收原生应用程序发送的目标消息,并查找与所述目标消息对应的第三接收队列;
第一查找模块,用于所述消息管理模块向所述第三接收队列中的每一个消息接收者发送所述目标消息,以使所述应用程序框架的消息接收者接收到所述目标消息;
第二查找模块,用于所述应用程序框架的消息接收者在接收到所述消息管理模块发送的所述目标消息之后,将所述目标消息发送至所述目标应用程序。
8.一种终端设备,其特征在于,所述终端设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至6中任意一项所述终端设备控制方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至6中任意一项所述终端设备控制方法的步骤。
CN201810634186.4A 2018-06-20 2018-06-20 一种终端设备控制方法及装置、终端设备及计算机可读存储介质 Active CN110618874B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810634186.4A CN110618874B (zh) 2018-06-20 2018-06-20 一种终端设备控制方法及装置、终端设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810634186.4A CN110618874B (zh) 2018-06-20 2018-06-20 一种终端设备控制方法及装置、终端设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110618874A CN110618874A (zh) 2019-12-27
CN110618874B true CN110618874B (zh) 2023-11-07

Family

ID=68920365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810634186.4A Active CN110618874B (zh) 2018-06-20 2018-06-20 一种终端设备控制方法及装置、终端设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110618874B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1585281A1 (en) * 2004-04-07 2005-10-12 Siemens Aktiengesellschaft A method and arrangements for dynamically reconfiguring a presence enabled application framework within a communication network
CN104169858A (zh) * 2013-12-03 2014-11-26 华为技术有限公司 一种终端设备识别用户手势的方法和设备
CN106937258A (zh) * 2017-03-10 2017-07-07 广东欧珀移动通信有限公司 一种广播的控制方法、装置及移动终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1585281A1 (en) * 2004-04-07 2005-10-12 Siemens Aktiengesellschaft A method and arrangements for dynamically reconfiguring a presence enabled application framework within a communication network
CN104169858A (zh) * 2013-12-03 2014-11-26 华为技术有限公司 一种终端设备识别用户手势的方法和设备
CN106937258A (zh) * 2017-03-10 2017-07-07 广东欧珀移动通信有限公司 一种广播的控制方法、装置及移动终端

Also Published As

Publication number Publication date
CN110618874A (zh) 2019-12-27

Similar Documents

Publication Publication Date Title
CN110688232B (zh) 应用程序调用方法、终端设备及计算机可读存储介质
CN109391676B (zh) 终端设备控制方法、终端设备及计算机可读存储介质
US8943164B2 (en) Apparatus and methods for retrieving/ downloading content on a communication device
EP1745662B1 (en) Method and apparatus for displaying messages in idle state of mobile terminal
CN110990075B (zh) 快应用的启动方法、装置、设备及存储介质
CN110990105B (zh) 界面显示方法、装置、电子设备及存储介质
US20080117991A1 (en) Partitioning Compression-Based Firmware Over the Air
EP2919440A1 (en) Advertisement processing method and device
CN111026491B (zh) 界面显示方法、装置、电子设备、服务器及存储介质
CN110059273B (zh) 一种在移动终端上显示富媒体的方法及移动终端
CN110727469B (zh) 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质
US8990929B2 (en) Auditing application activities
CN106681749B (zh) 基于安卓平台的局部代码补丁更新方法及装置
CN111258590B (zh) 一种代码执行方法、装置和用于代码执行的装置
CN111432001B (zh) 用于跳转场景的方法、装置、电子设备和计算机可读介质
WO2023103759A1 (zh) 服务调用方法、系统、装置、设备及存储介质
CN108519922A (zh) 信息推送方法及装置、终端设备及计算机可读存储介质
JP2005228183A (ja) プログラム実行方法、および、プログラム実行のための計算機システム
CN111221613B (zh) 程序调用方法及装置、存储介质
CN116233217B (zh) 基于路由的页面跳转方法、装置、电子设备及存储介质
CN110618874B (zh) 一种终端设备控制方法及装置、终端设备及计算机可读存储介质
CN110908629A (zh) 电子设备操作方法、装置、电子设备和存储介质
CN110609751B (zh) 一种终端设备控制方法及装置、终端设备及计算机可读存储介质
CN114912048B (zh) 页面投放的方法、装置、存储介质及电子设备
KR100695218B1 (ko) 이동통신 단말기에서 복수의 미들렛을 동시에디스플레이하는 방법

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