本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種硬件資源的分配方法,同時(shí)本申請(qǐng)還特別涉及一種智能設(shè)備。
背景技術(shù):
隨著科技的發(fā)展,智能設(shè)備(如智能電視、智能手機(jī)等)的功能變得越來越強(qiáng)大,能夠在智能設(shè)備上安裝的應(yīng)用軟件也越來越多。軟件應(yīng)用的開啟需要硬件資源作為支持,并且不同的應(yīng)用軟件間需要的硬件資源可能相同。因此,在不同的應(yīng)用軟件之間,可能會(huì)存在硬件資源沖突的問題。
在現(xiàn)有技術(shù)中,為了避免不同應(yīng)用軟件之間的硬件資源沖突,普遍的方法是在由一個(gè)應(yīng)用軟件的使用場景切換到另一個(gè)應(yīng)用軟件的使用場景之前,通知前者應(yīng)用軟件釋放所有申請(qǐng)的硬件資源并等待釋放完畢然后才啟動(dòng)后者應(yīng)用軟件。
例如,在使能電視中,在由直播電視搜臺(tái)得場景切換到播放本地多媒體的場景時(shí),需要先釋放直播電視應(yīng)用占用的調(diào)制解調(diào)器和分離器的硬件資源后,再向播放器應(yīng)用分配解碼器和視頻輸出設(shè)備的硬件資源。
發(fā)明人在實(shí)現(xiàn)本申請(qǐng)的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)中,避免不同應(yīng)用軟件之間的硬件資源沖突的方法,至少存在以下的問題。
按照現(xiàn)有技術(shù)的方法,在兩個(gè)應(yīng)用軟件之間不存在硬件資源沖突的情況下,依舊會(huì)將前一個(gè)應(yīng)用軟件占用的資源釋放。在這種應(yīng)用場景下,完全沒有必要釋放前一個(gè)應(yīng)用軟件占用的資源。
之后,如果用戶重新切換回原先的應(yīng)用軟件,則需要重新為原先的應(yīng)用軟件分配資源。這樣不必要的釋放資源以及重新申請(qǐng)資源需要消耗大量的時(shí)間,從而導(dǎo)致應(yīng)用軟件間切換的時(shí)間較長,嚴(yán)重影響用戶的使用體驗(yàn)。
可見,如何準(zhǔn)確檢測不同應(yīng)用間是否存在真實(shí)的資源沖突,進(jìn)而在應(yīng)用切換過程中避免不必要的資源釋放,加快不同應(yīng)用間的切換速度,成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種硬件資源的分配方法,準(zhǔn)確檢測不同應(yīng)用間是否存在真實(shí)的資源沖突,進(jìn)而在應(yīng)用切換過程中避免不必要的資源釋放,加快不同應(yīng)用間的切換速度,所述方法至少包括:
在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),根據(jù)所述智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷所述指定應(yīng)用請(qǐng)求的硬件資源是否被占用,所述資源分配記錄用于指出所述智能設(shè)備向所述當(dāng)前開啟的應(yīng)用分配的硬件資源;
若判斷結(jié)果為否,保持所述當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向所述指定應(yīng)用分配所述指定應(yīng)用請(qǐng)求的硬件資源。
優(yōu)選地,所述向所述指定應(yīng)用分配所述指定應(yīng)用請(qǐng)求的硬件資源之后,所述方法還包括:
根據(jù)向所述指定應(yīng)用分配的硬件資源,生成所述指定應(yīng)用的資源分配記錄。
優(yōu)選地,所述根據(jù)當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷所述指定應(yīng)用請(qǐng)求的硬件資源是否被占用,具體為:
根據(jù)所述當(dāng)前開啟的應(yīng)用的資源分配記錄確定所述智能設(shè)備當(dāng)前已經(jīng)分配的硬件資源;
判斷所述指定應(yīng)用請(qǐng)求的硬件資源是否與所述智能設(shè)備當(dāng)前已經(jīng)分配的硬件資源相同;
若判斷結(jié)果為是,則確認(rèn)所述指定應(yīng)用請(qǐng)求的硬件資源已被占用;
若判斷結(jié)果為否,則確認(rèn)所述指定應(yīng)用請(qǐng)求的硬件資源未被占用。
優(yōu)選地,還包括:
若判斷結(jié)果為是,則在釋放沖突應(yīng)用占用的硬件資源后,向所述指定應(yīng)用分配所述指定應(yīng)用請(qǐng)求的硬件資源,所述沖突應(yīng)用占用了所述指定應(yīng)用請(qǐng)求的硬件資源。
優(yōu)選地,所述釋放沖突應(yīng)用占用的硬件資源后,所述方法還包括:
刪除所述沖突應(yīng)用的資源分配記錄。
相應(yīng)的,本申請(qǐng)?zhí)岢鲆环N智能設(shè)備,所述智能設(shè)備包含多個(gè)應(yīng)用,所述智能設(shè)備包括:
判斷模塊,在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),根據(jù)所述智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷所述指定應(yīng)用請(qǐng)求的硬件資源是否被占用,所述資源分配記錄用于指出所述智能設(shè)備向所述當(dāng)前開啟的應(yīng)用分配的硬件資源;
第一分配模塊,在判斷結(jié)果為否時(shí),保持所述當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向所述指定應(yīng)用分配所述指定應(yīng)用請(qǐng)求的硬件資源。
優(yōu)選地,還包括:
記錄模塊,根據(jù)向所述指定應(yīng)用分配的硬件資源,生成所述指定應(yīng)用的資源分配記錄。
優(yōu)選地,所述判斷模塊具體用于:
根據(jù)所述當(dāng)前開啟的應(yīng)用的資源分配記錄確定所述智能設(shè)備當(dāng)前已經(jīng)分配的硬件資源;
判斷所述指定應(yīng)用請(qǐng)求的硬件資源是否與所述智能設(shè)備當(dāng)前已經(jīng)分配的硬件資源相同;
若判斷結(jié)果為是,則確認(rèn)所述指定應(yīng)用請(qǐng)求的硬件資源已被占用;
若判斷結(jié)果為否,則確認(rèn)所述指定應(yīng)用請(qǐng)求的硬件資源未被占用。
優(yōu)選地,還包括:
第二分配模塊,在判斷結(jié)果為是時(shí),在釋放沖突應(yīng)用占用的硬件資源后,向所述指定應(yīng)用分配所述指定應(yīng)用請(qǐng)求的硬件資源,所述沖突應(yīng)用占用了所述指定應(yīng)用請(qǐng)求的硬件資源。
優(yōu)選地,還包括:
清理模塊,刪除所述沖突應(yīng)用的資源分配記錄。
通過應(yīng)用本申請(qǐng)的技術(shù)方案,在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),根據(jù)智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。其中,資源分配記錄用于指出智能設(shè)備向當(dāng)前開啟的應(yīng)用分配的硬件資源。如果判斷結(jié)果為否,則保持智能設(shè)備當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向指定應(yīng)用分配指定應(yīng)用請(qǐng)求的硬件資源。可見,通過智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄能夠準(zhǔn)確地判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。在判斷結(jié)果為否時(shí),直接向指定應(yīng)用分配硬件資源,從而避免了應(yīng)用切換過程中不必要的資源釋放,加快不同應(yīng)用間的切換速度。
附圖說明
為了更清楚地說明本申請(qǐng)的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通的技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請(qǐng)實(shí)施例提出的一種硬件資源的分配方法的流程示意圖;
圖2為本申請(qǐng)具體實(shí)施例提出的一種硬件設(shè)備通路分段管理的機(jī)制的示意圖;
圖3為本申請(qǐng)具體實(shí)施例提出的一種基于上下文的資源分配會(huì)話標(biāo)示(SessionId)的示意圖;
圖4為本申請(qǐng)具體實(shí)施例提出的為給直播電視搜臺(tái)分配資源的示意圖;
圖5為本申請(qǐng)具體實(shí)施例提出的切換到本地應(yīng)用播放視頻的資源沖突管理過程的示意圖;
圖6為本申請(qǐng)具體實(shí)施例提出的切換到本地應(yīng)用播放視頻的資源釋放過程的示意圖;
圖7為本申請(qǐng)具體實(shí)施例提出的切換到本地應(yīng)用播放視頻的資源分配過程的示意圖;
圖8為本申請(qǐng)實(shí)施例提出的一種智能設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
如背景技術(shù)所述,在現(xiàn)有技術(shù)中,為了避免智能終端上不同應(yīng)用軟件之間的硬件資源沖突,普遍的方法是在由一個(gè)應(yīng)用軟件的使用場景切換到另一個(gè)應(yīng)用軟件的使用場景之前,通知前者應(yīng)用軟件釋放所有申請(qǐng)的硬件資源并等待釋放完畢然后才啟動(dòng)后者應(yīng)用軟件。然而,倘若兩個(gè)應(yīng)用軟件之間不存在真實(shí)的硬件資源沖突,則完全沒有必要先將原先開啟的應(yīng)用軟件占用的資源釋放。因?yàn)椋@樣不必要的資源釋放過程需要消耗大量的時(shí)間,從而導(dǎo)致應(yīng)用軟件間切換的時(shí)間較長,影響用戶的使用體驗(yàn)。
因此為了準(zhǔn)確地檢測不同應(yīng)用間是否存在真實(shí)的資源沖突,進(jìn)而避免應(yīng)用切換過程中不必要的資源釋放,加快不同應(yīng)用間的切換速度,本申請(qǐng)?zhí)岢隽艘环N硬件資源的分配方法,在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),根據(jù)智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。其中,資源分配記錄用于指出智能設(shè)備向當(dāng)前開啟的應(yīng)用分配的硬件資源。如果判斷結(jié)果為否,則保持智能設(shè)備當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向指定應(yīng)用分配指定應(yīng)用請(qǐng)求的硬件資源??梢?,通過智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄能夠準(zhǔn)確地判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。在判斷結(jié)果為否時(shí),直接向指定應(yīng)用分配硬件資源,從而避免了應(yīng)用切換過程中不必要的資源釋放,加快不同應(yīng)用間的切換速度。
如圖1所示,為本申請(qǐng)?zhí)岢龅囊环N硬件資源的分配方法的流程示意圖,需要說明的是,本申請(qǐng)應(yīng)用于包含多個(gè)應(yīng)用的智能設(shè)備中,智能設(shè)備可以具體為智能電視、智能手機(jī)等設(shè)備。具體的,本申請(qǐng)包括以下的步驟:
S101,在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),根據(jù)智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。
其中,資源分配記錄用于指出智能設(shè)備向自身當(dāng)前開啟的應(yīng)用分配的硬件資源。
在現(xiàn)有的資源分配方法中,智能設(shè)備在由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),為了避免應(yīng)用間的資源沖突問題,首先將其當(dāng)前開啟的應(yīng)用占用的硬件資源全部釋放后,才會(huì)向發(fā)起請(qǐng)求的指定應(yīng)用分配硬件資源??梢?,在現(xiàn)有技術(shù)中,不存在資源沖突的檢測機(jī)制(檢測不同應(yīng)用之間是否存在真實(shí)的硬件資源沖突),因此導(dǎo)致在當(dāng)前開啟的應(yīng)用與指定應(yīng)用不存在真實(shí)的硬件沖突時(shí),也會(huì)將當(dāng)前開啟的應(yīng)用占用的硬件資源釋放。
因此,在本申請(qǐng)實(shí)施例中,在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),首先將判斷指定應(yīng)用請(qǐng)求的硬件資源是否被當(dāng)前開啟的應(yīng)用所占用。由于存在資源沖突的檢測機(jī)制,從而使得智能能夠準(zhǔn)確地得知發(fā)起資源請(qǐng)求的指定應(yīng)用與前開啟的應(yīng)用是否存在真實(shí)的硬件資源沖突,這為以下如何為指定應(yīng)用分配硬件資源提供了重要的參考。
在本申請(qǐng)實(shí)施例中,根據(jù)智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,來判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。其中,資源分配記錄用于指出智能設(shè)備向自身當(dāng)前開啟的應(yīng)用分配的硬件資源。根據(jù)當(dāng)前開啟的應(yīng)用的資源分配記錄,能夠獲取當(dāng)前開啟的應(yīng)用占用的硬件資源。
在本申請(qǐng)的優(yōu)選實(shí)施例中,具體的判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用,可以由以下的流程來完成。
(1)根據(jù)智能設(shè)備中當(dāng)前開啟的應(yīng)用的資源分配記錄確定智能設(shè)備當(dāng)前已經(jīng)分配的硬件資源。
首先查看智能設(shè)備中當(dāng)前開啟的應(yīng)用的資源分配記錄,確定智能設(shè)備當(dāng)前分配出去的硬件資源。
(2)判斷所述指定應(yīng)用請(qǐng)求的硬件資源是否與所述智能設(shè)備當(dāng)前已經(jīng)分配的硬件資源相同。
根據(jù)指定應(yīng)用發(fā)送的硬件資源請(qǐng)求,獲取指定應(yīng)用所請(qǐng)求的硬件資源信息。之后再將硬件資源所請(qǐng)求的硬件資源信息與智能設(shè)備當(dāng)前已經(jīng)分配的硬件資源相對(duì)比,判斷指定應(yīng)用所請(qǐng)求的硬件資源是否被智能設(shè)備分配出去。根據(jù)判斷的結(jié)果,確定指定應(yīng)用請(qǐng)求的硬件資源是否被占用。
(3)若判斷結(jié)果為是,則確認(rèn)指定應(yīng)用請(qǐng)求所請(qǐng)求的硬件資源已被占用。
如果判斷的結(jié)果為是,則說明指定應(yīng)用請(qǐng)求的硬件資源已經(jīng)被智能設(shè)備分配出去了,此時(shí)確認(rèn)資源分配請(qǐng)求所請(qǐng)求的硬件資源已被占用。
(4)若判斷結(jié)果為否,則確認(rèn)指定應(yīng)用請(qǐng)求的硬件資源未被占用。
如果判斷的結(jié)果為否,則說明指定應(yīng)用請(qǐng)求的硬件資源還未被智能設(shè)備分配出去了,此時(shí)確認(rèn)資源分配請(qǐng)求所請(qǐng)求的硬件資源未被占用。
通過以上的優(yōu)選實(shí)施方案,可以通過智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,準(zhǔn)確地判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用,這為以下如何為指定應(yīng)用分配硬件資源,提供了重要的參考。
需要說明的是,以上提出如何判讀指定應(yīng)用請(qǐng)求的硬件資源是否被占用的方法,只是本申請(qǐng)?zhí)岢龅囊环N優(yōu)選的實(shí)施方案,基于本申請(qǐng)的核心思想,本領(lǐng)域技術(shù)人員還可以采取其他判讀指定應(yīng)用請(qǐng)求的硬件資源是否被占用的方法,這并不會(huì)影響到本申請(qǐng)的保護(hù)范圍。
在本申請(qǐng)的優(yōu)選實(shí)施例中,如果判斷結(jié)果為指定應(yīng)用請(qǐng)求的硬件資源已經(jīng)被占用,則在釋放沖突應(yīng)用占用的硬件資源后,向指定應(yīng)用分配指定應(yīng)用請(qǐng)求的硬件資源。其中,沖突應(yīng)用占用了指定應(yīng)用請(qǐng)求的硬件資源。
在本申請(qǐng)的優(yōu)選實(shí)施例中,沖突應(yīng)用是指智能設(shè)備開啟的應(yīng)用中占用了指定應(yīng)用請(qǐng)求的硬件資源的應(yīng)用。由于沖突應(yīng)用占用了指定應(yīng)用請(qǐng)求的硬件資源,因此在給指定應(yīng)用分配硬件資源之前,必須先釋放沖突應(yīng)用占用的硬件資源,保證能夠向指定應(yīng)用分配硬件資源。
通過以上的優(yōu)選實(shí)施方法,在判斷結(jié)果為指定應(yīng)用請(qǐng)求的硬件資源已經(jīng)被占用時(shí),首先將沖突應(yīng)用占用的硬件資源釋放掉,從而避免了指定應(yīng)用與沖突應(yīng)用之間的資源沖突,保證了向指定應(yīng)用的資源分配過程。
在本申請(qǐng)的優(yōu)選實(shí)施例中,在釋放沖突應(yīng)用占用的硬件資源后,還需要將沖突應(yīng)用的資源分配記錄刪除。
在本申請(qǐng)中,旨在通過資源分配記錄來判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。在釋放沖突應(yīng)用占用的硬件資源后,沖突應(yīng)用已經(jīng)被智能設(shè)備關(guān)閉,因此,此時(shí)還需要將沖突應(yīng)用的資源分配記錄刪除,以避免沖突應(yīng)用的資源分配記錄還影響到下一次的判斷過程。
S102,如果判斷結(jié)果為指定應(yīng)用請(qǐng)求的硬件資源未被占用,則保持智能設(shè)備當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向指定應(yīng)用分配指定應(yīng)用請(qǐng)求的硬件資源。
如果判斷結(jié)果為指定應(yīng)用請(qǐng)求的硬件資源未被占用,則說明指定應(yīng)用于智能設(shè)備中當(dāng)前開啟的應(yīng)用之間不存在真實(shí)的資源沖突,此時(shí)沒有必要將智能設(shè)備中當(dāng)前開啟的應(yīng)用占用的硬件資源釋放。
因此,在本申請(qǐng)的實(shí)施例中,如果判斷結(jié)果為指定應(yīng)用請(qǐng)求的硬件資源未被占用,則保持智能設(shè)備當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向指定應(yīng)用分配指定應(yīng)用請(qǐng)求的硬件資源,從而避免了應(yīng)用切換過程中不必要的資源釋放,加快不同應(yīng)用間的切換速度。
需要說明的是,由于智能設(shè)備保持原先開啟的應(yīng)用占用的硬件資源不變,因而在智能設(shè)備重現(xiàn)切換回原先開啟的應(yīng)用時(shí),則不需要重新為原先開啟的應(yīng)用分配硬件資源,從而提高了切換的速度。
在本申請(qǐng)的優(yōu)選實(shí)施例中,在向指定應(yīng)用分配了其請(qǐng)求的硬件資源之后,還需要根據(jù)向所述指定應(yīng)用分配的硬件資源,生成指定應(yīng)用的資源分配記錄。
在完成了對(duì)指定應(yīng)用的資源分配過程之后,生成指定應(yīng)用的資源分配記錄,以記錄向指定應(yīng)用分配的硬件資源,以為下一次的硬件資源分配過程提供參考依據(jù)。
通過以上實(shí)施例流程的描述可知,本申請(qǐng)?zhí)岢隽艘环N資源分配方法,在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),根據(jù)智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。其中,資源分配記錄用于指出智能設(shè)備向當(dāng)前開啟的應(yīng)用分配的硬件資源。如果判斷結(jié)果為否,則保持智能設(shè)備當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向指定應(yīng)用分配指定應(yīng)用請(qǐng)求的硬件資源??梢姡ㄟ^智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄能夠準(zhǔn)確地判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。在判斷結(jié)果為否時(shí),直接向指定應(yīng)用分配硬件資源,從而避免了應(yīng)用切換過程中不必要的資源釋放,加快不同應(yīng)用間的切換速度。
為了進(jìn)一步闡述本發(fā)明的技術(shù)思想,現(xiàn)結(jié)合具體的實(shí)施流程,對(duì)本發(fā)明的技術(shù)方案進(jìn)行說明。
本發(fā)明基于一個(gè)硬件設(shè)備通路分段管理的機(jī)制,如圖2所示,為該機(jī)制的交互示意圖。在這種機(jī)制中,硬件資源設(shè)備(如解調(diào)器設(shè)備、解碼器設(shè)備、分離器設(shè)備等)由各自獨(dú)立的設(shè)備網(wǎng)關(guān)控制;每個(gè)網(wǎng)關(guān)負(fù)責(zé)打開、關(guān)閉對(duì)應(yīng)的設(shè)備、指定數(shù)據(jù)源設(shè)備以及向資源設(shè)備下達(dá)其他動(dòng)作指令。
本發(fā)明設(shè)計(jì)一種基于上下文的資源分配會(huì)話標(biāo)示(SessionId)的方法,格式如圖3所示。這個(gè)標(biāo)示中第一個(gè)字段(AppName)表示這次分配資源的應(yīng)用名字或者標(biāo)示(ID),最后一個(gè)字段session表示整個(gè)標(biāo)示的結(jié)束,中間其它字段表示是分配對(duì)應(yīng)的資源設(shè)備標(biāo)示(ID)。例如直播電視搜臺(tái)的資源SessionId為“/LiveTv/Tuner0/Demux0/session”,本地應(yīng)用播放視頻的資源SessionId為“/NativeApp/Decoder0/WinMain/session”,瀏覽器播放網(wǎng)絡(luò)TS流的資源SessionId為“/Browser/Demux0/Decoder0/WinMain/session”。
當(dāng)資源分配發(fā)生沖突則SessionId用于表示當(dāng)前沖突資源分配會(huì)話。例如:如果當(dāng)前是直播電視應(yīng)用在使用搜臺(tái)功能,則當(dāng)前的資源分配會(huì)話列表為:“/LiveTv/Tuner0/Demux0/session”;當(dāng)切換場景到瀏覽器播放網(wǎng)絡(luò)TS流時(shí)發(fā)現(xiàn)存在資源沖突,沖突資源SessionId為:“/LiveTv/Tuner0/Demux0/session”。應(yīng)用管理器根據(jù)這個(gè)SessionId中的應(yīng)用表示(LiveTv)來通知直播電視釋放其所占用的資源,等待釋放結(jié)束后再為瀏覽器分配相應(yīng)的資源并設(shè)置對(duì)應(yīng)的SessionId。
當(dāng)存在多個(gè)資源沖突時(shí),沖突資源表示為:SessionId1&Session2。例如當(dāng)前是搜臺(tái)和播放本地應(yīng)用視頻,當(dāng)前資源分配會(huì)話列表為:“/LiveTv/Tuner0/Demux0/session”和“/NativeApp/Decoder0/WinMain/session”;當(dāng)切換場景到瀏覽器播放網(wǎng)絡(luò)TS流時(shí)發(fā)現(xiàn)跟之前兩個(gè)應(yīng)用存在資源沖突,這個(gè)沖突資源的sessionId則設(shè)計(jì)為:“/LiveTv/Tuner0/Demux0/session”&“/NativeApp/Decoder0/WinMain/session”。應(yīng)用管理器收到這個(gè)SessionId后同時(shí)釋放LiveTV和NativeApp所占用的資源。
基于以上的論述,本發(fā)明的資源沖突管理過程具體如下(以搜臺(tái)、本地應(yīng)用播放視頻和瀏覽器播放TS流場景為例):
如圖4所示,為給直播電視搜臺(tái)分配資源的過程,由圖可知,包括以下的步驟:
(1)直播電視(Launcher應(yīng)用)通過應(yīng)用管理器啟動(dòng)搜臺(tái)請(qǐng)求并向資源沖突管理器發(fā)起分配資源的請(qǐng)求。
(2)資源沖突管理器檢查沒有資源沖突則為此次資源分配產(chǎn)生一個(gè)新的帶應(yīng)用名字的SessionId:/Launcher/session(為了便于說明此SessionId命名為sessionId1)。
(3)資源沖突管理器向資源設(shè)備管理器發(fā)起為搜臺(tái)分配資源的請(qǐng)求,這個(gè)請(qǐng)求附帶上步驟(2)中產(chǎn)生的sessionId1。
(4)資源設(shè)備管理器為此次資源分配請(qǐng)求分配調(diào)制解調(diào)器設(shè)備(Tuner0)和分離器設(shè)備(Demux0)資源。
(5)資源設(shè)備鏈路管理器為Tuner0和Demux0資源形成鏈路并更新sessionId1為:/Launcher/Tuner0/Demux0/session。
(6)資源沖突管理器收到更新的sessionId1并保持到Session列表中。如果后續(xù)資源釋放后資源沖突管理器則移除保存的sessionId1。
如圖5所示,為切換到本地應(yīng)用播放視頻的資源沖突管理過程,由圖可知,包括以下的步驟:
(1)應(yīng)用管理器收到切換應(yīng)用的請(qǐng)求,然后向資源沖突管理器請(qǐng)求分配資源。
(2)資源沖突管理器基于本地應(yīng)用的業(yè)務(wù)對(duì)資源的要求,對(duì)解碼設(shè)備(Decoder)和視頻輸出設(shè)備(WinMain)以及當(dāng)前Session列表進(jìn)行資源沖突檢查。發(fā)現(xiàn),當(dāng)前所有SessionId中發(fā)現(xiàn)Decoder和WinMain被占用。然后產(chǎn)生一個(gè)新的SessionId:/NativeApp/Decoder0/WinMain/session(為了便于說明此SessionId命名為sessionId2)。此時(shí)資源沖突管理器中session列表中保持兩個(gè)SessionId:sessionId1和sessionId2
(3)如果后續(xù)是切換回到直播電視搜臺(tái)則不需要為搜臺(tái)重新分配資源。
如圖6以及7所示,為切換到本地應(yīng)用播放視頻的資源沖突管理過程,由圖可知,包括以下的步驟:
(1)應(yīng)用管理器收到切換到瀏覽器應(yīng)用播放TS流的請(qǐng)求,向資源沖突管理器請(qǐng)求分配資源(Demux、Decoder和WinMain)。
(2)資源沖突管理器基于Session列表發(fā)現(xiàn)有資源沖突,然后向應(yīng)用管理器返回沖突資源列表為:“/Launcher/Tuner0/Demux0/session&/NativeApp/Decoder0/WinMain/session”。
(3)應(yīng)用管理器根據(jù)資源沖突列表發(fā)現(xiàn)瀏覽器與Launcher應(yīng)用和NativeApp應(yīng)用有資源沖突,則向Launcher應(yīng)用和NativeApp應(yīng)用發(fā)送釋放其中請(qǐng)求。
(4)然后應(yīng)用管理器重新向資源沖突管理器請(qǐng)求資源分配,同Step2~6生成新的SessionId:/Browser/Demux0/Decoder0/WinMain/session并保存在資源沖突管理器中。
通過以上具體實(shí)施例流程的描述可知,本申請(qǐng)?zhí)岢隽艘环N資源分配方法,在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),根據(jù)智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。其中,資源分配記錄用于指出智能設(shè)備向當(dāng)前開啟的應(yīng)用分配的硬件資源。如果判斷結(jié)果為否,則保持智能設(shè)備當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向指定應(yīng)用分配指定應(yīng)用請(qǐng)求的硬件資源??梢姡ㄟ^智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄能夠準(zhǔn)確地判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。在判斷結(jié)果為否時(shí),直接向指定應(yīng)用分配硬件資源,從而避免了應(yīng)用切換過程中不必要的資源釋放,加快不同應(yīng)用間的切換速度。
為了達(dá)到以上的技術(shù)目的,本申請(qǐng)?zhí)岢隽艘环N智能設(shè)備,所述智能設(shè)備包含多個(gè)應(yīng)用,如圖8所示,包括:
判斷模塊801,在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),根據(jù)所述智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷所述指定應(yīng)用請(qǐng)求的硬件資源是否被占用,所述資源分配記錄用于指出所述智能設(shè)備向所述當(dāng)前開啟的應(yīng)用分配的硬件資源;
第一分配模塊802,在判斷結(jié)果為否時(shí),保持所述當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向所述指定應(yīng)用分配所述指定應(yīng)用請(qǐng)求的硬件資源。
優(yōu)選地,還包括:
記錄模塊,根據(jù)向所述指定應(yīng)用分配的硬件資源,生成所述指定應(yīng)用的資源分配記錄。
優(yōu)選地,所述判斷模塊具體用于:
根據(jù)所述當(dāng)前開啟的應(yīng)用的資源分配記錄確定所述智能設(shè)備當(dāng)前已經(jīng)分配的硬件資源;
判斷所述指定應(yīng)用請(qǐng)求的硬件資源是否與所述智能設(shè)備當(dāng)前已經(jīng)分配的硬件資源相同;
若判斷結(jié)果為是,則確認(rèn)所述指定應(yīng)用請(qǐng)求的硬件資源已被占用;
若判斷結(jié)果為否,則確認(rèn)所述指定應(yīng)用請(qǐng)求的硬件資源未被占用。
優(yōu)選地,還包括:
第二分配模塊,在判斷結(jié)果為是時(shí),在釋放沖突應(yīng)用占用的硬件資源后,向所述指定應(yīng)用分配所述指定應(yīng)用請(qǐng)求的硬件資源,所述沖突應(yīng)用占用了所述指定應(yīng)用請(qǐng)求的硬件資源。
優(yōu)選地,還包括:
清理模塊,刪除所述沖突應(yīng)用的資源分配記錄。
通過以上具體設(shè)備的描述可知,本申請(qǐng)?zhí)岢隽艘环N資源分配方法,在接收到由指定應(yīng)用發(fā)起的資源分配請(qǐng)求時(shí),根據(jù)智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄,判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。其中,資源分配記錄用于指出智能設(shè)備向當(dāng)前開啟的應(yīng)用分配的硬件資源。如果判斷結(jié)果為否,則保持智能設(shè)備當(dāng)前開啟的應(yīng)用占用的硬件資源不變,并向指定應(yīng)用分配指定應(yīng)用請(qǐng)求的硬件資源。可見,通過智能設(shè)備當(dāng)前開啟的應(yīng)用的資源分配記錄能夠準(zhǔn)確地判斷指定應(yīng)用請(qǐng)求的硬件資源是否被占用。在判斷結(jié)果為否時(shí),直接向指定應(yīng)用分配硬件資源,從而避免了應(yīng)用切換過程中不必要的資源釋放,加快不同應(yīng)用間的切換速度。
最后說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解;其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明權(quán)利要求所限定的范圍。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM,U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施場景所述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施場景的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施場景中的裝置中的模塊可以按照實(shí)施場景描述進(jìn)行分布于實(shí)施場景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場景的一個(gè)或多個(gè)裝置中。上述實(shí)施場景的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明序號(hào)僅僅為了描述,不代表實(shí)施場景的優(yōu)劣。
以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施場景,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。