本發(fā)明涉及計算機技術領域,具體而言,本發(fā)明涉及一種多系統(tǒng)終端設備中窗口的管理方法,及一種多系統(tǒng)終端設備。
背景技術:
隨著多系統(tǒng)終端設備的興起,目前,多系統(tǒng)終端設備的各個操作系統(tǒng),通過其各自的窗口管理器維護一個系統(tǒng)級別的窗口棧,各操作系統(tǒng)創(chuàng)建的窗口,均需要添加至其各自的窗口棧中。操作系統(tǒng)的窗口管理器負責將窗口棧中存儲的窗口進行混合處理,并將混合處理后的窗口顯示數據在終端設備的顯示區(qū)域進行繪制顯示,但是,現(xiàn)有技術中一個操作系統(tǒng)只允許一個窗口管理器處于運行狀態(tài),在多系統(tǒng)終端設備中,將存在多個操作系統(tǒng)的多個窗口管理器并存的情況,當多個操作系統(tǒng)其各自的窗口管理器同時請求終端設備的顯示驅動對其各自創(chuàng)建的窗口進行繪制顯示時,將導致對終端設備顯示驅動的訪問沖突,從而無法正確顯示多個操作系統(tǒng)其各自的窗口。
因此,需要一種在多系統(tǒng)終端設備中,對多系統(tǒng)其各自創(chuàng)建的窗口進行正確顯示的方法。
技術實現(xiàn)要素:
為克服上述技術問題或者至少部分地解決上述技術問題,特提出以下技術方案:
本發(fā)明的實施例提出了一種多系統(tǒng)終端設備中窗口的管理方法,包括:
獲取多個系統(tǒng)各自的窗口的顯示相關信息;
根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據;
基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口。
可選地,該方法還包括:
依據窗口創(chuàng)建時間獲取并存儲多個系統(tǒng)各自的窗口的顯示相關信息至窗口棧,窗口棧以棧的隊列順序存儲多個系統(tǒng)各自的窗口的顯示相關信息。
優(yōu)選地,獲取多個系統(tǒng)各自的窗口的顯示相關信息,包括:
基于窗口棧的隊列順序依次獲取多個系統(tǒng)各自的窗口的顯示相關信息;
其中,窗口的顯示相關信息包括以下至少一項:
窗口的標識信息;
窗口的顯示數據信息;
窗口的顯示透明度屬性信息;
窗口的顯示透明度數據信息。
優(yōu)選地,根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據,包括:
s1、依據窗口棧的隊列順序,依次獲取窗口棧中一個窗口的顯示相關信息;
s2、根據已獲取的窗口的顯示相關信息中的顯示透明度屬性信息,判斷該窗口是否透明;
s3、若判斷該窗口為透明,則循環(huán)執(zhí)行s1,直至判斷任一窗口為不透明;
s4、獲取不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息;
s5、基于已獲取的不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據。
可選地,該方法還包括:
創(chuàng)建用于保存多個系統(tǒng)各自窗口的顯示相關信息的預定緩沖區(qū);
其中,s3中若判斷該窗口為透明,在循環(huán)執(zhí)行s1之前,該方法還包括:
s6、判斷預定緩沖區(qū)中是否存儲該窗口的顯示相關信息;
s7、若預定緩沖區(qū)中未存儲有該窗口的顯示相關信息,將該窗口的顯示相關信息存儲至預定緩沖區(qū),再循環(huán)執(zhí)行s1。
可選地,若s6中判斷預定緩沖區(qū)中存儲有該窗口的顯示相關信息,該方法還包括:
s8、從預定緩沖區(qū)中獲取該窗口的透明度數據信息;
s9、根據該窗口的透明度數據信息,通過預定的透明度算法計算該窗口的計算透明度后的顯示數據信息,并更新至預定緩沖區(qū),再循環(huán)執(zhí)行s1。
本發(fā)明的另一實施例提出了一種多系統(tǒng)終端設備,多系統(tǒng)終端設備包括用于管理窗口的渲染器,渲染器包括:
獲取模塊,用于獲取多個系統(tǒng)各自的窗口的顯示相關信息;
計算確定模塊,用于根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據;
顯示模塊,用于基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口。
可選地,該多系統(tǒng)終端設備還包括:
獲取及存儲模塊,用于依據窗口創(chuàng)建時間獲取并存儲多個系統(tǒng)各自的窗口的顯示相關信息至窗口棧,窗口棧以棧的隊列順序存儲多個系統(tǒng)各自的窗口的顯示相關信息。
優(yōu)選地,獲取模塊,包括:
第一獲取單元,用于基于窗口棧的隊列順序依次獲取多個系統(tǒng)各自的窗口的顯示相關信息;
其中,窗口的顯示相關信息包括以下至少一項:
窗口的標識信息;
窗口的顯示數據信息;
窗口的顯示透明度屬性信息;
窗口的顯示透明度數據信息。
優(yōu)選地,計算確定模塊,包括:
s1、第二獲取單元,用于依據窗口棧的隊列順序,依次獲取窗口棧中一個窗口的顯示相關信息;
s2、第一判斷單元,用于根據已獲取的窗口的顯示相關信息中的顯示透明度屬性信息,判斷該窗口是否透明;
s3、循環(huán)執(zhí)行單元,用于若判斷該窗口為透明,則循環(huán)執(zhí)行s1,直至判斷任一窗口為不透明;
s4、第三獲取單元,用于獲取不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息;
s5、計算確定單元,用于基于已獲取的不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據。
可選地,該多系統(tǒng)終端設備還包括:
第一創(chuàng)建模塊,用于創(chuàng)建用于保存多個系統(tǒng)各自窗口的顯示相關信息的預定緩沖區(qū);
其中,s3循環(huán)執(zhí)行單元中若判斷該窗口為透明,在循環(huán)執(zhí)行s1之前,該多系統(tǒng)終端設備還包括:
s6、第二判斷單元,用于判斷預定緩沖區(qū)中是否存儲該窗口的顯示相關信息;
s7、存儲單元,用于若預定緩沖區(qū)中未存儲有該窗口的顯示相關信息,將該窗口的顯示相關信息存儲至預定緩沖區(qū),再循環(huán)執(zhí)行s1。
可選地,若s6第二判斷單元中判斷預定緩沖區(qū)中存儲有該窗口的顯示相關信息,該多系統(tǒng)終端設備還包括:
s8、第四獲取單元,用于從預定緩沖區(qū)中獲取該窗口的透明度數據信息;
s9、計算及更新單元,用于根據該窗口的透明度數據信息,通過預定的透明度算法計算該窗口的計算透明度后的顯示數據信息,并更新至預定緩沖區(qū),再循環(huán)執(zhí)行s1。
可選地,還包括第二創(chuàng)建模塊:
第二創(chuàng)建模塊,用于創(chuàng)建用于實現(xiàn)渲染器與多個系統(tǒng)的各個窗口進行通信的通信文件;
渲染器,還用于監(jiān)聽通信文件,以用于獲取多個系統(tǒng)各自的窗口的顯示相關信息。
本發(fā)明的實施例中,提出了一種多系統(tǒng)終端設備中窗口的管理方案,獲取多個系統(tǒng)各自的窗口的顯示相關信息,為后續(xù)能夠正確顯示多個系統(tǒng)各自的窗口提供了必要的前提保障;根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據,實現(xiàn)了快速正確地處理各個系統(tǒng)的窗口的顯示相關信息,并得到各個系統(tǒng)的窗口的正確的顯示數據,避免了混合多窗口的顯示數據時發(fā)生錯誤而導致多系統(tǒng)各個窗口無法正常同時顯示的情況;基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口,實現(xiàn)了正確地顯示各個系統(tǒng)的窗口,避免了多系統(tǒng)窗口同時顯示而導致顯示驅動繪制多系統(tǒng)各窗口時發(fā)生沖突而無法正常同時繪制多系統(tǒng)的各個窗口的情況,進一步地,提高了用戶的使用體驗。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為一個實施例的多系統(tǒng)終端設備的內部結構的框架示意圖;
圖2為一個實施例的多系統(tǒng)終端設備中管理各系統(tǒng)窗口的框架示意圖;
圖3為本發(fā)明中一個實施例的多系統(tǒng)終端設備中窗口的管理方法的流程圖;
圖4為本發(fā)明中一個優(yōu)選實施例的多系統(tǒng)終端設備中窗口的管理方法的流程圖;
圖5為本發(fā)明中另一優(yōu)選實施例的多系統(tǒng)終端設備中窗口的管理方法的流程圖;
圖6為本發(fā)明中另一優(yōu)選實施例的多系統(tǒng)終端設備中窗口的管理方法的流程圖;
圖7為本發(fā)明中另一優(yōu)選實施例的多系統(tǒng)終端設備中窗口的管理方法的流程圖;
圖8為本發(fā)明中一個實施例的多系統(tǒng)終端設備中窗口管理器啟動的流程圖;
圖9為本發(fā)明中一個實施例的多系統(tǒng)終端設備中應用程序啟動的流程圖;
圖10為本發(fā)明中一個實施例的多系統(tǒng)終端設備中應用程序窗口創(chuàng)建過程的流程圖;
圖11為本發(fā)明中另一實施例的多系統(tǒng)終端設備的結構示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
本技術領域技術人員可以理解,除非特意聲明,這里使用的單數形式“一”、“一個”、“所述”和“該”也可包括復數形式。應該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數、步驟、操作、元件、組件和/或它們的組。應該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關聯(lián)的列出項的全部或任一單元和全部組合。
本技術領域技術人員可以理解,除非另外定義,這里使用的所有術語(包括技術術語和科學術語),具有與本發(fā)明所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語,應該被理解為具有與現(xiàn)有技術的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
下面結合附圖具體介紹本發(fā)明實施例的技術方案。
本發(fā)明實施例的多系統(tǒng)終端設備的內部結構的框架示意圖如圖1所示,包括:第一系統(tǒng)os1和第二系統(tǒng)os2。其中,第一系統(tǒng)os1為windows操作系統(tǒng),第二系統(tǒng)os2的操作系統(tǒng)為android操作系統(tǒng),第一系統(tǒng)os1和第二系統(tǒng)os2共享同一系統(tǒng)內核。
本發(fā)明實施例在多系統(tǒng)終端設備中管理各系統(tǒng)窗口的框架示意圖如圖2所示,包括:第一系統(tǒng)os1和第二系統(tǒng)os2。第一系統(tǒng)os1和第二系統(tǒng)os2各自擁有一個窗口管理器,來管理各自系統(tǒng)創(chuàng)建的窗口;該多系統(tǒng)終端設備通過多系統(tǒng)終端設備的渲染器,管理第一系統(tǒng)os1和第二系統(tǒng)os2各自的窗口管理器。其中,在多系統(tǒng)終端設備的內核中創(chuàng)建一幀緩沖區(qū),緩存第一系統(tǒng)os1和第二系統(tǒng)os2各自窗口的顯示相關信息,并將該顯示相關信息提交至多系統(tǒng)終端設備的顯示硬件。
其中,本發(fā)明實施例中運行的各個操作系統(tǒng),可以為傳統(tǒng)意義上的linux操作系統(tǒng)或unix操作系統(tǒng),也可以是基于linux操作系統(tǒng)衍生出來的android系統(tǒng)、ubuntu系統(tǒng)或firefox系統(tǒng)等,還可以為以windows平臺為基礎的windows系統(tǒng)等等,在此不做限定。
圖3為本發(fā)明中一個實施例的多系統(tǒng)終端設備中窗口的管理方法的流程圖。
本發(fā)明的實施例中,各步驟所執(zhí)行的內容概述如下:步驟s310:獲取多個系統(tǒng)各自的窗口的顯示相關信息;步驟s320:根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據;步驟s330:基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口。
本發(fā)明的實施例中,提出了一種多系統(tǒng)終端設備中窗口的管理方法,獲取多個系統(tǒng)各自的窗口的顯示相關信息,為后續(xù)能夠正確顯示多個系統(tǒng)各自的窗口提供了必要的前提保障;根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據,實現(xiàn)了快速正確地處理各個系統(tǒng)的窗口的顯示相關信息,并得到各個系統(tǒng)的窗口的正確的顯示數據,避免了混合多窗口的顯示數據時發(fā)生錯誤而導致多系統(tǒng)各個窗口無法正常同時顯示的情況;基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口,實現(xiàn)了正確地顯示各個系統(tǒng)的窗口,避免了多系統(tǒng)窗口同時顯示而導致顯示驅動繪制多系統(tǒng)各窗口時發(fā)生沖突而無法正常同時繪制多系統(tǒng)的各個窗口的情況,進一步地,提高了用戶的使用體驗。以下針對各個步驟的具體實現(xiàn)做進一步的說明:
步驟s310:獲取多個系統(tǒng)各自的窗口的顯示相關信息。
其中,窗口的顯示相關信息包括以下至少一項:
1)窗口的標識信息;例如,窗口的唯一標識號,如id值。
2)窗口的顯示數據信息;例如,窗口顯示內容的各個像素的rgb數據。
3)窗口的顯示透明度屬性信息;例如,窗口的顯示透明度屬性值的數據。
4)窗口的顯示透明度數據信息。
例如,在多系統(tǒng)終端設備a中,包括第一系統(tǒng)os1和第二系統(tǒng)os2,獲取第一系統(tǒng)os1的所有窗口的顯示相關信息,如第一系統(tǒng)os1存在兩個窗口,獲取到該兩個窗口的標識號id值分別為“01”和“02”、該兩個窗口各自顯示內容的各個像素的rgb值和透明度屬性值數據等;并獲取第二系統(tǒng)os2的所有窗口的顯示相關信息,如第二系統(tǒng)os2存在一個窗口,獲取到該一個窗口標識號id值為“03”、該“03”窗口顯示內容的各個像素的rgb值和透明度屬性值數據等。
需要說明的是,本領域技術人員可以了解到,終端設備中窗口的顯示內容由多個像素組成,一個像素由rgba來表示,即r代表紅,g代表綠,b代表藍,a(alpha)代表透明度;每一種顏色和透明度各占一個字節(jié),也就是一個像素占4字節(jié),如果屏幕分辨率是1280x760,那么存儲一個窗口的所有像素的內存大小就是1280x760x4字節(jié);對應于物理屏幕上的一個像素點,最終的顯示可以拋棄掉a值,硬件會根據各像素的rgb值,來控制最終液晶顆粒的旋轉角度,顯示出各像素的正確顏色。
步驟s320:根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據。
例如,在多系統(tǒng)終端設備a中,根據已獲取的第一系統(tǒng)os1和第二系統(tǒng)os2各自窗口的顯示相關信息,通過預定的窗口顯示算法計算各個窗口的顯示內容的各像素的rgba值,以確定多個系統(tǒng)的窗口混合顯示后的各窗口顯示內容的各像素的rgba值數據。
步驟s330:基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口。
例如,在多系統(tǒng)終端設備a中,基于窗口標識號為“01”、“02”和“03”的三個窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示該混合顯示數據中的每個像素rgb值,以正確顯示多個系統(tǒng)混合后的窗口標識號為“01”、“02”和“03”的三個窗口。
優(yōu)選地,如圖4所示,該管理方法包括步驟s410、步驟s420、步驟s430和步驟s440;步驟s410:獲取多個系統(tǒng)各自的窗口的顯示相關信息;步驟s420:根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據;步驟s430:基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口;步驟s440:依據窗口創(chuàng)建時間獲取并存儲多個系統(tǒng)各自的窗口的顯示相關信息至窗口棧,窗口棧以棧的隊列順序存儲多個系統(tǒng)各自的窗口的顯示相關信息。
其中,本優(yōu)選實施例中的多系統(tǒng)的終端設備在步驟s410、步驟s420和步驟s430中執(zhí)行的操作與圖3所示的多系統(tǒng)的終端設備在步驟s310、步驟s320和步驟s330中執(zhí)行的操作相同或相似,在此不再贅述。
例如,在多系統(tǒng)終端設備a中,將多個系統(tǒng)中第一系統(tǒng)os1和第二系統(tǒng)os2各自的窗口的顯示相關信息存儲至多系統(tǒng)終端設備的窗口棧中,窗口棧以棧的隊列順序來存儲多系統(tǒng)各自的窗口的顯示相關信息;依據各個窗口的創(chuàng)建時間的先后順序,各個窗口的創(chuàng)建時間順序依次為:窗口標識號為“01”的窗口、窗口標識號為“02”的窗口和窗口標識號為“03”的窗口,隨后,首先獲取創(chuàng)建的“01”窗口的窗口的顯示相關信息并存儲至窗口棧中,再獲取創(chuàng)建的“02”窗口的窗口的顯示相關信息并存儲至窗口棧中,最后獲取創(chuàng)建的“03”窗口的窗口的顯示相關信息并存儲至窗口棧中。需要說明的是,在多系統(tǒng)終端設備的任一系統(tǒng)中創(chuàng)建一窗口,隨后即獲取該創(chuàng)建窗口的顯示相關信息并存儲至窗口棧中。
需要說明的是,本領域技術人員可以了解到,棧,是一種遵循先進后出規(guī)則的隊列,本發(fā)明實施例中窗口棧通過棧的方式來管理多系統(tǒng)中的各個窗口,因此,依據窗口的創(chuàng)建時間,越早創(chuàng)建的窗口在窗口棧隊列中越靠后,而最新創(chuàng)建的窗口則排在窗口棧隊列的最前面。
優(yōu)選地,如圖5所示,該管理方法包括步驟s510、步驟s520和步驟s530;步驟s510:基于窗口棧的隊列順序依次獲取多個系統(tǒng)各自的窗口的顯示相關信息;步驟s520:根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據;步驟s530:基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口。
其中,本優(yōu)選實施例中的多系統(tǒng)的終端設備在步驟s520和步驟s530中執(zhí)行的操作與圖3所示的多系統(tǒng)的終端設備在步驟s320和步驟s330中執(zhí)行的操作相同或相似,在此不再贅述。
例如,在多系統(tǒng)終端設備a中,將第一系統(tǒng)os1和第二系統(tǒng)os2各自的窗口的顯示相關信息存儲至多系統(tǒng)終端設備的窗口棧中;第一系統(tǒng)os1和第二系統(tǒng)os2各自的窗口的顯示相關信息存儲至窗口棧中的先后順序為:窗口標識號為“01”的窗口、窗口標識號為“02”的窗口和窗口標識號為“03”的窗口,依據窗口棧隊列中先進后出規(guī)則,首先獲取窗口標識號為“03”的窗口的顯示相關信息,隨后獲取窗口標識號為“02”的窗口的顯示相關信息,最后獲取窗口標識號為“01”的窗口的顯示相關信息。
優(yōu)選地,如圖6所示,該管理方法包括步驟s610、步驟s620、步驟s630、步驟s640、步驟s650、步驟s660和步驟s670;步驟s610:獲取多個系統(tǒng)各自的窗口的顯示相關信息;步驟s620:依據窗口棧的隊列順序,依次獲取窗口棧中一個窗口的顯示相關信息;步驟s630:根據已獲取的窗口的顯示相關信息中的顯示透明度屬性信息,判斷該窗口是否透明;步驟s640:若判斷該窗口為透明,則循環(huán)執(zhí)行步驟s620,直至判斷任一窗口為不透明;步驟s650:獲取不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息;步驟s660:基于已獲取的不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據;步驟s670:基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口。
其中,本優(yōu)選實施例中的多系統(tǒng)的終端設備在步驟s610和步驟s670中執(zhí)行的操作與圖3所示的多系統(tǒng)的終端設備在步驟s310和步驟s330中執(zhí)行的操作相同或相似,在此不再贅述。
例如,在多系統(tǒng)終端設備a中,將第一系統(tǒng)os1和第二系統(tǒng)os2各自的窗口的顯示相關信息存儲至多系統(tǒng)終端設備的窗口棧中,依據窗口棧的隊列順序,在隊列頂端至隊列底部依次存儲的是窗口標識號為“03”的窗口的顯示相關信息、窗口標識號為“02”的窗口的顯示相關信息和窗口標識號為“01”的窗口的顯示相關信息,首先獲取窗口棧中窗口標識號為“03”的窗口的顯示相關信息,根據已獲取的窗口標識號為“03”的窗口的顯示相關信息中的顯示透明度屬性信息,判斷窗口標識號為“03”的窗口是否透明,如透明度屬性值為0至1之間的數值,值為0,代表該窗口為透明顯示,值介于0至1之間,代表透明顯示的不同程度,值為1,代表該窗口為全透明顯示,若透明度屬性值為空值,代表該窗口為非透明顯示,若根據窗口標識號為“03”的窗口的顯示相關信息中,得到窗口標識號為“03”的窗口透明度屬性值為0.2,可判斷窗口標識號為“03”的窗口為透明顯示,則循環(huán)執(zhí)行步驟s620,直至判斷任一窗口為不透明,若隨后判斷窗口標識號為“02”的窗口為不透明,獲取窗口標識號為“03”的窗口的顯示數據信息以及窗口標識號為“02”的窗口的透明度數據信息,基于已獲取的窗口標識號為“03”和“02”的窗口的顯示數據信息,通過預定的窗口顯示算法計算窗口標識號為“03”和“02”的窗口的顯示內容的各像素的rgba值,以確定多個系統(tǒng)的窗口標識號為“03”和“02”的窗口混合顯示后的顯示內容的各像素的rgba值。
優(yōu)選地,該管理方法還包括:創(chuàng)建用于保存多個系統(tǒng)各自窗口的顯示相關信息的預定緩沖區(qū)。
例如,在多系統(tǒng)終端設備a中,創(chuàng)建用于保存多個系統(tǒng)各自窗口的顯示相關信息的預定緩沖區(qū),如在多系統(tǒng)終端設備的系統(tǒng)內核中創(chuàng)建一個用于保存多個系統(tǒng)各自窗口的顯示相關信息的預定幀緩沖的緩沖區(qū)。
優(yōu)選地,如圖7所示,該管理方法包括步驟s7010、步驟s7020、步驟s7030、步驟s7040、步驟s7050、步驟s7060、步驟s7070、步驟s7080、步驟s790和步驟s7100;步驟s7010:獲取多個系統(tǒng)各自的窗口的顯示相關信息;步驟s7020:依據窗口棧的隊列順序,依次獲取窗口棧中一個窗口的顯示相關信息;步驟s7030:根據已獲取的窗口的顯示相關信息中的顯示透明度屬性信息,判斷該窗口是否透明;步驟s7040:若判斷該窗口為透明,判斷預定緩沖區(qū)中是否存儲該窗口的顯示相關信息;步驟s7050:若預定緩沖區(qū)中未存儲有該窗口的顯示相關信息,將該窗口的顯示相關信息存儲至預定緩沖區(qū),再循環(huán)執(zhí)行步驟s7020;步驟s7060:若判斷預定緩沖區(qū)中存儲有該窗口的顯示相關信息,從預定緩沖區(qū)中獲取該窗口的透明度數據信息;步驟s7070:根據該窗口的透明度數據信息,通過預定的透明度算法計算該窗口的計算透明度后的顯示數據信息,并更新至預定緩沖區(qū),再循環(huán)執(zhí)行步驟s7020;步驟s7080:獲取不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息;步驟s7090:基于已獲取的不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據;步驟s7100:基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口。
其中,本優(yōu)選實施例中的多系統(tǒng)的終端設備在步驟s7010、步驟s7020、步驟s7030、步驟s7080、步驟s7090和步驟s7100中執(zhí)行的操作與圖6所示的多系統(tǒng)的終端設備在步驟s610、步驟s620、步驟s630、步驟s650、步驟s660和步驟s670中執(zhí)行的操作相同或相似,在此不再贅述。
例如,在多系統(tǒng)終端設備a中,在系統(tǒng)內核中創(chuàng)建一個用于保存多個系統(tǒng)各自窗口的顯示相關信息的預定幀緩沖的緩沖區(qū);將多個系統(tǒng)中第一系統(tǒng)os1和第二系統(tǒng)os2各自的窗口的顯示相關信息存儲至多系統(tǒng)終端設備的窗口棧中,依據窗口棧的隊列順序,在隊列頂端至隊列底部依次存儲的是窗口標識號為“03”的窗口的顯示相關信息、窗口標識號為“02”的窗口的顯示相關信息和窗口標識號為“01”的窗口的顯示相關信息,首先獲取窗口棧中窗口標識號為“03”的窗口的顯示相關信息,根據已獲取的窗口標識號為“03”的窗口的顯示相關信息中的顯示透明度屬性值,該值若為0.2,可判斷該窗口為透明顯示,隨后判斷預定緩沖區(qū)中是否存儲窗口標識號為“03”的窗口的顯示相關信息,若預定緩沖區(qū)中未存儲有窗口標識號為“03”的窗口的顯示相關信息,將窗口棧中獲取的窗口標識號為“03”的窗口的顯示相關信息存儲至預定緩沖區(qū),再循環(huán)執(zhí)行步驟s7020;若預定緩沖區(qū)中存儲有窗口標識號為“03”的窗口的顯示相關信息,從系統(tǒng)內核的預定緩沖區(qū)中獲取窗口標識號為“03”的窗口的透明度數據信息,隨后根據窗口標識號為“03”的窗口的透明度數據信息,通過預定的窗口顯示算法計算窗口標識號為“03”的窗口的計算透明度后的顯示數據信息,并更新至預定緩沖區(qū),再循環(huán)執(zhí)行步驟s7020。
在一具體應用場景中,在多系統(tǒng)終端設備b中,包括第一系統(tǒng)os1和第二系統(tǒng)os2,多系統(tǒng)終端設備b中通過渲染器管理第一系統(tǒng)os1和第二系統(tǒng)os2中各個窗口的顯示相關信息,在多系統(tǒng)終端設備b中首先啟動渲染器,并在該渲染器中創(chuàng)建一個用于實現(xiàn)該渲染器與第一系統(tǒng)os1和第二系統(tǒng)os2的各個窗口進行通信的通信文件,如soket(套接字)文件,渲染器監(jiān)聽該通信文件,以用于獲取第一系統(tǒng)os1和第二系統(tǒng)os2各自的窗口的顯示相關信息;第一系統(tǒng)os1和第二系統(tǒng)os2擁有用各自的窗口管理器,在多系統(tǒng)終端設備b中的渲染器啟動后,當多系統(tǒng)終端設備b中任一系統(tǒng)的窗口管理器啟動時,如第一系統(tǒng)os1的窗口管理器啟動時,窗口管理器啟動的流程圖如圖8所示,當第一系統(tǒng)os1的系統(tǒng)啟動后,啟動第一系統(tǒng)os1的窗口管理器,隨后獲取第一系統(tǒng)os1的系統(tǒng)名稱,并將第一系統(tǒng)os1的系統(tǒng)名稱經過預定的編碼方式,如base64編碼方式,進行相應處理,并將處理后的第一系統(tǒng)os1的系統(tǒng)名稱作為第一系統(tǒng)os1本地通信文件的名稱,如soket文件,隨后修改第一系統(tǒng)os1中應用啟動的環(huán)境變量,并通過第一系統(tǒng)os1的窗口管理器監(jiān)聽第一系統(tǒng)os1本地soket文件以等待第一系統(tǒng)os1的應用接入;當第一系統(tǒng)os1中的任一應用,如app1啟動時,啟動流程如圖9所示,首先讀取第一系統(tǒng)os1的環(huán)境變量,獲得需要連接的第一系統(tǒng)os1的本地soket文件,隨后第一系統(tǒng)os1的app1通過該soket文件連接第一系統(tǒng)os1的窗口管理器,隨后第一系統(tǒng)os1的窗口管理器將創(chuàng)建第一系統(tǒng)os1的app1的顯示窗口的消息發(fā)送至渲染器中的通信文件,隨后通過渲染器創(chuàng)建第一系統(tǒng)os1的app1的顯示窗口,窗口創(chuàng)建過程如圖10所示;當第一系統(tǒng)os1的app1應用退出后,則通過渲染器關閉并銷毀第一系統(tǒng)os1的app1的窗口。
需要說明的是,本領域技術人員可以了解到,本發(fā)明中雖以終端設備的渲染器為例對多系統(tǒng)中的各個窗口進行管理,但在此不做限定。
圖11為本發(fā)明中另一實施例的多系統(tǒng)終端設備的結構示意圖。
本發(fā)明的實施例中,多系統(tǒng)終端設備包括用于管理窗口的渲染器,渲染器包括的各模塊所執(zhí)行的內容概述如下:獲取模塊1110獲取多個系統(tǒng)各自的窗口的顯示相關信息;計算確定模塊1120根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據;顯示模塊1130基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口。
本發(fā)明的實施例中,提出了一種多系統(tǒng)終端設備,獲取多個系統(tǒng)各自的窗口的顯示相關信息,為后續(xù)能夠正確顯示多個系統(tǒng)各自的窗口提供了必要的前提保障;根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據,實現(xiàn)了快速正確地處理各個系統(tǒng)的窗口的顯示相關信息,并得到各個系統(tǒng)的窗口的正確的顯示數據,避免了混合多窗口的顯示數據時發(fā)生錯誤而導致多系統(tǒng)各個窗口無法正常同時顯示的情況;基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口,實現(xiàn)了正確地顯示各個系統(tǒng)的窗口,避免了多系統(tǒng)窗口同時顯示而導致顯示驅動繪制多系統(tǒng)各窗口時發(fā)生沖突而無法正常同時繪制多系統(tǒng)的各個窗口的情況,進一步地,提高了用戶的使用體驗。以下針對各個模塊的具體實現(xiàn)做進一步的說明:
獲取模塊1110,用于獲取多個系統(tǒng)各自的窗口的顯示相關信息;
計算確定模塊1120,用于根據已獲取的各個系統(tǒng)的窗口的顯示相關信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據;
顯示模塊1130,用于基于窗口混合顯示數據,通過多系統(tǒng)終端設備的顯示驅動顯示多個系統(tǒng)混合后的各個窗口。
可選地,該多系統(tǒng)終端設備還包括:
獲取及存儲模塊,用于依據窗口創(chuàng)建時間獲取并存儲多個系統(tǒng)各自的窗口的顯示相關信息至窗口棧,窗口棧以棧的隊列順序存儲多個系統(tǒng)各自的窗口的顯示相關信息。
優(yōu)選地,獲取模塊,包括:
第一獲取單元,用于基于窗口棧的隊列順序依次獲取多個系統(tǒng)各自的窗口的顯示相關信息;
其中,窗口的顯示相關信息包括以下至少一項:
窗口的標識信息;
窗口的顯示數據信息;
窗口的顯示透明度屬性信息;
窗口的顯示透明度數據信息。
優(yōu)選地,計算確定模塊,包括:
s1、第二獲取單元,用于依據窗口棧的隊列順序,依次獲取窗口棧中一個窗口的顯示相關信息;
s2、第一判斷單元,用于根據已獲取的窗口的顯示相關信息中的顯示透明度屬性信息,判斷該窗口是否透明;
s3、循環(huán)執(zhí)行單元,用于若判斷該窗口為透明,則循環(huán)執(zhí)行s1,直至判斷任一窗口為不透明;
s4、第三獲取單元,用于獲取不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息;
s5、計算確定單元,用于基于已獲取的不透明的任一窗口的透明度數據信息以及已獲取的其它窗口的顯示數據信息,通過預定的窗口顯示算法計算確定多個系統(tǒng)的窗口混合顯示數據。
可選地,該多系統(tǒng)終端設備還包括:
第一創(chuàng)建模塊,用于創(chuàng)建用于保存多個系統(tǒng)各自窗口的顯示相關信息的預定緩沖區(qū);
其中,s3循環(huán)執(zhí)行單元中若判斷該窗口為透明,在循環(huán)執(zhí)行s1之前,該多系統(tǒng)終端設備還包括:
s6、第二判斷單元,用于判斷預定緩沖區(qū)中是否存儲該窗口的顯示相關信息;
s7、存儲單元,用于若預定緩沖區(qū)中未存儲有該窗口的顯示相關信息,將該窗口的顯示相關信息存儲至預定緩沖區(qū),再循環(huán)執(zhí)行s1。
可選地,若s6第二判斷單元中判斷預定緩沖區(qū)中存儲有該窗口的顯示相關信息,該多系統(tǒng)終端設備還包括:
s8、第四獲取單元,用于從預定緩沖區(qū)中獲取該窗口的透明度數據信息;
s9、計算及更新單元,用于根據該窗口的透明度數據信息,通過預定的透明度算法計算該窗口的計算透明度后的顯示數據信息,并更新至預定緩沖區(qū),再循環(huán)執(zhí)行s1。
可選地,還包括第二創(chuàng)建模塊:
第二創(chuàng)建模塊,用于創(chuàng)建用于實現(xiàn)渲染器與多個系統(tǒng)的各個窗口進行通信的通信文件;
渲染器,還用于監(jiān)聽通信文件,以用于獲取多個系統(tǒng)各自的窗口的顯示相關信息。
本發(fā)明實施例提供的多系統(tǒng)終端設備可以實現(xiàn)上述提供的方法實施例,具體功能實現(xiàn)請參見方法實施例中的說明,在此不再贅述。
本技術領域技術人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項或多項的設備。這些設備可以為所需的目的而專門設計和制造,或者也可以包括通用計算機中的已知設備。這些設備具有存儲在其內的計算機程序,這些計算機程序選擇性地激活或重構。這樣的計算機程序可以被存儲在設備(例如,計算機)可讀介質中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質中,所述計算機可讀介質包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、cd-rom、和磁光盤)、rom(read-onlymemory,只讀存儲器)、ram(randomaccessmemory,隨即存儲器)、eprom(erasableprogrammableread-onlymemory,可擦寫可編程只讀存儲器)、eeprom(electricallyerasableprogrammableread-onlymemory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質包括由設備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質。
本技術領域技術人員可以理解,可以用計算機程序指令來實現(xiàn)這些結構圖和/或框圖和/或流圖中的每個框以及這些結構圖和/或框圖和/或流圖中的框的組合。本技術領域技術人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業(yè)計算機或其他可編程數據處理方法的處理器來實現(xiàn),從而通過計算機或其他可編程數據處理方法的處理器來執(zhí)行本發(fā)明公開的結構圖和/或框圖和/或流圖的框或多個框中指定的方案。
本技術領域技術人員可以理解,本發(fā)明中已經討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發(fā)明中已經討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現(xiàn)有技術中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅是本發(fā)明的部分實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。