CN112468611A - 应用程序启动方法、终端设备及计算机存储介质 - Google Patents
应用程序启动方法、终端设备及计算机存储介质 Download PDFInfo
- Publication number
- CN112468611A CN112468611A CN202011356161.6A CN202011356161A CN112468611A CN 112468611 A CN112468611 A CN 112468611A CN 202011356161 A CN202011356161 A CN 202011356161A CN 112468611 A CN112468611 A CN 112468611A
- Authority
- CN
- China
- Prior art keywords
- target
- network
- address
- application program
- port
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开一种应用程序启动方法、终端设备及计算机存储介质,该方法包括:通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,该目标网络地址的地址解析结果与本地回环地址对应;在本地回环地址上,确定与上述网络请求匹配的目标端口;将上述网络请求发送至该目标端口;当第二进程监听到该目标端口接收到上述网络请求时,控制与该网络请求对应的上述目标应用程序启动。实施本申请实施例,能够不受浏览器等应用程序的自身限制而启动所需要的应用程序,从而实现应用程序间的自由跳转,提升了终端设备的使用效率。
Description
技术领域
本申请涉及电子设备技术领域,尤其涉及一种应用程序启动方法、终端设备及计算机存储介质。
背景技术
目前,在使用智能手机、平板电脑等终端设备时,常常需要从浏览器等应用程序启动另一个应用程序,这一过程需要通过Deeplink(深度链接)技术来实现。然而,在实践中发现,浏览器等应用程序的开发者出于安全或商业考虑,往往会限制可启动另一个应用程序的名单,导致无法实现应用程序间的自由跳转启动,降低了终端设备的使用效率。
发明内容
本申请实施例公开了一种应用程序启动方法、终端设备及计算机存储介质,能够不受浏览器等应用程序的自身限制而跳转启动所需要的应用程序,从而实现应用程序间的自由跳转启动,提升了终端设备的使用效率。
本申请实施例第一方面公开一种应用程序启动方法,包括:
通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,所述目标网络地址的地址解析结果与本地回环地址对应;
在所述本地回环地址上,确定与所述网络请求匹配的目标端口;
将所述网络请求发送至所述目标端口;
当第二进程监听到所述目标端口接收到所述网络请求时,控制与所述网络请求对应的所述目标应用程序启动。
本申请实施例第二方面公开一种终端设备,包括:
请求单元,用于通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,所述目标网络地址的地址解析结果与本地回环地址对应;
确定单元,用于在所述本地回环地址上,确定与所述网络请求匹配的目标端口;
发送单元,用于将所述网络请求发送至所述目标端口;
启动单元,用于当第二进程监听到所述目标端口接收到所述网络请求时,控制与所述网络请求对应的所述目标应用程序启动。
本申请实施例第三方面公开了终端设备,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本申请实施例第一方面公开的任意一种应用程序启动方法中的全部或部分步骤。
本申请实施例第四方面公开了一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本申请实施例第一方面公开的任意一种应用程序启动方法中的全部或部分步骤。
与现有技术相比,本申请实施例具有以下有益效果:
本申请实施例中,当终端设备的浏览器等应用程序的第一进程发起针对目标应用程序的跳转时,该第一进程可以向指定的目标网络地址发起一个网络请求;在此基础上,通过修改终端设备的Hosts文件,可以将该目标网络地址的地址解析结果指向本地回环地址(127.0.0.1),从而上述网络请求可以被发往本地;然后,通过进行端口映射,可以将该网络请求导向本地的目标端口;通过第二进程对该目标端口进行监听,可以在监听到该目标端口接收到上述网络请求时,控制与该网络请求对应的目标应用程序启动。可见,实施本申请实施例,能够通过网络请求的方式启动目标应用程序,由于整个过程实现在Socket(套接字)层,不受浏览器等应用程序在应用层上的限制(如白名单限制、黑名单限制等),从而绕开传统应用跳转采用Deeplink(深度链接)技术的限制,自由跳转启动所需要的应用程序,有利于实现应用程序间的自由跳转启动,提升了终端设备的使用效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图进行简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例公开的一种应用程序启动方法的应用场景示意图;
图2是本申请实施例公开的一种应用程序启动方法的流程示意图;
图3是本申请实施例公开的一种终端设备的模块化示意图;
图4是本申请实施例公开的一种应用程序启动方法的交互时序图;
图5是本申请实施例公开的另一种应用程序启动方法的流程示意图;
图6是本申请实施例公开的又一种应用程序启动方法的流程示意图;
图7是本申请实施例公开的又一种应用程序启动方法的流程示意图;
图8是本申请实施例公开的另一种终端设备的模块化示意图;
图9是本申请实施例公开的又一种终端设备的模块化示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例公开了一种应用程序启动方法、终端设备及计算机存储介质,能够不受浏览器等应用程序的自身限制而跳转启动所需要的应用程序,从而实现应用程序间的自由跳转启动,提升了终端设备的使用效率。
以下将结合附图进行详细描述。
请参阅图1,图1是本申请实施例公开的一种应用程序启动方法的应用场景示意图。如图1所示,包括终端设备10和服务设备20。其中,终端设备10上可以运行有第一进程11和第二进程(未图示),该第一进程11可以包括浏览器等应用程序的进程,第二进程可以包括具备端口监听功能的常驻进程。需要说明的是,上述浏览器等应用程序,可以包括广义上的具备网页浏览功能的各种应用程序,如终端设备10的系统自带浏览器、第三方浏览器、内建有浏览器的各种应用程序(如微信、QQ、今日头条等)等。上述服务设备20可以与终端设备10通信连接,服务设备20上可以运行有服务端,该服务端用于对终端设备10发送的请求进行响应,或者向终端设备10传输数据、控制指令等。
在相关技术中,通过第一进程11跳转启动目标应用程序,往往需要采用采用Deeplink(深度链接)技术。示例性地,从浏览器的网页中跳转启动目标应用程序,需要先在该网页的HTML(Hyper Text Markup Language,超文本标记语言)文件中声明<a>标签的href(Hypertext Reference,超文本引用)属性跳转,然后,通过用户点击该网页上的对象11a(如图标、按钮、链接等)或者直接运行该网页的脚本,触发上述跳转,能够生成对应的Intent(意图)对象并分发,最后在目标应用程序监听了Deeplink协议的前提下响应并启动该目标应用程序。需要说明的是,上述过程的实现依赖于第一进程11顺利触发跳转,但在实践中发现,浏览器等应用程序的开发者出于安全或商业考虑,往往会限制可跳转启动的目标应用程序的名单,例如使用白名单或黑名单进行限制,导致无法实现应用程序间的自由跳转启动。
而在本申请实施例中,为了绕开上述限制,当终端设备10通过第一进程11跳转启动目标应用程序时,不会采用Deeplink技术,而是通过该第一进程11发起特定的网络请求,并通过该网络请求启动目标应用程序。示例性地,如图1所示,终端设备10上运行浏览器的第一进程11,浏览器所打开的网页上需声明与目标应用程序对应的网络请求。当需要从第一进程11跳转启动目标应用程序时(即从该网页跳转启动目标应用程序时),可以通过用户点击该网页上的对象11a或者直接运行该网页的脚本以触发跳转,此时第一进程11可以向目标网络地址发起上述网络请求;在此基础上,通过修改终端设备10的Hosts文件,可以将该目标网络地址的地址解析结果指向本地回环地址(127.0.0.1),从而上述网络请求可以被发往本地;然后,通过进行端口映射,可以将本地回环地址上默认用于接收网络请求的端口映射至被监听的目标端口,从而该网络请求被发送至该目标端口;通过第二进程对该目标端口进行监听,可以在监听到该目标端口接收到上述网络请求时,控制与该网络请求对应的目标应用程序启动。在此过程中,由于上述与目标应用程序对应的网络请求与浏览器可处理的普通网络请求无异,不会因浏览器的名单限制而被拦截。实际上,由于整个过程主要实现在Socket(套接字)层,不受浏览器等应用程序在应用层上的限制(如白名单限制、黑名单限制等),从而可以绕开传统应用跳转采用Deeplink技术的限制,自由跳转启动所需要的应用程序,有利于实现应用程序间的自由跳转启动,提升了终端设备的使用效率。
其中,上述目标应用程序可以包括快应用、原生应用程序(即已在终端设备10本地安装的应用程序)等。
需要说明的是,在上述过程中,终端设备10实际上不会向服务端发出上述网络请求。上述服务端,可以用于在上述第一进程需要获取目标网络地址时,向终端设备10传输该目标网络地址。此外,该服务端还可以在需要对上述目标网络地址进行更新时,向终端设备10发送最新的目标网络地址,以供终端设备10根据最新的目标网络地址对其Hosts文件进行修改,将最新的目标网络地址的地址解析结果指向本地回环地址。此外,上述服务端还可以事先向上述网页的开发者提供所需要声明的网络请求的相关数据(如该网络请求的格式、最新的目标网络地址等)。
请参阅图2,图2是本申请实施例公开的一种应用程序启动方法的流程示意图。如图2所示,该应用程序启动方法可以包括以下步骤:
210、通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,该目标网络地址的地址解析结果与本地回环地址对应。
在本申请实施例中,终端设备上运行的第一进程可以包括浏览器等应用程序的进程,该第一进程在跳转启动目标应用程序时,可以发起与该目标应用程序对应的网络请求。具体地,以浏览器为例,其所打开的网页上需声明与目标应用程序对应的网络请求,即该网页的开发者若希望通过该网页跳转打开目标应用程序,需要事先在该网页上声明上述网络请求,从而浏览器可以执行发起该网络请求的步骤。其中,该网络请求可以包含与目标应用程序对应的参数数据,从而终端设备可以根据该参数数据来启动上述目标应用程序。
在一种实施例中,开发者可以在该网页所调用的JS(JavaScript)文件中声明上述网络请求,该网络请求可以直接包含上述目标网络地址,也可以通过SDK(SoftwareDevelopment Kit,软件开发工具包)从服务端获取上述目标网络地址。
其中,上述目标网络地址可以包括域名或网址,该目标网络地址未与指定的IP地址(Internet Protocol Address,互联网协议地址)绑定。可以理解的是,这表示该目标网络地址无法通过DNS(Domain Name System,域名系统)解析至指定的IP地址。在此基础上,通过对终端设备的Hosts文件进行修改,将该目标网络地址的地址解析结果与本地回环地址(127.0.0.1)对应,可以使得该目标网络地址仅在该终端设备中被解析至本地回环地址,从而上述网络请求可以被发送至终端设备本地,以在本地启动目标应用程序。
通过发起上述网络请求来启动目标应用程序,由于该网络请求与浏览器可处理的普通网络请求无异,因此浏览器不会对该网络请求进行拦截,从而能够因避免浏览器的名单限制导致无法跳转启动目标应用程序。
220、在本地回环地址上,确定与上述网络请求匹配的目标端口。
在一种实施例中,终端设备可以在本地回环地址上进行一次端口映射,将默认用于接收网络请求的端口映射至与上述网络请求匹配的目标端口,其中,该目标端口可以被常驻的第二进程监听,以确保终端设备及时获取上述网络请求。举例来说,默认用于接收网络请求的端口可以包括80端口(即127.0.0.1:80)等,但该端口作为通用端口,一般不允许被监听,因此需要通过端口映射将被监听的目标端口确定为与上述网络请求匹配的端口。示例性地,该目标端口可以包括12121端口(即127.0.0.1:12121)等,通过对该目标端口进行监听,能够及时获取原本发送至80端口的上述网络请求。
在另一种实施例中,当允许对默认用于接收网络请求的端口进行监听时,也可以直接将该默认用于接收网络请求的端口确定为与上述网络请求匹配的目标端口,从而方便地及时获取上述网络请求。
230、将上述网络请求发送至该目标端口。
在本申请实施例中,当确定出与上述网络请求匹配的目标端口时,第一进程可以将该网络请求发送至该目标端口,从而终端设备可以在本地接收到第一进程发起的该网络请求,以在本地执行后续启动目标应用程序的步骤。
240、当第二进程监听到该目标端口接收到上述网络请求时,控制与该网络请求对应的上述目标应用程序启动。
在本申请实施例中,第二进程可以包括具备端口监听功能的常驻进程,该第二进程常驻于终端设备后台,可以持续对上述目标端口进行监听。当该第二进程监听到该目标端口接收到上述网络请求时,可以根据该网络请求获取其中的参数数据,进而根据该参数数据,控制与该网络请求对应的目标应用程序启动。
在一种实施例中,当该第二进程监听到该目标端口接收到上述网络请求时,终端设备可以通过本地服务(Local Service)对该网络请求进行拦截,继而可以从拦截的网络请求中解析出其中的参数数据,该参数数据用于终端设备启动对应的目标应用程序。具体地,终端设备可以将该参数数据通过Content Provider(内容提供者)传递至引擎,由该引擎拉起与该参数数据对应的目标应用程序(如快应用、原生应用程序等)。
示例性地,现结合图3及图4对上述实施例进行说明。图3是本申请实施例公开的一种终端设备的模块化示意图。如图3所示,终端设备300上可以运行有第一进程310和第二进程320。此外,还可以运行有用于创建新进程的父进程330(示例性地,在安卓操作系统中,该父进程330可以为Zygote进程)。其中:
第一进程310,可用于向目标网络地址发起与目标应用程序对应的网络请求,并在确定与该网络请求匹配的本地回环地址上的目标端口340后,将该网络请求发送至该目标端口340;
第二进程320,可用于对上述目标端口340进行监听;
父进程330,可用于在上述第二进程320监听到目标端口340接收到上述网络请求时,创建与该网络请求对应的新进程,从而启动与该网络请求对应的目标应用程序。
请一并参阅图4,图4所示的应用程序启动方法可以基于如图3所述的终端设备300进行。如图4所示,在本申请实施例中,第二进程320可以为常驻的监听进程,即当终端设备300启动后,可以持续通过该第二进程320对目标端口进行监听。当需要通过浏览器等应用程序跳转启动目标应用程序时,浏览器等应用程序的第一进程310可以生成与该目标应用程序对应的网络请求,然后向目标网络地址发起该网络请求。在此基础上,由于上述目标网络地址的地址解析结果与本地回环地址对应,该第一进程310可以在本地回环地址上确定与该网络请求匹配的目标端口340,并将该网络请求发送至该目标端口340。当第二进程320监听到上述目标端口340接收到上述网络请求时,父进程330可以控制与该网络请求对应的目标应用程序启动。
可见,实施上述实施例所描述的应用程序启动方法,能够通过网络请求的方式启动目标应用程序,而由于整个过程实现在Socket层,不会受浏览器等应用程序在应用层上的限制(如白名单限制、黑名单限制等),从而能够绕开传统应用跳转采用Deeplink技术所存在的限制,自由跳转启动所需要的应用程序,有利于实现应用程序间的自由跳转启动,提升了终端设备的使用效率。
请参阅图5,图5是本申请实施例公开的另一种应用程序启动方法的流程示意图。如图5所示,该应用程序启动方法可以包括以下步骤:
510、通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,该目标网络地址的地址解析结果与本地回环地址对应。
其中,步骤510与上述步骤210类似,此处不再赘述。
520、在本地回环地址上,确定与上述网络请求对应的默认网络端口。
在本申请实施例中,由于对终端设备的Hosts文件进行了修改,可以将上述目标网络地址的地址解析结果与本地回环地址(127.0.0.1)对应绑定,因此向该目标网络地址发起的网络请求会被发送至本地回环地址的默认网络端口上。示例性地,该默认网络端口可以包括80端口(即127.0.0.1:80),即通常为HTTP(Hyper Text Transport Protocol,超文本传输协议)所开放的端口。
530、根据端口映射规则,将该默认网络端口映射至监听端口,并将该监听端口确定为与上述网络请求匹配的目标端口。
具体地,通过进行端口映射,可以将上述默认网络端口映射至监听端口,其中,该监听端口可以包括由第二进程常驻监听的端口,例如12121端口(即127.0.0.1:12121)等。这是由于终端设备的默认网络端口作为通用端口,一般不允许被监听,而通过设定端口映射规则(如将80端口映射至12121端口等),将该默认网络端口映射至允许被监听的监听端口,可以避免对默认网络端口的正常工作造成干扰;将该监听端口确定为与上述网络请求匹配的目标端口,可以通过对该监听端口进行监听,实际上实现对终端设备的默认网络端口的监听,从而及时获取上述网络请求,并根据该网络请求执行后续的应用程序启动步骤。
540、当确认上述默认网络端口映射至上述监听端口时,通过第二进程对该监听端口进行监听。
作为一种可选的实施方式,终端设备在开机后,可以先确认上述目标网络地址的地址解析结果是否与本地回环地址对应绑定,以及上述默认网络端口是否映射至上述监听端口。具体地,终端设备可以先获取终端设备所存储的Hosts文件,并根据该Hosts文件确定上述目标网络地址的地址解析与本地回环地址的对应绑定是否有效;当确认有效后,终端设备可以再确认上述默认网络端口映射至上述监听端口的端口映射服务是否存活;当确认存活后,可以启动第二进程对上述监听端口(即目标端口)进行监听,以监听该目标端口是否接收到与目标应用程序对应的网络请求。
550、将上述网络请求发送至该目标端口。
560、当第二进程监听到该目标端口接收到上述网络请求时,控制与该网络请求对应的上述目标应用程序启动。
其中,步骤550以及步骤560与上述步骤230以及步骤240类似,此处不再赘述。
可见,实施上述实施例所描述的应用程序启动方法,能够通过端口映射的方式实现对终端设备的第一进程发起的与目标应用程序对应的网络请求的监听,从而及时获取上述网络请求,提升终端设备跳转启动目标应用程序的效率,进一步提升了终端设备的使用效率。
请参阅图6,图6是本申请实施例公开的又一种应用程序启动方法的流程示意图。如图6所示,该应用程序启动方法可以包括以下步骤:
610、当第一进程发起针对目标应用程序的跳转请求时,从该跳转请求中获取服务端当前使用的目标网络地址。
在本申请实施例中,针对目标应用程序的跳转请求中可以直接包含目标网络地址,也可以包含从服务端获取该服务端当前使用的目标网络地址的方式。具体地,以浏览器为例,由于其所打开的网页上需声明与目标应用程序对应的网络请求,当执行该网络请求相应的语句时(例如通过用户点击该网页上的对象或者直接运行该网页的脚本),第一进程即发起一个针对目标应用程序的跳转请求,此时若该跳转请求(即所执行的与上述网络请求对应的语句)中不直接包含目标网络地址,则第一进程可以通过SDK从服务端获取该服务端当前使用的目标网络地址。通过获取服务端当前使用的目标网络地址,能够确保用于跳转启动目标应用程序的目标网络地址与服务端当前使用的目标网络地址保持同步,从而当服务端更新所使用的目标网络地址时,终端设备可以及时使用最新的目标网络地址,有利于确保应用程序启动的安全性。
作为一种可选的实施方式,在从该跳转请求中获取服务端当前使用的目标网络地址之前,终端设备还可以先从服务端获取该服务端当前使用的目标网络地址,然后将该目标网络地址与本地回环地址关联,以使目标网络地址的地址解析结果与本地回环地址对应。需要说明的是,通过实施上述方法所获取的目标网络地址保存在终端设备本地,与上述跳转请求中直接包含或者从服务端获取的目标网络地址虽然可以相同,但不属于同一次获取的目标网络地址。当两者相同时,可以将根据该目标网络地址生成的网络请求正常发送至终端设备本地;当两者不同时,则无法正常发送至终端设备本地,导致跳转失败。
作为另一种可选的实施方式,在将上述目标网络地址与本地回环地址关联之后,终端设备还可以接收与该目标网络地址对应的取消关联指令,并根据该取消关联指令,取消该目标网络地址与本地回环地址之间的关联。具体地,当终端设备接收到与目标网络地址对应的取消关联指令时,可以从终端设备本地存储的Hosts文件中删除该目标网络地址。可选地,当终端设备接收到与目标网络地址对应的更新关联指令时,也可以取消原目标网络地址与本地回环地址之间的关联,并重新将最新的目标网络地址与本地回环地址对应绑定,从而在终端设备本地完成对目标网络地址的更新,提升应用程序启动的安全性。
620、根据该目标网络地址和上述目标应用程序,生成与该目标应用程序对应的网络请求。
具体地,与目标应用程序对应的网络请求可以包含上述目标网络地址和目标应用程序的属性信息,从而终端设备可以根据该目标网络地址确定该网络请求的目的地,并根据该目标应用程序的属性信息启动对应的目标应用程序。
请一并参阅图4,如图4所示,服务端410可以运行在服务设备400上。在浏览器等应用程序的第一进程310生成与目标应用程序对应的网络请求之前,该第一进程310可以先发起针对目标应用程序的跳转请求,然后第一进程310再从该跳转请求中获取服务端410当前使用的目标网络地址,其中,可以包括第一进程310向服务端410发送目标网络地址获取请求,再由该服务端410将该服务端410当前使用的目标网络地址发送至终端设备,并由第一进程310获取使用。在此基础上,第一进程310可以根据该目标网络地址和上述目标应用程序,生成与该目标应用程序对应的网络请求。
630、通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,该目标网络地址的地址解析结果与本地回环地址对应。
其中,步骤630与上述步骤210类似,此处不再赘述。
640、在本地回环地址上,确定与上述网络请求对应的默认网络端口。
650、根据端口映射规则,将该默认网络端口映射至监听端口,并将该监听端口确定为与上述网络请求匹配的目标端口。
660、当确认上述默认网络端口映射至上述监听端口时,通过第二进程对该监听端口进行监听。
其中,步骤640、步骤650以及步骤660与上述步骤520、步骤530以及步骤540类似,此处不再赘述。
670、将上述网络请求发送至该目标端口。
680、当第二进程监听到该目标端口接收到上述网络请求时,控制与该网络请求对应的上述目标应用程序启动。
其中,步骤670以及步骤680与上述步骤230以及步骤240类似,此处不再赘述。
可见,实施上述实施例所描述的应用程序启动方法,能够确保通过服务端当前使用的目标网络地址实现后续的应用程序启动步骤,并提供了更新和停止的措施,有利于提升通过网络请求来启动目标应用程序的安全性。
请参阅图7,图7是本申请实施例公开的又一种应用程序启动方法的流程示意图。如图7所示,该应用程序启动方法可以包括以下步骤:
710、当第一进程发起针对目标应用程序的跳转请求时,从该跳转请求中获取服务端当前使用的目标网络地址。
720、根据该目标网络地址和上述目标应用程序,生成与该目标应用程序对应的网络请求。
其中,步骤710以及步骤720与上述步骤610以及步骤620类似,此处不再赘述。
730、通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,该目标网络地址的地址解析结果与本地回环地址对应。
其中,步骤730与上述步骤210类似,此处不再赘述。
740、在本地回环地址上,确定与上述网络请求对应的默认网络端口。
750、根据端口映射规则,将该默认网络端口映射至监听端口,并将该监听端口确定为与上述网络请求匹配的目标端口。
760、当确认上述默认网络端口映射至上述监听端口时,通过第二进程对该监听端口进行监听。
其中,步骤740、步骤750以及步骤760与上述步骤520、步骤530以及步骤540类似,此处不再赘述。
770、将上述网络请求发送至该目标端口。
其中,步骤770与上述步骤230类似,此处不再赘述。
780、当第二进程监听到该目标端口接收到上述网络请求时,从该网络请求中获取参数数据。
具体地,上述网络请求中可以包含与目标应用程序对应的参数数据,包括应用程序包名、启动字段等,从而终端设备可以根据上述参数数据控制对应的目标应用程序启动。具体地,以安卓操作系统为例,终端设备可以将上述参数数据通过Content Provider(内容提供者)传递至引擎,由该引擎拉起与该参数数据对应的目标应用程序,包括通过Zygote进程创建与该目标应用程序对应的新进程,从而启动该目标应用程序。
790、根据该参数数据,控制与该参数数据对应的上述目标应用程序启动。
在一种实施例中,该参数数据可以包括应用程序包名,从而在控制与该参数数据对应的目标应用程序启动之前,终端设备还可以根据校验规则对该应用程序包名进行包名校验;当校验通过时,可以控制与该应用程序包名对应的目标应用程序启动。具体地,上述包名校验可以包括包名格式校验、包名存在性校验、包名名单校验等。示例性地,当所获取的应用程序包名为“Wechat”时,终端设备可以校验该应用程序包名是否符合设定的包名格式,以及该应用程序包名对应的目标应用程序在终端设备本地是否存在,以及该应用程序包名是否处于终端设备厂商设置的白名单或黑名单中。当上述包名校验均通过时(即“Wechat”符合设定的包名格式,对应的目标应用程序在终端设备本地已安装,且处于终端设备厂商设备的白名单中或不处于黑名单中),可以控制与“Wechat”对应的目标应用程序启动。通过实施上述方法,能够确保该应用程序包名可以对应于终端设备本地已安装的原生应用程序或者终端设备可以启动的快应用等,有利于提升应用程序启动的有效性和安全性。
在另一种实施例中,根据上述参数数据,还可以确定与该参数数据对应的目标应用程序以及该目标应用程序的启动状态数据,其中,启动状态数据可以包括启动位置、启动资源和启动权限中的一种或多种。进一步地,终端设备可以按照该启动状态数据,控制对应的目标应用程序启动。示例性地,上述启动位置可以包括目标应用程序中可启动的特定界面或窗口,上述启动资源可以包括目标应用程序中可调用的资源(如图像、文字、语音、视频、链接等),上述启动权限可以包括目标应用程序需启用的权限(如通话权限、地理位置权限、相机权限等)。通过实施上述方法,能够在跳转启动目标应用程序的同时,将该目标应用程序打开至与上述启动状态数据对应的状态,从而减少用户的进一步操作,进一步提升终端设备的使用效率。
可见,实施上述实施例所描述的应用程序启动方法,能够根据网络请求中携带的参数数据启动对应的目标应用程序,并同时对该跳转进行适当的校验,以确保应用程序跳转启动的安全性和有效性;此外,通过对上述参数数据进行解析,还能够将该目标应用程序打开至用户所需要的状态,从而减少用户的进一步操作,进一步提升终端设备的使用效率。
请参阅图8,图8是本申请实施例公开的另一种终端设备的模块化示意图。如图8所示,该终端设备可以包括请求单元810、确定单元820、发送单元830以及启动单元840,其中:
请求单元810,用于通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,该目标网络地址的地址解析结果与本地回环地址对应;
确定单元820,用于在本地回环地址上,确定与上述网络请求匹配的目标端口;
发送单元830,用于将上述网络请求发送至该目标端口;
启动单元840,用于当第二进程监听到该目标端口接收到上述网络请求时,控制与该网络请求对应的上述目标应用程序启动。
可见,采用上述实施例所描述的终端设备,能够通过网络请求的方式启动目标应用程序,而由于整个过程实现在Socket层,不会受浏览器等应用程序在应用层上的限制(如白名单限制、黑名单限制等),从而能够绕开传统应用跳转采用Deeplink技术所存在的限制,自由跳转启动所需要的应用程序,有利于实现应用程序间的自由跳转启动,提升了终端设备的使用效率。
作为一种可选的实施方式,图8所示的确定单元820可以包括未图示的第一确定子单元以及第二确定子单元,其中:
第一确定子单元,可以用于在本地回环地址上,确定与上述网络请求对应的默认网络端口;
第二确定子单元,可以用于根据端口映射规则,将上述默认网络端口映射至监听端口,并将该监听端口确定为与上述网络请求匹配的目标端口。
作为一种可选的实施方式,图8所示的终端设备还可以包括未图示的监听单元,该监听单元可以用于在上述发送单元830将上述网络请求发送至该目标端口之前,当确认上述第二确定子单元将默认网络端口映射至监听端口时,通过第二进程对该监听端口进行监听。
采用上述实施例所描述的终端设备,能够通过端口映射的方式实现对终端设备的第一进程发起的与目标应用程序对应的网络请求的监听,从而及时获取上述网络请求,提升终端设备跳转启动目标应用程序的效率,进一步提升了终端设备的使用效率。
作为一种可选的实施方式,图8所示的终端设备还可以包括未图示的第一获取单元和生成单元,其中:
第一获取单元,可以用于在上述发送单元830将上述网络请求发送至该目标端口之前,当第一进程发起针对目标应用程序的跳转请求时,从该跳转请求中获取服务端当前使用的目标网络地址;
生成单元,可以用于根据该目标网络地址和上述目标应用程序,生成与该目标应用程序对应的网络请求。
采用上述实施例所描述的终端设备,能够使得终端设备使用最新的目标网络地址,有利于确保应用程序启动的安全性。
作为一种可选的实施方式,图8所示的终端设备还可以包括未图示的第二获取单元、地址关联单元、接收单元以及取消地址关联单元,其中:
第二获取单元,可以用于在上述请求单元810通过第一进程向目标网络地址发起与目标应用程序对应的网络请求之前,从服务端获取该服务端当前使用的目标网络地址;
地址关联单元,可以用于将该目标网络地址与本地回环地址关联,以使该目标网络地址的地址解析结果与本地回环地址对应;
接收单元,可以用于接收与该目标网络地址对应的取消关联指令;
取消地址关联单元,可以用于根据上述取消关联指令,取消上述目标网络地址与本地回环地址之间的关联。
采用上述实施例所描述的终端设备,能够确保通过服务端当前使用的目标网络地址实现后续的应用程序启动步骤,并提供了更新和停止的措施,有利于提升通过网络请求来启动目标应用程序的安全性。
作为一种可选的实施方式,图8所示的启动单元840可以包括未图示的参数获取子单元以及控制启动子单元,其中:
参数获取子单元,可以用于当第二进程监听到上述目标端口接收到上述网络请求时,从该网络请求中获取参数数据;
控制启动子单元,可以用于根据上述参数数据,控制与该参数数据对应的所述目标应用程序启动。
在一种实施例中,上述控制启动子单元具体可以用于先根据校验规则对该参数数据进行校验,当校验通过时,再控制与该参数数据对应的上述目标应用程序启动。
在另一种实施例中,上述控制启动子单元具体也可以用于先根据该参数数据,确定与该参数数据对应的目标应用程序以及该目标应用程序的启动状态数据,然后再按照该启动状态数据,控制上述目标应用程序启动。
其中,上述启动状态数据可以包括启动位置、启动资源和启动权限中的一种或多种。
可见,采用上述实施例所描述的终端设备,能够根据网络请求中携带的参数数据启动对应的目标应用程序,并同时对该跳转进行适当的校验,以确保应用程序跳转启动的安全性和有效性;此外,通过对上述参数数据进行解析,还能够将该目标应用程序打开至用户所需要的状态,从而减少用户的进一步操作,进一步提升终端设备的使用效率。
请参阅图9,图9是本申请实施例公开的另一种终端设备的模块化示意图。如图9所示,该终端设备可以包括一个或多个如下部件:
存储有可执行程序代码的存储器910;
与存储器910耦合的处理器920;
其中,存储器910可存储有一个或多个应用程序,一个或多个应用程序可以被配置为由一个或多个处理器920执行,一个或多个程序配置用于执行如上述实施例所描述的应用程序启动方法。
处理器910可以包括一个或者多个处理核。处理器910利用各种接口和线路连接整个终端设备内的各个部分,通过运行或执行存储在存储器920内的指令、程序、代码集或指令集,以及调用存储在存储器920内的数据,执行终端设备的各种功能和处理数据。可选地,处理器910可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器910可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器910中,单独通过一块通信芯片进行实现。
存储器920可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器920可用于存储指令、程序、代码、代码集或指令集。存储器920可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等。存储数据区还可以存储终端设备在使用中所创建的数据等。
尽管未示出,终端设备还可以包括摄像头、蓝牙模块等,在此不再赘述。
此外,本申请实施例进一步公开了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机可以执行上述实施例所描述的任意一种应用程序启动方法中的全部或部分步骤。
此外,本申请实施例进一步公开一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机可以执行上述实施例所描述的任意一种应用程序启动方法中的全部或部分步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本申请实施例公开的一种应用程序启动方法、终端设备及计算机存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种应用程序启动方法,其特征在于,包括:
通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,所述目标网络地址的地址解析结果与本地回环地址对应;
在所述本地回环地址上,确定与所述网络请求匹配的目标端口;
将所述网络请求发送至所述目标端口;
当第二进程监听到所述目标端口接收到所述网络请求时,控制与所述网络请求对应的所述目标应用程序启动。
2.根据权利要求1所述的方法,其特征在于,所述在所述本地回环地址上,确定与所述网络请求匹配的目标端口,包括:
在所述本地回环地址上,确定与所述网络请求对应的默认网络端口;
根据端口映射规则,将所述默认网络端口映射至监听端口,并将所述监听端口确定为与所述网络请求匹配的目标端口。
3.根据权利要求2所述的方法,其特征在于,在所述将所述网络请求发送至所述目标端口之前,所述方法还包括:
当确认所述默认网络端口映射至所述监听端口时,通过第二进程对所述监听端口进行监听。
4.根据权利要求1所述的方法,其特征在于,在所述通过第一进程向目标网络地址发起与目标应用程序对应的网络请求之前,所述方法还包括:
当第一进程发起针对目标应用程序的跳转请求时,从所述跳转请求中获取服务端当前使用的目标网络地址;
根据所述目标网络地址和所述目标应用程序,生成与所述目标应用程序对应的网络请求。
5.根据权利要求4所述的方法,其特征在于,在所述从所述跳转请求中获取服务端当前使用的目标网络地址之前,所述方法还包括:
从服务端获取所述服务端当前使用的目标网络地址;
将所述目标网络地址与本地回环地址关联,以使所述目标网络地址的地址解析结果与所述本地回环地址对应。
6.根据权利要求5所述的方法,其特征在于,在所述将所述目标网络地址与本地回环地址关联之后,所述方法还包括:
接收与所述目标网络地址对应的取消关联指令;
根据所述取消关联指令,取消所述目标网络地址与所述本地回环地址之间的关联。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述当第二进程监听到所述目标端口接收到所述网络请求时,控制与所述网络请求对应的所述目标应用程序启动,包括:
当第二进程监听到所述目标端口接收到所述网络请求时,从所述网络请求中获取参数数据;
根据所述参数数据,控制与所述参数数据对应的所述目标应用程序启动。
8.根据权利要求7所述的方法,其特征在于,所述根据所述参数数据,控制与所述参数数据对应的所述目标应用程序启动,包括:
根据校验规则对所述参数数据进行校验;
当校验通过时,控制与所述参数数据对应的所述目标应用程序启动。
9.根据权利要求7所述的方法,其特征在于,所述根据所述参数数据,控制与所述参数数据对应的所述目标应用程序启动,包括:
根据所述参数数据,确定与所述参数数据对应的所述目标应用程序以及所述目标应用程序的启动状态数据;
按照所述启动状态数据,控制所述目标应用程序启动。
10.根据权利要求9所述的方法,其特征在于,所述启动状态数据包括启动位置、启动资源和启动权限中的一种或多种。
11.一种终端设备,其特征在于,包括:
请求单元,用于通过第一进程向目标网络地址发起与目标应用程序对应的网络请求,所述目标网络地址的地址解析结果与本地回环地址对应;
确定单元,用于在所述本地回环地址上,确定与所述网络请求匹配的目标端口;
发送单元,用于将所述网络请求发送至所述目标端口;
启动单元,用于当第二进程监听到所述目标端口接收到所述网络请求时,控制与所述网络请求对应的所述目标应用程序启动。
12.一种终端设备,其特征在于,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如权利要求1至10任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011356161.6A CN112468611B (zh) | 2020-11-27 | 2020-11-27 | 应用程序启动方法、终端设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011356161.6A CN112468611B (zh) | 2020-11-27 | 2020-11-27 | 应用程序启动方法、终端设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112468611A true CN112468611A (zh) | 2021-03-09 |
CN112468611B CN112468611B (zh) | 2023-04-21 |
Family
ID=74809719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011356161.6A Active CN112468611B (zh) | 2020-11-27 | 2020-11-27 | 应用程序启动方法、终端设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112468611B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115038089A (zh) * | 2022-08-09 | 2022-09-09 | 广州博今网络技术有限公司 | 一种基于信息抽取的多端数据监听采集方法 |
CN116170409A (zh) * | 2023-02-21 | 2023-05-26 | 江苏云涌电子科技股份有限公司 | 一种基于虚拟域名的sd-wan网络地址规划系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002044850A2 (en) * | 2000-11-29 | 2002-06-06 | Entropia, Inc. | System and method for securing an application for execution on a computer |
CN107463453A (zh) * | 2017-08-10 | 2017-12-12 | 腾讯科技(深圳)有限公司 | 同一终端不同应用间通信的方法、装置、设备和存储介质 |
US20180321955A1 (en) * | 2016-08-23 | 2018-11-08 | Pax Computer Technology (Shenzhen) Co., Ltd. | Method and device of running application program across systems |
US20190095541A1 (en) * | 2016-05-11 | 2019-03-28 | Alibaba Group Holding Limited | Method and system for starting application |
CN109815110A (zh) * | 2018-12-11 | 2019-05-28 | 北京城市网邻信息技术有限公司 | 一种网络端口管理方法、装置、终端设备及存储介质 |
CN110309476A (zh) * | 2019-07-05 | 2019-10-08 | 上海中通吉网络技术有限公司 | 网页浏览器调用本地应用程序的方法及装置 |
WO2020206660A1 (zh) * | 2019-04-11 | 2020-10-15 | 深圳市欢太科技有限公司 | 网络资源请求方法、装置、电子设备以及存储介质 |
-
2020
- 2020-11-27 CN CN202011356161.6A patent/CN112468611B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002044850A2 (en) * | 2000-11-29 | 2002-06-06 | Entropia, Inc. | System and method for securing an application for execution on a computer |
US20190095541A1 (en) * | 2016-05-11 | 2019-03-28 | Alibaba Group Holding Limited | Method and system for starting application |
US20180321955A1 (en) * | 2016-08-23 | 2018-11-08 | Pax Computer Technology (Shenzhen) Co., Ltd. | Method and device of running application program across systems |
CN107463453A (zh) * | 2017-08-10 | 2017-12-12 | 腾讯科技(深圳)有限公司 | 同一终端不同应用间通信的方法、装置、设备和存储介质 |
CN109815110A (zh) * | 2018-12-11 | 2019-05-28 | 北京城市网邻信息技术有限公司 | 一种网络端口管理方法、装置、终端设备及存储介质 |
WO2020206660A1 (zh) * | 2019-04-11 | 2020-10-15 | 深圳市欢太科技有限公司 | 网络资源请求方法、装置、电子设备以及存储介质 |
CN110309476A (zh) * | 2019-07-05 | 2019-10-08 | 上海中通吉网络技术有限公司 | 网页浏览器调用本地应用程序的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115038089A (zh) * | 2022-08-09 | 2022-09-09 | 广州博今网络技术有限公司 | 一种基于信息抽取的多端数据监听采集方法 |
CN116170409A (zh) * | 2023-02-21 | 2023-05-26 | 江苏云涌电子科技股份有限公司 | 一种基于虚拟域名的sd-wan网络地址规划系统 |
CN116170409B (zh) * | 2023-02-21 | 2023-07-11 | 江苏云涌电子科技股份有限公司 | 一种基于虚拟域名的sd-wan网络地址规划系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112468611B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106936793B (zh) | 一种信息拦截处理方法及终端 | |
CN108345632B (zh) | H5页面的调用方法、装置、设备及计算机可读存储介质 | |
US8490183B2 (en) | Security ensuring by program analysis on information device and transmission path | |
CN111176752B (zh) | 一种浏览器页面内嵌窗口小程序的方法及装置 | |
US8843820B1 (en) | Content script blacklisting for use with browser extensions | |
US20190327287A1 (en) | Data acquisition method and device | |
WO2016086767A1 (zh) | 实现浏览器安全的方法、浏览器客户端和装置 | |
US20150378714A1 (en) | Providing Context-Specific Software Updates to Client Applications | |
CN109240697B (zh) | 调用处理方法及装置、存储介质 | |
US8914905B2 (en) | Access control system, communication terminal, server, and access control method | |
US20120227032A1 (en) | Method, apparatus, and system for invoking widget | |
CN104536890A (zh) | 测试系统、方法和装置 | |
US20140317537A1 (en) | Browser based application program extension method and device | |
US10506400B2 (en) | Data download method and apparatus | |
US9628939B2 (en) | Data calling method and device | |
US20170257449A1 (en) | Method for forwarding traffic in application on mobile intelligent terminal | |
CN112468611B (zh) | 应用程序启动方法、终端设备及计算机存储介质 | |
JP2014071731A (ja) | ネットワークシステム、及び、プログラム | |
JP2013065114A (ja) | 情報処理システムの制御方法、中継装置の制御プログラム及びクライアント装置の制御プログラム | |
US10341346B2 (en) | Information processing method, information processing apparatus, and storage medium | |
CN108600377B (zh) | 一种文件下载的暂停方法、装置、终端和存储介质 | |
US9251362B2 (en) | Medium for storing control program, client apparatus, and control method for client apparatus | |
CN108345683B (zh) | 网页显示方法、装置、终端及存储介质 | |
TW201929507A (zh) | 物件上傳方法及裝置 | |
US20190098045A1 (en) | Browser injection prevention method, browser client and apparatus |
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 |