本發(fā)明涉及一種信息處理技術(shù)領(lǐng)域,特別是涉及一種軟件運(yùn)行處理方法、裝置及系統(tǒng)。
背景技術(shù):
隨著移動通信技術(shù)的快速發(fā)展,諸如智能手機(jī)、平板電腦、智能手表等終端設(shè)備越來越普及,為了滿足用戶的各種業(yè)務(wù)需求,軟件開發(fā)商開發(fā)了各種各樣的用于終端設(shè)備的軟件,如何使軟件在終端設(shè)備上充分利用資源且穩(wěn)定運(yùn)行,成為業(yè)界最關(guān)注的問題之一。
目前,為了追求軟件的更高性能,新開發(fā)出的軟件運(yùn)行需要的硬件資源越來越大,但是終端設(shè)備的硬件資源有限,在用戶使用終端設(shè)備的軟件時(shí),經(jīng)常會出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗,嚴(yán)重會導(dǎo)致終端設(shè)備系統(tǒng)崩潰的問題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種軟件運(yùn)行處理方法、裝置及系統(tǒng),主要目的在于可以解決目前經(jīng)常會出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗,嚴(yán)重會導(dǎo)致終端設(shè)備系統(tǒng)崩潰的問題。
依據(jù)本發(fā)明一個(gè)方面,提供了一種軟件運(yùn)行處理方法,應(yīng)用于服務(wù)器,該方法包括:
接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;
根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
將所述預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
依據(jù)本發(fā)明另一個(gè)方面,提供了一種軟件運(yùn)行處理方法,應(yīng)用于客戶端,該方法包括:
在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;
將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
接收所述服務(wù)器發(fā)送的所述預(yù)估信息;
根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
依據(jù)本發(fā)明又一個(gè)方面,提供了一種服務(wù)器,該服務(wù)器包括:
接收單元,用于接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;
分析單元,用于根據(jù)所述接收單元接收的硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
發(fā)送單元,用于將所述分析單元分析得到的預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
依據(jù)本發(fā)明再一個(gè)方面,提供了一種客戶端,該客戶端包括:
采集單元,用于在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;
發(fā)送單元,用于將所述采集單元采集到的硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
接收單元,用于接收所述服務(wù)器發(fā)送的所述預(yù)估信息;
調(diào)整單元,用于根據(jù)所述接收單元接收到的預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
依據(jù)本發(fā)明再一個(gè)方面,提供了一種軟件運(yùn)行處理系統(tǒng),該系統(tǒng)包括:服務(wù)器和客戶端;
所述客戶端,用于在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給所述服務(wù)器;
所述服務(wù)器,用于接收所述客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;將所述預(yù)估信息發(fā)送給所述客戶端;
所述客戶端,還用于接收所述服務(wù)器發(fā)送的所述預(yù)估信息;根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
依據(jù)本發(fā)明再一個(gè)方面,提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;
根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
將所述預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
依據(jù)本發(fā)明再一個(gè)方面,提供了一種服務(wù)器,包括存儲器、處理器及存儲在存儲器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;
根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
將所述預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
依據(jù)本發(fā)明再一個(gè)方面,提供了另一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;
將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
接收所述服務(wù)器發(fā)送的所述預(yù)估信息;
根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
依據(jù)本發(fā)明再一個(gè)方面,提供了一種終端設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;
將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
接收所述服務(wù)器發(fā)送的所述預(yù)估信息;
根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
借由上述技術(shù)方案,本發(fā)明提供的一種軟件運(yùn)行處理方法、裝置及系統(tǒng),與現(xiàn)有技術(shù)相比,本發(fā)明可以在軟件運(yùn)行之前,客戶端將軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息發(fā)送給服務(wù)器進(jìn)行分析,得到該軟件運(yùn)行結(jié)果的預(yù)估信息,然后將該預(yù)估信息發(fā)送給客戶端,客戶端根據(jù)該預(yù)估信息提前確定該軟件是否能夠成功運(yùn)行,并相應(yīng)的調(diào)整該軟件的運(yùn)行模式,使得該軟件能夠成功運(yùn)行,進(jìn)而可以提高該軟件運(yùn)行的成功率,避免出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗的情況。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明實(shí)施例提供的一種軟件運(yùn)行處理方法流程示意圖;
圖2示出了本發(fā)明實(shí)施例提供的另一種軟件運(yùn)行處理方法流程示意圖;
圖3示出了本發(fā)明實(shí)施例提供的又一種軟件運(yùn)行處理方法流程示意圖;
圖4示出了本發(fā)明實(shí)施例提供的一種軟件運(yùn)行實(shí)例示意圖;
圖5示出了本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖;
圖6示出了本發(fā)明實(shí)施例提供的另一種服務(wù)器的結(jié)構(gòu)示意圖;
圖7示出了本發(fā)明實(shí)施例提供的一種服務(wù)器的實(shí)體裝置結(jié)構(gòu)示意圖;
圖8示出了本發(fā)明實(shí)施例提供的一種客戶端的結(jié)構(gòu)示意圖;
圖9示出了本發(fā)明實(shí)施例提供的一種終端設(shè)備的實(shí)體裝置結(jié)構(gòu)示意圖;
圖10示出了本發(fā)明實(shí)施例提供的一種軟件運(yùn)行處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
如背景技術(shù)所述,目前終端設(shè)備的硬件資源有限,在用戶使用終端設(shè)備的軟件時(shí),經(jīng)常會出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗,嚴(yán)重會導(dǎo)致終端設(shè)備系統(tǒng)崩潰的問題。
為了解決上述問題,本發(fā)明實(shí)施例提供了一種軟件運(yùn)行處理方法,可以應(yīng)用于服務(wù)器側(cè),可以提高軟件運(yùn)行的成功率,如圖1所示,該方法包括:
101、服務(wù)器接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息。
其中,硬件資源信息中可以包含軟件運(yùn)行需要占用的內(nèi)存信息、cpu主頻信息、存儲卡信息、以及該軟件運(yùn)行所需要的最低操作系統(tǒng)版本信息等;硬件參數(shù)信息中可以包含終端設(shè)備實(shí)時(shí)的內(nèi)存狀態(tài)信息、只讀存儲器(read-onlymemory,rom)信息、存儲卡(memorycard)信息、cpu狀態(tài)信息、操作系統(tǒng)版本信息、設(shè)備型號信息、幀率(framespersecond,fps)信息等。
為了確定軟件在當(dāng)前運(yùn)行模式下是否可以成功運(yùn)行,在該軟件運(yùn)行之前,客戶端可以采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定該軟件運(yùn)行需要的硬件資源信息,然后將這些信息發(fā)送給服務(wù)器,而對于本發(fā)明實(shí)施例這一側(cè)的執(zhí)行主體可以為服務(wù)器,也可以為服務(wù)器中配置的用于軟件運(yùn)行處理的裝置,在服務(wù)器接收到客戶端發(fā)送的實(shí)時(shí)采集的這些信息之后,對這些信息進(jìn)行分析處理,得到該軟件在當(dāng)前運(yùn)行模式下是否可以成功運(yùn)行的預(yù)估信息,具體可以執(zhí)行步驟102至步驟103所述的過程。
102、根據(jù)接收到的硬件資源信息和硬件參數(shù)信息進(jìn)行分析,得到軟件運(yùn)行結(jié)果的預(yù)估信息。
例如,通過對軟件運(yùn)行需要的硬件資源信息進(jìn)行分析,得到該軟件運(yùn)行需要占用的內(nèi)存大小、存儲卡大小、以及運(yùn)行該軟件需要的cpu主頻值、最低操作系統(tǒng)版本;通過對終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息進(jìn)行分析,得到該終端設(shè)備當(dāng)前的剩余內(nèi)存大小、存儲卡剩余空間大小、cpu主頻值、操作系統(tǒng)版本以及該終端設(shè)備當(dāng)前的幀率大小等。如果該軟件運(yùn)行需要占用的內(nèi)存大小小于或等于該終端設(shè)備當(dāng)前的剩余內(nèi)存大小,且該軟件運(yùn)行需要占用的存儲卡大小小于或等于該終端設(shè)備當(dāng)前的存儲卡剩余空間大小,且運(yùn)行該軟件需要的cpu主頻值低于或等于該終端設(shè)備的cpu主頻值,且運(yùn)行該軟件需要的最低操作系統(tǒng)版本不高于該終端設(shè)備的操作系統(tǒng)版本,且根據(jù)該終端設(shè)備的當(dāng)前的幀率大小確定該終端設(shè)備當(dāng)前沒有處于卡頓狀態(tài),在同時(shí)滿足這些條件下,可以確定得到該軟件可以成功運(yùn)行的預(yù)估信息,否則,如果不滿足其中一個(gè)或多個(gè)條件,可以確定得到該軟件將會運(yùn)行失敗的預(yù)估信息。
103、將分析得到的預(yù)估信息發(fā)送給客戶端。
進(jìn)一步的,以使得客戶端根據(jù)接收到的預(yù)估信息調(diào)整軟件的運(yùn)行模式。例如,預(yù)估信息為預(yù)估該軟件將會運(yùn)行失敗,可以調(diào)整軟件的運(yùn)行模式,如將原來需要展示的高清圖片換成標(biāo)清圖片或無圖、和/或?qū)⒃瓉硇枰シ诺母咔逡曨l換成標(biāo)清視頻或跳過視頻播放環(huán)節(jié)、和/或降低該軟件畫面畫質(zhì)、清晰度、分辨率等,和/或關(guān)閉軟件特效,和/或去除一些占用過高內(nèi)存、cpu主頻的軟件單元模塊等,進(jìn)而可以減少軟件運(yùn)行需要占用的硬件資源,以便該軟件可以正常運(yùn)行;還可以在調(diào)整該軟件的運(yùn)行模式之后,客戶端重新計(jì)算該軟件運(yùn)行需要的硬件資源信息,并與終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息一并發(fā)送給服務(wù)器進(jìn)行再次的分析,得到該軟件運(yùn)行結(jié)果新的預(yù)估信息,然后發(fā)送給客戶端,如果此次預(yù)估該軟件可以正常運(yùn)行,那么當(dāng)該軟件需要運(yùn)行時(shí),在調(diào)整后的運(yùn)行模式下運(yùn)行。
本發(fā)明實(shí)施例提供的一種軟件運(yùn)行處理方法,可以應(yīng)用于服務(wù)器側(cè),與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例服務(wù)器根據(jù)軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息進(jìn)行分析,得到該軟件運(yùn)行結(jié)果的預(yù)估信息,然后將該預(yù)估信息發(fā)送給客戶端,客戶端根據(jù)該預(yù)估信息提前確定該軟件是否能夠成功運(yùn)行,并相應(yīng)的調(diào)整該軟件的運(yùn)行模式,使得該軟件能夠成功運(yùn)行,進(jìn)而可以提高該軟件運(yùn)行的成功率,避免出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗的情況。
進(jìn)一步的,為了更好的說明上述處理方法的過程,作為對上述實(shí)施例的細(xì)化和擴(kuò)展,本發(fā)明實(shí)施例提供了另一種軟件運(yùn)行處理方法,可以應(yīng)用于服務(wù)器側(cè),如圖2所示,該方法包括:
201、服務(wù)器接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息。
為了確定軟件在當(dāng)前運(yùn)行模式下是否可以成功運(yùn)行,客戶端在該軟件運(yùn)行之前,可以通過解析該軟件的配置文件和/或在網(wǎng)絡(luò)上查詢與該軟件對應(yīng)的運(yùn)行需要的硬件資源,得到該軟件運(yùn)行需要的硬件資源信息;并可以通過調(diào)用一些特定的接口函數(shù)和/或解析終端設(shè)備本地的一些記錄硬件信息的特定文件,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;然后將獲取到的硬件資源信息和采集到的硬件資源信息發(fā)送給服務(wù)器進(jìn)行分析,得到該軟件在當(dāng)前運(yùn)行模式下是否可以成功運(yùn)行的預(yù)估信息,具體可以執(zhí)行步驟202至步驟205所述的過程。
202、從接收到的硬件參數(shù)信息中獲取終端設(shè)備的內(nèi)存狀態(tài)信息、和/或只讀存儲器rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息。
其中,內(nèi)存狀態(tài)信息中可以包含終端設(shè)備系統(tǒng)總的物理內(nèi)存大小、已運(yùn)行進(jìn)程占用的內(nèi)存大小,剩余內(nèi)存大小等;rom信息中可以包含終端設(shè)備中存放固件代碼程序的存儲器大小,該存儲器只能讀取信息,不能像隨機(jī)存儲器(randomaccessmemory,ram)一樣可以隨時(shí)讀取和寫入信息;存儲卡信息中可以包含cf(compactflash)卡大小、和/或mmc(multimediacard)卡大小、和/或sd(securedigital)卡大小、和/或microsd卡大小、和/或t-flash(transflash)卡大小、和/或sdhc(securedigitalhighcapacity)卡大小、和/或sm(smartmedia)卡大小等;cpu狀態(tài)信息中可以包含cpu的最大頻率值、最小頻率值、當(dāng)前頻率值、物理核心數(shù)量、邏輯核心數(shù)量等;操作系統(tǒng)版本信息中可以包含操作系統(tǒng)的名稱、版本號等;幀率信息中可以包含終端設(shè)備當(dāng)前的幀率值等。
203、根據(jù)接收到的硬件資源信息,檢測獲取到的內(nèi)存狀態(tài)信息、和/或rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息是否符合預(yù)定運(yùn)行條件。
其中,預(yù)定運(yùn)行條件可以根據(jù)實(shí)際需求預(yù)先進(jìn)行設(shè)定。
在本發(fā)明的一個(gè)可選實(shí)施例中,步驟203具體可以包括:根據(jù)獲取到的內(nèi)存狀態(tài)信息、和/或rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息,利用預(yù)定計(jì)算公式,計(jì)算出終端設(shè)備的性能得分;依據(jù)計(jì)算得到的性能得分確定終端設(shè)備的第一性能級別;確定具備軟件運(yùn)行需要的硬件資源信息的終端設(shè)備的第二性能級別;當(dāng)?shù)谝恍阅芗墑e大于或等于第二性能級別時(shí),確定符合預(yù)定運(yùn)行條件;當(dāng)?shù)谝恍阅芗墑e小于第二性能級別時(shí),確定不符合預(yù)定運(yùn)行條件。
預(yù)定計(jì)算公式可以根據(jù)實(shí)際需要預(yù)先由技術(shù)人員進(jìn)行設(shè)定,例如,依據(jù)如內(nèi)存狀態(tài)信息、rom信息、存儲卡信息、cpu狀態(tài)信息、操作系統(tǒng)版本信息、幀率信息等性能參數(shù)信息分別對終端設(shè)備性能的影響程度,預(yù)先為這些信息配置各自對應(yīng)的權(quán)重值,在獲取得到終端設(shè)備a的這些信息之后,可以依據(jù)各自對應(yīng)的權(quán)重值以及結(jié)合各自對應(yīng)的取值,計(jì)算出終端設(shè)備a的性能得分,再依據(jù)該性能得分,確定終端設(shè)備a具體屬于哪一級別的設(shè)備,如低端機(jī)、中端機(jī)、高端機(jī)等;并且根據(jù)軟件運(yùn)行需要的硬件資源信息,確定能夠運(yùn)行該軟件的終端設(shè)備具體屬于哪一級別的設(shè)備。如果依據(jù)該性能得分,確定終端設(shè)備a具體屬于高端機(jī)的設(shè)備,而根據(jù)軟件運(yùn)行需要的硬件資源信息,低端機(jī)的終端設(shè)備就可支持運(yùn)行該軟件,說明終端設(shè)備a可以正常運(yùn)行該軟件,進(jìn)而確定符合預(yù)定運(yùn)行條件;如果依據(jù)該性能得分,確定終端設(shè)備a具體屬于低端機(jī)的設(shè)備,而根據(jù)軟件運(yùn)行需要的硬件資源信息,至少需要中、高端機(jī)的終端設(shè)備才能支持運(yùn)行該軟件,說明終端設(shè)備a無法正常運(yùn)行該軟件,進(jìn)而確定不符合預(yù)定運(yùn)行條件。
通過上述方式可以實(shí)現(xiàn)基于終端設(shè)備的綜合性能評分,確定軟件是否可以正常在終端設(shè)備中運(yùn)行,同時(shí)考慮了多種性能參數(shù)信息對終端設(shè)備的性能影響,因此可以準(zhǔn)確地預(yù)測軟件在終端設(shè)備中的運(yùn)行情況,進(jìn)一步保證客戶端后續(xù)可以準(zhǔn)確的進(jìn)行調(diào)整該軟件的運(yùn)行模式,從而可以提高該軟件運(yùn)行的成功率,避免出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗的情況。
進(jìn)一步的,基于上述可選實(shí)施例的內(nèi)容,在計(jì)算得到終端設(shè)備的性能得分之后,可以從接收到的硬件參數(shù)信息中獲取終端設(shè)備的設(shè)備型號信息,并記錄該設(shè)備型號信息以及與該設(shè)備型號信息對應(yīng)的性能得分,依據(jù)這種方式,后續(xù)可以匯總不同設(shè)備型號信息分別對應(yīng)的性能得分,以便軟件開發(fā)人員針對設(shè)備型號信息對應(yīng)的性能得分,開發(fā)出更適合在該設(shè)備型號信息相應(yīng)終端設(shè)備運(yùn)行的軟件,提高軟件運(yùn)行效果,降低軟件運(yùn)行失敗率。
若軟件運(yùn)行需要的硬件資源信息中包含軟件運(yùn)行需要的內(nèi)存信息,在本發(fā)明的另一個(gè)可選實(shí)施例中,根據(jù)硬件資源信息,檢測獲取得到的內(nèi)存狀態(tài)信息是否符合預(yù)定運(yùn)行條件具體可以包括:根據(jù)內(nèi)存狀態(tài)信息獲取終端設(shè)備當(dāng)前的剩余內(nèi)存信息;檢測軟件運(yùn)行需要的內(nèi)存信息是否小于或等于剩余內(nèi)存信息;若是,則確定內(nèi)存狀態(tài)信息符合預(yù)定運(yùn)行條件;若否,則確定內(nèi)存狀態(tài)信息不符合預(yù)定運(yùn)行條件。
例如,從內(nèi)存狀態(tài)信息中獲取終端設(shè)備總的物理內(nèi)存大小,當(dāng)前已運(yùn)行進(jìn)程占用的內(nèi)存大小,進(jìn)而計(jì)算出終端設(shè)備當(dāng)前的剩余內(nèi)存大小,如果軟件運(yùn)行需要的內(nèi)存小于或等于終端設(shè)備當(dāng)前的剩余內(nèi)存,說明終端設(shè)備在內(nèi)存方面可以支持該軟件的運(yùn)行,進(jìn)而可以確定該內(nèi)存狀態(tài)信息符合預(yù)定運(yùn)行條件;如果該軟件運(yùn)行需要的內(nèi)存大于終端設(shè)備當(dāng)前的剩余內(nèi)存,說明終端設(shè)備在內(nèi)存方面不足以支持該軟件的運(yùn)行,進(jìn)而可以確定該內(nèi)存狀態(tài)信息不符合預(yù)定運(yùn)行條件,通過這種方式可以準(zhǔn)確判別出終端設(shè)備在內(nèi)存方面是否可以支持該軟件的運(yùn)行。
若軟件運(yùn)行需要的硬件資源信息中包含軟件運(yùn)行需要占用的存儲卡信息,在本發(fā)明的又一個(gè)可選實(shí)施例中,根據(jù)硬件資源信息,檢測終端設(shè)備的存儲卡信息是否符合預(yù)定運(yùn)行條件具體可以包括:根據(jù)終端設(shè)備的存儲卡信息獲取終端設(shè)備當(dāng)前的剩余存儲卡信息;檢測軟件運(yùn)行需要占用的存儲卡信息是否小于或等于剩余存儲卡信息;若是,則確定終端設(shè)備的存儲卡信息符合預(yù)定運(yùn)行條件;若否,則確定終端設(shè)備的存儲卡信息不符合預(yù)定運(yùn)行條件。
例如,從存儲卡信息中獲取終端設(shè)備存儲卡總的空間大小,存儲卡當(dāng)前已占用的空間大小,進(jìn)而計(jì)算出終端設(shè)備存儲卡當(dāng)前的剩余空間大小,如果軟件運(yùn)行需要占用的存儲卡空間小于或等于終端設(shè)備存儲卡當(dāng)前的剩余空間,說明終端設(shè)備在存儲空間方面可以支持該軟件的運(yùn)行,進(jìn)而可以確定該存儲卡信息符合預(yù)定運(yùn)行條件;如果該軟件運(yùn)行需要占用的存儲卡空間大于終端設(shè)備存儲卡當(dāng)前的剩余空間,說明終端設(shè)備在存儲空間方面不足以支持該軟件的運(yùn)行,進(jìn)而可以確定該存儲卡信息不符合預(yù)定運(yùn)行條件,通過這種方式可以準(zhǔn)確判別出終端設(shè)備在存儲空間方面是否可以支持該軟件的運(yùn)行。
若軟件運(yùn)行需要的硬件資源信息中包含軟件運(yùn)行需要的cpu主頻值,在本發(fā)明的再一個(gè)可選實(shí)施例中,根據(jù)硬件資源信息,檢測cpu狀態(tài)信息是否符合預(yù)定運(yùn)行條件具體可以包括:根據(jù)cpu狀態(tài)信息獲取終端設(shè)備的cpu主頻值;檢測軟件運(yùn)行需要的cpu主頻值是否小于或等于終端設(shè)備的cpu主頻值;若是,則確定cpu狀態(tài)信息符合預(yù)定運(yùn)行條件;若否,則確定cpu狀態(tài)信息不符合預(yù)定運(yùn)行條件。
例如,根據(jù)cpu狀態(tài)信息獲取終端設(shè)備的cpu主頻值,如果軟件運(yùn)行需要的cpu主頻值小于或等于終端設(shè)備的cpu主頻值,說明終端設(shè)備在cpu方面可以支持該軟件的運(yùn)行,進(jìn)而可以確定該cpu狀態(tài)信息符合預(yù)定運(yùn)行條件;如果該軟件運(yùn)行需要的cpu主頻值大于終端設(shè)備的cpu主頻值,說明終端設(shè)備在cpu方面不足以支持該軟件的運(yùn)行,進(jìn)而可以確定該cpu狀態(tài)信息不符合預(yù)定運(yùn)行條件,通過這種方式可以準(zhǔn)確判別出終端設(shè)備在cpu方面是否可以支持該軟件的運(yùn)行。
若軟件運(yùn)行需要的硬件資源信息中包含軟件運(yùn)行需要的操作系統(tǒng)版本信息,在本發(fā)明的再一個(gè)可選實(shí)施例中,根據(jù)硬件資源信息,檢測終端設(shè)備的操作系統(tǒng)版本信息是否符合預(yù)定運(yùn)行條件具體可以包括:檢測軟件運(yùn)行需要的操作系統(tǒng)版本信息是否高于終端設(shè)備的操作系統(tǒng)版本信息;若是,則確定終端設(shè)備的操作系統(tǒng)版本信息不符合預(yù)定運(yùn)行條件;若否,則確定終端設(shè)備的操作系統(tǒng)版本信息符合預(yù)定運(yùn)行條件。
例如,如果軟件運(yùn)行需要的操作系統(tǒng)版本高于終端設(shè)備的操作系統(tǒng)版本,說明終端設(shè)備在操作系統(tǒng)方面不足以支持該軟件的運(yùn)行,進(jìn)而可以確定該操作系統(tǒng)版本信息不符合預(yù)定運(yùn)行條件;如果該軟件運(yùn)行需要的操作系統(tǒng)版本低于終端設(shè)備的操作系統(tǒng)版本,或與其相等,說明終端設(shè)備在操作系統(tǒng)方面可以支持該軟件的運(yùn)行,進(jìn)而可以確定該操作系統(tǒng)版本信息符合預(yù)定運(yùn)行條件,通過這種方式可以準(zhǔn)確判別出終端設(shè)備在操作系統(tǒng)方面是否可以支持該軟件的運(yùn)行。
在本發(fā)明的再一個(gè)可選實(shí)施例中,根據(jù)硬件資源信息,檢測幀率信息是否符合預(yù)定運(yùn)行條件具體可以包括:根據(jù)幀率信息獲取終端設(shè)備當(dāng)前的幀率值;根據(jù)幀率值確定終端設(shè)備當(dāng)前是否處于卡頓狀態(tài);若是,則確定幀率信息不符合預(yù)定運(yùn)行條件;若否,則確定幀率信息符合預(yù)定運(yùn)行條件。
例如,從幀率信息中獲取終端設(shè)備當(dāng)前的幀率值,如果該幀率值處于特定的正常幀率范圍外,處于異常幀率范圍內(nèi),說明該終端設(shè)備當(dāng)前處于卡頓狀態(tài),在這種條件下運(yùn)行軟件很有可能造成軟件運(yùn)行失敗,進(jìn)而確定該幀率信息不符合預(yù)定運(yùn)行條件;如果該幀率值處于特定的正常幀率范圍內(nèi),說明該終端設(shè)備當(dāng)前沒有處于卡頓狀態(tài),在這種條件下可以運(yùn)行軟件,進(jìn)而確定該幀率信息符合預(yù)定運(yùn)行條件。通過這種方式可以結(jié)合終端設(shè)備的卡頓狀態(tài),綜合分析當(dāng)前運(yùn)行環(huán)境是否可以支持該軟件的運(yùn)行。
需要說明的是,上述幾種可選實(shí)施例可以相互結(jié)合,來綜合判別終端設(shè)備是否具備一定條件來支持軟件的運(yùn)行,進(jìn)而可以考慮多種性能參數(shù)指標(biāo)對終端設(shè)備的性能影響,不僅可以包含靜態(tài)的物理指標(biāo)(終端設(shè)備的cpu主頻值、操作系統(tǒng)版本等),還可以包含動態(tài)的運(yùn)行指標(biāo)(終端設(shè)備當(dāng)前的剩余內(nèi)存大小、剩余存儲卡空間大小、當(dāng)前幀率值等),因此可以準(zhǔn)確地預(yù)測軟件在終端設(shè)備當(dāng)前的運(yùn)行環(huán)境下的運(yùn)行情況。
204、根據(jù)檢測結(jié)果確定軟件運(yùn)行結(jié)果的預(yù)估信息。
例如,如果檢測出終端設(shè)備的內(nèi)存狀態(tài)信息、rom信息、存儲卡信息、cpu狀態(tài)信息、操作系統(tǒng)版本信息以及幀率信息等都符合預(yù)定運(yùn)行條件,確定該軟件可以在終端設(shè)備上成功運(yùn)行,并生成相應(yīng)的軟件運(yùn)行結(jié)果的預(yù)估信息;如果上述信息中存在至少一個(gè)信息不符合預(yù)定運(yùn)行條件,確定該軟件將在終端設(shè)備上運(yùn)行失敗,并生成相應(yīng)的軟件運(yùn)行結(jié)果的預(yù)估信息。
205、將確定的預(yù)估信息和與預(yù)估信息對應(yīng)的運(yùn)行模式調(diào)整策略信息發(fā)送給客戶端。
進(jìn)一步的,以使得客戶端根據(jù)軟件當(dāng)前的運(yùn)行模式、接收到的預(yù)估信息、運(yùn)行模式調(diào)整策略信息,調(diào)整軟件的運(yùn)行模式。其中,運(yùn)行模式調(diào)整策略信息中可以包含運(yùn)行模式調(diào)整的相關(guān)策略內(nèi)容,具體可以根據(jù)實(shí)際情況由技術(shù)人員預(yù)先進(jìn)行編寫配置。
例如,軟件默認(rèn)的運(yùn)行模式具體包括需要展示的圖片為標(biāo)清圖片、需要播放的視頻為標(biāo)清視頻、啟動軟件的部分特效、中等畫面分辨率、啟動較少軟件功能等,通過上述方式可以確定得到該軟件以這種運(yùn)行模式在終端設(shè)備a上運(yùn)行會運(yùn)行失敗,在服務(wù)器側(cè),可以結(jié)合該軟件運(yùn)行需要的硬件資源信息和終端設(shè)備a當(dāng)前的硬件參數(shù)信息,分析得到相應(yīng)的運(yùn)行模式調(diào)整策略信息,并將該運(yùn)行模式調(diào)整策略信息和預(yù)估信息發(fā)送給客戶端,客戶端針對該運(yùn)行模式調(diào)整策略信息根據(jù)軟件當(dāng)前的運(yùn)行模式、接收到的預(yù)估信息、運(yùn)行模式調(diào)整策略信息,調(diào)整軟件的運(yùn)行模式,將原來需要展示的標(biāo)清圖片調(diào)整為無圖模式、停止播放原來需要播放的標(biāo)清視頻,降低畫面分辨率,進(jìn)一步減少啟動軟件功能,進(jìn)而保證該軟件可以在終端設(shè)備a中正常運(yùn)行。
基于上述實(shí)例,如果通過上述方式可以確定得到該軟件以這種運(yùn)行模式在終端設(shè)備a上運(yùn)行會成功運(yùn)行,并且進(jìn)一步確定該軟件能以更高的運(yùn)行模式在終端設(shè)備a上運(yùn)行,在服務(wù)器側(cè),可以結(jié)合該軟件運(yùn)行需要的硬件資源信息和終端設(shè)備a當(dāng)前的硬件參數(shù)信息,分析得到相應(yīng)的運(yùn)行模式調(diào)整策略信息,并將該運(yùn)行模式調(diào)整策略信息和預(yù)估信息發(fā)送給客戶端,客戶端針對該運(yùn)行模式調(diào)整策略信息根據(jù)軟件當(dāng)前的運(yùn)行模式、接收到的預(yù)估信息、運(yùn)行模式調(diào)整策略信息,調(diào)整軟件的運(yùn)行模式,將原來需要展示的標(biāo)清圖片調(diào)整為高清圖片、將原來需要播放的標(biāo)清視頻調(diào)整為高清視頻,提高畫面分辨率,啟動更多的軟件功能,進(jìn)而保證該軟件能夠以更高的質(zhì)量在終端設(shè)備a中正常運(yùn)行,以便增強(qiáng)用戶的體驗(yàn)。
本發(fā)明實(shí)施例提供的另一種軟件運(yùn)行處理方法,可以應(yīng)用于服務(wù)器側(cè),可以考慮多種性能參數(shù)指標(biāo)對終端設(shè)備的性能影響,不僅可以包含靜態(tài)的物理指標(biāo),還可以包含動態(tài)的運(yùn)行指標(biāo),因此可以準(zhǔn)確地預(yù)測軟件在終端設(shè)備當(dāng)前的運(yùn)行環(huán)境下的運(yùn)行情況,進(jìn)一步保證客戶端后續(xù)可以準(zhǔn)確的進(jìn)行調(diào)整該軟件的運(yùn)行模式,從而可以提高該軟件運(yùn)行的成功率,避免出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗的情況。
上述實(shí)施例所描述的是服務(wù)器側(cè)進(jìn)行軟件運(yùn)行處理的過程,相應(yīng)的,本發(fā)明實(shí)施例提供了又一種軟件運(yùn)行處理方法,可以應(yīng)用于客戶端,如圖3所示,該方法包括:
301、在軟件運(yùn)行之前,客戶端采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定軟件運(yùn)行需要的硬件資源信息。
其中,硬件參數(shù)信息可以包含終端設(shè)備的內(nèi)存狀態(tài)信息、和/或rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息。
對于本發(fā)明實(shí)施例這一側(cè)的執(zhí)行主體可以為客戶端,該客戶端在軟件運(yùn)行之前,可以通過解析該軟件的配置文件和/或在網(wǎng)絡(luò)上查詢與該軟件對應(yīng)的運(yùn)行需要的硬件資源,得到該軟件運(yùn)行需要的硬件資源信息;并可以通過調(diào)用一些特定的接口函數(shù)和/或解析終端設(shè)備本地的一些記錄硬件信息的特定文件,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息。
例如,在安卓系統(tǒng)中,可以通過解析/proc/meminfo文件,獲取得到操作系統(tǒng)總的物理內(nèi)存大小、剩余內(nèi)存大小等;通過調(diào)用預(yù)定debug.getmemoryinfo接口函數(shù),獲取已運(yùn)行進(jìn)程占用的內(nèi)存大小等;通過解析/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq文件,獲取得到cpu的最大頻率,通過解析/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq文件,獲取得到cpu當(dāng)前的頻率,通過解析/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq文件,獲取得到cpu的最小頻率;通過讀取android.os.build.version.sdk值,獲取操作系統(tǒng)版本信息;通過讀取android.os.build.model獲取終端設(shè)備型號信息。
在本發(fā)明的再一個(gè)可選實(shí)施例中,采集rom信息的過程具體可以包括:通過預(yù)定接口函數(shù)獲取終端設(shè)備的機(jī)身內(nèi)存路徑;創(chuàng)建與機(jī)身內(nèi)存路徑對應(yīng)的查詢文件系統(tǒng)相關(guān)信息的函數(shù)對象;調(diào)用與函數(shù)對象對應(yīng)的預(yù)置塊字節(jié)數(shù)查詢函數(shù),獲取終端設(shè)備的每個(gè)塊字節(jié)數(shù);調(diào)用與所述函數(shù)對象對應(yīng)的預(yù)置塊計(jì)數(shù)查詢函數(shù),獲取終端設(shè)備的塊數(shù)量;計(jì)算每個(gè)塊字節(jié)數(shù)與塊數(shù)量的乘積,得到終端設(shè)備的rom信息。
例如,在安卓系統(tǒng)中,通過調(diào)用預(yù)定environment.getdatadirectory接口函數(shù),獲取終端設(shè)備的機(jī)身內(nèi)存路徑path;再創(chuàng)建path路徑的查詢文件系統(tǒng)相關(guān)信息statfs的函數(shù)對象statsfs;然后調(diào)用與函數(shù)對象statsfs對應(yīng)的預(yù)置statsfs.getblocksize字節(jié)數(shù)查詢函數(shù),獲取終端設(shè)備的每個(gè)塊字節(jié)數(shù)blocksize,并調(diào)用與函數(shù)對象statsfs對應(yīng)的預(yù)置statsfs.getblockcount塊計(jì)數(shù)查詢函數(shù),獲取終端設(shè)備的塊數(shù)量blockcount;最后通過公式romsize=blocksize*blockcount得到rom大小romsize。
在本發(fā)明的再一個(gè)可選實(shí)施例中,采集存儲卡信息的過程具體可以包括:通過預(yù)置接口函數(shù)獲取終端設(shè)備的存儲卡路徑;創(chuàng)建與存儲卡路徑對應(yīng)的查詢文件系統(tǒng)相關(guān)信息的函數(shù)對象;調(diào)用與函數(shù)對象對應(yīng)的預(yù)置塊字節(jié)數(shù)查詢函數(shù),獲取終端設(shè)備的每個(gè)塊字節(jié)數(shù);調(diào)用與所述函數(shù)對象對應(yīng)的預(yù)置塊計(jì)數(shù)查詢函數(shù),獲取終端設(shè)備的塊數(shù)量;計(jì)算每個(gè)塊字節(jié)數(shù)與塊數(shù)量的乘積,得到終端設(shè)備的存儲卡信息。
例如,在安卓系統(tǒng)中,通過調(diào)用預(yù)置environment.getexternalstoragedirectory接口函數(shù),獲取終端設(shè)備的sd卡路徑path;再創(chuàng)建path路徑的查詢文件系統(tǒng)相關(guān)信息statfs的函數(shù)對象statsfs;然后調(diào)用與函數(shù)對象statsfs對應(yīng)的預(yù)置statsfs.getblocksize字節(jié)數(shù)查詢函數(shù),獲取終端設(shè)備的每個(gè)塊字節(jié)數(shù)blocksize,并調(diào)用與函數(shù)對象statsfs對應(yīng)的預(yù)置statsfs.getblockcount塊計(jì)數(shù)查詢函數(shù),獲取終端設(shè)備的塊數(shù)量blockcount;最后通過公式sdsize=blocksize*blockcount得到sd卡大小sdsize。
在本發(fā)明的再一個(gè)可選實(shí)施例中,采集幀率信息的過程具體可以包括:配置初始幀率值以及下一次顯示系統(tǒng)繪制的回調(diào)信息;若讀取到顯示系統(tǒng)繪制的回調(diào)信息,則對預(yù)定統(tǒng)計(jì)周期內(nèi)已統(tǒng)計(jì)的幀率值進(jìn)行累計(jì),并再次配置下一次顯示系統(tǒng)繪制的回調(diào)信息;當(dāng)預(yù)定統(tǒng)計(jì)周期結(jié)束時(shí),將預(yù)定統(tǒng)計(jì)周期內(nèi)已統(tǒng)計(jì)的幀率值,確定為當(dāng)前時(shí)鐘周期的幀率值,并作為終端設(shè)備的幀率信息。
例如,客戶端可以采集幀率相關(guān)的參數(shù)信息,具體可以使用android的消息處理器choreographer來獲取,其中choreographer會接收顯示系統(tǒng)的三個(gè)繪制消息msg_do_frame、msg_do_schedule_vsync、msg_do_schedule_callback,分別對應(yīng)三種回調(diào),包括事件回調(diào)、動畫回調(diào)、繪制回調(diào),這三種事件在消息輸入、加入動畫、準(zhǔn)備繪圖layout等動作時(shí)均會發(fā)給choreographer。首先設(shè)定初始幀率值為framenumer,并為其賦初值0,在開始統(tǒng)計(jì)幀率時(shí),調(diào)用choreographer的postframecallback接口配置下一次顯示系統(tǒng)繪制回調(diào)的指令,若客戶端接收到顯示系統(tǒng)繪制回調(diào)之后,為幀率值framenumer累計(jì)加1,并再次調(diào)用choreographer的postframecallback接口配置下一次顯示系統(tǒng)繪制回調(diào)的指令,通過這種方式周期統(tǒng)計(jì),當(dāng)統(tǒng)計(jì)周期結(jié)束時(shí),得到的framenumer即為當(dāng)前時(shí)鐘周期的幀率值,通過這種方式可以準(zhǔn)確的采集到終端設(shè)備的幀率信息。
302、將采集到的硬件參數(shù)信息和硬件資源信息發(fā)送給服務(wù)器。
進(jìn)一步的,以使得服務(wù)器根據(jù)該硬件資源信息和硬件參數(shù)信息進(jìn)行分析,得到軟件運(yùn)行結(jié)果的預(yù)估信息。
需要說明的是,在服務(wù)器側(cè),根據(jù)該硬件資源信息和硬件參數(shù)信息進(jìn)行分析得到軟件運(yùn)行結(jié)果的預(yù)估信息的具體過程可以參考步驟101至103中的相應(yīng)描述,在此不再贅述。
303、接收服務(wù)器發(fā)送的分析得到的預(yù)估信息。
其中,該預(yù)估信息中包含對軟件運(yùn)行結(jié)果的預(yù)測信息。
304、根據(jù)接收到的預(yù)估信息調(diào)整軟件的運(yùn)行模式。
在本發(fā)明的一個(gè)可選實(shí)施例中,步驟304具體可以包括:在需要運(yùn)行軟件時(shí),停止運(yùn)行該軟件,并輸出相應(yīng)的提示信息,其中提示信息可以為文本提示信息、圖片提示信息、音頻提示信息、視頻提示信息等,例如,如圖4所示,當(dāng)用戶開啟軟件1時(shí),軟件1停止運(yùn)行,并輸出軟件1無法開啟的文字提示信息;或者接收服務(wù)器發(fā)送的與預(yù)估信息對應(yīng)的運(yùn)行模式調(diào)整策略信息,并根據(jù)運(yùn)行模式調(diào)整策略信息,調(diào)整該軟件的運(yùn)行模式,使得該軟件能夠運(yùn)行,具體過程可以參見步驟205中的描述,在此不再贅述。
本發(fā)明實(shí)施例提供的另一種軟件運(yùn)行處理方法,可以應(yīng)用于客戶端,可以使得該軟件能夠成功運(yùn)行,進(jìn)而可以提高該軟件運(yùn)行的成功率,避免出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗的情況。
進(jìn)一步的,作為圖1所述方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種服務(wù)器,如圖5所示,所述服務(wù)器包括:接收單元41、分析單元42、發(fā)送單元43。
接收單元41,可以用于接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息。接收單元41面向客戶端,為本服務(wù)器中接收請求信息的主要功能模塊,在接收到該硬件資源信息和該硬件參數(shù)信息之后,觸發(fā)分析單元42進(jìn)行工作。
分析單元42,可以用于根據(jù)所述接收單元41接收的硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息。分析單元42為本服務(wù)器中分析得到軟件運(yùn)行結(jié)果的預(yù)估信息的主要功能模塊,為本服務(wù)器中的核心單元模塊。
發(fā)送單元43,可以用于將所述分析單元42分析得到的預(yù)估信息發(fā)送給所述客戶端。
進(jìn)一步的,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式,發(fā)送單元43同樣面向客戶端,為本服務(wù)器中反饋請求信息的響應(yīng)信息的主要功能模塊。
在具體的應(yīng)用場景中,如圖6所示,所述分析單元42具體可以包括:獲取模塊421、檢測模塊422、確定模塊423。
獲取模塊421,可以用于從所述硬件參數(shù)信息中獲取所述終端設(shè)備的內(nèi)存狀態(tài)信息、和/或只讀存儲器rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息。
檢測模塊422,可以用于根據(jù)所述硬件資源信息,檢測所述獲取模塊421獲取的內(nèi)存狀態(tài)信息、和/或所述rom信息、和/或所述存儲卡信息、和/或所述cpu狀態(tài)信息、和/或所述操作系統(tǒng)版本信息、和/或所述幀率信息是否符合預(yù)定運(yùn)行條件。
確定模塊423,用于根據(jù)所述檢測模塊422的檢測結(jié)果確定所述軟件運(yùn)行結(jié)果的預(yù)估信息。
在具體的應(yīng)用場景中,所述檢測模塊422,具體可以用于根據(jù)所述內(nèi)存狀態(tài)信息、和/或所述rom信息、和/或所述存儲卡信息、和/或所述cpu狀態(tài)信息、和/或所述操作系統(tǒng)版本信息、和/或所述幀率信息,利用預(yù)定計(jì)算公式,計(jì)算出所述終端設(shè)備的性能得分;依據(jù)所述性能得分確定所述終端設(shè)備的第一性能級別;確定具備所述硬件資源信息的終端設(shè)備的第二性能級別;當(dāng)所述第一性能級別大于或等于所述第二性能級別時(shí),確定符合預(yù)定運(yùn)行條件;當(dāng)所述第一性能級別小于所述第二性能級別時(shí),確定不符合預(yù)定運(yùn)行條件。
通過上述方式可以實(shí)現(xiàn)基于終端設(shè)備的綜合性能評分,確定軟件是否可以正常在終端設(shè)備中運(yùn)行,同時(shí)考慮了多種性能參數(shù)信息對終端設(shè)備的性能影響,因此可以準(zhǔn)確地預(yù)測軟件在終端設(shè)備中的運(yùn)行情況,進(jìn)一步保證客戶端后續(xù)可以準(zhǔn)確的進(jìn)行調(diào)整該軟件的運(yùn)行模式,從而可以提高該軟件運(yùn)行的成功率,避免出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗的情況。
在具體的應(yīng)用場景中,檢測模塊422,具體還可以用于若所述硬件資源信息中包含所述軟件運(yùn)行需要的內(nèi)存信息,則根據(jù)所述內(nèi)存狀態(tài)信息獲取所述終端設(shè)備當(dāng)前的剩余內(nèi)存信息;檢測所述軟件運(yùn)行需要的內(nèi)存信息是否小于或等于所述剩余內(nèi)存信息;若是,則確定所述內(nèi)存狀態(tài)信息符合預(yù)定運(yùn)行條件;若否,則確定所述內(nèi)存狀態(tài)信息不符合預(yù)定運(yùn)行條件。
在具體的應(yīng)用場景中,檢測模塊422,具體還可以用于若所述硬件資源信息中包含所述軟件運(yùn)行需要占用的存儲卡信息,則根據(jù)所述終端設(shè)備的存儲卡信息獲取所述終端設(shè)備當(dāng)前的剩余存儲卡信息;檢測所述軟件運(yùn)行需要占用的存儲卡信息是否小于或等于所述剩余存儲卡信息;若是,則確定所述終端設(shè)備的存儲卡信息符合預(yù)定運(yùn)行條件;若否,則確定所述終端設(shè)備的存儲卡信息不符合預(yù)定運(yùn)行條件。
在具體的應(yīng)用場景中,檢測模塊422,具體還可以用于若所述硬件資源信息中包含所述軟件運(yùn)行需要的cpu主頻值,則根據(jù)所述cpu狀態(tài)信息獲取所述終端設(shè)備的cpu主頻值;檢測所述軟件運(yùn)行需要的cpu主頻值是否小于或等于所述終端設(shè)備的cpu主頻值;若是,則確定所述cpu狀態(tài)信息符合預(yù)定運(yùn)行條件;若否,則確定所述cpu狀態(tài)信息不符合預(yù)定運(yùn)行條件。
在具體的應(yīng)用場景中,檢測模塊422,具體還可以用于若所述硬件資源信息中包含所述軟件運(yùn)行需要的操作系統(tǒng)版本信息,則檢測所述軟件運(yùn)行需要的操作系統(tǒng)版本信息是否高于所述終端設(shè)備的操作系統(tǒng)版本信息;若是,則確定所述終端設(shè)備的操作系統(tǒng)版本信息不符合預(yù)定運(yùn)行條件;若否,則確定所述終端設(shè)備的操作系統(tǒng)版本信息符合預(yù)定運(yùn)行條件。
在具體的應(yīng)用場景中,檢測模塊422,具體還可以用于若所述硬件資源信息中包含所述軟件運(yùn)行需要的操作系統(tǒng)版本信息,則檢測所述軟件運(yùn)行需要的操作系統(tǒng)版本信息是否高于所述終端設(shè)備的操作系統(tǒng)版本信息;若是,則確定所述終端設(shè)備的操作系統(tǒng)版本信息不符合預(yù)定運(yùn)行條件;若否,則確定所述終端設(shè)備的操作系統(tǒng)版本信息符合預(yù)定運(yùn)行條件。
在具體的應(yīng)用場景中,檢測模塊422,具體還可以用于根據(jù)所述幀率信息獲取所述終端設(shè)備當(dāng)前的幀率值;根據(jù)所述幀率值確定所述終端設(shè)備當(dāng)前是否處于卡頓狀態(tài);若是,則確定所述幀率信息不符合預(yù)定運(yùn)行條件;若否,則確定所述幀率信息符合預(yù)定運(yùn)行條件。
在具體的應(yīng)用場景中,所述發(fā)送單元43,具體可以用于將所述預(yù)估信息和與所述預(yù)估信息對應(yīng)的運(yùn)行模式調(diào)整策略信息發(fā)送給所述客戶端。
進(jìn)一步的,以使得所述客戶端根據(jù)所述軟件當(dāng)前的運(yùn)行模式、所述預(yù)估信息、所述運(yùn)行模式調(diào)整策略信息,調(diào)整所述軟件的運(yùn)行模式。
需要說明的是,本發(fā)明實(shí)施例提供的一種服務(wù)器所涉及各功能單元的其他相應(yīng)描述,可以參考圖1中的對應(yīng)描述,在此不再贅述。
基于上述如圖1所示方法,相應(yīng)的,本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;將所述預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
基于上述如圖1所示方法和如圖5和圖6所示裝置的實(shí)施例,本發(fā)明實(shí)施例還提供了一種服務(wù)器的實(shí)體裝置,如圖7所示,該裝置包括:處理器51、存儲器52、及存儲在存儲器52上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器51執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;將所述預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式;該裝置還包括:總線53,被配置為耦接處理器51及存儲器52。
進(jìn)一步的,作為圖3所述方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種客戶端,如圖8所示,所述客戶端包括:采集單元61、發(fā)送單元62、接收單元63、調(diào)整單元64。
采集單元61,可以用于在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息。采集單元61為本客戶端中采集參數(shù)信息的主要功能模塊。
發(fā)送單元62,可以用于將所述采集單元61采集到的硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器。
進(jìn)一步的,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;發(fā)送單元62面向服務(wù)器,為本客戶端中發(fā)送服務(wù)請求的主要功能模塊。
接收單元63,可以用于接收所述服務(wù)器發(fā)送的所述預(yù)估信息;接收單元63同樣面向服務(wù)器,為本客戶端中接收服務(wù)器反饋信息的主要功能模塊。
調(diào)整單元64,可以用于根據(jù)所述接收單元63接收到的預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。調(diào)整單元64位本客戶端調(diào)整軟件運(yùn)行模式的主要功能模塊。
在具體的應(yīng)用場景中,調(diào)整單元64,具體可以用于若所述預(yù)估信息為所述軟件運(yùn)行失敗,則在需要運(yùn)行所述軟件時(shí),停止運(yùn)行所述軟件,并輸出相應(yīng)的提示信息;或接收所述服務(wù)器發(fā)送的與所述預(yù)估信息對應(yīng)的運(yùn)行模式調(diào)整策略信息,并根據(jù)所述運(yùn)行模式調(diào)整策略信息,調(diào)整所述軟件的運(yùn)行模式,使得所述軟件能夠運(yùn)行。
可選地,所述硬件參數(shù)信息可以包含所述終端設(shè)備的內(nèi)存狀態(tài)信息、和/或只讀存儲器rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息。
在具體的應(yīng)用場景中,所述采集單元61,具體可以用于通過預(yù)定接口函數(shù)獲取終端設(shè)備的機(jī)身內(nèi)存路徑;創(chuàng)建與所述機(jī)身內(nèi)存路徑對應(yīng)的查詢文件系統(tǒng)相關(guān)信息的函數(shù)對象;調(diào)用與所述函數(shù)對象對應(yīng)的預(yù)置塊字節(jié)數(shù)查詢函數(shù),獲取所述終端設(shè)備的每個(gè)塊字節(jié)數(shù);調(diào)用與所述函數(shù)對象對應(yīng)的預(yù)置塊計(jì)數(shù)查詢函數(shù),獲取所述終端設(shè)備的塊數(shù)量;計(jì)算所述每個(gè)塊字節(jié)數(shù)與所述塊數(shù)量的乘積,得到所述終端設(shè)備的rom信息。
在具體的應(yīng)用場景中,所述采集單元61,具體還可以用于配置初始幀率值以及下一次顯示系統(tǒng)繪制的回調(diào)信息;若讀取到顯示系統(tǒng)繪制的回調(diào)信息,則對預(yù)定統(tǒng)計(jì)周期內(nèi)已統(tǒng)計(jì)的幀率值進(jìn)行累計(jì),并再次配置下一次顯示系統(tǒng)繪制的回調(diào)信息;當(dāng)所述預(yù)定統(tǒng)計(jì)周期結(jié)束時(shí),將所述預(yù)定統(tǒng)計(jì)周期內(nèi)已統(tǒng)計(jì)的幀率值,確定為當(dāng)前時(shí)鐘周期的幀率值,并作為所述終端設(shè)備的幀率信息。
需要說明的是,本發(fā)明實(shí)施例提供的一種客戶端所涉及各功能單元的其他相應(yīng)描述,可以參考圖3中的對應(yīng)描述,在此不再贅述。
基于上述如圖3所示方法,相應(yīng)的,本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;接收所述服務(wù)器發(fā)送的所述預(yù)估信息;根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
基于上述如圖3所示方法和如圖8所示裝置的實(shí)施例,本發(fā)明實(shí)施例還提供了一種終端設(shè)備的實(shí)體裝置,如圖9所示,該終端設(shè)備包括:處理器71、存儲器72、及存儲在存儲器72上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器71執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;接收所述服務(wù)器發(fā)送的所述預(yù)估信息;根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式;該終端設(shè)備還包括:總線73,被配置為耦接處理器71及存儲器72。
進(jìn)一步的,本發(fā)明實(shí)施例提供了一種軟件運(yùn)行處理系統(tǒng),如圖10所示,包括:服務(wù)器81和客戶端82。
所述客戶端82,可以用于在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給所述服務(wù)器81。
所述服務(wù)器81,可以用于接收所述客戶端82發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;將所述預(yù)估信息發(fā)送給所述客戶端82。
所述客戶端82,還可以用于接收所述服務(wù)器81發(fā)送的所述預(yù)估信息;根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
通過應(yīng)用本發(fā)明的技術(shù)方案,可以使得該軟件能夠成功運(yùn)行,進(jìn)而可以提高該軟件運(yùn)行的成功率,避免出現(xiàn)由于終端設(shè)備的硬件資源不足,導(dǎo)致軟件運(yùn)行失敗的情況。
本發(fā)明實(shí)施例公開了:
a1、一種軟件運(yùn)行處理方法,應(yīng)用于服務(wù)器,包括:
接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;
根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
將所述預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
a2、如a1所述的方法,所述根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息,具體包括:
從所述硬件參數(shù)信息中獲取所述終端設(shè)備的內(nèi)存狀態(tài)信息、和/或只讀存儲器rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息;
根據(jù)所述硬件資源信息,檢測所述內(nèi)存狀態(tài)信息、和/或所述rom信息、和/或所述存儲卡信息、和/或所述cpu狀態(tài)信息、和/或所述操作系統(tǒng)版本信息、和/或所述幀率信息是否符合預(yù)定運(yùn)行條件;
根據(jù)檢測結(jié)果確定所述軟件運(yùn)行結(jié)果的預(yù)估信息。
a3、如a2所述的方法,所述根據(jù)所述硬件資源信息,檢測所述內(nèi)存狀態(tài)信息、和/或所述rom信息、和/或所述存儲卡信息、和/或所述cpu狀態(tài)信息、和/或所述操作系統(tǒng)版本信息、和/或所述幀率信息是否符合預(yù)定運(yùn)行條件,具體包括:
根據(jù)所述內(nèi)存狀態(tài)信息、和/或所述rom信息、和/或所述存儲卡信息、和/或所述cpu狀態(tài)信息、和/或所述操作系統(tǒng)版本信息、和/或所述幀率信息,利用預(yù)定計(jì)算公式,計(jì)算出所述終端設(shè)備的性能得分;
依據(jù)所述性能得分確定所述終端設(shè)備的第一性能級別;
確定具備所述硬件資源信息的終端設(shè)備的第二性能級別;
當(dāng)所述第一性能級別大于或等于所述第二性能級別時(shí),確定符合預(yù)定運(yùn)行條件;
當(dāng)所述第一性能級別小于所述第二性能級別時(shí),確定不符合預(yù)定運(yùn)行條件。
a4、如a2所述的方法,若所述硬件資源信息中包含所述軟件運(yùn)行需要的內(nèi)存信息,則根據(jù)所述硬件資源信息,檢測所述內(nèi)存狀態(tài)信息是否符合預(yù)定運(yùn)行條件,具體包括:
根據(jù)所述內(nèi)存狀態(tài)信息獲取所述終端設(shè)備當(dāng)前的剩余內(nèi)存信息;
檢測所述軟件運(yùn)行需要的內(nèi)存信息是否小于或等于所述剩余內(nèi)存信息;
若是,則確定所述內(nèi)存狀態(tài)信息符合預(yù)定運(yùn)行條件;
若否,則確定所述內(nèi)存狀態(tài)信息不符合預(yù)定運(yùn)行條件。
a5、如a2所述的方法,若所述硬件資源信息中包含所述軟件運(yùn)行需要占用的存儲卡信息,則根據(jù)所述硬件資源信息,檢測所述終端設(shè)備的存儲卡信息是否符合預(yù)定運(yùn)行條件,具體包括:
根據(jù)所述終端設(shè)備的存儲卡信息獲取所述終端設(shè)備當(dāng)前的剩余存儲卡信息;
檢測所述軟件運(yùn)行需要占用的存儲卡信息是否小于或等于所述剩余存儲卡信息;
若是,則確定所述終端設(shè)備的存儲卡信息符合預(yù)定運(yùn)行條件;
若否,則確定所述終端設(shè)備的存儲卡信息不符合預(yù)定運(yùn)行條件。
a6、如a2所述的方法,若所述硬件資源信息中包含所述軟件運(yùn)行需要的cpu主頻值,則根據(jù)所述硬件資源信息,檢測所述cpu狀態(tài)信息是否符合預(yù)定運(yùn)行條件,具體包括:
根據(jù)所述cpu狀態(tài)信息獲取所述終端設(shè)備的cpu主頻值;
檢測所述軟件運(yùn)行需要的cpu主頻值是否小于或等于所述終端設(shè)備的cpu主頻值;
若是,則確定所述cpu狀態(tài)信息符合預(yù)定運(yùn)行條件;
若否,則確定所述cpu狀態(tài)信息不符合預(yù)定運(yùn)行條件。
a7、如a2所述的方法,若所述硬件資源信息中包含所述軟件運(yùn)行需要的操作系統(tǒng)版本信息,則根據(jù)所述硬件資源信息,檢測所述終端設(shè)備的操作系統(tǒng)版本信息是否符合預(yù)定運(yùn)行條件,具體包括:
檢測所述軟件運(yùn)行需要的操作系統(tǒng)版本信息是否高于所述終端設(shè)備的操作系統(tǒng)版本信息;
若是,則確定所述終端設(shè)備的操作系統(tǒng)版本信息不符合預(yù)定運(yùn)行條件;
若否,則確定所述終端設(shè)備的操作系統(tǒng)版本信息符合預(yù)定運(yùn)行條件。
a8、如a2所述的方法,根據(jù)所述硬件資源信息,檢測所述幀率信息是否符合預(yù)定運(yùn)行條件,具體包括:
根據(jù)所述幀率信息獲取所述終端設(shè)備當(dāng)前的幀率值;
根據(jù)所述幀率值確定所述終端設(shè)備當(dāng)前是否處于卡頓狀態(tài);
若是,則確定所述幀率信息不符合預(yù)定運(yùn)行條件;
若否,則確定所述幀率信息符合預(yù)定運(yùn)行條件。
a9、如a1至a8任一項(xiàng)所述的方法,所述將所述預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式,具體包括:
將所述預(yù)估信息和與所述預(yù)估信息對應(yīng)的運(yùn)行模式調(diào)整策略信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述軟件當(dāng)前的運(yùn)行模式、所述預(yù)估信息、所述運(yùn)行模式調(diào)整策略信息,調(diào)整所述軟件的運(yùn)行模式。
b10、一種軟件運(yùn)行處理方法,應(yīng)用于客戶端,包括:
在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;
將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
接收所述服務(wù)器發(fā)送的所述預(yù)估信息;
根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
b11、如b10所述的方法,若所述預(yù)估信息為所述軟件運(yùn)行失敗,則所述根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式,具體包括:
在需要運(yùn)行所述軟件時(shí),停止運(yùn)行所述軟件,并輸出相應(yīng)的提示信息;或
接收所述服務(wù)器發(fā)送的與所述預(yù)估信息對應(yīng)的運(yùn)行模式調(diào)整策略信息,并根據(jù)所述運(yùn)行模式調(diào)整策略信息,調(diào)整所述軟件的運(yùn)行模式,使得所述軟件能夠運(yùn)行。
b12、如b10所述的方法,所述硬件參數(shù)信息包含所述終端設(shè)備的內(nèi)存狀態(tài)信息、和/或只讀存儲器rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息,采集所述rom信息的過程,具體包括:
通過預(yù)定接口函數(shù)獲取終端設(shè)備的機(jī)身內(nèi)存路徑;
創(chuàng)建與所述機(jī)身內(nèi)存路徑對應(yīng)的查詢文件系統(tǒng)相關(guān)信息的函數(shù)對象;
調(diào)用與所述函數(shù)對象對應(yīng)的預(yù)置塊字節(jié)數(shù)查詢函數(shù),獲取所述終端設(shè)備的每個(gè)塊字節(jié)數(shù);
調(diào)用與所述函數(shù)對象對應(yīng)的預(yù)置塊計(jì)數(shù)查詢函數(shù),獲取所述終端設(shè)備的塊數(shù)量;
計(jì)算所述每個(gè)塊字節(jié)數(shù)與所述塊數(shù)量的乘積,得到所述終端設(shè)備的rom信息。
b13、如b12所述的方法,采集所述幀率信息的過程,具體包括:
配置初始幀率值以及下一次顯示系統(tǒng)繪制的回調(diào)信息;
若讀取到顯示系統(tǒng)繪制的回調(diào)信息,則對預(yù)定統(tǒng)計(jì)周期內(nèi)已統(tǒng)計(jì)的幀率值進(jìn)行累計(jì),并再次配置下一次顯示系統(tǒng)繪制的回調(diào)信息;
當(dāng)所述預(yù)定統(tǒng)計(jì)周期結(jié)束時(shí),將所述預(yù)定統(tǒng)計(jì)周期內(nèi)已統(tǒng)計(jì)的幀率值,確定為當(dāng)前時(shí)鐘周期的幀率值,并作為所述終端設(shè)備的幀率信息。
c14、一種服務(wù)器,包括:
接收單元,用于接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;
分析單元,用于根據(jù)所述接收單元接收的硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
發(fā)送單元,用于將所述分析單元分析得到的預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
c15、如c14所述的服務(wù)器,所述分析單元具體包括:
獲取模塊,用于從所述硬件參數(shù)信息中獲取所述終端設(shè)備的內(nèi)存狀態(tài)信息、和/或只讀存儲器rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息;
檢測模塊,用于根據(jù)所述硬件資源信息,檢測所述獲取模塊獲取的內(nèi)存狀態(tài)信息、和/或所述rom信息、和/或所述存儲卡信息、和/或所述cpu狀態(tài)信息、和/或所述操作系統(tǒng)版本信息、和/或所述幀率信息是否符合預(yù)定運(yùn)行條件;
確定模塊,用于根據(jù)所述檢測模塊的檢測結(jié)果確定所述軟件運(yùn)行結(jié)果的預(yù)估信息。
c16、如c15所述的服務(wù)器,
所述檢測模塊,具體用于根據(jù)所述內(nèi)存狀態(tài)信息、和/或所述rom信息、和/或所述存儲卡信息、和/或所述cpu狀態(tài)信息、和/或所述操作系統(tǒng)版本信息、和/或所述幀率信息,利用預(yù)定計(jì)算公式,計(jì)算出所述終端設(shè)備的性能得分;
依據(jù)所述性能得分確定所述終端設(shè)備的第一性能級別;
確定具備所述硬件資源信息的終端設(shè)備的第二性能級別;
當(dāng)所述第一性能級別大于或等于所述第二性能級別時(shí),確定符合預(yù)定運(yùn)行條件;
當(dāng)所述第一性能級別小于所述第二性能級別時(shí),確定不符合預(yù)定運(yùn)行條件。
c17、如c15所述的服務(wù)器,
檢測模塊,具體用于若所述硬件資源信息中包含所述軟件運(yùn)行需要的內(nèi)存信息,則根據(jù)所述內(nèi)存狀態(tài)信息獲取所述終端設(shè)備當(dāng)前的剩余內(nèi)存信息;
檢測所述軟件運(yùn)行需要的內(nèi)存信息是否小于或等于所述剩余內(nèi)存信息;
若是,則確定所述內(nèi)存狀態(tài)信息符合預(yù)定運(yùn)行條件;
若否,則確定所述內(nèi)存狀態(tài)信息不符合預(yù)定運(yùn)行條件。
c18、如c15所述的服務(wù)器,
檢測模塊,具體用于若所述硬件資源信息中包含所述軟件運(yùn)行需要占用的存儲卡信息,則根據(jù)所述終端設(shè)備的存儲卡信息獲取所述終端設(shè)備當(dāng)前的剩余存儲卡信息;
檢測所述軟件運(yùn)行需要占用的存儲卡信息是否小于或等于所述剩余存儲卡信息;
若是,則確定所述終端設(shè)備的存儲卡信息符合預(yù)定運(yùn)行條件;
若否,則確定所述終端設(shè)備的存儲卡信息不符合預(yù)定運(yùn)行條件。
c19、如c15所述的服務(wù)器,
檢測模塊,具體用于若所述硬件資源信息中包含所述軟件運(yùn)行需要的cpu主頻值,則根據(jù)所述cpu狀態(tài)信息獲取所述終端設(shè)備的cpu主頻值;
檢測所述軟件運(yùn)行需要的cpu主頻值是否小于或等于所述終端設(shè)備的cpu主頻值;
若是,則確定所述cpu狀態(tài)信息符合預(yù)定運(yùn)行條件;
若否,則確定所述cpu狀態(tài)信息不符合預(yù)定運(yùn)行條件。
c20、如c15所述的服務(wù)器,
檢測模塊,具體用于若所述硬件資源信息中包含所述軟件運(yùn)行需要的操作系統(tǒng)版本信息,則檢測所述軟件運(yùn)行需要的操作系統(tǒng)版本信息是否高于所述終端設(shè)備的操作系統(tǒng)版本信息;
若是,則確定所述終端設(shè)備的操作系統(tǒng)版本信息不符合預(yù)定運(yùn)行條件;
若否,則確定所述終端設(shè)備的操作系統(tǒng)版本信息符合預(yù)定運(yùn)行條件。
c21、如c15所述的服務(wù)器,
檢測模塊,具體用于根據(jù)所述幀率信息獲取所述終端設(shè)備當(dāng)前的幀率值;
根據(jù)所述幀率值確定所述終端設(shè)備當(dāng)前是否處于卡頓狀態(tài);
若是,則確定所述幀率信息不符合預(yù)定運(yùn)行條件;
若否,則確定所述幀率信息符合預(yù)定運(yùn)行條件。
c22、如c14至c21任一項(xiàng)所述的服務(wù)器,
所述發(fā)送單元,具體用于將所述預(yù)估信息和與所述預(yù)估信息對應(yīng)的運(yùn)行模式調(diào)整策略信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述軟件當(dāng)前的運(yùn)行模式、所述預(yù)估信息、所述運(yùn)行模式調(diào)整策略信息,調(diào)整所述軟件的運(yùn)行模式。
d23、一種客戶端,包括:
采集單元,用于在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;
發(fā)送單元,用于將所述采集單元采集到的硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
接收單元,用于接收所述服務(wù)器發(fā)送的所述預(yù)估信息;
調(diào)整單元,用于根據(jù)所述接收單元接收到的預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
d24、如d23所述的客戶端,
調(diào)整單元,具體用于若所述預(yù)估信息為所述軟件運(yùn)行失敗,則在需要運(yùn)行所述軟件時(shí),停止運(yùn)行所述軟件,并輸出相應(yīng)的提示信息;或
接收所述服務(wù)器發(fā)送的與所述預(yù)估信息對應(yīng)的運(yùn)行模式調(diào)整策略信息,并根據(jù)所述運(yùn)行模式調(diào)整策略信息,調(diào)整所述軟件的運(yùn)行模式,使得所述軟件能夠運(yùn)行。
d25、如d23所述的客戶端,所述硬件參數(shù)信息包含所述終端設(shè)備的內(nèi)存狀態(tài)信息、和/或只讀存儲器rom信息、和/或存儲卡信息、和/或cpu狀態(tài)信息、和/或操作系統(tǒng)版本信息、和/或幀率信息,
所述采集單元,具體用于通過預(yù)定接口函數(shù)獲取終端設(shè)備的機(jī)身內(nèi)存路徑;
創(chuàng)建與所述機(jī)身內(nèi)存路徑對應(yīng)的查詢文件系統(tǒng)相關(guān)信息的函數(shù)對象;
調(diào)用與所述函數(shù)對象對應(yīng)的預(yù)置塊字節(jié)數(shù)查詢函數(shù),獲取所述終端設(shè)備的每個(gè)塊字節(jié)數(shù);
調(diào)用與所述函數(shù)對象對應(yīng)的預(yù)置塊計(jì)數(shù)查詢函數(shù),獲取所述終端設(shè)備的塊數(shù)量;
計(jì)算所述每個(gè)塊字節(jié)數(shù)與所述塊數(shù)量的乘積,得到所述終端設(shè)備的rom信息。
d26、如d25所述的客戶端,
所述采集單元,具體還用于配置初始幀率值以及下一次顯示系統(tǒng)繪制的回調(diào)信息;
若讀取到顯示系統(tǒng)繪制的回調(diào)信息,則對預(yù)定統(tǒng)計(jì)周期內(nèi)已統(tǒng)計(jì)的幀率值進(jìn)行累計(jì),并再次配置下一次顯示系統(tǒng)繪制的回調(diào)信息;
當(dāng)所述預(yù)定統(tǒng)計(jì)周期結(jié)束時(shí),將所述預(yù)定統(tǒng)計(jì)周期內(nèi)已統(tǒng)計(jì)的幀率值,確定為當(dāng)前時(shí)鐘周期的幀率值,并作為所述終端設(shè)備的幀率信息。
e27、一種軟件運(yùn)行處理系統(tǒng),包括:如c14至c22任一項(xiàng)所述的服務(wù)器和如d23至d26任一項(xiàng)所述的客戶端。
f28、一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;
根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
將所述預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
g29、一種服務(wù)器,包括存儲器、處理器及存儲在存儲器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
接收客戶端發(fā)送的軟件運(yùn)行需要的硬件資源信息和終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息;
根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
將所述預(yù)估信息發(fā)送給所述客戶端,以使得所述客戶端根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
h30、一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;
將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
接收所述服務(wù)器發(fā)送的所述預(yù)估信息;
根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
i31、一種終端設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
在軟件運(yùn)行之前,采集終端設(shè)備實(shí)時(shí)的硬件參數(shù)信息,以及確定所述軟件運(yùn)行需要的硬件資源信息;
將所述硬件參數(shù)信息和所述硬件資源信息發(fā)送給服務(wù)器,以使得所述服務(wù)器根據(jù)所述硬件資源信息和所述硬件參數(shù)信息進(jìn)行分析,得到所述軟件運(yùn)行結(jié)果的預(yù)估信息;
接收所述服務(wù)器發(fā)送的所述預(yù)估信息;
根據(jù)所述預(yù)估信息調(diào)整所述軟件的運(yùn)行模式。
在上述實(shí)施例中,對各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實(shí)施例中的“第一”、“第二”等是用于區(qū)分各實(shí)施例,而并不代表各實(shí)施例的優(yōu)劣。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(dsp)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的一種軟件運(yùn)行處理方法、裝置及系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。