使用戶界面和輸入控制適應(yīng)的方法
【專利摘要】呈現(xiàn)用于生成圖形用戶界面的方法。在一個實施例中,方法包括確定與執(zhí)行應(yīng)用的裝置關(guān)聯(lián)的裝置性質(zhì)并且至少基于這些裝置性質(zhì)和該應(yīng)用的抽象用戶界面(AUI)生成具體圖形用戶界面(CUI)。該方法包括在該裝置上顯示該CUI并且確定這些裝置性質(zhì)中的變化。在一個實施例中,該方法進一步包括如果必要的話至少基于更新的裝置性質(zhì)和該應(yīng)用的相同AUI生成不同的CUI。
【專利說明】使用戶界面和輸入控制適應(yīng)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實施例涉及生成計算機用戶界面,特別地生成多個形狀因子的計算機用戶界面。
【背景技術(shù)】
[0002]一般,重新設(shè)計并且重新創(chuàng)建圖形用戶界面來將軟件應(yīng)用部署于多個平臺。在大多數(shù)情況,對例如筆記本、上網(wǎng)本、智能電話、移動互聯(lián)網(wǎng)裝置(MID)、智能電視等每個不同的裝置再次開發(fā)與輸入控制耦合的圖形用戶界面。
[0003]使應(yīng)用適應(yīng)于多個裝置的投入招致另外的開發(fā)時間/成本。當(dāng)前,Java SDK (例如,J2ME)簡單地通過使所有小部件(widget)在一個特定的屏幕中自動調(diào)整大小而與不同的裝置兼容。如果小部件(其適合較大裝置上的頁面)在較小裝置上不能適合一個屏幕頁面,該技術(shù)方案失敗。結(jié)果,開發(fā)者可能必須對每個裝置重新設(shè)計新的圖形用戶界面。
【專利附圖】
【附圖說明】
[0004]將從下文給出的詳細描述以及本發(fā)明的各種實施例的附圖更充分地理解本發(fā)明的實施例,然而,它們不應(yīng)視為使本發(fā)明局限于特定實施例,而只是為了解釋和理解。
[0005]圖1是分析圖形用戶界面設(shè)計并且生成具體圖形用戶界面的過程的一個實施例的流程圖。
[0006]圖2是生成具體圖形用戶界面的系統(tǒng)的一個實施例的流程圖。
[0007]圖3是生成具體圖形用戶界面的過程的一個實施例的流程圖。
[0008]圖4圖示與本發(fā)明的一個實施例一起使用的計算機系統(tǒng)。
[0009]圖5圖示與本發(fā)明的一個實施例一起使用的點對點計算機系統(tǒng)。
具體實施例
[0010]呈現(xiàn)生成圖形用戶界面的方法。在一個實施例中,方法包括確定與執(zhí)行應(yīng)用的裝置關(guān)聯(lián)的裝置性質(zhì)并且至少基于這些裝置性質(zhì)和該應(yīng)用的抽象用戶界面(AUI)生成具體圖形用戶界面(CUI)。該方法包括在該裝置上顯示該CUI并且確定這些裝置性質(zhì)中的變化。在一個實施例中,該方法進一步包括如果必要的話至少基于更新的裝置性質(zhì)和該應(yīng)用的相同AUI生成不同的⑶I。
[0011]在下列描述中,闡述許多細節(jié)以提供對本發(fā)明的實施例的更全面的解釋。然而,本發(fā)明的實施例可在沒有這些具體細節(jié)的情況下實踐,這對于本領(lǐng)域內(nèi)技術(shù)人員將是明顯的。在其它實例中,以框圖的形式而不詳細地示出眾所周知的結(jié)構(gòu)和裝置,以便避免掩蓋本發(fā)明的實施例。
[0012]從對計算機存儲器內(nèi)的數(shù)據(jù)位的操作的符號表示以及算法方面呈現(xiàn)接著的詳細描述中的一些部分。這些算法描述和表示是由數(shù)據(jù)處理領(lǐng)域內(nèi)的技術(shù)人員使用以最有效地向本領(lǐng)域內(nèi)其他技術(shù)人員傳達它們的工作實質(zhì)的手段。算法在這里并且一般設(shè)想為導(dǎo)致期望結(jié)果的步驟的自洽順序。這些步驟是需要物理操縱物理量的那些步驟。通常,盡管不是必須的,這些量采用能夠被存儲、轉(zhuǎn)移、組合、比較和用別的方式而操縱的電或磁信號的形式。已經(jīng)證實有時主要由于常見使用的原因?qū)⑦@些信號稱為位、值、元素、符號、字符、項、數(shù)字或類似物是方便的。
[0013]然而,應(yīng)該牢記所有這些和相似的術(shù)語將與適當(dāng)?shù)奈锢砹筷P(guān)聯(lián)并且僅是應(yīng)用于這些量的方便標(biāo)簽。除非另外具體闡述(如從上文論述而明顯可見的),意識到在整個說明中,利用例如“處理”或“計算”或“運算”或“確定”或“顯示”或相似物等術(shù)語的論述指計算機系統(tǒng)或相似的電子計算裝置的動作和過程,其操縱表示為計算機系統(tǒng)的寄存器和存儲器內(nèi)的物理(電子)量的數(shù)據(jù)并且將其轉(zhuǎn)換為相似地表示為計算機系統(tǒng)存儲器或寄存器或其他這樣的信息存儲、傳輸或顯示裝置內(nèi)的物理量的其他數(shù)據(jù)。
[0014]本發(fā)明的實施例還涉及用于執(zhí)行本文中的操作的設(shè)備。一些設(shè)備可專門對于所需目的而構(gòu)造,或它可包括由存儲在計算機中的計算機程序選擇性地激活或重新配置的通用計算機。這樣的計算機程序可存儲在計算機可讀存儲介質(zhì)中,例如但不限于任何類型的盤(包括軟盤、光盤、CD-ROM、DVD-ROM和磁光盤)、只讀存儲器(ROM)、隨機存取存儲器(RAM)、EPROM、EEPROM、NVRAM、磁或光卡或適合用于存儲電子指令的任何類型的介質(zhì),并且每個耦合于計算機系統(tǒng)總線。
[0015]本文呈現(xiàn)的算法和顯示器不固有地涉及任何特定計算機或其他設(shè)備。各種通用系統(tǒng)可根據(jù)本文的教導(dǎo)與程序一起使用,或可證明便于構(gòu)造更專業(yè)的設(shè)備來執(zhí)行需要的方法步驟。多種此類系統(tǒng)需要的結(jié)構(gòu)將從下文的描述顯而易見。另外,未參考任何特定編程語言描述本發(fā)明的實施例。將意識到多種編程語言可用于實現(xiàn)如本文描述的本發(fā)明的教導(dǎo)。
[0016]機器可讀介質(zhì)包括用于存儲或傳輸采用機器(例如,計算機)可讀形式的信息的任何機構(gòu)。例如,機器可讀介質(zhì)包括只讀存儲器(“ROM”);隨機存取存儲器(“RAM”);磁盤存儲介質(zhì);光存儲介質(zhì);閃速存儲器裝置;等。
[0017]本文描述的方法和設(shè)備用于對關(guān)于多個形狀因子的應(yīng)用生成圖形用戶界面。該方法和設(shè)備主要參考多核處理器計算機系統(tǒng)論述。然而,用于生成圖形用戶界面的方法和設(shè)備不限于此,因為它們可在任何集成電路裝置或系統(tǒng)(例如手機、個人數(shù)字助理、平板電腦、嵌入式控制器、移動平臺、桌面平臺和服務(wù)器平臺等)上或與之相關(guān)聯(lián)地以及連同其他資源實現(xiàn)。
[0018]綜覽
呈現(xiàn)生成圖形用戶界面的方法。在一個實施例中,方法包括確定與執(zhí)行應(yīng)用的裝置關(guān)聯(lián)的裝置性質(zhì)并且至少基于這些裝置性質(zhì)和該應(yīng)用的抽象用戶界面(AUI)生成具體圖形用戶界面(CUI)。該方法包括在該裝置上顯示該CUI并且確定這些裝置性質(zhì)中的變化。在一個實施例中,該方法進一步包括如果必要的話至少基于更新的裝置性質(zhì)和該應(yīng)用的相同AUI生成不同的⑶I。
[0019]圖1是分析圖形用戶界面設(shè)計并且生成具體圖形用戶界面的過程的一個實施例的流程圖。該過程通過可包括硬件(電路、專用邏輯等)、軟件(例如在通用計算機系統(tǒng)或?qū)S脵C器上運行的軟件)或兩者的組合的處理邏輯執(zhí)行。在一個實施例中,該過程由關(guān)于圖4的計算機系統(tǒng)執(zhí)行。
[0020]_ AUI的生成
參照圖1,在一個實施例中,過程通過檢測裝置信息并且通過部分基于算法(例如,重新編頁/布局模塊140)渲染GUI而實現(xiàn)圖形用戶界面的自動適應(yīng)。在一個實施例中,開發(fā)者或程序員創(chuàng)建⑶I 110 (例如,Glade、Qt UI等)。在一個實施例中,CUI 110是Glade XML文件,其中小部件用GTK+syntax定義。CUI 110包括文本輸入供用戶輸入型號,和兩個單選按鈕供用戶選擇顏色選項。⑶I 110還包括一組控制按鈕(“取消”和“確認(rèn)”)來確認(rèn)用戶輸入。
[0021]在一個實施例中,處理邏輯至少部分基于其他信息從⑶I 110生成AUI 120 (例如,采用XML格式的AUI)。
[0022]在一個實施例中,AUI 120被創(chuàng)建來表示動作,并且根據(jù)定制規(guī)范。動作的示例包括小部件的抽象化,例如按鈕、標(biāo)簽、圖像、視頻、滑塊等。在一個實施例中,抽象用戶界面(AUI)根據(jù)AUI語言采用任務(wù)模型的形式生成。該AUI遵照基于面向任務(wù)的模型的規(guī)范。小部件表示為通用任務(wù),從而保存它們的上下文和隱含屬性,例如關(guān)系、優(yōu)先級、群組和強制大小(如果要求的話)等。例如,AUI 120包括接收文本輸入和選擇輸入的任務(wù)。AUI 120還包括來自用戶的動作(“取消”和“確認(rèn)”)。
[0023]在一個實施例中,AUI 120的生成在應(yīng)用的設(shè)計時間期間被執(zhí)行。例如,開發(fā)者提供現(xiàn)有⑶I。處理邏輯執(zhí)行分析將⑶I (例如,⑶I 110)變換成AUI (例如,AUI 120)。
[0024]_
CUI的生成
在一個實施例中,處理邏輯收集與執(zhí)行應(yīng)用的裝置關(guān)聯(lián)的裝置信息或裝置性質(zhì)。在一個實施例中,目標(biāo)裝置信息131包含關(guān)于該目標(biāo)裝置的特定信息。在一個實施例中,該信息包括裝置的類型、屏幕大小、屏幕分辨率、屏幕的數(shù)目、可用的輸入裝置等。
[0025]在一個實施例中,處理邏輯經(jīng)由DBus和Xll收集關(guān)于執(zhí)行裝置的元數(shù)據(jù)。
[0026]在一個實施例中,在生成AUI 130并且收集了目標(biāo)裝置信息131后,處理邏輯通過使用算法(例如,重新編頁/布局140)基于這些來源而生成⑶I 150。在一個實施例中,處理邏輯動態(tài)生成⑶I 150。
[0027]在一個實施例中,重新編頁/布局140包括執(zhí)行重新編頁(分頁)、布局設(shè)置、導(dǎo)航控制插入等的模塊。在一個實施例中,處理邏輯從以下接收輸入:(1)頁面分割&布局邏輯(例如,XSLT文件),(2) AUI (例如,XML文件),和(3)目標(biāo)裝置信息(例如,嵌入XSLT文件)。重新編頁/布局140將在下文更詳細地論述。
[0028]在一個實施例中,目標(biāo)裝置信息被嵌入與頁面分割&布局邏輯相同的XSLT文件。在一個實施例中,處理邏輯基于頁面分割&布局邏輯和裝置信息生成定制的XSLT文件。在其他實施例中,目標(biāo)裝置信息在單獨的文件中,例如另一個XSLT文件中。
[0029]在一個實施例中,處理邏輯連同重新編頁/布局140的執(zhí)行而接收AUI 130中的任務(wù)描述并且根據(jù)執(zhí)行應(yīng)用的裝置的限制和能力而生成最終的⑶I (例如,⑶I 150)。在一個實施例中,處理邏輯是執(zhí)行應(yīng)用的裝置的一部分。
[0030]在一個實施例中,處理邏輯將AUI 130變換成⑶I 150。該變換考慮要用于表示任務(wù)及其特性的小部件(CUI中可用的)。在一個實施例中,任務(wù)特性涉及最小的小部件大小、任務(wù)優(yōu)先級(例如,如果應(yīng)用分成多個屏幕頁面,一些任務(wù)應(yīng)該在第一個屏幕頁面顯示)、編組信息(例如,確認(rèn)和取消是編組的任務(wù))、強制大小(例如,視頻區(qū)域是總屏幕區(qū)域的至少50%)等。
[0031 ] 在一個實施例中,如果CUI分成多個屏幕頁面(多個窗口),處理邏輯生成導(dǎo)航控制(例如,“下一步”、“前一步”或兩者)。例如,在具有較小屏幕區(qū)域的裝置上,AUI采用多頁面方式顯示。例如,代替原始⑶I (即,⑶I 110)中僅有的一個屏幕頁面,⑶I 150包括兩個屏幕頁面(即,屏幕頁面151和屏幕頁面152)。
[0032]在一個實施例中,渲染⑶I 150并且將其與應(yīng)用的方法、規(guī)程和功能鏈接。
[0033]在一個實施例中,處理邏輯確定裝置能力。處理邏輯確定最方便的小部件來表示期望的動作。如果裝置的形狀因子比原始用戶界面更小,處理邏輯將Π分割并且在最終CUI中生成具有導(dǎo)航控制的多個屏幕,供在較小裝置(例如,具有較小顯示器的智能電話)上使用。
[0034]在一個實施例中,架構(gòu)100獨立于另外的服務(wù)、應(yīng)用或工具來重新創(chuàng)建每個不同裝置的用戶界面。架構(gòu)100可應(yīng)用于已經(jīng)開發(fā)的應(yīng)用。架構(gòu)100采用ΑΠ的概念來表示用戶界面和周圍的邏輯規(guī)則(例如,小部件群組信息、優(yōu)先級、強制屏幕大小等)。在一個實施例中,架構(gòu)100獨立于運行時間SDK。例如,AUI 130和重新編頁/布局140作為庫或應(yīng)用的一部分而被嵌入該應(yīng)用中。在一個實施例中,架構(gòu)100連同采用高級計算機語言(包括面向?qū)ο蟮暮推渌Z言,例如FORTRAN、Java、C++等)的代碼來使用。
[0035]在一個實施例中,處理邏輯響應(yīng)于運行時間期間應(yīng)用的執(zhí)行而生成⑶I 150。
[0036]在一個實施例中,架構(gòu)100根據(jù)XML格式使用AUI定義。AUI中的元素根據(jù)實際目標(biāo)裝置而被映射至一個或多個小部件、硬件輸入控制、其任意組合。例如,推送動作被渲染為上網(wǎng)本上的軟按鈕,而在智能電話上是硬控制按鈕。
[0037]在一個實施例中,AUI規(guī)范語言包括采用例如UsiXMUXForm等的方式。在一個實施例中,AUI規(guī)范語言包括任務(wù)、容器、實例、小部件抽象化和性質(zhì)模型。AUI規(guī)范進一步包括概念和定義,例如優(yōu)先級信息、編組信息、序列信息和事件映射等。
[0038]在一個實施例中,架構(gòu)100連同AUI規(guī)范模型實現(xiàn)。根據(jù)該AUI規(guī)范模型,容器是屏幕頁面的表示,任務(wù)是小部件的表示。包括另外的元數(shù)據(jù)來生成最終的CUI并且定義該最終⑶I的一些特性。
[0039]_
重新編頁和布局算法
在一個實施例中,重新編頁/布局算法是架構(gòu)100的部分。在一個實施例中,重新編頁/布局140解析AUI來生成⑶I。重新編頁/布局140基于裝置性質(zhì)、小部件和用戶規(guī)定的期望的行為而執(zhí)行該生成。在一個實施例中,重新編頁/布局140構(gòu)成為XSLT解析器文件,其采用XML格式生成輸出(即,⑶I )。在一個實施例中,重新編頁/布局140用XSLT語言編碼來將AUI變換成CUI,其是XSLT語言非常規(guī)的使用。
[0040]在一個實施例中,重新編頁/布局140使用目標(biāo)裝置元數(shù)據(jù),其通過Xl I接口(基于Linux的裝置)或OS API (基于Windows的裝置)而從裝置被提取。在一個實施例中,重新編頁/布局140包括執(zhí)行例如重新編頁、布局分割、裝置信息收集、容器解析、分割協(xié)調(diào)、屏幕堆棧計算、動作解析、群組解析和導(dǎo)航控制插入等的模塊。
[0041]在一個實施例中,重新編頁模塊基于裝置特性和由開發(fā)者預(yù)定義的首選項來決定并且將小部件從一個屏幕頁面移動到另一個屏幕頁面。布局分割通過創(chuàng)建新的窗口(屏幕頁面)來容納小部件或通過將多個屏幕頁面聯(lián)合成較少的屏幕頁面而幫助重新編頁。布局分割估計對于每個目標(biāo)平臺要求多少個屏幕頁面。例如,應(yīng)用如果在上網(wǎng)本上執(zhí)行則需要使用兩個屏幕頁面,但如果在智能電話上則需要使用四個屏幕頁面(窗口)。在一個實施例中,架構(gòu)100在顯示器上重新定位小部件,因此通過不同的裝置維持用戶體驗。
[0042]在一個實施例中,容器解析分析⑶I來設(shè)置容器的位置。在一個實施例中,容器與包含其他小部件(其總是作為單元被管理)的小部件相似。如果需要,容器解析還創(chuàng)建新的容器。例如,具有三個按鈕(“播放”、“停止”和“暫停”)的容器指示這三個按鈕總是放在一起,使得設(shè)計更易于使用。在分割屏幕頁面的過程期間確定這樣的隱含信息是有用的。
[0043]在一個實施例中,分割協(xié)調(diào)對每個創(chuàng)建的新屏幕頁面迭代操作,使得所有小部件逐漸地被放置或移動。例如,如果達到窗口容量(可用屏幕區(qū)域低或是零),創(chuàng)建新的屏幕頁面。
[0044]在一個實施例中,堆棧計算計算要放入當(dāng)前窗口的小部件的數(shù)目(AUI規(guī)范中的“動作”)。堆棧計算基于優(yōu)先級信息和確定可用的剩余屏幕區(qū)域的屏幕百分比計算。堆棧計算的輸出對于動作解析和群組解析是有用的。
[0045]在一個實施例中,動作解析是最終模塊中的一個,這些最終模塊通過基于裝置性質(zhì)選擇最適合的小部件而將抽象動作變換成CUI中的一個或多個小部件。例如,動作“推送”在上網(wǎng)本上被渲染為按鈕,但在智能電話上渲染為復(fù)選框。在一個實施例中,群組解析是最終模塊中的一個,這些最終模塊將抽象群組變換成⑶I中的一個或多個容器。
[0046]在一個實施例中,如果在所有小部件被放入屏幕頁面后創(chuàng)建新的屏幕頁面,則發(fā)生導(dǎo)航控制插入。插入導(dǎo)航控制使得用戶可以從一個屏幕導(dǎo)航到另一個屏幕。在一個實施例中,導(dǎo)航控制使用“下一步”/ “前一步”按鈕或適合良好用戶體驗的一些其他方式來實現(xiàn)。在一個實施例中,響應(yīng)于窗口分割(重新編頁)調(diào)用導(dǎo)航控制生成。在一個實施例中,導(dǎo)航控制是“下一步”/ “前一步”按鈕、下拉菜單、索引、其的任意組合。
[0047]在一個實施例中,架構(gòu)100為不同形狀因子的裝置提供自動圖形用戶界面/輸入適應(yīng)。程序員能夠為特定裝置開發(fā)應(yīng)用,然后在其他裝置上執(zhí)行該應(yīng)用而無需不重新開發(fā)圖形用戶界面/輸入控制。
[0048]_
裝置性質(zhì)的變化
在一個實施例中,為較大裝置設(shè)計的應(yīng)用能夠在較小裝置上執(zhí)行。布局分割(重新編頁)采用連貫的方式將一個窗口分割成具有導(dǎo)航控制的多個屏幕頁面。在一個實施例中,應(yīng)用能夠在運行時間動態(tài)執(zhí)行AU1-Cn變換,其中通信經(jīng)由過程間通信或遠程規(guī)程調(diào)用(例如,DBus)。例如,如果顯示器的屏幕分辨率改變或者如果裝置連接到另一個顯示器(例如,使用另一個監(jiān)視器/投影機),系統(tǒng)服務(wù)發(fā)送消息(信號)給應(yīng)用使得應(yīng)用及時執(zhí)行GUI的適應(yīng)。
[0049]在一個實施例中,當(dāng)應(yīng)用在不同裝置上執(zhí)行時,輸入控制自動適應(yīng)。輸入控制適應(yīng)成使得應(yīng)用利用各種類型的可用輸入控制/接口,例如鼠標(biāo)、鍵盤、指示筆、觸摸屏、加速計、GPS模塊、硬按鈕、軟控制按鈕等。
[0050]圖2是生成具體圖形用戶界面的系統(tǒng)的一個實施例的流程圖。例如總線和外圍設(shè)備等許多相關(guān)的部件沒有示出來避免掩蓋本發(fā)明。參照圖2,系統(tǒng)包括筆記本210、平板電腦211和其他裝置213。在一個實施例中,裝置信息發(fā)現(xiàn)(DID)220、裝置信息注入(DII)221和AU1-⑶I變換231是連同裝置(裝置210-213)實現(xiàn)的硬件/軟件模塊。這些模塊由處理邏輯執(zhí)行,處理邏輯可包括硬件(電路、專用邏輯等)、軟件(例如在通用計算機系統(tǒng)或?qū)S脵C器上運行的軟件等)或兩者的組合。
[0051]參照圖2,在一個實施例中,裝置信息由DID 220收集。在一個實施例中,DII 221將裝置信息注入重新編頁/布局算法。在一個實施例中,定制模塊240是基于來自DII221的裝置信息和重新編頁與布局邏輯模塊來匯編或生成的XSLT模塊。在一個實施例中,AU1-⑶I變換231接收采用XSLT格式的定制模塊240和AUI 230來生成最終適應(yīng)的⑶I(例如,編碼為XML文件的⑶I 250)。在一個實施例中,DID 220、DII 221和AU1-CUI變換231作為系統(tǒng)一起操作來執(zhí)行重新編頁(分割)和布局設(shè)置。
[0052]在一個實施例中,處理裝置(例如,裝置210-213)包括圖形處理器,其與CPU集成在芯片中。在其他實施例中,該圖形處理器和CPU是分立裝置。在一個實施例中,圖形處理器也是處理裝置,其可操作成支持來自CPU的一定處理工作量。在一個實施例中,圖形處理器包括處理裝置(例如,處理器、數(shù)字信號處理單元和微控制器)。上文的方法和設(shè)備主要參考CPU/GPU論述。然而,這些方法和設(shè)備不限于此,因為它們可在任何處理裝置(包括圖形處理器、數(shù)字信號處理單元、微控制器或其的任意組合)上或與之相關(guān)聯(lián)地實現(xiàn)。
[0053]在一個實施例中,計算機系統(tǒng)(例如,裝置210-213)包括計算機工作站、便攜式電腦、臺式機、服務(wù)器、大型機或任何其他計算裝置。
[0054]圖3是生成具體圖形用戶界面的過程的一個實施例的流程圖。該過程由處理邏輯執(zhí)行,該處理邏輯可包括硬件(電路、專用邏輯等)、軟件(例如在通用計算機系統(tǒng)或?qū)S脵C器上運行的軟件等)或兩者的組合。在一個實施例中,該過程由關(guān)于圖4的計算機系統(tǒng)執(zhí)行。
[0055]參照圖3,在一個實施例中,處理邏輯響應(yīng)于應(yīng)用在裝置上的執(zhí)行而通過確定與該裝置關(guān)聯(lián)的裝置性質(zhì)來開始(過程框601)。處理邏輯收集裝置信息,例如屏幕大小、屏幕分辨率、裝置的輸入能力等。
[0056]在一個實施例中,處理邏輯至少基于裝置性質(zhì)和應(yīng)用的抽象用戶界面(AUI)來生成具體圖形用戶界面(CUI)(過程框602)。在一個實施例中,處理邏輯基于AUI中表示的基于任務(wù)的元素來確定用戶界面元素。用戶界面元素在本文中也稱為小部件。處理邏輯基于AUI和裝置信息而應(yīng)用重新編頁和布局算法。當(dāng)必要時處理邏輯將用戶界面窗口分割成多個屏幕頁面,并且在這些屏幕頁面中增加導(dǎo)航控制。
[0057]在一個實施例中,處理邏輯基于每個用戶界面元素的先后次序信息以及剩余的屏幕頁面信息來計算屏幕頁面中用戶界面元素的數(shù)量的估計。在一個實施例中,處理邏輯確定是否將屏幕頁面分割成兩個或以上的屏幕頁面。處理邏輯對每個屏幕頁面插入導(dǎo)航控制。例如,最后的屏幕頁面僅示出到之前頁面的導(dǎo)航控制。最后的屏幕頁面不示出到后續(xù)屏幕的導(dǎo)航控制。
[0058]在一個實施例中,處理邏輯基于裝置性質(zhì)(其包括關(guān)于一個或多個硬件按鈕的信息)生成CUI。在一個實施例中,處理邏輯生成能夠從一個或多個硬件按鈕和一個或多個軟按鈕接收用戶輸入的⑶I。[0059]在一個實施例中,處理邏輯生成并且顯示最后適應(yīng)的⑶I (過程框603)。處理邏輯在裝置的顯示器上渲染并且顯示最后的⑶I。
[0060]在一個實施例中,處理邏輯確定在裝置性質(zhì)中是否存在變化(過程框604)。例如,處理邏輯監(jiān)視系統(tǒng)服務(wù)來檢測是否發(fā)生變化。在一個實施例中,處理邏輯在發(fā)生變化時從系統(tǒng)服務(wù)接收消息。
[0061]在一個實施例中,處理邏輯基于更新的裝置性質(zhì)和應(yīng)用的相同AUI來生成不同的⑶I (過程框605)。在一個實施例中,應(yīng)用的AUI在不知曉特定裝置的情況下被創(chuàng)建。當(dāng)裝置開始執(zhí)行應(yīng)用時,不同的CUI將基于AUI而動態(tài)生成。
[0062]本發(fā)明的實施例可在多種電子裝置和邏輯電路中實現(xiàn)。此外,包括本發(fā)明的實施例的裝置或電路可包括在多種計算機系統(tǒng)內(nèi)。本發(fā)明的實施例還包括在其他計算機系統(tǒng)拓撲和架構(gòu)中。
[0063]圖4例如圖示連同本發(fā)明的一個實施例的計算機系統(tǒng)。處理器705訪問來自I級(LI)高速緩存存儲器706、2級(L2)高速緩存存儲器710和主存儲器715的數(shù)據(jù)。在本發(fā)明的其他實施例中,高速緩存存儲器706可以是多級高速緩存存儲器,其包括LI高速緩存連同其他存儲器(例如計算機系統(tǒng)存儲器層級內(nèi)的L2高速緩存)并且高速緩存存儲器710是后續(xù)的較低等級高速緩存存儲器,例如L3高速緩存或更多級高速緩沖。此外,在其他實施例中,計算機系統(tǒng)可具有高速緩存存儲器710作為用于超過一個處理器核的共享高速緩存。
[0064]處理器705可具有任何數(shù)量的處理核。然而,本發(fā)明的其他實施例可以可在系統(tǒng)內(nèi)的其他裝置內(nèi)實現(xiàn)或在整個系統(tǒng)中分布在硬件、軟件或其的一定組合中。
[0065]在一個實施例中,圖形控制器708與處理器70 5集成在芯片中。在其他實施例中,圖形控制器708和處理器705是分立裝置。在一個實施例中,圖形控制器708還是能操作成支持來自處理器705的一定處理工作負荷的處理裝置。在一個實施例中,圖形控制器708包括處理裝置(例如,處理器、圖形處理器、數(shù)字信號處理單元,和微控制器)。
[0066]主存儲器715可在例如動態(tài)隨機存取存儲器(DRAM)、硬盤驅(qū)動器(HDD) 720、基于NVRAM技術(shù)的固態(tài)盤725或遠離計算機系統(tǒng)而定位(經(jīng)由網(wǎng)絡(luò)接口 730或經(jīng)由無線接口 740(其包含各種存儲裝置和技術(shù)))的存儲器源等各種存儲器源中實現(xiàn)。高速緩存存儲器可定位在處理器內(nèi)或緊密地靠近處理器(例如在處理器的本地總線707上)而定位。此外,高速緩存存儲器可包含相對快的存儲器單元,例如六晶體管(6T)單元,或具有適當(dāng)相等或更快存取速度的其他存儲器單元。
[0067]然而,本發(fā)明的其他實施例可在圖4的系統(tǒng)內(nèi)的其他電路、邏輯單元或裝置中存在。此外,本發(fā)明的其他實施例可遍布圖4中圖示的若干電路、邏輯單元或裝置而分布。
[0068]相似地,至少一個實施例可在點到點計算機系統(tǒng)內(nèi)實現(xiàn)。圖5例如圖示采用點到點(PtP)配置而設(shè)置的計算機系統(tǒng)。特別地,圖5示出其中處理器、存儲器和輸入/輸出裝置通過若干點到點接口而互連的系統(tǒng)。
[0069]圖5的系統(tǒng)還可包括若干處理器,為了清楚起見僅示出其中的兩個,處理器870、880。處理器870、880可每個包括本地存儲器控制器中樞(MCH) 811,821來與存儲器850、851連接。處理器870、880可經(jīng)由點到點(PtP)接口 853使用PtP接口電路812、822來交換數(shù)據(jù)。處理器870、880可每個使用點到點接口電路813、823、860、861經(jīng)由個體PtP接口830、831來與芯片組890交換數(shù)據(jù)。芯片組890還可經(jīng)由高性能圖形接口 862而與高性能圖形電路852交換數(shù)據(jù)。本發(fā)明的實施例可耦合于計算機總線(834或835),或在芯片組890內(nèi),或在數(shù)據(jù)存儲裝置875內(nèi),或在圖5的存儲器850內(nèi)耦合。
[0070]然而,本發(fā)明的其他實施例可在圖5的系統(tǒng)內(nèi)的其他電路、邏輯單元或裝置中存在。此外,本發(fā)明的其他實施例可遍布在圖5中圖示的若干電路、邏輯單元或裝置而分布。
[0071]本發(fā)明不限于描述的實施例,但可以在附上的權(quán)利要求的精神和范圍內(nèi)通過修改和改動而實踐。例如,應(yīng)該意識到本發(fā)明能適用于與所有類型的半導(dǎo)體集成電路(“1C”)芯片一起使用。這些IC芯片的示例包括但不限于處理器、控制器、芯片組部件、可編程邏輯陣列(PLA)、存儲器芯片、網(wǎng)絡(luò)芯片或類似物。此外,應(yīng)該意識到可已經(jīng)給出示范性大小/模型/值/范圍,但本發(fā)明的實施例不限于此。因為制造技術(shù)(例如,光亥Ij)隨時間的推移而變成熟,預(yù)期可以制造具有更小尺寸的裝置。
[0072]然而本發(fā)明的實施例的許多改動和修改無疑地將在本領(lǐng)域內(nèi)技術(shù)人員閱讀前面的描述后對他們變得明顯,要理解通過說明示出和描述的任何特定實施例絕不視為限制性的。因此,對各種實施例的細節(jié)的引用不意在限制權(quán)利要求的范圍,其本身只記載被視為本發(fā)明所必要的那些特征。
【權(quán)利要求】
1.一種方法,其包括: 響應(yīng)于應(yīng)用的執(zhí)行,確定與第一裝置關(guān)聯(lián)的第一裝置性質(zhì); 至少基于所述第一裝置性質(zhì)和所述應(yīng)用的抽象用戶界面(AUI)生成第一具體圖形用戶界面(⑶I);以及 在所述第一裝置上顯示所述第一⑶I用于所述應(yīng)用的執(zhí)行。
2.如權(quán)利要求1所述的方法,其中所述第一裝置性質(zhì)包括關(guān)于屏幕大小、分辨率和非觸摸屏輸入界面的存在的信息。
3.如權(quán)利要求1所述的方法,其進一步包括: 確定所述第一裝置性質(zhì)中的變化;以及 如果必要的話,至少基于更新的第一裝置性質(zhì)和所述應(yīng)用的相同AUI生成第二具體圖形用戶界面(⑶I)。
4.如權(quán)利要求1所述的方法,其進一步包括: 至少基于在所述AUI中表示的多個基于任務(wù)的元素來確定多個 用戶界面元素;以及 對所述多個用戶界面元素執(zhí)行重新編頁。
5.如權(quán)利要求1所述的方法,其中所述第一CUI的生成包括: 確定是否分割成兩個或以上的屏幕頁面;以及 對所述兩個或以上的屏幕頁面中的每個插入導(dǎo)航控制,其中最后的屏幕頁面沒有到后續(xù)屏幕的導(dǎo)航控制。
6.如權(quán)利要求1所述的方法,其進一步包括: 至少基于所述第一裝置性質(zhì)和所述應(yīng)用的AUI來確定多個用戶界面元素; 至少基于所述第一裝置性質(zhì)確定是否使用一個或多個屏幕頁面用于執(zhí)行所述應(yīng)用;以及 確定在所述一個或多個屏幕頁面上在哪里顯示所述多個用戶界面元素中的每個。
7.如權(quán)利要求1所述的方法,其進一步包括確定將兩個或以上的屏幕頁面組合成一個屏幕頁面,并且將用戶界面元素從所述兩個或以上的屏幕頁面移動到所述一個屏幕頁面。
8.如權(quán)利要求1所述的方法,其進一步包括: 至少基于所述第一裝置性質(zhì)和所述應(yīng)用的AUI確定多個用戶界面元素;以及基于每個用戶界面元素的先后次序信息以及剩余屏幕頁面信息來計算屏幕頁面中用戶界面元素的數(shù)量的估計。
9.如權(quán)利要求1所述的方法,其進一步包括: 至少基于所述AUI中表示的多個基于任務(wù)的元素確定多個用戶界面元素; 創(chuàng)建第一屏幕頁面; 至少基于所述第一屏幕頁面的大小生成哪些用戶界面元素適合所述第一屏幕頁面的估計;以及 如果存在還未渲染的任何用戶界面元素則確定分割成第二屏幕頁面。
10.如權(quán)利要求1所述的方法,其進一步包括: 至少基于所述AUI中表示的多個基于任務(wù)的元素確定多個用戶界面元素;以及 根據(jù)每個用戶界面元素的最小大小、每個用戶界面元素的先后次序信息、每個用戶界面元素的群組性質(zhì)信息、每個用戶界面元素的強制大小或其任意組合來執(zhí)行所述用戶界面元素的重新編頁。
11.如權(quán)利要求1所述的方法,其中所述AUI在不知曉第二裝置的情況下被創(chuàng)建,其中不同的CUI將基于所述AUI而動態(tài)生成以用于所述第二裝置。
12.如權(quán)利要求1所述的方法,其中所述第一裝置性質(zhì)包括關(guān)于一個或多個硬件按鈕的信息,所述方法進一步包括生成能夠從所述一個或多個硬件按鈕和在所述第一裝置的顯示器上顯示的一個或多個軟按鈕來接收用戶輸入的所述第一⑶I。
13.如權(quán)利要求1所述的方法,其進一步包括從GUI設(shè)計生成所述抽象用戶界面,其中生成所述AUI包括: 對所述應(yīng)用分析所述GUI設(shè)計; 確定多個基于任務(wù)的元素; 生成所述多個基于任務(wù)的元素的表示;以及 將所述表示嵌 入所述應(yīng)用的可執(zhí)行二進制碼,其中所述抽象GUI采用變換性語言表/Jn ο
14.如權(quán)利要求1所述的方法,其進一步包括至少基于所述AUI確定一個或多個用戶界面元素,其中所述多個用戶界面元素與第一群組標(biāo)識符關(guān)聯(lián),其中相同的群組標(biāo)識符的所述用戶界面元素被渲染為具體群組小部件。
15.一種包括計算機可讀存儲介質(zhì)的制品,該介質(zhì)包括數(shù)據(jù)而在其上存儲指令,其當(dāng)由機器訪問時促使所述機器執(zhí)行方法,其包括: 響應(yīng)于應(yīng)用的執(zhí)行,確定與第一裝置關(guān)聯(lián)的第一裝置性質(zhì); 至少基于所述第一裝置性質(zhì)和所述應(yīng)用的抽象用戶界面(AUI)生成第一具體圖形用戶界面(⑶I);以及 在所述第一裝置上顯示所述第一⑶I用于所述應(yīng)用的執(zhí)行。
16.如權(quán)利要求15所述的物品,其中所述方法進一步包括: 至少基于所述AUI中表示的多個基于任務(wù)的元素確定多個用戶界面元素;以及根據(jù)每個用戶界面元素的最小大小、每個用戶界面元素的先后次序信息、每個用戶界面元素的群組性質(zhì)信息、每個用戶界面元素的強制大小或其任意組合來執(zhí)行所述用戶界面元素的重新編頁。
17.如權(quán)利要求15所述的物品,其中所述方法進一步包括: 確定所述第一裝置性質(zhì)中的變化;以及 如果必要的話,至少基于更新的第一裝置性質(zhì)和所述應(yīng)用的相同AUI生成第二具體圖形用戶界面(⑶I)。
18.一種執(zhí)行程序的系統(tǒng),其包括: 第一裝置; 第一裝置顯示器;以及 存儲要在所述第一裝置上執(zhí)行的應(yīng)用的存儲器,其中所述第一裝置能操作成 響應(yīng)于所述應(yīng)用的執(zhí)行,確定與所述第一裝置關(guān)聯(lián)的第一裝置性質(zhì); 至少基于所述第一裝置性質(zhì)和所述應(yīng)用的抽象用戶界面(AUI)生成第一具體圖形用戶界面(⑶I);以及在所述第一裝置顯示器上顯示所述第一⑶I用于所述應(yīng)用的執(zhí)行。
19.如權(quán)利要求18所述的系統(tǒng),其中所述第一裝置能操作成 至少基于所述AUI中表示的多個基于任務(wù)的元素確定多個用戶界面元素;以及根據(jù)每個用戶界面元素的最小大小、每個用戶界面元素的先后次序信息、每個用戶界面元素的群組性質(zhì)信息、每個用戶界面元素的強制大小或其任意組合來執(zhí)行所述用戶界面元素的重新編頁。
20.如權(quán)利要求18所述的系統(tǒng),其中所述AUI在不知曉第二裝置的情況下被創(chuàng)建,其中不同的CUI基于所述AUI而動態(tài)生成以用于所述第二裝置。
【文檔編號】G06F3/048GK103635871SQ201180072054
【公開日】2014年3月12日 申請日期:2011年12月6日 優(yōu)先權(quán)日:2011年5月2日
【發(fā)明者】G.蘭焦尼, M.L.貝爾托納, P.R.佩斯拉 申請人:英特爾公司