本說(shuō)明書(shū)涉及計(jì)算機(jī)技術(shù)和軟件開(kāi)發(fā)領(lǐng)域,尤其涉及一種應(yīng)用程序的啟動(dòng)方法和計(jì)算系統(tǒng)。
背景技術(shù):
1、隨著信息技術(shù)的快速發(fā)展,涌現(xiàn)出多類(lèi)為用戶提供功能或服務(wù)的應(yīng)用程序。在計(jì)算系統(tǒng)中安裝應(yīng)用程序后,完成應(yīng)用程序的檢測(cè)對(duì)應(yīng)用程序的后續(xù)使用十分重要。
2、通常,在計(jì)算系統(tǒng)安裝應(yīng)用程序后,需要程序開(kāi)發(fā)或運(yùn)維人員對(duì)應(yīng)用程序進(jìn)行檢測(cè)。如果在多個(gè)不同計(jì)算系統(tǒng)安裝此應(yīng)用程序的情況下,程序開(kāi)發(fā)或運(yùn)維人員需要針對(duì)不同計(jì)算系統(tǒng)進(jìn)行應(yīng)用程序的重復(fù)檢測(cè),這種重復(fù)性的檢測(cè)工作不僅成本高、效率低下,而且還容易出錯(cuò)。
3、背景技術(shù)部分的內(nèi)容僅僅是發(fā)明人個(gè)人所知曉的信息,并不代表上述信息在本公開(kāi)申請(qǐng)日之前已經(jīng)進(jìn)入公共領(lǐng)域,也不代表其可以成為本公開(kāi)的現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)思路
1、本說(shuō)明書(shū)提供一種應(yīng)用程序的啟動(dòng)方法和計(jì)算系統(tǒng),可以在計(jì)算系統(tǒng)啟動(dòng)應(yīng)用程序的過(guò)程中對(duì)應(yīng)用程序進(jìn)行自動(dòng)化檢測(cè),減少檢測(cè)成本,提高檢測(cè)效率和準(zhǔn)確率。
2、第一方面,本說(shuō)明書(shū)提供一種應(yīng)用程序的啟動(dòng)方法,應(yīng)用于安裝有所述應(yīng)用程序的計(jì)算系統(tǒng),所述應(yīng)用程序包括發(fā)現(xiàn)模塊和m個(gè)功能模塊,所述m為大于或等于1的整數(shù),所述方法包括:響應(yīng)于檢測(cè)到所述應(yīng)用程序的啟動(dòng)指令,加載所述發(fā)現(xiàn)模塊;通過(guò)所述發(fā)現(xiàn)模塊檢測(cè)所述計(jì)算系統(tǒng)是否支持所述m個(gè)功能模塊的運(yùn)行,并基于所述檢測(cè)的結(jié)果確定所述計(jì)算系統(tǒng)是否支持所述應(yīng)用程序的正常啟動(dòng);以及在所述計(jì)算系統(tǒng)支持所述應(yīng)用程序的正常啟動(dòng)的情況下,通過(guò)所述發(fā)現(xiàn)模塊觸發(fā)所述應(yīng)用程序的啟動(dòng)流程。
3、在一些實(shí)施例中,所述發(fā)現(xiàn)模塊包括注冊(cè)信息,所述注冊(cè)信息至少包括:所述m個(gè)功能模塊的運(yùn)行需求信息,所述運(yùn)行需求信息描述功能模塊的正常運(yùn)行所需的必要條件,所述檢測(cè)所述計(jì)算系統(tǒng)是否支持所述m個(gè)功能模塊的運(yùn)行,包括:從所述注冊(cè)信息中獲得所述m個(gè)功能模塊的運(yùn)行需求信息;以及基于所述m個(gè)功能模塊的運(yùn)行需求信息,檢測(cè)所述計(jì)算系統(tǒng)是否支持所述m個(gè)功能模塊的運(yùn)行。
4、在一些實(shí)施例中,所述基于所述m個(gè)功能模塊的運(yùn)行需求信息,檢測(cè)所述計(jì)算系統(tǒng)是否支持所述m個(gè)功能模塊的運(yùn)行,包括:基于所述m個(gè)功能模塊的運(yùn)行需求信息,通過(guò)所述發(fā)現(xiàn)模塊中的多個(gè)線程并行地檢測(cè)所述計(jì)算系統(tǒng)是否支持所述m個(gè)功能模塊的運(yùn)行,其中,每個(gè)線程執(zhí)行所述m個(gè)功能模塊中部分功能模塊對(duì)應(yīng)的檢測(cè)過(guò)程。
5、在一些實(shí)施例中,所述基于所述m個(gè)功能模塊的運(yùn)行需求信息,檢測(cè)所述計(jì)算系統(tǒng)是否支持所述m個(gè)功能模塊的運(yùn)行,包括:確定所述m個(gè)功能模塊的類(lèi)型,并按照i從1到m的順序針對(duì)第i個(gè)功能模塊執(zhí)行下述中的一項(xiàng):若所述第i個(gè)功能模塊的類(lèi)型為必須類(lèi)型,則基于所述第i個(gè)功能模塊的運(yùn)行需求信息,通過(guò)所述發(fā)現(xiàn)模塊的主線程檢測(cè)所述計(jì)算系統(tǒng)是否支持所述第i個(gè)功能模塊的運(yùn)行;或者,若所述第i個(gè)功能模塊的類(lèi)型為非必須類(lèi)型,則基于所述第i個(gè)功能模塊的運(yùn)行需求信息,通過(guò)所述發(fā)現(xiàn)模塊的子線程檢測(cè)所述計(jì)算系統(tǒng)是否支持所述第i個(gè)功能模塊的運(yùn)行。
6、在一些實(shí)施例中,所述注冊(cè)信息還包括:所述m個(gè)功能模塊的類(lèi)型;所述確定所述m個(gè)功能模塊的類(lèi)型,包括:從所述注冊(cè)信息中獲得所述m個(gè)功能模塊的類(lèi)型。
7、在一些實(shí)施例中,一個(gè)功能模塊的運(yùn)行需求信息包括k個(gè)必要條件,所述k為大于或等于1的整數(shù),所述基于所述m個(gè)功能模塊的運(yùn)行需求信息,檢測(cè)所述計(jì)算系統(tǒng)是否支持所述m個(gè)功能模塊的運(yùn)行,包括:針對(duì)所述m個(gè)功能模塊中的任意第i個(gè)功能模塊,1≤i≤m,若所述計(jì)算系統(tǒng)滿足所述k個(gè)必要條件中的全部條件,則確定所述計(jì)算系統(tǒng)支持所述第i個(gè)功能模塊的運(yùn)行,或者,若所述計(jì)算系統(tǒng)不滿足所述k個(gè)必要條件中的至少部分條件,則確定所述計(jì)算系統(tǒng)不支持所述第i個(gè)功能模塊的運(yùn)行。
8、在一些實(shí)施例中,所述m個(gè)功能模塊至少包括m1個(gè)必須模塊,所述必須模塊為所述應(yīng)用程序在所述計(jì)算系統(tǒng)中正常啟動(dòng)所必須的模塊,1≤m1≤m,所述基于所述檢測(cè)的結(jié)果確定所述計(jì)算系統(tǒng)是否支持所述應(yīng)用程序的正常啟動(dòng),包括:若所述檢測(cè)的結(jié)果表征所述計(jì)算系統(tǒng)支持所述m1個(gè)必須模塊的運(yùn)行,則確定所述計(jì)算系統(tǒng)支持所述應(yīng)用程序的正常啟動(dòng);或者,若所述檢測(cè)的結(jié)果表征所述計(jì)算系統(tǒng)不支持所述m1個(gè)必須模塊的運(yùn)行,則確定所述計(jì)算系統(tǒng)不支持所述應(yīng)用程序的正常啟動(dòng)。
9、在一些實(shí)施例中,所述方法還包括:在所述計(jì)算系統(tǒng)不支持所述應(yīng)用程序的正常啟動(dòng)的情況下,通過(guò)所述發(fā)現(xiàn)模塊展示第一檢測(cè)結(jié)果數(shù)據(jù),其中,所述第一檢測(cè)結(jié)果數(shù)據(jù)至少包括:所述m1個(gè)必須模塊中不被所述計(jì)算系統(tǒng)支持的第一異常模塊。
10、在一些實(shí)施例中,所述第一檢測(cè)結(jié)果數(shù)據(jù)還包括下述中的至少一項(xiàng):所述第一異常模塊對(duì)應(yīng)的異常原因,表征所述第一異常模塊的正常運(yùn)行所需的必要條件中不被所述計(jì)算系統(tǒng)滿足的條件;以及所述第一異常模塊對(duì)應(yīng)的處理建議。
11、在一些實(shí)施例中,其中,所述m個(gè)功能模塊還包括m2個(gè)非必須模塊,所述非必須模塊為所述應(yīng)用程序在所述計(jì)算系統(tǒng)中正常啟動(dòng)所非必須的模塊,m2=m-m1,在所述應(yīng)用程序啟動(dòng)完成之后,所述方法還包括:在所述計(jì)算系統(tǒng)不能全部支持所述m2個(gè)非必須模塊的運(yùn)行的情況下,通過(guò)所述發(fā)現(xiàn)模塊展示第二檢測(cè)結(jié)果數(shù)據(jù),其中,所述第二檢測(cè)結(jié)果數(shù)據(jù)至少包括:所述m2個(gè)非必須模塊中不被所述計(jì)算系統(tǒng)支持的第二異常模塊。
12、在一些實(shí)施例中,所述第二檢測(cè)結(jié)果數(shù)據(jù)還包括下述中的至少一項(xiàng):所述第二異常模塊對(duì)應(yīng)的異常原因,表征所述第二異常模塊的正常運(yùn)行所需的必要條件中不被所述計(jì)算系統(tǒng)滿足的條件;以及所述第二異常模塊對(duì)應(yīng)的處理建議。
13、在一些實(shí)施例中,所述啟動(dòng)指令為所述應(yīng)用程序安裝于所述計(jì)算系統(tǒng)之后的首次啟動(dòng)指令;或者,所述啟動(dòng)指令為所述應(yīng)用程序的版本發(fā)生變更之后的首次啟動(dòng)指令。
14、第二方面,本說(shuō)明書(shū)還提供一種計(jì)算系統(tǒng),安裝有包括發(fā)現(xiàn)模塊和m個(gè)功能模塊的應(yīng)用程序,計(jì)算系統(tǒng)包括:至少一個(gè)存儲(chǔ)介質(zhì),存儲(chǔ)有至少一個(gè)指令集;以及至少一個(gè)處理器,同所述至少一個(gè)存儲(chǔ)介質(zhì)通信連接,其中,所述至少一個(gè)處理器運(yùn)行時(shí)讀取所述至少一個(gè)指令集,并且根據(jù)所述至少一個(gè)指令集的指示實(shí)現(xiàn)如第一方面所述的應(yīng)用程序的啟動(dòng)方法。
15、本說(shuō)明書(shū)提供的應(yīng)用程序的啟動(dòng)方法和計(jì)算系統(tǒng)的其他功能將在以下說(shuō)明中部分列出。本說(shuō)明書(shū)提供的應(yīng)用程序的啟動(dòng)方法和計(jì)算系統(tǒng)的創(chuàng)造性方面可以通過(guò)實(shí)踐或使用下面詳細(xì)示例中所述的方法、系統(tǒng)和組合得到充分解釋。
1.一種應(yīng)用程序的啟動(dòng)方法,應(yīng)用于安裝有所述應(yīng)用程序的計(jì)算系統(tǒng),所述應(yīng)用程序包括發(fā)現(xiàn)模塊和m個(gè)功能模塊,所述m為大于或等于1的整數(shù),所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其中,所述發(fā)現(xiàn)模塊包括注冊(cè)信息,所述注冊(cè)信息至少包括:所述m個(gè)功能模塊的運(yùn)行需求信息,所述運(yùn)行需求信息描述功能模塊的正常運(yùn)行所需的必要條件,
3.根據(jù)權(quán)利要求2所述的方法,其中,所述基于所述m個(gè)功能模塊的運(yùn)行需求信息,檢測(cè)所述計(jì)算系統(tǒng)是否支持所述m個(gè)功能模塊的運(yùn)行,包括:
4.根據(jù)權(quán)利要求2所述的方法,其中,所述基于所述m個(gè)功能模塊的運(yùn)行需求信息,檢測(cè)所述計(jì)算系統(tǒng)是否支持所述m個(gè)功能模塊的運(yùn)行,包括:
5.根據(jù)權(quán)利要求4所述的方法,其中,所述注冊(cè)信息還包括:所述m個(gè)功能模塊的類(lèi)型;
6.根據(jù)權(quán)利要求2所述的方法,其中,一個(gè)功能模塊的運(yùn)行需求信息包括k個(gè)必要條件,所述k為大于或等于1的整數(shù),
7.根據(jù)權(quán)利要求1所述的方法,其中,所述m個(gè)功能模塊至少包括m1個(gè)必須模塊,所述必須模塊為所述應(yīng)用程序在所述計(jì)算系統(tǒng)中正常啟動(dòng)所必須的模塊,1≤m1≤m,
8.根據(jù)權(quán)利要求7所述的方法,其中,所述方法還包括:
9.根據(jù)權(quán)利要求8所述的方法,其中,所述第一檢測(cè)結(jié)果數(shù)據(jù)還包括下述中的至少一項(xiàng):
10.根據(jù)權(quán)利要求7所述的方法,其中,所述m個(gè)功能模塊還包括m2個(gè)非必須模塊,所述非必須模塊為所述應(yīng)用程序在所述計(jì)算系統(tǒng)中正常啟動(dòng)所非必須的模塊,m2=m-m1,在所述應(yīng)用程序啟動(dòng)完成之后,所述方法還包括:
11.根據(jù)權(quán)利要求10所述的方法,其中,所述第二檢測(cè)結(jié)果數(shù)據(jù)還包括下述中的至少一項(xiàng):
12.根據(jù)權(quán)利要求1所述的方法,其中,所述啟動(dòng)指令為所述應(yīng)用程序安裝于所述計(jì)算系統(tǒng)之后的首次啟動(dòng)指令;或者
13.一種計(jì)算系統(tǒng),安裝有應(yīng)用程序,所述計(jì)算系統(tǒng)包括: