驅(qū)動(dòng)程序安裝方法、裝置以及終端的制作方法
【專利摘要】本發(fā)明公開了一種驅(qū)動(dòng)程序安裝方法、裝置以及終端。所述方法包括:對(duì)終端進(jìn)行掃描以獲取需要安裝驅(qū)動(dòng)程序的第一設(shè)備,對(duì)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝;在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)所述終端進(jìn)行掃描以檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備,其中,所述第二設(shè)備為在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備;如果檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。上述方法能夠正確安裝存在依賴關(guān)系的設(shè)備的驅(qū)動(dòng)程序。
【專利說明】
驅(qū)動(dòng)程序安裝方法、裝置以及終端
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及終端領(lǐng)域,尤其涉及一種驅(qū)動(dòng)程序安裝方法、裝置以及終端。
【背景技術(shù)】
[0002]驅(qū)動(dòng)程序是可以使終端和設(shè)備之間通信的特殊程序。操作系統(tǒng)只有通過驅(qū)動(dòng)程序才能實(shí)現(xiàn)對(duì)設(shè)備的控制,如果設(shè)備沒有安裝驅(qū)動(dòng)程序,則設(shè)備不能正常工作。
[0003]技術(shù)人員在實(shí)踐中發(fā)現(xiàn),有些設(shè)備之間存在依賴關(guān)系,S卩,只有在第一設(shè)備的驅(qū)動(dòng)程序正確安裝后,第二設(shè)備才能被正確地顯示出來,所以,用戶會(huì)誤以為所有設(shè)備的驅(qū)動(dòng)程序均已經(jīng)被正確地安裝,而并不知道實(shí)際上還有第二設(shè)備的驅(qū)動(dòng)程序沒有被正確安裝,給用戶的使用帶來不便。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種驅(qū)動(dòng)程序安裝方法、裝置以及終端,能夠正確安裝存在依賴關(guān)系的設(shè)備的驅(qū)動(dòng)程序。
[0005]第一方面,提供了一種驅(qū)動(dòng)程序安裝方法,包括:對(duì)終端進(jìn)行掃描以獲取需要安裝驅(qū)動(dòng)程序的第一設(shè)備,對(duì)所述第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝;在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)所述終端進(jìn)行掃描以檢測(cè)所述終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備,其中,所述第二設(shè)備為在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備;如果檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0006]結(jié)合第一方面,第一方面的第一種可能的實(shí)施方式中,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝之后,所述方法還包括:對(duì)所述終端進(jìn)行掃描以檢測(cè)所述終端中是否存在需要安裝驅(qū)動(dòng)程序的第三設(shè)備,其中,所述第三設(shè)備為在所述第二設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備;如果檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第三設(shè)備,對(duì)所述第三設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0007]結(jié)合第一方面,第一方面的第二種可能的實(shí)施方式中,對(duì)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝具體包括:根據(jù)第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)線程或進(jìn)程,其中,M為大于零的正整數(shù),N為大于零的正整數(shù)KN;通過所述M個(gè)線程或進(jìn)程對(duì)N個(gè)第一設(shè)備中的M個(gè)第一設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)N個(gè)第一設(shè)備中剩下的N-M個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0008]結(jié)合第一方面的第二種可能的實(shí)施方式,第一方面的第三種可能的實(shí)施方式中,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝具體包括:判斷所述第二設(shè)備的數(shù)量S是否大于M,其中,S為大于零的正整數(shù);如果判斷結(jié)果為大于M,則通過所述M個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的M個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并將S個(gè)第二設(shè)備中的其他第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列;如果判斷結(jié)果為小于或者等于M,則從所述M個(gè)線程或進(jìn)程中選擇與所述第二設(shè)備數(shù)量相等的線程或進(jìn)程對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝。
[0009]結(jié)合第一方面的第二種可能的實(shí)施方式,第一方面的第四種可能的實(shí)施方式中,當(dāng)創(chuàng)建的為M個(gè)線程時(shí),所述M個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述M個(gè)線程屬于多個(gè)進(jìn)程。
[0010]結(jié)合第一方面,第一方面的第五種可能的實(shí)施方式中,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝具體包括:根據(jù)第二設(shè)備的數(shù)量S創(chuàng)建T個(gè)線程或進(jìn)程,其中,S為大于零的正整數(shù),T為大于零的正整數(shù),T;通過所述T個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的T個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)S個(gè)第二設(shè)備中剩下的S-T個(gè)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0011]結(jié)合第一方面的第五種可能的實(shí)施方式,第一方面的第六種可能的實(shí)施方式中,當(dāng)創(chuàng)建的為T個(gè)線程時(shí),所述T個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述T個(gè)線程屬于多個(gè)進(jìn)程。
[0012]結(jié)合第一方面,第一方面的第七種可能的實(shí)施方式中,如果檢測(cè)結(jié)果為不存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備,則結(jié)束流程。
[0013]第二方面,提供一種驅(qū)動(dòng)程序安裝裝置,所述裝置包括第一安裝模塊、第一檢測(cè)模塊以及第二安裝模塊,所述第一安裝模塊用于對(duì)終端進(jìn)行掃描以獲取需要安裝驅(qū)動(dòng)程序的第一設(shè)備,對(duì)所述第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝;所述第一檢測(cè)模塊用于在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)所述終端進(jìn)行掃描以檢測(cè)所述終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備,其中,所述第二設(shè)備為在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備;所述第二安裝模塊用于在檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備時(shí),對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0014]結(jié)合第二方面,第二方面的第一種可能的實(shí)施方式中,所述裝置還包括第二檢測(cè)模塊以及第三安裝模塊,所述第二檢測(cè)模塊用于對(duì)所述終端進(jìn)行掃描以檢測(cè)所述終端中是否存在需要安裝驅(qū)動(dòng)程序的第三設(shè)備,其中,所述第三設(shè)備為在所述第二設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備;第三安裝模塊用于在檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第三設(shè)備時(shí),對(duì)所述第三設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0015]結(jié)合第二方面,第二方面的第二種可能的實(shí)施方式中,所述第一安裝模塊包括第一創(chuàng)建單元以及第一安裝單元,所述第一創(chuàng)建單元用于根據(jù)第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)線程或進(jìn)程,其中,M為大于零的正整數(shù),N為大于零的正整數(shù),M<N;所述第一安裝單元用于通過所述M個(gè)線程或進(jìn)程對(duì)N個(gè)第一設(shè)備中的M個(gè)第一設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)N個(gè)第一設(shè)備中剩下的N-M個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0016]結(jié)合第二方面的第二種可能的實(shí)施方式,第二方面的第三種可能的實(shí)施方式中,所述第二安裝模塊包括判斷單元以及第二安裝單元,所述判斷單元用于判斷所述第二設(shè)備的數(shù)量S是否大于M,其中,S為大于零的正整數(shù);第二安裝單元用于在判斷結(jié)果為大于M時(shí),通過所述M個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的M個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并將S個(gè)第二設(shè)備中的其他第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列;在判斷結(jié)果為小于或者等于M時(shí),從所述M個(gè)線程或進(jìn)程中選擇與所述第二設(shè)備數(shù)量相等的線程或進(jìn)程對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝。
[0017]結(jié)合第二方面的第二種可能的實(shí)施方式,第二方面的第四種可能的實(shí)施方式中,當(dāng)創(chuàng)建的為M個(gè)線程時(shí),所述M個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述M個(gè)線程屬于多個(gè)進(jìn)程。
[0018]結(jié)合第二方面,第二方面的第五種可能的實(shí)施方式中,所述第二安裝設(shè)備包括第二創(chuàng)建單元以及第二安裝單元,所述第二創(chuàng)建單元用于根據(jù)第二設(shè)備的數(shù)量S創(chuàng)建T個(gè)線程或進(jìn)程,其中,S為大于零的正整數(shù),T為大于零的正整數(shù),SST;所述第二安裝單元用于通過所述T個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的T個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)S個(gè)第二設(shè)備中剩下的S-T個(gè)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0019]結(jié)合第二方面的第五種可能的實(shí)施方式,第二方面的第六種可能的實(shí)施方式中,當(dāng)創(chuàng)建的為T個(gè)線程時(shí),所述T個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述T個(gè)線程屬于多個(gè)進(jìn)程。
[0020]結(jié)合第二方面,第二方面的第七種可能的實(shí)施方式中,所述第一檢測(cè)模塊還用于在檢測(cè)結(jié)果為不存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備,結(jié)束流程。
[0021]第三方面,本發(fā)明提供了一種終端,包括:處理器、存儲(chǔ)器、通信接口和總線;所述處理器、所述存儲(chǔ)器和所述通信接口通過所述總線連接并完成相互間的通信;所述存儲(chǔ)器存儲(chǔ)可執(zhí)行程序代碼;所述處理器通過讀取所述存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來運(yùn)行與所述可執(zhí)行程序代碼對(duì)應(yīng)的程序,以用于執(zhí)行一種驅(qū)動(dòng)程序的安裝方法;其中,所述方法為如第一方面任一項(xiàng)所述的方法。
[0022]第四方面,本發(fā)明提供了一種存儲(chǔ)介質(zhì),其中,該存儲(chǔ)介質(zhì)用于存儲(chǔ)應(yīng)用程序,所述應(yīng)用程序用于在運(yùn)行時(shí)執(zhí)行本發(fā)明第一方面提供的一種驅(qū)動(dòng)程序的安裝方法的任一項(xiàng)。
[0023]第五方面,本發(fā)明提供了一種應(yīng)用程序,其中,該應(yīng)用程序用于在運(yùn)行時(shí)執(zhí)行本發(fā)明第一方面提供的一種驅(qū)動(dòng)程序的安裝方法的任一項(xiàng)。
[0024]通過在第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,檢測(cè)終端中是否存在第二設(shè)備,并在存在第二設(shè)備時(shí),對(duì)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝,實(shí)現(xiàn)正確安裝依賴于第一設(shè)備的第二設(shè)備的驅(qū)動(dòng)程序,提高用戶的體驗(yàn)。
【附圖說明】
[0025]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0026]圖1是本發(fā)明實(shí)施例提供的第一種驅(qū)動(dòng)程序的安裝方法的流程圖;
[0027]圖2是本發(fā)明實(shí)施例提供的第一種驅(qū)動(dòng)程序的安裝方法的中第一設(shè)備的驅(qū)動(dòng)程序被正確安裝前與第一設(shè)備的驅(qū)動(dòng)程序被正確安裝后的對(duì)比圖;
[0028]圖3是本發(fā)明實(shí)施例提供的第二種驅(qū)動(dòng)程序的安裝方法的流程圖;
[0029]圖4是本發(fā)明實(shí)施例提供的第三種驅(qū)動(dòng)程序的安裝方法的流程圖;
[0030]圖5是本發(fā)明實(shí)施例提供的第三種驅(qū)動(dòng)程序的安裝方法中多個(gè)線程或者進(jìn)程同時(shí)安裝驅(qū)動(dòng)程序的示意圖;
[0031 ]圖6是本發(fā)明實(shí)施例提供的第四種驅(qū)動(dòng)程序的安裝方法的流程圖;
[0032]圖7是本發(fā)明實(shí)施例提供的第一種驅(qū)動(dòng)程序的安裝裝置的結(jié)構(gòu)示意圖;
[0033]圖8是本發(fā)明實(shí)施例提供的第二種驅(qū)動(dòng)程序的安裝裝置的結(jié)構(gòu)示意圖;
[0034]圖9是本發(fā)明實(shí)施例提供的第三種驅(qū)動(dòng)程序的安裝裝置的結(jié)構(gòu)示意圖;
[0035]圖10是本發(fā)明實(shí)施例提供的第四種驅(qū)動(dòng)程序的安裝裝置的結(jié)構(gòu)示意圖;
[0036]圖11是本發(fā)明實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0037]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0038]需要說明的是,在本發(fā)明實(shí)施例中使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實(shí)施例和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。本發(fā)明的說明書和權(quán)利要求書及所述附圖中的術(shù)語“包括”和“具有”以及它們?nèi)魏巫冃?,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對(duì)于這些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0039]本發(fā)明實(shí)施例所描述的終端可以包括智能手機(jī)(如Android手機(jī)、1S手機(jī)、Windows Phone手機(jī)等)、平板電腦、掌上電腦、筆記本電腦、移動(dòng)互聯(lián)網(wǎng)設(shè)備(MobileInternet Devices,MID)或穿戴式設(shè)備等。
[0040]請(qǐng)參見圖1,圖1是本發(fā)明實(shí)施例提供的第一種驅(qū)動(dòng)程序的安裝方法。如圖1所示,該驅(qū)動(dòng)程序的安裝方法可以包括但不限于以下步驟。
[0041]110:對(duì)終端進(jìn)行掃描以獲取需要安裝驅(qū)動(dòng)程序的第一設(shè)備,對(duì)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)彳丁安裝。
[0042]終端通過API 提供的 SetupDiGetClassDevs,SetupDiEnumDeviceInfo 兩個(gè)類枚舉終端中的硬件信息,從而得到終端中需要安裝驅(qū)動(dòng)程序的硬件設(shè)備的硬件信息作為終端中的第一設(shè)備的硬件信息。其中,第一設(shè)備可以是U盤、打印機(jī)、聲卡、網(wǎng)卡以及顯卡等等需要安裝驅(qū)動(dòng)程序,但卻尚未成功安裝驅(qū)動(dòng)程序的設(shè)備。在獲取得到第一設(shè)備的硬件信息后,終端根據(jù)第一設(shè)備的硬件信息查找第一設(shè)備的驅(qū)動(dòng)程序,并對(duì)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。安裝時(shí),終端可以逐個(gè)對(duì)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝,也可以建立多個(gè)線程或者進(jìn)程以同時(shí)對(duì)第一設(shè)備進(jìn)行安裝。
[0043]120:在第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)終端進(jìn)行掃描以檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備。
[0044]在第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,終端再次通過AP I提供的SetupDiGetClassDevs,SetupDiEnumDeviceInfο兩個(gè)類枚舉終端中的硬件信息,從而檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的硬件設(shè)備的硬件信息作為第二設(shè)備的硬件信息。其中,第二設(shè)備為在第一設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備。第二設(shè)備可以是U盤、打印機(jī)、聲卡、網(wǎng)卡以及顯卡等等需要安裝驅(qū)動(dòng)程序,但卻尚未成功安裝驅(qū)動(dòng)程序的設(shè)備。
[0045]例如,如圖2(a)所示,在安裝完成第一設(shè)備1、第一設(shè)備2、第一設(shè)備3以及第一設(shè)備4的驅(qū)動(dòng)程序之前,設(shè)備列表上只顯示了第一設(shè)備1、第一設(shè)備2、第一設(shè)備3以及第一設(shè)備4,而第二設(shè)備并不會(huì)被顯示出來;如圖2(b)所示,在安裝完成第一設(shè)備1、第一設(shè)備2、第一設(shè)備3以及第一設(shè)備4之后,設(shè)備列表上除了顯示已安裝驅(qū)動(dòng)程序的第一設(shè)備1、第一設(shè)備2、第一設(shè)備3以及第一設(shè)備4之外,還顯示了尚未安裝驅(qū)動(dòng)程序的第二設(shè)備I以及第二設(shè)備2。
[0046]如果終端中存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備,進(jìn)入步驟130,如果終端中不存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備,則結(jié)束本方法的流程。
[0047]130:對(duì)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0048]根據(jù)第二設(shè)備的硬件信息查找第二設(shè)備的驅(qū)動(dòng)程序,對(duì)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。安裝時(shí),終端可以逐個(gè)對(duì)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝,也可以建立多個(gè)線程或者進(jìn)程以同時(shí)對(duì)第二設(shè)備進(jìn)行安裝。
[0049]請(qǐng)參見圖3,圖3是本發(fā)明實(shí)施例提供的第二種驅(qū)動(dòng)程序的安裝方法。圖3所示的驅(qū)動(dòng)程序的安裝方法是根據(jù)圖1所示的驅(qū)動(dòng)程序的安裝方法優(yōu)化而得到的,圖3所示的驅(qū)動(dòng)程序的安裝方法除了包括圖1所示的步驟110,步驟120以及步驟130之外,還包括步驟140以及步驟150。
[0050]140:在第二設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)終端進(jìn)行掃描以檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的第三設(shè)備。
[0051]在第二設(shè)備的驅(qū)動(dòng)程序安裝完成后,終端再次通過AP I提供的SetupDiGetClassDevs,SetupDiEnumDeviceInfο兩個(gè)類枚舉終端中的硬件信息,從而檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的硬件設(shè)備作為第三設(shè)備。其中,第三設(shè)備為在第二設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備。第三設(shè)備可以是U盤、打印機(jī)、聲卡、網(wǎng)卡以及顯卡等等需要安裝驅(qū)動(dòng)程序,但卻尚未成功安裝驅(qū)動(dòng)程序的設(shè)備。
[0052]如果終端中存在需要安裝驅(qū)動(dòng)程序的第三設(shè)備,進(jìn)入步驟150,如果終端中不存在第三設(shè)備,則結(jié)束本方法的流程。
[0053]150:對(duì)第三設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0054]根據(jù)第三設(shè)備的硬件信息查找第三設(shè)備的驅(qū)動(dòng)程序,對(duì)第三設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。安裝時(shí),終端可以逐個(gè)對(duì)第三設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝,也可以建立多個(gè)線程或者進(jìn)程以同時(shí)對(duì)第三設(shè)備進(jìn)行安裝。
[0055]在第三設(shè)備安裝完成后,繼續(xù)判斷是否存在需要安裝驅(qū)動(dòng)程序的第四設(shè)備,如果存在需要安裝驅(qū)動(dòng)程序的第四設(shè)備則對(duì)第四設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝……,如此重復(fù),直到不再出現(xiàn)新的需要安裝驅(qū)動(dòng)程序的設(shè)備。其中,第四設(shè)備為在第三設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備。第四設(shè)備可以是U盤、打印機(jī)、聲卡、網(wǎng)卡以及顯卡等等需要安裝驅(qū)動(dòng)程序,但卻尚未成功安裝驅(qū)動(dòng)程序的設(shè)備。
[0056]請(qǐng)參見圖4,圖4是本發(fā)明實(shí)施例提供的第三種驅(qū)動(dòng)程序的安裝方法。如圖4所示,該驅(qū)動(dòng)程序的安裝方法可以包括但不限于以下步驟。
[0057]210:根據(jù)第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)線程或進(jìn)程,其中,M為大于零的正整數(shù),N為大于零的正整數(shù),MSN。
[0058]終端通過API 提供的 SetupDiGetClassDevs,SetupDiEnumDeviceInfo 兩個(gè)類枚舉終端中的硬件信息,從而得到終端中需要安裝驅(qū)動(dòng)程序的硬件設(shè)備的硬件信息作為終端中的第一設(shè)備的硬件信息。其中,第一設(shè)備可以是U盤、打印機(jī)、聲卡、網(wǎng)卡以及顯卡等等需要安裝驅(qū)動(dòng)程序,但卻尚未成功安裝驅(qū)動(dòng)程序的設(shè)備。終端根據(jù)獲取得到的第一設(shè)備的硬件信息統(tǒng)計(jì)第一設(shè)備的數(shù)量N。終端根據(jù)第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)線程,或者,可以根據(jù)第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)進(jìn)程。
[0059]可以理解的是,當(dāng)創(chuàng)建的為M個(gè)線程時(shí),M個(gè)線程可以屬于同一個(gè)進(jìn)程,或者,M個(gè)線程可以屬于多個(gè)進(jìn)程。例如,線程I,2,3可以屬于同一個(gè)進(jìn)程I,或者,線程I屬于進(jìn)程1,線程2屬于進(jìn)程2,線程3屬于進(jìn)程3,或者,線程I和線程2屬于進(jìn)程I,線程3屬于進(jìn)程2等等。
[0060]220:通過M個(gè)線程或進(jìn)程對(duì)N個(gè)第一設(shè)備中的M個(gè)第一設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)N個(gè)第一設(shè)備中剩下的N-M個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0061]在獲取得到N個(gè)第一設(shè)備的硬件信息后,終端根據(jù)N個(gè)第一設(shè)備的硬件信息查找N個(gè)第一設(shè)備的驅(qū)動(dòng)程序,通過M個(gè)線程或進(jìn)程對(duì)N個(gè)第一設(shè)備中的M個(gè)第一設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)N個(gè)第一設(shè)備中剩下的N-M個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。例如,如圖5所示,共有4個(gè)第一設(shè)備的驅(qū)動(dòng)程序需要被安裝,終端建立了 3個(gè)線程對(duì)這4個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝,其中,4個(gè)第一設(shè)備的驅(qū)動(dòng)程序中的3個(gè)第一設(shè)備的驅(qū)動(dòng)程序通過3個(gè)線程同時(shí)進(jìn)行安裝,剩下的I個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列,當(dāng)3個(gè)正在安裝的第一設(shè)備的驅(qū)動(dòng)程序中有驅(qū)動(dòng)程序安裝完成,則剩下的I個(gè)第一設(shè)備的驅(qū)動(dòng)程序?qū)?huì)替補(bǔ)已經(jīng)安裝完成的第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0062]230:在第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)終端進(jìn)行掃描以檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備。
[0063]本實(shí)施的步驟230與圖1所示的實(shí)施例中的步驟120相同,具體請(qǐng)參閱圖1所示的實(shí)施中的步驟120,此處不再具體描述。
[0064]240:判斷第二設(shè)備的數(shù)量S是否大于M,其中,S為大于零的正整數(shù)。
[0065]獲取得到第二設(shè)備的硬件信息后,對(duì)第二設(shè)備的硬件信息進(jìn)行統(tǒng)計(jì),從而獲得第二設(shè)備的數(shù)量S。終端判斷第二設(shè)備的數(shù)量S是否大于M,如果判斷結(jié)果為第二設(shè)備的數(shù)量S大于M,進(jìn)入步驟250;如果判斷結(jié)果為第二設(shè)備S的數(shù)量小于或者等于M,進(jìn)入步驟260。
[0066]250:通過M個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的M個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并將S個(gè)第二設(shè)備中的其他第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0067]在第二設(shè)備的數(shù)量S大于M時(shí),可以根據(jù)第二設(shè)備的硬件信息查找第二設(shè)備的驅(qū)動(dòng)程序,利用原來的M個(gè)線程或者進(jìn)程對(duì)S個(gè)第二設(shè)備中的M個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并將S個(gè)第二設(shè)備中的剩下的第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0068]260:從M個(gè)線程或進(jìn)程中選擇與第二設(shè)備數(shù)量相等的線程或進(jìn)程對(duì)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝。
[0069]在第二設(shè)備的數(shù)量小于或者等于M時(shí),可以根據(jù)第二設(shè)備的硬件信息查找第二設(shè)備的驅(qū)動(dòng)程序,從原來的M個(gè)線程或者進(jìn)程中選擇與第二設(shè)備數(shù)量相等的線程或進(jìn)程對(duì)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝。
[0070]請(qǐng)參見圖6,圖6是本發(fā)明實(shí)施例提供的第四種驅(qū)動(dòng)程序的安裝方法。如圖6所示,該驅(qū)動(dòng)程序的安裝方法可以包括但不限于以下步驟。
[0071]310:根據(jù)第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)線程或進(jìn)程,其中,M為大于零的正整數(shù),N為大于零的正整數(shù),MSN。
[0072]320:通過M個(gè)線程或進(jìn)程對(duì)N個(gè)第一設(shè)備中的M個(gè)第一設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)N個(gè)第一設(shè)備中剩下的N-M個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0073]330:在第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)終端進(jìn)行掃描以檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備。
[0074]本實(shí)施的步驟310、320以及330分別與圖4所示的實(shí)施例中的步驟210、220以及230相同,具體請(qǐng)參閱圖4所示的實(shí)施中的步驟210、220以及230,此處不再具體描述。
[0075]340:根據(jù)第二設(shè)備的數(shù)量S創(chuàng)建T個(gè)線程或進(jìn)程,其中,S為大于零的正整數(shù),T為大于零的正整數(shù),S<T。
[0076]獲取得到第二設(shè)備的硬件信息,對(duì)第二設(shè)備的硬件信息進(jìn)行統(tǒng)計(jì),從而獲得第二設(shè)備的數(shù)量S。終端根據(jù)第二設(shè)備的數(shù)量S創(chuàng)建T個(gè)線程,或者,可以根據(jù)第二設(shè)備的數(shù)量S創(chuàng)建T個(gè)進(jìn)程。
[0077]可以理解的是,當(dāng)創(chuàng)建的為T個(gè)線程時(shí),T個(gè)線程可以屬于同一個(gè)進(jìn)程,或者,T個(gè)線程可以屬于多個(gè)進(jìn)程。例如,線程I,2,3可以屬于同一個(gè)進(jìn)程I,或者,線程I屬于進(jìn)程1,線程2屬于進(jìn)程2,線程3屬于進(jìn)程3,或者,線程I和線程2屬于進(jìn)程I,線程3屬于進(jìn)程2等等。
[0078]350:通過T個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的T個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)S個(gè)第二設(shè)備中剩下的S-T個(gè)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0079]在獲取得到S個(gè)第二設(shè)備的硬件信息后,終端根據(jù)S個(gè)第二設(shè)備的硬件信息查找T個(gè)第二設(shè)備的驅(qū)動(dòng)程序,通過T個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的T個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)S個(gè)第二設(shè)備中剩下的S-T個(gè)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0080]上述詳細(xì)闡述了本發(fā)明實(shí)施例的方法,下面為了便于更好地實(shí)施本發(fā)明實(shí)施例的上述方案,相應(yīng)地,下面還提供用于配合實(shí)施上述方案的驅(qū)動(dòng)程序的安裝裝置。
[0081]請(qǐng)參見圖7,圖7是本發(fā)明實(shí)施例提供的第一種驅(qū)動(dòng)程序的安裝裝置的結(jié)構(gòu)示意圖。本實(shí)施例的驅(qū)動(dòng)程序的安裝裝置40包括第一安裝模塊410、第一檢測(cè)模塊420以及第二安裝模塊430。
[0082]第一安裝模塊410用于對(duì)終端進(jìn)行掃描以獲取需要安裝驅(qū)動(dòng)程序的第一設(shè)備,對(duì)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝;
[0083]第一檢測(cè)模塊420用于在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)所述終端進(jìn)行掃描以檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備,其中,所述第二設(shè)備為在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備。
[0084]第二安裝模塊430用于在檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備時(shí),對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0085]可選地,所述第一檢測(cè)模塊還用于在檢測(cè)結(jié)果為不存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備,結(jié)束流程。
[0086]可理解的是,本實(shí)施例的驅(qū)動(dòng)程序的安裝裝置40的各功能單元的功能可根據(jù)上述圖1方法實(shí)施例的方法具體實(shí)現(xiàn),此處不再贅述。
[0087]請(qǐng)參見圖8,圖8是本發(fā)明實(shí)施例提供的第二種驅(qū)動(dòng)程序的安裝裝置的結(jié)構(gòu)示意圖。本實(shí)施例的驅(qū)動(dòng)程序的安裝裝置40是對(duì)圖7所示的驅(qū)動(dòng)程序的安裝裝置40優(yōu)化得到的。本實(shí)施例的驅(qū)動(dòng)程序的安裝裝置40除了包括第一安裝模塊410、第一檢測(cè)模塊420以及第二安裝模塊430之外,還包括第二檢測(cè)模塊440以及第三安裝模塊450。
[0088]第二檢測(cè)模塊440用于對(duì)所述終端進(jìn)行掃描以檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的第三設(shè)備,其中,所述第三設(shè)備為在所述第二設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備。
[0089]第三安裝模塊450用于在檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第三設(shè)備時(shí),對(duì)所述第三設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0090]可理解的是,本實(shí)施例的驅(qū)動(dòng)程序的安裝裝置40的各功能單元的功能可根據(jù)上述圖3方法實(shí)施例的方法具體實(shí)現(xiàn),此處不再贅述。
[0091]請(qǐng)參見圖9,圖9是本發(fā)明實(shí)施例提供的第三種驅(qū)動(dòng)程序的安裝裝置的結(jié)構(gòu)示意圖。本實(shí)施例的驅(qū)動(dòng)程序的安裝裝置40是對(duì)圖7所示的驅(qū)動(dòng)程序的安裝裝置40優(yōu)化得到的。其中,第一安裝模塊410包括第一創(chuàng)建單元411以及第一安裝單元413。第二安裝模塊430包括判斷單元411以及第二安裝單元413。
[0092]第一創(chuàng)建單元411用于根據(jù)第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)線程或進(jìn)程,其中,M為大于零的正整數(shù),N為大于零的正整數(shù),M<N。
[0093]第一安裝單元413用于通過所述M個(gè)線程或進(jìn)程對(duì)N個(gè)第一設(shè)備中的M個(gè)第一設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)N個(gè)第一設(shè)備中剩下的N-M個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0094]判斷單元411用于判斷所述第二設(shè)備的數(shù)量S是否大于M,其中,S為大于零的正整數(shù)。
[0095]第二安裝單元413用于在判斷結(jié)果為大于M時(shí),通過所述M個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的M個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并將S個(gè)第二設(shè)備中的其他第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列;在判斷結(jié)果為小于或者等于M時(shí),從所述M個(gè)線程或進(jìn)程中選擇與所述第二設(shè)備數(shù)量相等的線程或進(jìn)程對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝。
[0096]可選地,當(dāng)創(chuàng)建的為M個(gè)線程時(shí),所述M個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述M個(gè)線程屬于多個(gè)進(jìn)程。
[0097]可理解的是,本實(shí)施例的驅(qū)動(dòng)程序的安裝裝置40的各功能單元的功能可根據(jù)上述圖4方法實(shí)施例的方法具體實(shí)現(xiàn),此處不再贅述。
[0098]請(qǐng)參見圖10,圖10是本發(fā)明實(shí)施例提供的第四種驅(qū)動(dòng)程序的安裝裝置的結(jié)構(gòu)示意圖。本實(shí)施例的驅(qū)動(dòng)程序的安裝裝置40是對(duì)圖7所示的驅(qū)動(dòng)程序的安裝裝置40優(yōu)化得到的。其中,第一安裝模塊410包括第一創(chuàng)建單元412以及第一安裝單元414。第二安裝模塊430包括第二創(chuàng)建單元432以及第二安裝單元434。
[0099]第一創(chuàng)建單元412用于根據(jù)第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)線程或進(jìn)程,其中,M為大于零的正整數(shù),N為大于零的正整數(shù),M<N。
[0100]第一安裝單元414用于通過所述M個(gè)線程或進(jìn)程對(duì)N個(gè)第一設(shè)備中的M個(gè)第一設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)N個(gè)第一設(shè)備中剩下的N-M個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0101]第二創(chuàng)建單元432用于根據(jù)第二設(shè)備的數(shù)量S創(chuàng)建T個(gè)線程或進(jìn)程,其中,S為大于零的正整數(shù),T為大于零的正整數(shù),SST;
[0102]第二安裝單元434用于通過所述T個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的T個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)S個(gè)第二設(shè)備中剩下的S-T個(gè)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0103]可選地,當(dāng)創(chuàng)建的為M個(gè)線程時(shí),所述M個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述M個(gè)線程屬于多個(gè)進(jìn)程。
[0104]可選地,當(dāng)創(chuàng)建的為T個(gè)線程時(shí),所述T個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述T個(gè)線程屬于多個(gè)進(jìn)程。
[0105]可理解的是,本實(shí)施例的驅(qū)動(dòng)程序的安裝裝置40的各功能單元的功能可根據(jù)上述圖5方法實(shí)施例的方法具體實(shí)現(xiàn),此處不再贅述。
[0106]請(qǐng)參見圖11,是本發(fā)明提供的一種終端的結(jié)構(gòu)示意圖。本實(shí)施例中所描述的終端500包括:至少一個(gè)處理器501、通信接口 502、用戶接口 503和存儲(chǔ)器504,處理器501、通信接口 502、用戶接口 503和存儲(chǔ)器504可通過總線或者其它方式連接,本發(fā)明實(shí)施例以通過總線505連接為例。其中,
[0107]處理器501可以是通用處理器,例如中央處理器(Central Processing Unit,CPU)。
[0108]通信接口 502可以為有線接口(例如以太網(wǎng)接口)或無線接口(例如蜂窩網(wǎng)絡(luò)接口或使用無線局域網(wǎng)接口),用于與其他終端或服務(wù)器進(jìn)行通信。本發(fā)明實(shí)施例中,通信接口502具體用于將目標(biāo)網(wǎng)站中記載目標(biāo)新聞的網(wǎng)頁的鏈接發(fā)送給客戶端。
[0109]用戶接口503具體可為觸控面板,包括觸摸屏和觸控屏,用于檢測(cè)觸控面板上的操作指令,用戶接口503也可以是物理按鍵或者鼠標(biāo)。本發(fā)明實(shí)施例中,用戶接口503具體用于接收用戶輸入的目標(biāo)新聞的標(biāo)題或關(guān)鍵詞。用戶接口 503還可以為顯示屏,用于輸出、顯示圖像或數(shù)據(jù)。本發(fā)明實(shí)施例中,用戶接口503具體用于接收用戶輸入的目標(biāo)新聞的標(biāo)題或關(guān)鍵詞。
[0110]存儲(chǔ)器504可以包括易失性存儲(chǔ)器(Volatile Memory ),例如隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM);存儲(chǔ)器也可以包括非易失性存儲(chǔ)器(Non-Volati I eMemory),例如只讀存儲(chǔ)器(Read-Only Memory ,ROM)、快閃存儲(chǔ)器(Flash Memory)、硬盤(Hard Disk Drive,HDD)或固態(tài)硬盤(Solid-State Drive,SSD);存儲(chǔ)器504還可以包括上述種類的存儲(chǔ)器的組合。存儲(chǔ)器504用于存儲(chǔ)一組程序代碼,處理器501用于調(diào)用存儲(chǔ)器504中存儲(chǔ)的程序代碼,執(zhí)行如下操作:
[0111]對(duì)終端進(jìn)行掃描以獲取需要安裝驅(qū)動(dòng)程序的第一設(shè)備,對(duì)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝;
[0112]在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)所述終端進(jìn)行掃描以檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備,其中,所述第二設(shè)備為在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備;
[0113]如果檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0114]可選地,處理器501還執(zhí)行如下操作:
[0115]對(duì)所述終端進(jìn)行掃描以檢測(cè)終端中是否存在需要安裝驅(qū)動(dòng)程序的第三設(shè)備,其中,所述第三設(shè)備為在所述第二設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備;
[0116]如果檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第三設(shè)備,對(duì)所述第三設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。
[0117]可選地,處理器501還執(zhí)行如下操作:
[0118]根據(jù)第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)線程或進(jìn)程,其中,M為大于零的正整數(shù),N為大于零的正整數(shù),MSN;
[0119]通過所述M個(gè)線程或進(jìn)程對(duì)N個(gè)第一設(shè)備中的M個(gè)第一設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)N個(gè)第一設(shè)備中剩下的N-M個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0120]可選地,處理器501還執(zhí)行如下操作:
[0121]判斷所述第二設(shè)備的數(shù)量S是否大于M,其中,S為大于零的正整數(shù);
[0122]如果判斷結(jié)果為大于M,則通過所述M個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的M個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并將S個(gè)第二設(shè)備中的其他第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列;
[0123]如果判斷結(jié)果為小于或者等于M,則從所述M個(gè)線程或進(jìn)程中選擇與所述第二設(shè)備數(shù)量相等的線程或進(jìn)程對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝。
[0124]可選地,當(dāng)創(chuàng)建的為M個(gè)線程時(shí),所述M個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述M個(gè)線程屬于多個(gè)進(jìn)程。
[0125]可選地,處理器501還執(zhí)行如下操作:
[0126]根據(jù)第二設(shè)備的數(shù)量S創(chuàng)建T個(gè)線程或進(jìn)程,其中,S為大于零的正整數(shù),1~為大于零的正整數(shù),SST;
[0127]通過所述T個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的T個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)S個(gè)第二設(shè)備中剩下的S-T個(gè)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。
[0128]可選地,當(dāng)創(chuàng)建的為T個(gè)線程時(shí),所述T個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述T個(gè)線程屬于多個(gè)進(jìn)程。
[0129]可選地,處理器501還執(zhí)行如下操作:如果檢測(cè)結(jié)果為不存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備,則結(jié)束流程。
[0130]可理解的是,處理器501的執(zhí)行步驟具體可參見圖1至圖6中任實(shí)施例所述的內(nèi)容,此處不再贅述。
[0131]通過在第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,檢測(cè)終端中是否存在第二設(shè)備,并在存在第二設(shè)備時(shí),對(duì)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝,實(shí)現(xiàn)正確安裝依賴于第一設(shè)備的第二設(shè)備的驅(qū)動(dòng)程序,提高用戶的體驗(yàn)。
[0132]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory,RAM)等。
[0133]以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
【主權(quán)項(xiàng)】
1.一種驅(qū)動(dòng)程序安裝方法,其特征在于,包括: 對(duì)終端進(jìn)行掃描以獲取需要安裝驅(qū)動(dòng)程序的第一設(shè)備,對(duì)所述第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝; 在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)所述終端進(jìn)行掃描以檢測(cè)所述終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備,其中,所述第二設(shè)備為在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備; 如果檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝之后,所述方法還包括: 對(duì)所述終端進(jìn)行掃描以檢測(cè)所述終端中是否存在需要安裝驅(qū)動(dòng)程序的第三設(shè)備,其中,所述第三設(shè)備為在所述第二設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備; 如果檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第三設(shè)備,對(duì)所述第三設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,對(duì)所述第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝具體包括: 根據(jù)所述第一設(shè)備的數(shù)量N創(chuàng)建M個(gè)線程或進(jìn)程,其中,M為大于零的正整數(shù),N為大于零的正整數(shù),MSN; 通過所述M個(gè)線程或進(jìn)程對(duì)N個(gè)第一設(shè)備中的M個(gè)第一設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)N個(gè)第一設(shè)備中剩下的N-M個(gè)第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝具體包括: 判斷所述第二設(shè)備的數(shù)量S是否大于M,其中,S為大于零的正整數(shù); 如果判斷結(jié)果為大于M,則通過所述M個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的M個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并將S個(gè)第二設(shè)備中的其他第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列; 如果判斷結(jié)果為小于或者等于M,則從所述M個(gè)線程或進(jìn)程中選擇與所述第二設(shè)備數(shù)量相等的線程或進(jìn)程對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝。5.根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)創(chuàng)建的為M個(gè)線程時(shí),所述M個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述M個(gè)線程屬于多個(gè)進(jìn)程。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝具體包括: 根據(jù)所述第二設(shè)備的數(shù)量S創(chuàng)建T個(gè)線程或進(jìn)程,其中,S為大于零的正整數(shù),T為大于零的正整數(shù),SST; 通過所述T個(gè)線程或進(jìn)程對(duì)S個(gè)第二設(shè)備中的T個(gè)第二設(shè)備的驅(qū)動(dòng)程序同時(shí)進(jìn)行安裝,并對(duì)S個(gè)第二設(shè)備中剩下的S-T個(gè)第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行隊(duì)列。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,當(dāng)創(chuàng)建的為T個(gè)線程時(shí),所述T個(gè)線程屬于同一個(gè)進(jìn)程,或者,所述T個(gè)線程屬于多個(gè)進(jìn)程。8.根據(jù)權(quán)利要求1所述的方法,其特征在于,如果檢測(cè)結(jié)果為不存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備,則結(jié)束流程。9.一種驅(qū)動(dòng)程序安裝裝置,其特征在于,所述裝置包括第一安裝模塊、第一檢測(cè)模塊以及第二安裝模塊, 所述第一安裝模塊用于對(duì)終端進(jìn)行掃描以獲取需要安裝驅(qū)動(dòng)程序的第一設(shè)備,對(duì)所述第一設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝; 所述第一檢測(cè)模塊用于在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后,對(duì)所述終端進(jìn)行掃描以檢測(cè)所述終端中是否存在需要安裝驅(qū)動(dòng)程序的第二設(shè)備,其中,所述第二設(shè)備為在所述第一設(shè)備的驅(qū)動(dòng)程序安裝完成后才顯示出來的需要安裝驅(qū)動(dòng)程序的設(shè)備; 所述第二安裝模塊用于在檢測(cè)結(jié)果為存在需要安裝驅(qū)動(dòng)程序的所述第二設(shè)備時(shí),對(duì)所述第二設(shè)備的驅(qū)動(dòng)程序進(jìn)行安裝。10.—種終端,其特征在于,包括:處理器、存儲(chǔ)器、通信接口和總線;所述處理器、所述存儲(chǔ)器和所述通信接口通過所述總線連接并完成相互間的通信;所述存儲(chǔ)器存儲(chǔ)可執(zhí)行程序代碼;所述處理器通過讀取所述存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來運(yùn)行與所述可執(zhí)行程序代碼對(duì)應(yīng)的程序,以用于執(zhí)行一種驅(qū)動(dòng)程序的安裝方法;其中,所述方法為如權(quán)利要求1至8任一權(quán)利要求所述的方法。
【文檔編號(hào)】G06F9/445GK106055370SQ201610410915
【公開日】2016年10月26日
【申請(qǐng)日】2016年6月13日
【發(fā)明人】楊勇
【申請(qǐng)人】北京金山安全軟件有限公司