專利名稱:一種窗口管理方法及終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖形用戶界面(⑶I,GraphiCal User Interface)技術(shù)領(lǐng)域,尤其涉及 一種窗口管理方法及終端。
背景技術(shù):
隨著終端產(chǎn)品智能化程度提高和功能趨于多樣化,終端產(chǎn)品存在多任務(wù)操作的應(yīng) 用需求,因此也存在多任務(wù)操作的多窗口的重疊處理需求。目前,一些終端產(chǎn)品在運(yùn)行一個(gè)應(yīng)用程序時(shí),該應(yīng)用程序的窗口不能有其他應(yīng)用 程序的窗口重疊其上,這是因?yàn)檫\(yùn)行該應(yīng)用程序時(shí)由該應(yīng)用程序直接刷新顯示內(nèi)容,屏幕 顯示圖像更新很快,其他應(yīng)用程序的窗口即刻被刷新,甚至不可見。這對(duì)于具有視頻播放功 能的終端尤其常見。在現(xiàn)有技術(shù)中,還存在一種終端產(chǎn)品,能夠通過終端產(chǎn)品的窗口系統(tǒng)對(duì)所有多任 務(wù)操作的顯示內(nèi)容進(jìn)行剪切操作后送至屏幕進(jìn)行顯示,這樣,能夠?qū)崿F(xiàn)多個(gè)應(yīng)用程序的重 疊顯示。但是,發(fā)明人發(fā)現(xiàn)這種窗口管理的技術(shù)還存在如下問題窗口系統(tǒng)對(duì)多任務(wù)操作的 顯示內(nèi)容進(jìn)行剪切操作時(shí),依賴終端產(chǎn)品的微處理器來進(jìn)行,這樣既耗時(shí)又耗微處理器的 處理資源。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種窗口管理方法及終端,能夠降低終端在圖像顯示過程中 的計(jì)算消耗,優(yōu)化圖像顯示方法。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種窗口管理方法,包括將第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行顯 示;創(chuàng)建第二應(yīng)用程序窗口 ;將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)和所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)通過 窗口系統(tǒng)進(jìn)行顯示。與所述窗口管理方法相對(duì)應(yīng)的,本發(fā)明實(shí)施例還提供一種終端,包括第一窗口顯示單元,用于將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪 問的方式送至顯存進(jìn)行顯示;第二窗口創(chuàng)建單元,用于創(chuàng)建第二應(yīng)用程序窗口 ;多窗口顯示單元,用于將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)和所述第二應(yīng)用程序 窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示。本發(fā)明實(shí)施例提供的窗口管理方法及終端,在進(jìn)行單一窗口顯示時(shí),將第一應(yīng)用 程序窗口的圖像數(shù)據(jù)通過直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行顯示,轉(zhuǎn)換為多窗口顯示 時(shí),將多個(gè)窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行處理后顯示。這樣,本發(fā)明實(shí)施例將圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示和通過直接存儲(chǔ)器訪問的方式送到顯存進(jìn)行顯示相結(jié)合,能夠保 證終端在單窗口展示時(shí),借助直接存儲(chǔ)器訪問的方式,將圖像數(shù)據(jù)送到顯存從而快速流暢 的顯示圖像,避開了微處理器對(duì)數(shù)據(jù)進(jìn)行計(jì)算和處理的時(shí)間和資源消耗;轉(zhuǎn)換為多窗口展 示時(shí),顯示圖像的方式由DMA的方式轉(zhuǎn)換為窗口系統(tǒng)借助微處理器參與圖像顯示的相關(guān)操 作,從而能夠顯示多個(gè)窗口。本發(fā)明實(shí)施例既保證了圖像顯示效果又減少了計(jì)算消耗,優(yōu)化 了圖像顯示的方法。
了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附 圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域 普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為實(shí)施例一窗口管理方法流程圖;圖2為實(shí)施例二窗口管理方法流程圖;圖3為實(shí)施例三單一窗口示意圖;圖4為實(shí)施例三多窗口示意圖;圖5為實(shí)施例三窗口管理方法流程圖;圖6為實(shí)施例四終端示意圖;圖7為實(shí)施例四終端另一示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于 本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一本實(shí)施例旨在提供一種窗口管理方法,能夠降低終端在圖像顯示過程中的計(jì)算消 耗,優(yōu)化圖像顯示方法,參見圖1,包括如下步驟101、將第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行 顯不。其中,顯示于屏幕上的圖像,其在轉(zhuǎn)換為顯示圖像之前所對(duì)應(yīng)的數(shù)據(jù)均可以叫做 圖像數(shù)據(jù)。直接存儲(chǔ)器訪問(Direct Memory Access)是一種不經(jīng)過微處理器而直接從內(nèi) 存存取數(shù)據(jù)的數(shù)據(jù)交換方式,DMA控制器來處理數(shù)據(jù)的傳送,這樣就很大程度上減輕了微處 理器資源占有率,可以大大節(jié)省系統(tǒng)資源。本實(shí)施例中,圖像數(shù)據(jù)可從數(shù)據(jù)緩存區(qū)通過DMA 控制器直接寫入顯存,顯存內(nèi)的數(shù)據(jù)通過顯示驅(qū)動(dòng)顯示在屏幕上。102、創(chuàng)建第二應(yīng)用程序窗口。具體地,當(dāng)存在多個(gè)窗口需要顯示時(shí),第二應(yīng)用程序向窗口系統(tǒng)申請(qǐng)創(chuàng)建第二應(yīng) 用程序窗口,即申請(qǐng)顯存的部分空間來緩存第二應(yīng)用程序窗口的圖像數(shù)據(jù),所述第二應(yīng)用 程序窗口可以為反映實(shí)時(shí)狀態(tài)的應(yīng)用程序窗口 103、將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)和所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示。窗口系統(tǒng)接管第一應(yīng)用程序窗口的圖像數(shù)據(jù),通過窗口剪切的方法將第一應(yīng)用程 序窗口和第二應(yīng)用程序窗口的圖像數(shù)據(jù)顯示在屏幕上。具體地,窗口系統(tǒng)將第一應(yīng)用程序 窗口和第二應(yīng)用程序窗口的圖像數(shù)據(jù)進(jìn)行剪切,將進(jìn)行剪切處理的圖像數(shù)據(jù)寫入顯存,通 過顯示驅(qū)動(dòng)將第一應(yīng)用程序窗口和第二應(yīng)用程序窗口顯示在屏幕上。本實(shí)施例在進(jìn)行單一窗口顯示時(shí),圖像數(shù)據(jù)通過DMA的方式快速而流暢的顯示圖 像,當(dāng)有第二應(yīng)用程序窗口需要顯示時(shí),通過DMA的方式進(jìn)行顯示圖像時(shí),因?yàn)镈MA控制器 的直接刷新操作會(huì)使第二應(yīng)用程序窗口的圖像瞬間被更新而使用戶不可見該第二應(yīng)用程 序窗口,故在轉(zhuǎn)換為多窗口顯示時(shí),圖像數(shù)據(jù)由DMA的方式進(jìn)行顯示轉(zhuǎn)化為窗口系統(tǒng)借助 于微處理器對(duì)第一應(yīng)用程序窗口和第二應(yīng)用程序窗口的圖像數(shù)據(jù)進(jìn)行剪切處理后進(jìn)行顯
7J\ ο本實(shí)施例所舉應(yīng)用程序并不僅限于兩個(gè)應(yīng)用程序,任何單窗口顯示狀態(tài)轉(zhuǎn)換為多 窗口顯示狀態(tài)的場景,均可采用本實(shí)施例所述方法來進(jìn)行,即重復(fù)步驟102從而創(chuàng)建多個(gè) 第二應(yīng)用程序窗口,將包括第一應(yīng)用程序窗口和多個(gè)第二應(yīng)用程序窗口的圖像數(shù)據(jù)由窗口 系統(tǒng)進(jìn)行剪切處理后顯示在屏幕上。本實(shí)施例提供的窗口管理方法,在進(jìn)行單一窗口顯示時(shí),單一窗口顯示時(shí),將第一 應(yīng)用程序窗口的圖像數(shù)據(jù)通過DMA方式送至顯存進(jìn)行顯示,轉(zhuǎn)換為多窗口顯示時(shí),將多個(gè) 窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行處理后顯示。這樣,本實(shí)施例將圖像數(shù)據(jù)通過窗口系統(tǒng) 進(jìn)行顯示和通過DMA方式送到顯存進(jìn)行顯示相結(jié)合,能夠保證終端在單窗口展示時(shí),借助 DMA方式快速流暢的顯示圖像,避開了微處理器對(duì)數(shù)據(jù)進(jìn)行計(jì)算和處理的時(shí)間和資源消耗; 轉(zhuǎn)換為多窗口展示時(shí),顯示圖像的方式由DMA的方式轉(zhuǎn)換為窗口系統(tǒng)借助微處理器參與圖 像顯示的相關(guān)操作,從而能夠顯示多個(gè)窗口。本發(fā)明實(shí)施例既保證了圖像顯示效果又減少 了計(jì)算消耗,優(yōu)化了圖像顯示的方法。進(jìn)一步地,本實(shí)施例在所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)和所述第二應(yīng)用程序窗 口的圖像數(shù)據(jù)通過所述窗口系統(tǒng)進(jìn)行顯示之后,當(dāng)所述第二應(yīng)用程序窗口結(jié)束顯示時(shí),該 方法包括104、將所述第一應(yīng)用程序窗口設(shè)為頂層窗口。當(dāng)終端從多窗口顯示進(jìn)入單窗口顯示狀態(tài)時(shí),例如當(dāng)?shù)诙?yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行 或關(guān)閉時(shí),終端將所述第一應(yīng)用程序窗口設(shè)為頂層窗口。需要說明的是,終端從多窗口顯示進(jìn)入單窗口顯示狀態(tài)時(shí),還包括如下情形,即第 一應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行或關(guān)閉,終端將所述第二應(yīng)用程序窗口設(shè)為頂層窗口。105、所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用所述直接存儲(chǔ)器訪問的方式送至顯 存進(jìn)行顯示。將需要顯示單個(gè)窗口對(duì)應(yīng)的圖像數(shù)據(jù),采用DMA方式送至顯存進(jìn)行顯示。本實(shí)施例在多窗口顯示切換為單一窗口顯示時(shí)的方法做了具體說明,當(dāng)多窗口顯 示切換為單一窗口時(shí),將需要顯示的窗口的圖像數(shù)據(jù)由窗口系統(tǒng)進(jìn)行管理顯示轉(zhuǎn)為采用 DMA方式送至顯存進(jìn)行直接顯示,以減少微處理器的計(jì)算消耗。實(shí)施例二 本實(shí)施例基于實(shí)施例一,對(duì)實(shí)施例一做進(jìn)一步具體說明。具體地,參見圖2,在實(shí)施例一步驟101、將第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行 顯示之前,還包括如下步驟201、接收創(chuàng)建所述第一應(yīng)用程序窗口的申請(qǐng)消息,其中,所述申請(qǐng)消息中包括所 述第一應(yīng)用程序窗口的顯示坐標(biāo)信息。當(dāng)終端當(dāng)前沒有播放 窗口時(shí),第一應(yīng)用程序需通過與窗口系統(tǒng)的接口,即應(yīng)用程 序通過一種API接口(Application Programming Interface,應(yīng)用程序編程接口)向窗口 系統(tǒng)申請(qǐng)創(chuàng)建一個(gè)播放窗口。其中,所述申請(qǐng)消息中包含了所需窗口的坐標(biāo)、高度和寬度等 fn息ο202、獲取顯存地址,根據(jù)所述第一應(yīng)用程序窗口的顯示坐標(biāo)信息,計(jì)算所述第一 應(yīng)用程序窗口基于所述顯存地址的偏移值,得到所述第一應(yīng)用程序窗口對(duì)應(yīng)的顯存區(qū)域。顯存地址與屏幕的每個(gè)像素相對(duì)應(yīng),獲取顯存地址,根據(jù)申請(qǐng)消息包含的顯示坐 標(biāo)(該坐標(biāo)為窗口相對(duì)于屏幕像素的坐標(biāo)),計(jì)算出該窗口基于顯存地址的偏移值,也即該 窗口在顯存區(qū)域中的起始地址,根據(jù)窗口的高度和寬度信息可得到所述第一應(yīng)用窗口相對(duì) 應(yīng)的顯存區(qū)域。相應(yīng)地,步驟101所述將第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方 式送至顯存進(jìn)行顯示,具體為203、將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式寫入顯存 中所述第一應(yīng)用程序窗口對(duì)應(yīng)的所述顯存區(qū)域進(jìn)行顯示。將第一應(yīng)用程序的圖像數(shù)據(jù)通過DMA控制器直接寫入第一應(yīng)用窗口對(duì)應(yīng)的顯存 區(qū)域,通過顯示驅(qū)動(dòng)轉(zhuǎn)換為屏幕上的圖像。相應(yīng)的,步驟102創(chuàng)建第二應(yīng)用程序窗口,具體為°204、接收創(chuàng)建所述第二應(yīng)用程序窗口的申請(qǐng)消息,其中,所述申請(qǐng)消息中包括所 述第二應(yīng)用程序窗口的顯示坐標(biāo)信息。205、根據(jù)所述第二應(yīng)用程序窗口的顯示坐標(biāo),計(jì)算所述第二應(yīng)用程序窗口基于所 述顯存地址的偏移值,得到所述第二應(yīng)用程序窗口對(duì)應(yīng)的顯存區(qū)域。206、將所述第二應(yīng)用程序窗口設(shè)為頂層窗口。將所述第二應(yīng)用程序窗口設(shè)為頂層窗口以向用戶及時(shí)呈現(xiàn)應(yīng)用程序的狀態(tài)信息。207、窗口系統(tǒng)向所述第一應(yīng)用程序發(fā)送事件通知,通知所述第一應(yīng)用程序窗口變 為后臺(tái)窗口。相應(yīng)地,步驟103、將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)和所述第二應(yīng)用程序窗口 的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示,包括208、所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)通過所述窗口系統(tǒng)進(jìn)行顯示。當(dāng)?shù)谝粦?yīng)用程序接到所述事件通知后,第一應(yīng)用程序需通過與窗口系統(tǒng)的接口 (一種API接口)將所述第一應(yīng)用程序的圖像數(shù)據(jù)交由窗口系統(tǒng)進(jìn)行顯示處理,窗口系統(tǒng)對(duì) 圖像數(shù)據(jù)進(jìn)行剪切處理后,將圖像數(shù)據(jù)寫入顯存進(jìn)行顯示。所209、發(fā)送第二應(yīng)用程序窗口重繪消息。因所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)在創(chuàng)建所述第二應(yīng)用程序窗口時(shí),是采用 DMA方式送至顯存來進(jìn)行顯示的,即第一應(yīng)用程序?qū)υ摮绦虻拇翱谥苯铀⑵?,刷屏過程中 所述第二應(yīng)用程序窗口的顯示圖形被破壞,故當(dāng)所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)交由窗口系統(tǒng)進(jìn)行顯示處理后,第一應(yīng)用程序通過所述窗口系統(tǒng)向第二應(yīng)用程序發(fā)送窗口重繪消 肩、O 210、接收所述窗口重繪消息,刷新所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)并通過所述 窗口系統(tǒng)進(jìn)行顯示。第二應(yīng)用程序接收窗口重繪消息,在窗口重繪事件的觸發(fā)下,通過窗口系統(tǒng),由窗 口系統(tǒng)對(duì)第二應(yīng)用程序窗口的圖像數(shù)據(jù)進(jìn)行刷新重繪,以還原由于第一應(yīng)用程序直接刷屏 而破壞的第二應(yīng)用程序窗口顯示的內(nèi)容。本實(shí)施例是對(duì)實(shí)施例一的具體說明,對(duì)如何創(chuàng)建窗口系統(tǒng),以及單窗口向多窗口 的轉(zhuǎn)化過程做了更為細(xì)致詳細(xì)的描述,本發(fā)明實(shí)施例在單窗口顯示時(shí),第一應(yīng)用程序圖像 數(shù)據(jù)通過DMA的方式進(jìn)行顯示,當(dāng)有第二應(yīng)用程序的窗口需要顯示時(shí),第二應(yīng)用程序所顯 示的內(nèi)容被瞬間刷新,故將第一和第二應(yīng)用程序圖像數(shù)據(jù)均交由窗口系統(tǒng)進(jìn)行剪切處理后 顯示,并且重新繪制第二應(yīng)用程序窗口,從而實(shí)現(xiàn)多窗口顯示,本實(shí)施例既保證了圖像顯示 效果又減少了計(jì)算消耗,優(yōu)化了圖像顯示的方法。實(shí)施例三本實(shí)施例以所述第一應(yīng)用程序?yàn)橐曨l播放系統(tǒng)作為舉例,參見圖5,對(duì)窗口管理方 法進(jìn)行具體說明。在終端進(jìn)行視頻播放時(shí),多數(shù)情況下是具有圖3所示的視頻播放窗口,即根窗口 下只有視頻播放窗口,在該種情況下,窗口管理方法如下301、視頻播放系統(tǒng)通過與窗口系統(tǒng)的接口向窗口系統(tǒng)申請(qǐng)創(chuàng)建一個(gè)視頻播放窗302、將視頻播放窗口設(shè)為可顯示,并通過顯示驅(qū)動(dòng)獲取顯存地址,根據(jù)所述視頻 播放窗口的顯示坐標(biāo),計(jì)算視頻播放窗口基于所述顯存地址的偏移值,得到視頻播放窗口 對(duì)應(yīng)的顯存區(qū)域。303、解碼視頻流獲取所述視頻播放系統(tǒng)窗口的圖像數(shù)據(jù)。視頻文件包含了經(jīng)過壓縮存放的視頻數(shù)據(jù),視頻數(shù)據(jù)逐流播放形成視頻流,解碼 視頻流數(shù)據(jù)即對(duì)壓縮文件進(jìn)行解壓還原,將視頻數(shù)據(jù)還原為幀為單位的圖像數(shù)據(jù)。304、將所述視頻播放系統(tǒng)窗口的圖像數(shù)據(jù)寫入視頻緩存區(qū)。305、將所述視頻緩存區(qū)中的數(shù)據(jù)通過DMA控制器寫入所述視頻播放系統(tǒng)窗口對(duì) 應(yīng)的顯存區(qū)域進(jìn)行顯示。以上步驟為終端只顯示視頻播放窗口的管理方法,采用DMA控制器刷寫圖像數(shù) 據(jù),降低了媒體播放、窗口顯示的計(jì)算消耗,優(yōu)化了視頻播放流程,提高視頻的顯示幀率。當(dāng)終端在進(jìn)行視頻播放時(shí),有其他應(yīng)用程序窗口需要在視頻播放窗口疊加時(shí),即 終端具有圖4所示的疊加其他應(yīng)用程序窗口的視頻播放窗口,在該種情況下,窗口管理方 法如下306、創(chuàng)建其他應(yīng)用程序窗口。所述其他應(yīng)用程序窗口可以為反映實(shí)時(shí)狀態(tài)的應(yīng)用程序窗口,例如車載單元應(yīng)用 中的扣費(fèi)窗口、余額窗口等。并將所述其他應(yīng)用程序窗口設(shè)為頂層窗口。視頻播放系統(tǒng)接 到窗口系統(tǒng)的事件通知,即其他應(yīng)用程序窗口被窗口系統(tǒng)置頂。307、所述視頻播放系統(tǒng)解碼視頻流,將所述視頻播放窗口的圖像數(shù)據(jù)通過所述窗口系統(tǒng)進(jìn)行顯示。308、向所述其他應(yīng)用程序發(fā)送窗口重繪消息。309、所述其他應(yīng)用程序接收所述窗口重繪消息,通過窗口系統(tǒng)刷新所述其他應(yīng)用程序窗口的圖像數(shù)據(jù)并通過所述窗口系統(tǒng)進(jìn)行顯示。當(dāng)所述其他應(yīng)用程序執(zhí)行完畢時(shí),所述其他應(yīng)用程序窗口關(guān)閉,終端只對(duì)所述視 頻播放窗口進(jìn)行顯示,在該種情況下,窗口管理方法如下310、將所述視頻播放窗口設(shè)為頂層窗口。視頻播放系統(tǒng)收到窗口系統(tǒng)的事件通知,即所述視頻播放窗口置頂通知,視頻播 放窗口由后臺(tái)狀態(tài)變?yōu)橹庙敔顟B(tài)。311、所述視頻播放窗口的圖像數(shù)據(jù)采用所述直接存儲(chǔ)器訪問的方式送至顯存進(jìn) 行顯不。當(dāng)終端重新回到單一窗口(本實(shí)施例中為視頻播放窗口)顯示時(shí),該窗口的圖像 數(shù)據(jù)再回到采用DMA方式進(jìn)行顯示。本實(shí)施例所述的窗口管理方式,特別適用于具有媒體播放功能和及時(shí)信息功能的 終端,能夠在有及時(shí)信息需要接收時(shí),借助窗口系統(tǒng)呈現(xiàn)圖像數(shù)據(jù),以保證及時(shí)信息窗口的 正常顯示;同時(shí),在只有視頻播放時(shí),視頻播放系統(tǒng)繞過窗口系統(tǒng),將圖像數(shù)據(jù)采用DMA方 式進(jìn)行顯示,保證視頻能夠流暢地呈現(xiàn)在用戶面前。實(shí)施例四與上述方法實(shí)施例相對(duì)應(yīng)的,本實(shí)施例還提供了一種用于實(shí)現(xiàn)上述方法的終端1, 參見圖6,包括第一窗口顯示單元2,用于將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接 存儲(chǔ)器訪問的方式送至顯存進(jìn)行顯示;第二窗口創(chuàng)建單元3,用于創(chuàng)建第二應(yīng)用程序窗口 ; 多窗口顯示單元4,用于在創(chuàng)建所述第二應(yīng)用程序窗口后,將所述第一應(yīng)用程序窗口的圖像 數(shù)據(jù)和所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示。DMA方式是一種不經(jīng)過微處理器而直接從內(nèi)存存取數(shù)據(jù)的數(shù)據(jù)交換方式,DMA控 制器來處理數(shù)據(jù)的傳送,這樣就很大程度上減輕了微處理器資源占有率,可以大大節(jié)省系 統(tǒng)資源。本實(shí)施例中,第一窗口顯示單元將圖像數(shù)據(jù)從數(shù)據(jù)緩存區(qū)通過DMA控制器直接寫 入顯存,顯存內(nèi)的數(shù)據(jù)通過顯示驅(qū)動(dòng)顯示在屏幕上。 窗口創(chuàng)建單元根據(jù)申請(qǐng)創(chuàng)建第二應(yīng)用程序窗口。之后,多窗口顯示單元使窗口系 統(tǒng)接管第一應(yīng)用程序窗口的圖像數(shù)據(jù),由窗口系統(tǒng)對(duì)第一應(yīng)用程序窗口的圖像數(shù)據(jù)和第二 應(yīng)用程序窗口的圖像數(shù)據(jù)進(jìn)行處理后寫入顯存,由顯示驅(qū)動(dòng)將第一應(yīng)用程序窗口和第二應(yīng) 用程序窗口顯示在屏幕上。 本實(shí)施例提供的終端,在進(jìn)行單一窗口顯示時(shí),第一窗口顯示單元將第一應(yīng)用程 序窗口的圖像數(shù)據(jù)采用DMA方式進(jìn)行顯示,轉(zhuǎn)換為多窗口顯示時(shí),圖像數(shù)據(jù)由DMA的方式進(jìn) 行顯示轉(zhuǎn)化為通過窗口系統(tǒng)進(jìn)行處理后顯示。這樣,本實(shí)施例將圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn) 行顯示和通過DMA方式送到顯存進(jìn)行顯示相結(jié)合,能夠保證終端在單窗口展示時(shí),借助DMA 方式快速流暢的顯示圖像,避開了微處理器對(duì)數(shù)據(jù)進(jìn)行計(jì)算和處理的時(shí)間和資源消耗;轉(zhuǎn) 換為多窗口展示時(shí),顯示圖像的方式由DMA的方式轉(zhuǎn)換為窗口系統(tǒng)借助微處理器參與圖像 顯示的相關(guān)操作,從而能夠顯示多個(gè)窗口。本發(fā)明實(shí)施例既保證了圖像顯示效果又減少了 計(jì)算消耗,優(yōu)化了圖像顯示的方法。
進(jìn)一步地,參見圖7,所述終端1還包括窗口設(shè)置單元5,用于將所述第一應(yīng)用程 序窗口設(shè)為頂層窗口 ;其中,所述第一窗口顯示單元,還用于在所述第一應(yīng)用程序窗口設(shè)為 頂層窗口后,將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用所述直接存儲(chǔ)器訪問的方式送至顯 存進(jìn)行顯示。當(dāng)終端從多窗口顯示進(jìn)入單窗口顯示狀態(tài)時(shí),例如當(dāng)?shù)诙?yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行 或關(guān)閉時(shí),窗口設(shè)置單元將所述第一應(yīng)用程序窗口設(shè)為頂層窗口。 需要說明的是,終端從多 窗口顯示進(jìn)入單窗口顯示狀態(tài)時(shí),還包括如下情形,即第一應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行或關(guān)閉, 窗口設(shè)置單元將所述第二應(yīng)用程序窗口設(shè)為頂層窗口。將需要顯示單個(gè)窗口對(duì)應(yīng)的圖像數(shù) 據(jù),通過DMA方式進(jìn)行顯示。進(jìn)一步地,參見圖7,本實(shí)施例所述多窗口顯示單元4包括第一窗口模塊41,用于 將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)通過所述窗口系統(tǒng)進(jìn)行顯示,并發(fā)送第二應(yīng)用程序窗 口重繪消息;第二窗口模塊42,用于接收所述窗口重繪消息,刷新所述第二應(yīng)用程序窗口 的圖像數(shù)據(jù)并通過所述窗口系統(tǒng)進(jìn)行顯示。當(dāng)?shù)谝粦?yīng)用程序接到第二應(yīng)用程序窗口設(shè)為頂層窗口的事件通知后,第一窗口模 塊將所述第一應(yīng)用程序的圖像數(shù)據(jù)交由窗口系統(tǒng)進(jìn)行顯示處理,窗口系統(tǒng)對(duì)圖像數(shù)據(jù)進(jìn)行 剪切處理后,將圖像數(shù)據(jù)寫入顯存進(jìn)行顯示。因所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)在創(chuàng)建所述第二應(yīng)用程序窗口時(shí),是采用 DMA方式來進(jìn)行顯示的,刷屏過程中所述第二應(yīng)用程序窗口的顯示圖形被破壞,故當(dāng)?shù)谝淮?口模塊將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)交由窗口系統(tǒng)進(jìn)行顯示處理后,第一應(yīng)用程序 通過窗口系統(tǒng)向第二應(yīng)用程序發(fā)送窗口重繪消息。第二應(yīng)用程序在窗口重繪事件的觸發(fā)下,第二窗口模塊將第二應(yīng)用程序窗口的圖 像數(shù)據(jù)交由窗口系統(tǒng)進(jìn)行刷新重繪,以還原由于第一應(yīng)用程序直接刷屏而破壞的第二應(yīng)用 程序窗口顯示的內(nèi)容。進(jìn)一步地,參見圖7,本實(shí)施例所述第一窗口顯示單元2,包括窗口申請(qǐng)模塊21, 用于接收創(chuàng)建所述第一應(yīng)用程序窗口的申請(qǐng)消息,其中,所述申請(qǐng)消息中包括所述第一應(yīng) 用程序窗口的顯示坐標(biāo)信息;顯存分配模塊22,用于獲取顯存地址,根據(jù)所述第一應(yīng)用程 序窗口的顯示坐標(biāo)信息,計(jì)算所述第一應(yīng)用程序窗口基于所述顯存地址的偏移值,得到所 述第一應(yīng)用程序窗口對(duì)應(yīng)的顯存區(qū)域;數(shù)據(jù)寫入模塊23,用于將所述第一應(yīng)用程序窗口的 圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式送至顯存寫入顯存中所述第一應(yīng)用程序窗口對(duì)應(yīng)的 所述顯存區(qū)域進(jìn)行顯示。當(dāng)終端當(dāng)前沒有播放窗口時(shí),窗口申請(qǐng)模塊通過與窗口系統(tǒng)的接口,向窗口系統(tǒng) 申請(qǐng)創(chuàng)建一個(gè)播放窗口。其中,所述申請(qǐng)消息中包含了所需窗口的坐標(biāo)、高度和寬度等信 息。顯存地址與屏幕的每個(gè)像素相對(duì)應(yīng),顯存分配模塊獲取顯存地址,根據(jù)申請(qǐng)消息包含的 顯示坐標(biāo)(該坐標(biāo)為窗口相對(duì)于屏幕像素的坐標(biāo)),計(jì)算出該窗口基于顯存地址的偏移值, 也即該窗口在顯存區(qū)域中的起始地址,根據(jù)窗口的高度和寬度信息可得到所述第一應(yīng)用窗 口相對(duì)應(yīng)的顯存區(qū)域。數(shù)據(jù)寫入模塊將第一應(yīng)用程序的圖像數(shù)據(jù)通過DMA控制器直接寫入 第一應(yīng)用窗口對(duì)應(yīng)的顯存區(qū)域,通過顯示驅(qū)動(dòng)轉(zhuǎn)換為屏幕上的圖像。本實(shí)施例所述第一應(yīng)用程序?yàn)橐曨l播放系統(tǒng)。故進(jìn)一步地,所述第一窗口顯示單 元還包括數(shù)據(jù)獲取模塊,用于解碼視頻流獲取所述視頻播放系統(tǒng)窗口的圖像數(shù)據(jù)。
視頻文件包含了經(jīng)過壓縮存放的視頻數(shù)據(jù),視頻數(shù)據(jù)逐流播放形成視頻流,數(shù)據(jù) 獲取模塊對(duì)壓縮文件進(jìn)行解壓還原,將視頻數(shù)據(jù)還原為幀為單位的圖像數(shù)據(jù)。本實(shí)施例所述的終端,特別適用于具有媒體播放功能和及時(shí)信息功能的終端,能 夠在有及時(shí)信息需要接收時(shí),借助窗口系統(tǒng)呈現(xiàn)圖像數(shù)據(jù),以保證及時(shí)信息窗口的正常顯 示;同時(shí),在只有視頻播放時(shí),視頻播放系統(tǒng)繞過窗口系統(tǒng),將圖像數(shù)據(jù)采用DMA方式進(jìn)行 顯示,保證視頻能夠流暢地呈現(xiàn)在用戶面前。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通 過硬件實(shí)現(xiàn),也可以借助軟件加必要的硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的 技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,包括若干指令用以終端執(zhí)行本發(fā)明各個(gè)實(shí)施例 上述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流 程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施例終端中的單元和模塊可以按照實(shí)施例描述分布 于終端中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng) 域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種窗口管理方法,其特征在于,包括將第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行顯示;創(chuàng)建第二應(yīng)用程序窗口;將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)和所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示。
2.按照權(quán)利要求1所述的窗口管理方法,其特征在于,在將所述第一應(yīng)用程序窗口的 圖像數(shù)據(jù)和所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示之后,該方法包括當(dāng)所述第二應(yīng)用程序窗口結(jié)束顯示時(shí),將所述第一應(yīng)用程序窗口設(shè)為頂層窗口 ;將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)通過所述直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行 顯不。
3.按照權(quán)利要求1所述的窗口管理方法,其特征在于,所述將所述第一應(yīng)用程序窗口 的圖像數(shù)據(jù)和所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示,包括所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)通過所述窗口系統(tǒng)進(jìn)行顯示;發(fā)送第二應(yīng)用程序窗口重繪消息;接收所述窗口重繪消息,刷新所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)并通過所述窗口系統(tǒng) 進(jìn)行顯示。
4.按照權(quán)利要求1所述的窗口管理方法,其特征在于,在所述將第一應(yīng)用程序窗口的 圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行顯示之前,該方法包括接收創(chuàng)建所述第一應(yīng)用程序窗口的申請(qǐng)消息,其中,所述申請(qǐng)消息中包括所述第一應(yīng) 用程序窗口的顯示坐標(biāo)信息;獲取顯存地址,根據(jù)所述第一應(yīng)用程序窗口的顯示坐標(biāo)信息,計(jì)算所述第一應(yīng)用程序 窗口基于所述顯存地址的偏移值,得到所述第一應(yīng)用程序窗口對(duì)應(yīng)的顯存區(qū)域;相應(yīng)地,所述將第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行顯示, 具體為將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式寫入顯存中所述第 一應(yīng)用程序窗口對(duì)應(yīng)的所述顯存區(qū)域進(jìn)行顯示。
5.按照權(quán)利要求1所述的窗口管理方法,其特征在于,所述第一應(yīng)用程序?yàn)橐曨l播放 系統(tǒng),所述將第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行顯 示,具體為解碼視頻流獲取所述視頻播放系統(tǒng)窗口的圖像數(shù)據(jù),將所述視頻播放系統(tǒng)窗口的圖像 數(shù)據(jù)寫入視頻緩存區(qū),將所述視頻緩存區(qū)中的數(shù)據(jù)通過直接存儲(chǔ)器訪問控制器寫入所述視 頻播放系統(tǒng)窗口對(duì)應(yīng)的顯存區(qū)域進(jìn)行顯示。
6.一種終端,其特征在于,包括第一窗口顯示單元,用于將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的 方式送至顯存進(jìn)行顯示;第二窗口創(chuàng)建單元,用于創(chuàng)建第二應(yīng)用程序窗口 ;多窗口顯示單元,用于在創(chuàng)建所述第二應(yīng)用程序窗口后,將所述第一應(yīng)用程序窗口的 圖像數(shù)據(jù)和所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示。
7.按照權(quán)利要求6所述的終端,其特征在于,該終端還包括窗口設(shè)置單元,用于將所述第一應(yīng)用程序窗口設(shè)為頂層窗口 ;其中,所述第一窗口顯示 單元,還用于在所述第一應(yīng)用程序窗口設(shè)為頂層窗口后,將所述第一應(yīng)用程序窗口的圖像 數(shù)據(jù)采用所述直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行顯示。
8.按照權(quán)利要求6所述的終端,其特征在于,所述多窗口顯示單元包括第一窗口模塊,用于將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)通過所述窗口系統(tǒng)進(jìn)行顯 示,并發(fā)送第二應(yīng)用程序窗口重繪消息;第二窗口模塊,用于接收所述窗口重繪消息,刷新所述第二應(yīng)用程序窗口的圖像數(shù)據(jù) 并通過所述窗口系統(tǒng)進(jìn)行顯示。
9.按照權(quán)利要求6所述的終端,其特征在于,所述第一窗口顯示單元,包括窗口申請(qǐng)模塊,用于接收創(chuàng)建所述第一應(yīng)用程序窗口的申請(qǐng)消息,其中,所述申請(qǐng)消息 中包括所述第一應(yīng)用程序窗口的顯示坐標(biāo)信息;顯存分配模塊,用于獲取顯存地址,根據(jù)所述第一應(yīng)用程序窗口的顯示坐標(biāo)信息,計(jì)算 所述第一應(yīng)用程序窗口基于所述顯存地址的偏移值,得到所述第一應(yīng)用程序窗口對(duì)應(yīng)的顯 存區(qū)域;數(shù)據(jù)寫入模塊,用于將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)采用直接存儲(chǔ)器訪問的方式 寫入顯存中所述第一應(yīng)用程序窗口對(duì)應(yīng)的所述顯存區(qū)域進(jìn)行顯示。
10.按照權(quán)利要求6所述的終端,其特征在于所述第一應(yīng)用程序?yàn)橐曨l播放系統(tǒng);其 中,所述第一窗口顯示單元還包括,數(shù)據(jù)獲取模塊,用于解碼視頻流獲取所述視頻播放系統(tǒng)窗口的圖像數(shù)據(jù)。
全文摘要
本發(fā)明實(shí)施例公開了一種窗口管理方法及終端,涉及圖形用戶界面技術(shù)領(lǐng)域,為降低終端在圖像顯示過程中的計(jì)算消耗,優(yōu)化圖像顯示方法而設(shè)計(jì)。本發(fā)明實(shí)施例的方法,包括將第一應(yīng)用程序窗口的圖像數(shù)據(jù)通過直接存儲(chǔ)器訪問的方式送至顯存進(jìn)行顯示;創(chuàng)建第二應(yīng)用程序窗口;將所述第一應(yīng)用程序窗口的圖像數(shù)據(jù)和所述第二應(yīng)用程序窗口的圖像數(shù)據(jù)通過窗口系統(tǒng)進(jìn)行顯示。本發(fā)明實(shí)施例還提供一種實(shí)現(xiàn)上述方法的終端。本發(fā)明實(shí)施例用于單個(gè)或多個(gè)窗口顯示。
文檔編號(hào)G06F3/048GK101937317SQ20101029202
公開日2011年1月5日 申請(qǐng)日期2010年9月26日 優(yōu)先權(quán)日2010年9月26日
發(fā)明者孫孝文, 鐘武 申請(qǐng)人:北京握奇數(shù)據(jù)系統(tǒng)有限公司