System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及應用程序運行,特別涉及一種應用程序的運行方法及電子設備。
技術介紹
1、windows系統下啟動應用程序時,通常需要加載大量的文件如加載文件。通常,在啟動應用程序時,操作系統創建進程空間之后,先加載exe文件,之后分析exe文件,確定出需要加載的加載文件,由于加載文件之間存在依賴關系,因此,在加載當前文件時時,才能夠根據當前加載文件確定出需要加載的下一加載文件。
2、由于所有的加載文件需要被逐一加載,導致應用程序的啟動速度較慢。
技術實現思路
1、本申請實施例的目的在于提供一種應用程序的運行方法及電子設備。
2、第一方面,本申請實施例提供了一種應用程序的運行方法,包括:
3、接收針對第一應用程序的啟動指令;
4、響應所述啟動指令,確定啟動所述第一應用程序需要加載的文件列表,所述文件列表包括至少兩組待加載文件,每組待加載文件包括多個具有依賴關系的待加載文件;
5、基于所述文件列表,確定線程的數量,每個所述線程對應一組待加載文件,所述每組待加載文件為啟動所述第一應用程序需要加載的;
6、并行運行多個所述線程,以加載所對應的每組待加載文件。
7、在一種可能的實施方式中,在啟動所述第一應用程序之后,包括:
8、接收針對所述第一應用程序的關閉指令;
9、確定每個所述加載文件的屬性;
10、控制屬性為第一類別的加載文件釋放,以及控制屬性為第二類別的加載文件不釋放,其
11、在一種可能的實施方式中,所述確定每個所述加載文件的屬性,包括:
12、識別每個所述加載文件的標識信息;
13、根據所述標識信息確定所述加載文件屬于第一類別或第二類別。
14、在一種可能的實施方式中,所述控制屬性為第一類別的加載文件釋放,以及控制屬性為第二類別的加載文件不釋放,包括:
15、確定電子設備中處于運行的其他應用程序中,是否存在與所述第一應用程序存在關聯關系的第二應用程序;
16、若存在,控制屬性為第一類別的加載文件釋放,以及控制屬性為第二類別的加載文件不釋放;
17、若不存在,控制所有加載文件釋放。
18、在一種可能的實施方式中,所述確定電子設備中處于運行的其他應用程序中,是否存在與所述第一應用程序存在關聯關系的第二應用程序,包括:
19、針對電子設備中處于運行的每個其他應用程序,確定該其他應用程序對應的加載文件中,是否存在與所述加載文件相同的加載文件;
20、若存在,確定該其他應用程序為所述第二應用程序。
21、在一種可能的實施方式中,所述文件列表為多個,所述基于所述文件列表,確定線程的數量,包括:
22、獲取所述第一應用程序所屬的電子設備的狀態信息,所述狀態信息至少包括供電模式、中央處理器運行信息以及內存信息的至少一項;
23、基于所述狀態信息,從多個文件列表中確定目標文件列表;
24、根據所述目標文件列表,確定所述線程的數量。
25、在一種可能的實施方式中,所述并行運行多個所述線程,包括:
26、注入目標文件,運行一個所述目標文件能夠創建一個線程,所述目標文件包括代碼或加載文件;
27、若所述目標文件為多個,則同時運行所述目標文件,以并行運行多個所述線程。
28、在一種可能的實施方式中,在啟動所述第一應用程序的過程中,包括:
29、記錄并保存所述第一應用程序對應的線程數量、加載文件以及每個線程與所述加載文件之間的對應關系。
30、在一種可能的實施方式中,所述的運行方法還包括:
31、在所述第一應用程序進行版本升級之后,更新所述文件列表。
32、第二方面,本申請實施例還提供了一種電子設備,包括:
33、第一接收模塊,其配置為接收針對第一應用程序的啟動指令;
34、第一確定模塊,其配置為響應所述啟動指令,確定啟動所述第一應用程序需要加載的文件列表,所述文件列表包括至少兩組待加載文件,每組待加載文件包括多個具有依賴關系的待加載文件;
35、第二確定模塊,其配置為基于所述文件列表,確定線程的數量,每個所述線程對應一組待加載文件,所述每組待加載文件為啟動所述第一應用程序需要加載的;
36、加載模塊,其配置為并行運行多個所述線程,以加載所對應的每組待加載文件。
37、本申請實施例中,在接收到針對第一應用程序的啟動指令之后,確定啟動第一應用程序需要加載的文件列表,并基于文件列表確定線程的數量,其中,文件列表包括至少兩組待加載文件,也即線程的數量至少為2,之后,并行運行多個線程,以加載所對應的每組待加載文件,有效地縮短了加載待加載文件的加載時長,提升了應用程序的啟動速度。
本文檔來自技高網...【技術保護點】
1.一種應用程序的運行方法,包括:
2.根據權利要求1所述的運行方法,在啟動所述第一應用程序之后,包括:
3.根據權利要求2所述的運行方法,所述確定每個所述加載文件的屬性,包括:
4.根據權利要求2所述的運行方法,所述控制屬性為第一類別的加載文件釋放,以及控制屬性為第二類別的加載文件不釋放,包括:
5.根據權利要求4所述的運行方法,所述確定電子設備中處于運行的其他應用程序中,是否存在與所述第一應用程序存在關聯關系的第二應用程序,包括:
6.根據權利要求1所述的運行方法,所述文件列表為多個,所述基于所述文件列表,確定線程的數量,包括:
7.根據權利要求6所述的運行方法,所述并行運行多個所述線程,包括:
8.根據權利要求1-7中任一所述的運行方法,在啟動所述第一應用程序的過程中,包括:
9.根據權利要求1所述的運行方法,還包括:
10.一種電子設備,包括:
【技術特征摘要】
1.一種應用程序的運行方法,包括:
2.根據權利要求1所述的運行方法,在啟動所述第一應用程序之后,包括:
3.根據權利要求2所述的運行方法,所述確定每個所述加載文件的屬性,包括:
4.根據權利要求2所述的運行方法,所述控制屬性為第一類別的加載文件釋放,以及控制屬性為第二類別的加載文件不釋放,包括:
5.根據權利要求4所述的運行方法,所述確定電子設備中處于運行的其他應用程序中,是否存在與...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。