应用程序启动方法和电子设备与流程

文档序号:34729622发布日期:2023-07-07 23:15阅读:18来源:国知局
应用程序启动方法和电子设备与流程

本技术涉及电子,具体涉及一种应用程序启动方法和电子设备。


背景技术:

1、当前,应用程序在电子设备中的运行方式有多种多样,例如有的应用程序可以通过电子设备的桌面图标启动运行,有的应用程序可以以小程序形式嵌入其他应用程序中,并在其他应用程序的运行界面启动运行。

2、在应用程序以小程序形式嵌入其他应用程序的场景中,从小程序开始启动到应用界面完全加载出来这一过程,通常需要进行域名系统(domain name system,dns)解析,以获取互联网协议地址(internet protocol address,ip地址)进行网络访问。然而,对于相关技术来说,dns解析时间通常较长,导致小程序启动过程较慢。


技术实现思路

1、本技术提供了一种应用程序启动方法和电子设备,能够减少dns解析时间,加快小程序的启动过程。

2、第一方面,本技术提供一种应用程序启动方法,该方法由电子设备执行,包括:在接收到用户输入的第一操作时,识别当前场景,所述第一操作请求启动第一应用;若识别到当前场景为目标场景,则查询是否缓存有所述第一应用对应的第一域名,所述目标场景包括应用程序的启动场景;若缓存有所述第一应用对应的第一域名且缓存有效,则进行dns预解析,以及将解析得到的ip地址更新至java层缓存和/或native层缓存。

3、其中,第一应用可以为嵌入其他应用程序中的应用小程序,也可以为独立的应用程序,第一操作可以为对第一应用的图标的点击操作,也可以为其他形式的启动运行应用的操作。目标场景可以包括应用程序的启动场景,例如可以为小程序启动场景。

4、当第一应用(应用小程序)开始启动,电子设备便开始执行dns预解析过程。在一个实现方式中,电子设备的存储器中可以缓存有不同应用程序与不同域名之间的对应关系,例如可以是不同应用程序的应用标识与不同域名之间的对应关系。电子设备可以根据第一应用的应用标识和该对应关系,查询是否缓存有第一应用对应的第一域名。如果缓存有第一应用对应的第一域名,并且缓存的域名有效,则进行dns预解析,并将解析得到的ip地址更新至java层缓存和/或native层缓存。

5、由此,通过预先将第一应用需要的ip地址缓存在java层和native层,那么在后续实际进行dns解析时,能够从java层缓存或native层缓存直接获取到对应的ip地址的概率就会较大,便可以快速从java层缓存或native层缓存获取到对应的ip地址,减少与服务器之间的交互,从而减少了dns解析时间,加快了小程序的启动过程。

6、结合第一方面,在第一方面的有些实现方式中,上述映射关系还包括每个域名的最后更新时间,所述方法还包括:若当前时间与所述第一域名的最后更新时间之间小于缓存有效阈值,则确定所述第一域名的缓存有效。

7、上述映射关系还包括每个域名的最后更新时间,也即对域名最后一次访问的时间。电子设备可以设置一个缓存有效阈值,如果当前时间与第一域名的最后更新时间之差小于缓存有效阈值,则认为缓存的第一域名有效,如果当前时间与第一域名的最后更新时间之差不小于缓存有效阈值,则认为缓存的第一域名无效。

8、结合第一方面,在第一方面的有些实现方式中,上述进行dns预解析,以及将解析得到的ip地址更新至java层缓存和/或native层缓存,包括:

9、从java层查询所述第一域名对应的ip地址;

10、若所述java层缓存有所述第一域名对应的ip地址且缓存有效,则停止dns预解析;

11、若所述java层没有缓存所述第一域名对应的ip地址或缓存无效,则从native层查询所述第一域名对应的ip地址;

12、若所述native层缓存有所述第一域名对应的ip地址且缓存有效,则停止dns预解析,以及将所述ip地址更新至所述java层缓存;

13、若所述native层没有缓存所述第一域名对应的ip地址或缓存无效,则向服务器查询所述第一域名对应的ip地址;

14、将从所述服务器查询到的ip地址更新至java层缓存和native层缓存,以及停止dns预解析。

15、其中,dns预解析过程也相当于经历了一次dns解析,但与实际进行dns解析过程不同的是,在dns预解析过程中,当查询到第一域名对应的ip地址之后,并不需要将ip地址返回给第一应用,只需要将ip地址更新至java层缓存和native层缓存,以及停止该dns预解析过程即可。这里将ip地址更新至java层缓存和native层缓存的目的在于后续实际进行dns解析时,可以直接从java层缓存或native层缓存获取到对应的ip地址,无需在于服务器进行交互。

16、结合第一方面,在第一方面的有些实现方式中,在所述将解析得到的ip地址更新至java层缓存和/或native层缓存之后,所述方法还包括:在加载所述第一应用的运行界面之前,进行dns解析。

17、其中,电子设备可以启动一个线程执行dns预解析,另一个线程执行原有的应用程序启动过程,两个线程互不干扰。那么,在dns预解析之后,在原有的程序启动过程中加载第一应用的运行界面之前,则可以进行实际的dns解析过程。

18、在一个实现方式中,上述进行dns解析,包括:

19、通过所述第一应用向java层申请查询所述第一域名对应的ip地址;

20、若所述java层缓存有所述第一域名对应的ip地址且缓存有效,则向所述第一应用返回所述ip地址;

21、若所述java层没有缓存所述第一域名对应的ip地址或缓存无效,则通过所述第一应用向native层申请查询所述第一域名对应的ip地址;

22、若所述native层缓存有所述第一域名对应的ip地址且缓存有效,则向所述第一应用返回所述ip地址。

23、其中,该dns解析过程可以采用android操作系统具有的原生dns缓存机制,通过java层缓存、native层缓存或者服务器获取域名对应的ip地址。因在本技术中已经进行过dns预解析,ip地址在java层缓存和native层缓存有效的概率较大,因此大概率可以从java层缓存或native层缓存获取到对应的ip地址,减少了dns解析时间。

24、结合第一方面,在第一方面的有些实现方式中,在向所述第一应用返回所述ip地址之后,所述方法还包括:通过所述第一应用根据所述ip地址访问网络资源,加载所述第一应用的运行界面。

25、在第一应用接收到ip地址后,便可以根据该ip地址访问网络资源,过程可以包括不限于根据ip地址通过tcp/ip三次握手协议,与服务器之间建立tcp连接,并发起http请求,以请求下载html等网络资源,最后解析html网络资源并渲染应用界面等过程。

26、结合第一方面,在第一方面的有些实现方式中,若没有缓存所述第一应用对应的第一域名或缓存失效,所述方法还包括:启动监听dns解析任务;当监听到dns解析过程,将所述第一域名与所述第一应用之间的对应关系、以及访问所述第一域名的时间进行缓存。

27、其中,在存储器中没有缓存第一应用对应的第一域名或者缓存失效的情况下,启动监听dns解析任务,用于监听后续实际进行dns解析的过程,并将监听到的域名进行缓存,以及缓存最后更新时间,便于后续第一应用再次访问该域名时,可以从缓存中查询域名进行dns预解析。

28、在一个实现方式中,电子设备监听到dns解析过程,以及获取所述第一应用访问的第一域名的过程可以包括:第一应用向java层申请查询第一域名对应的ip地址。java层查询是否缓存有第一域名对应的ip地址且缓存有效,若有缓存且缓存有效,则java层向第一应用返回该ip地址,以及java层返回第一域名;若没有缓存或缓存无效,则第一应用向native层申请查询第一域名对应的ip地址。native层查询是否缓存有第一域名对应的ip地址且缓存有效,若有缓存且缓存有效,native层向第一应用返回该ip地址,将该ip地址更新至java层缓存,以及返回第一域名;若没有缓存或缓存无效,则第一应用通过网络模块向服务器申请查询第一域名对应的ip地址。服务器向第一应用返回该ip地址,将ip地址更新至java层缓存和native层缓存,以及返回第一域名。

29、结合第一方面,在第一方面的有些实现方式中,上述启动监听dns解析任务,包括:在预设的监听时长内执行监听dns解析任务。

30、该实现方式中,因应用程序启动一般不会耗时过长,为减少电子设备的处理功耗,电子设备还可以设置一个监听时长,仅在该监听时长内执行监听dns解析任务,超过该监听时长则不再进行监听。例如,监听时长可以设置为10秒。

31、第二方面,本技术提供一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面及上述第一方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块或单元、处理模块或单元等。

32、第三方面,本技术提供一种电子设备,电子设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得电子设备执行第一方面的技术方案中任意一种方法。

33、第四方面,本技术提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。

34、可选地,芯片还包括存储器,存储器与处理器通过电路或电线连接。

35、进一步可选地,芯片还包括通信接口。

36、第五方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面的技术方案中任意一种方法。

37、第六方面,本技术提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面的技术方案中任意一种方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1