生成界面的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種生成界面的方法,所述方法包括:腳本引擎讀取界面描述文件,解析所述界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序;所述主程序根據(jù)所述界面數(shù)據(jù),從所述腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面。上述生成界面的方法,主程序減少了讀取和解析界面描述文件的步驟,使得主程序能夠快速生成界面。此外,還提供了一種生成界面的系統(tǒng)。
【專利說明】生成界面的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,特別是涉及一種生成界面的方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,程序可以實現(xiàn)越來越多的功能,極大地改善了我們的生活,而界面是程序與用戶之間溝通的橋梁,是人機交互過程中不可缺少的元素,界面美觀、交互方便、用戶體驗好,程序也會被更多的人認可。
[0003]發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:
[0004]傳統(tǒng)的界面生成方法,通過讀取、解析界面描述文件(比如XML (可擴展標記語言)文件),從而生成界面。當(dāng)界面元素較多時,界面描述文件變得龐大,解析界面描述文件所用的時間也更多,進而導(dǎo)致生成界面時消耗的時間更多。
【發(fā)明內(nèi)容】
[0005]基于此,有必要針對上述程序通過讀取界面描述文件生成界面,導(dǎo)致生成界面耗時多的問題,提供一種生成界面的方法和系統(tǒng)。
[0006]一種生成界面的方法,所述方法包括:
[0007]腳本引擎讀取界面描述文件,解析所述界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序;
[0008]主程序根據(jù)所述界面數(shù)據(jù),從腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面。
[0009]一種生成界面的系統(tǒng),所述系統(tǒng)包括:
[0010]腳本引擎,用于讀取界面描述文件,解析所述界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序;
[0011]主程序,用于根據(jù)所述界面數(shù)據(jù),從所述腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面。
[0012]一種生成界面的方法,所述方法包括:
[0013]從腳本引擎接收界面數(shù)據(jù);
[0014]根據(jù)所述界面數(shù)據(jù),從腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素;
[0015]根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面。
[0016]—種生成界面的系統(tǒng),所述系統(tǒng)包括:
[0017]界面數(shù)據(jù)獲取模塊,用于從腳本引擎接收界面數(shù)據(jù);
[0018]界面元素獲取模塊,用于從腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素;
[0019]繪制模塊,用于根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面。
[0020]上述生成界面的方法和系統(tǒng),通過直接從腳本引擎獲取布局數(shù)據(jù),生成界面,相比現(xiàn)有技術(shù),減少了讀取和解析界面描述文件的步驟,使得程序能夠快速生成界面。
【專利附圖】
【附圖說明】
[0021]圖1為一個實施例中生成界面的方法的流程示意圖;
[0022]圖2為另一個實施例中生成界面的方法的流程示意圖;
[0023]圖3為一個實施例中層級結(jié)構(gòu)的結(jié)構(gòu)框圖;
[0024]圖4為一個實施例中界面元素的位置信息的示意圖;
[0025]圖5為一個實施例中生成界面的方法的流程示意圖;
[0026]圖6為一個實施例中調(diào)整界面的示意圖;
[0027]圖7為一個實施例中生成界面的方法的流程示意圖;
[0028]圖8為一個實施例中生成界面的系統(tǒng)的結(jié)構(gòu)框圖;
[0029]圖9為圖8中腳本引擎的結(jié)構(gòu)框圖;
[0030]圖10為圖9中布局數(shù)據(jù)生成模塊的結(jié)構(gòu)框圖;
[0031]圖11為另一個實施例中生成界面的系統(tǒng)的結(jié)構(gòu)框圖;
[0032]圖12為再一個實施例中主程序的結(jié)構(gòu)框圖;
[0033]圖13為一個實施例中生成界面的方法的流程示意圖;
[0034]圖14為一個實施例中生成界面的系統(tǒng)的結(jié)構(gòu)框圖;
[0035]圖15為圖14中界面數(shù)據(jù)獲取模塊的結(jié)構(gòu)框圖;
[0036]圖16為另一個實施例中生成界面的系統(tǒng)的結(jié)構(gòu)框圖;
[0037]圖17為一個實施例中生成界面的終端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0038]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0039]如圖1所示,在一個實施例中,提供了一種生成界面的方法。本實施例主要以該生成界面的方法應(yīng)用于包含有主程序和腳本引擎的終端中來舉例說明,該終端可以包括智能手機、平板電腦、膝上型便攜計算機和臺式計算機等等。該生成界面的方法,包括:
[0040]步驟110,腳本引擎讀取界面描述文件,解析界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序。
[0041]腳本(Script)是使用一種特定的描述性語言,依據(jù)一定的格式編寫的可執(zhí)行文件,又稱為宏或批處理文件。腳本引擎是指為了實現(xiàn)預(yù)定的功能,而經(jīng)過包裝的函數(shù)庫,可以讀取并解析腳本。界面描述文件是腳本的一種,可以是XML (extensible markuplanguage,可擴展標記語言)文件。界面描述文件使用描述性語言,記載了生成界面所需的信息。腳本引擎可以是一個可執(zhí)行程序,也可以是一個動態(tài)鏈接庫(DLL,Dynamic LinkLibrary)。腳本引擎根據(jù)預(yù)設(shè)的界面描述定義解析界面描述文件,比如當(dāng)界面描述文件是XML文件時,腳本引擎使用預(yù)設(shè)的XML文件的描述定義,解析XML文件,獲取其中的信息。
[0042]腳本引擎可以對解析獲得的界面描述文件中的信息進行處理,生成預(yù)定格式的界面數(shù)據(jù),發(fā)送給主程序。如果界面描述文件中的信息已經(jīng)是預(yù)定格式的界面數(shù)據(jù),腳本引擎也可以不做進一步處理,直接將該界面數(shù)據(jù)發(fā)送給主程序。腳本引擎可以獨立輸出布局數(shù)據(jù),方便設(shè)計人員查看界面效果。
[0043]在一個實施例中,主程序與腳本引擎通信可以通過預(yù)設(shè)接口進行,比如在windows平臺采用ATL (Active Template Library,活動模板庫,是一種微軟程序庫)可以很容易就實現(xiàn)JavaScript (—種基于對象和事件驅(qū)動并具有相對安全性的客戶端腳本語言)腳本的支持。
[0044]步驟120,主程序根據(jù)界面數(shù)據(jù),從腳本引擎獲取與界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的界面元素和界面數(shù)據(jù)繪制界面。
[0045]主程序是需要生成界面的應(yīng)用程序,主程序直接從腳本引擎接收界面數(shù)據(jù),從而根據(jù)界面數(shù)據(jù),從腳本引擎獲取與界面數(shù)據(jù)對應(yīng)的界面元素。腳本引擎中存在一個界面元素庫,包含生成界面所需的界面元素。界面數(shù)據(jù)記載著生成界面所需的界面元素,主程序根據(jù)界面數(shù)據(jù)從該界面元素庫中獲取生成界面所需的界面元素,然后根據(jù)界面數(shù)據(jù)繪制界面。界面元素是生成界面所需的基本視覺元素,比如控件的圖標,界面元素可以是圖片。
[0046]腳本引擎可以獨立于主程序運行,可以在主程序運行前運行,比如,在終端開機的時候就啟動腳本引擎,主程序啟動時直接從腳本引擎獲取界面數(shù)據(jù),從而進一步根據(jù)界面數(shù)據(jù)從腳本引擎獲取界面元素,繪制界面。
[0047]在一個實施例中,主程序檢測針對界面元素的功能觸發(fā)事件;當(dāng)主程序檢測到功能觸發(fā)事件時,根據(jù)功能觸發(fā)事件完成與功能觸發(fā)事件對應(yīng)的界面元素的功能。本實施例中界面描述文件只記載著生成界面所需的信息,不對界面元素的功能進行定義,界面元素的功能由主程序?qū)崿F(xiàn)。主程序可以通過檢測針對界面元素的功能觸發(fā)事件,比如鼠標的點擊、快捷鍵等,根據(jù)預(yù)先定義,對功能觸發(fā)事件作出反饋,完成與功能觸發(fā)事件對應(yīng)的界面元素的功能。本實施例中,界面數(shù)據(jù)直接由腳本引擎提供,主程序完成界面元素的功能的實現(xiàn),減少了主程序啟動時為生成界面而增加的耗時。
[0048]本實施例中,由腳本引擎讀取并解析界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序。主程序直接從腳本引擎接收界面數(shù)據(jù),根據(jù)界面數(shù)據(jù)從腳本引擎獲取生成界面所需的界面元素,從而根據(jù)獲取的界面元素和界面數(shù)據(jù)繪制界面,相比現(xiàn)有技術(shù),主程序減少了讀取和解析界面描述文件的步驟,使得主程序能夠快速生成界面。
[0049]如圖2所示,其為另一個實施例中生成界面的方法的流程示意圖。本實施例中,步驟110,腳本引擎讀取界面描述文件,解析界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序的步驟包括:
[0050]步驟112,腳本引擎讀取并解析界面描述文件,從而獲取界面元素標識、界面元素的組合關(guān)系信息和樣式數(shù)據(jù),界面元素的組合關(guān)系信息包括界面元素的排列順序以及界面元素在層級結(jié)構(gòu)中的位置標識。
[0051]界面元素標識可以唯一標識出界面元素,主程序可以根據(jù)界面元素標識從腳本引擎的界面元素庫中調(diào)取生成界面所需的界面元素。樣式數(shù)據(jù)可以在主程序生成界面時,對界面元素作出進一步地調(diào)整,在一個實施例中,樣式數(shù)據(jù)可以包括顏色、字體、字號和界面元素是否顯示中的至少一項。
[0052]界面元素的組合關(guān)系信息包括界面元素的排列順序以及界面元素在層級結(jié)構(gòu)中的位置標識。界面元素的排列順序可以表示界面元素相對于其它界面元素的排列位置。層級結(jié)構(gòu)通過分層,使得界面元素層次分明,相互關(guān)系明確,便于對界面元素進行調(diào)整。界面元素在層級結(jié)構(gòu)中的位置標識可以標識界面元素在層級結(jié)構(gòu)中的相對位置,也可以表示界面元素是否疊加于其它界面元素之上或之下,還可以表示該界面元素是否包含或包含于其它界面元素。
[0053]如圖3所示,其為一個實施例中層級結(jié)構(gòu)的結(jié)構(gòu)框圖,該層級結(jié)構(gòu)包括:至少一框架(比如圖3中的FrameLayout)、至少一行(比如圖3中的LinelLayout、Line2Layout和Line3Layout)、至少一界面兀素(比如Buttonl、Button2和Button3)和至少一組(比如UIGroupU UI Group2和UI Group3);其中框架包含行、行包含組或者界面元素,組包含界面元素。比如行Line2Layout包含三個組,分別是UI GroupUUI Group2和UI Group3,組UIGroup2包含三個界面元素,分別是Buttonl、Button2和Button3。需要說明的是,行可以直接包含界面元素,層級結(jié)構(gòu)中可以沒有組。框架用以表示整個界面顯示的區(qū)域,框架可以包含多行;組是多個界面元素的組合,一組可以包含多個界面元素。界面元素在該層級結(jié)構(gòu)中的位置標識可以包括行標識,當(dāng)還存在組時,位置標識還可以包括組標識,行標識可以表示界面元素屬于哪一行,組標識可以表示界面元素屬于哪一組。
[0054]步驟114,腳本引擎根據(jù)界面元素標識和界面元素的組合關(guān)系信息計算界面元素的位置信息,從而生成布局數(shù)據(jù),布局數(shù)據(jù)包括界面元素標識、界面元素的位置信息和界面元素的組合關(guān)系信息。
[0055]腳本引擎根據(jù)界面元素標識和界面元素的組合關(guān)系信息,可以計算出界面元素的位置信息。界面元素的組合關(guān)系信息,表示了界面元素的相對位置,腳本引擎可以通過計算,得到界面元素的具體位置。比如,界面元素的組合關(guān)系信息中,說明界面元素位于“中間”,通過計算可以獲得該界面元素在繪制時的具體坐標。
[0056]在一個實施例中,腳本引擎根據(jù)界面元素標識獲取界面元素的尺寸信息;腳本引擎根據(jù)尺寸信息和界面元素的組合關(guān)系信息,從層級結(jié)構(gòu)中的第一行開始,逐行計算界面元素的位置信息。本實施例中,界面元素的尺寸信息可以是控件圖標的寬度和高度。如圖4所示,其為一個實施例中界面元素的位置信息的示意圖,腳本引擎通過計算,可以獲得界面元素的位置信息,其中位置信息包括界面元素在繪制區(qū)域中的起始坐標、高和寬。起始坐標、高和寬可以確定界面元素在繪制區(qū)域中的位置和大小。本實施例中,在繪制區(qū)域(繪制界面的區(qū)域)中,左上角坐標從(0,0)開始,向右是X坐標軸,向下是Y坐標軸。腳本引擎讀取并解析XML文件(界面描述文件),獲取到5個控件圖標的標識(界面元素標識)、界面元素的組合關(guān)系信息和控件上顯示的文字的字體、大小和顏色(樣式數(shù)據(jù)),界面元素的組合關(guān)系信息包括控件圖標在繪制時的先后順序(界面元素的排列順序)以及控件圖標在層級結(jié)構(gòu)中的行數(shù)和組數(shù)(界面元素在層級結(jié)構(gòu)中的位置標識)。其中3個控件圖標在第一行,屬于第一組,并按照界面元素的排列順序排列;1個控件圖標在第二行;1個控件圖標和一個空組在第三行。計算位置信息時,腳本引擎根據(jù)各個控件圖標的標識,獲取各個控件圖標的尺寸信息,尺寸信息可以是控件圖標的高度和寬度,然后從第一行開始逐行計算。先計算第一行中3個控件圖標各自在繪制區(qū)域中的起始坐標、高和寬,比如如圖示所示,第一行中排列在第一的控件圖標,在繪制區(qū)域中對應(yīng)的起始坐標就是(0,0)(本實施例中起始坐標是指控件圖標左上角在繪制區(qū)域中對應(yīng)的坐標);第一行中排在第二的控件圖標,對應(yīng)的起始坐標就是(1,0),其X坐標值由在第一行中排第一的控件圖標的寬確定;第一行中的組的寬度是三個圖標的寬度的和。然后依次計算第二行和第三行。其中第三行中排在第一的是一個空組,可以不繪制;第三行中排在第二的控件圖標的起始坐標是(1,2),其X坐標值由空組的寬確定,其Y坐標值由行數(shù)確定,其在繪制區(qū)域中的高和寬由該控件圖標的尺寸信息確定。如圖4所示,通過計算,左上角的界面元素起始坐標為(0,0),高是I (Y坐標),寬是I (X坐標);第二行中的界面元素,(0,1) spans3c0lumns,表示起始坐標為(0,1),高是I (Y坐標),寬是3 (X坐標)。
[0057]步驟116,腳本引擎將包括布局數(shù)據(jù)和樣式數(shù)據(jù)的界面數(shù)據(jù)發(fā)送給主程序。
[0058]腳本引擎將計算后得到的布局數(shù)據(jù),連同與布局數(shù)據(jù)對應(yīng)的樣式數(shù)據(jù)作為界面數(shù)據(jù),發(fā)送給主程序,從而由主程序去繪制界面。
[0059]本實施例中,腳本引擎通過從界面描述文件中獲取的界面元素標識和界面元素的組合關(guān)系,計算出界面元素的位置信息,將包括界面元素標識、界面元素的位置信息和界面元素的組合關(guān)系信息的布局數(shù)據(jù),連同樣式數(shù)據(jù),作為界面數(shù)據(jù)輸出給主程序,大大減少了主程序讀取界面描述文件帶來的耗時,主程序在需要生成界面時,直接從腳本引擎獲取界面數(shù)據(jù),從而生成界面,減少了生成界面的耗時。
[0060]如圖5所示,其示出了一個實施例中生成界面的方法的流程示意圖。本實施例中,主程序根據(jù)界面數(shù)據(jù),從腳本引擎獲取與界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的界面元素和界面數(shù)據(jù)繪制界面的步驟包括:
[0061]步驟122,主程序檢測界面調(diào)整事件。
[0062]主程序通過檢測界面調(diào)整事件,從而判斷是否需要對界面進行調(diào)整。在一個實施例中,界面調(diào)整事件包括:界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。界面調(diào)整事件還可以是鼠標對預(yù)設(shè)區(qū)域的點擊。
[0063]步驟124,當(dāng)主程序檢測到界面調(diào)整事件時,向腳本引擎發(fā)送調(diào)整界面的控制信號。
[0064]當(dāng)主程序檢測到界面調(diào)整事件的時候,可以向腳本引擎發(fā)送調(diào)整界面的控制信號。主程序也可以直接對界面進行調(diào)整,比如界面元素的縮放、顏色、字體的調(diào)整。
[0065]步驟126,腳本引擎根據(jù)控制信號,對界面數(shù)據(jù)進行調(diào)整,并將調(diào)整后的界面數(shù)據(jù)發(fā)送給主程序。
[0066]主程序發(fā)來的控制信號,可以包含具體對哪些界面元素做了調(diào)整,腳本引擎根據(jù)控制信號,對界面數(shù)據(jù)做出調(diào)整。如果一個或多個界面元素的位置發(fā)生了變化,可以重新計算該界面元素或多個界面元素的位置信息。在一個實施例中,也可以通過改變界面元素在層級結(jié)構(gòu)中的位置標識,來調(diào)整界面數(shù)據(jù)。
[0067]步驟128,主程序根據(jù)調(diào)整后的界面數(shù)據(jù),從腳本引擎獲取與調(diào)整后的界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的界面元素和調(diào)整后的界面數(shù)據(jù)繪制界面。
[0068]主程序從腳本引擎接收調(diào)整后的界面數(shù)據(jù),按照調(diào)整后的界面數(shù)據(jù),從腳本引擎獲取界面元素,從而繪制界面。
[0069]如圖6所示,其為一個實施例中調(diào)整界面的示意圖。本實施例中,可以通檢測鼠標對預(yù)設(shè)的調(diào)整界面的功能鍵的點擊,來調(diào)整界面。圖6中示出了兩種不同的界面,可以在界面描述文件中預(yù)設(shè)多種界面生成方案,對應(yīng)不同的方案,腳本引擎可以分別生成不同的界面數(shù)據(jù)。主程序先接收其中一個方案的界面數(shù)據(jù),當(dāng)主程序檢測到預(yù)設(shè)的調(diào)整界面的事件時,直接由腳本引擎將另一個方案的界面數(shù)據(jù)發(fā)送給主程序,極大地提高了界面生成的效率。
[0070]本實施例中,可以通過檢測界面調(diào)整事件,判斷主程序是否需要調(diào)整界面,當(dāng)檢測到界面調(diào)整事件時,向腳本引擎發(fā)送調(diào)整界面的控制信號,由腳本引擎完成對界面數(shù)據(jù)的調(diào)整,主程序接收調(diào)整后的界面數(shù)據(jù),并根據(jù)調(diào)整后的界面數(shù)據(jù)繪制界面,從而可以靈活地對界面作出調(diào)整,提高了生成界面的效率。
[0071]如圖7所示,在一個實施例中,主程序為瀏覽器,該生成界面的方法包括:步驟602,腳本引擎讀取界面描述文件,解析界面描述文件生成界面數(shù)據(jù),并發(fā)送給瀏覽器。
[0072]在一個實施例中,腳本引擎讀取并解析界面描述文件,從而獲取界面元素標識、界面元素的組合關(guān)系信息和樣式數(shù)據(jù),界面元素的組合關(guān)系信息包括界面元素的排列順序以及界面元素在層級結(jié)構(gòu)中的位置標識;腳本引擎根據(jù)界面元素標識和界面元素的組合關(guān)系信息計算界面元素的位置信息,從而生成布局數(shù)據(jù),布局數(shù)據(jù)包括界面元素標識、界面元素的位置信息和界面元素的組合關(guān)系信息;腳本引擎將包括布局數(shù)據(jù)和樣式數(shù)據(jù)的界面數(shù)據(jù)發(fā)送給瀏覽器。
[0073]在一個實施例中,樣式數(shù)據(jù)包括顏色、字體、字號和界面元素是否顯示中的至少一項。
[0074]在一個實施例中,層級結(jié)構(gòu)包括:至少一框架、至少一行和至少一界面元素;其中框架包含行、行包含界面元素。
[0075]在一個實施例中,層級結(jié)構(gòu)還包括:至少一組,組包含界面元素。
[0076]在一個實施例中,腳本引擎根據(jù)界面元素標識獲取界面元素的尺寸信息;腳本引擎根據(jù)尺寸信息和界面元素的組合關(guān)系信息,從層級結(jié)構(gòu)中的第一行開始,逐行計算界面元素的位置信息。
[0077]在一個實施例中,位置信息包括:界面元素在繪制區(qū)域中的起始坐標、高和寬。
[0078]步驟604,瀏覽器根據(jù)界面數(shù)據(jù),從腳本引擎獲取與界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的界面元素和界面數(shù)據(jù)繪制界面。
[0079]在一個實施例中,瀏覽器檢測界面調(diào)整事件;當(dāng)瀏覽器檢測到界面調(diào)整事件時,向腳本引擎發(fā)送調(diào)整界面的控制信號;腳本引擎根據(jù)控制信號,對界面數(shù)據(jù)進行調(diào)整,并將調(diào)整后的界面數(shù)據(jù)發(fā)送給瀏覽器;瀏覽器根據(jù)調(diào)整后的界面數(shù)據(jù),從腳本引擎獲取與調(diào)整后的界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的界面元素和調(diào)整后的界面數(shù)據(jù)繪制界面。
[0080]在一個實施例中,界面調(diào)整事件包括:界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。
[0081]在一個實施例中,瀏覽器檢測針對界面元素的功能觸發(fā)事件;當(dāng)瀏覽器檢測到功能觸發(fā)事件時,根據(jù)該功能觸發(fā)事件完成與該功能觸發(fā)事件對應(yīng)的界面元素的功能。
[0082]本實施例中,瀏覽器直接從腳本引擎獲取界面數(shù)據(jù),并根據(jù)界面數(shù)據(jù)繪制界面,減少了讀取解析界面描述文件、并對解析的信息進行處理的步驟,使得瀏覽器能夠快速生成界面。
[0083]如圖8所示,在一個實施例中,還提供了一種生成界面的系統(tǒng),該系統(tǒng)包括:
[0084]腳本引擎710,用于讀取界面描述文件,解析界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序720。
[0085]腳本引擎710可以是一個可執(zhí)行程序,也可以是一個動態(tài)鏈接庫。腳本引擎710可以對解析獲得的界面描述文件中的信息進行處理,生成預(yù)定格式的界面數(shù)據(jù),傳輸給主程序720。如果界面描述文件中的信息已經(jīng)是預(yù)定格式的界面數(shù)據(jù),腳本引擎710也可以不做進一步處理,直接將該界面數(shù)據(jù)發(fā)送給主程序720。腳本引擎710可以獨立輸出布局數(shù)據(jù),方便設(shè)計人員查看界面效果。
[0086]主程序720,用于從腳本引擎710接收界面數(shù)據(jù),根據(jù)界面數(shù)據(jù),從腳本引擎710獲取與界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的界面元素和界面數(shù)據(jù)繪制界面。
[0087]主程序720直接從腳本引擎710接收界面數(shù)據(jù),從而根據(jù)界面數(shù)據(jù),從腳本引擎710獲取與界面數(shù)據(jù)對應(yīng)的界面元素。腳本引擎710中存在一個界面元素庫,包含生成界面所需的界面元素。界面數(shù)據(jù)記載著生成界面所需的界面元素,主程序720根據(jù)界面數(shù)據(jù)從該界面元素庫中獲取生成界面所需的界面元素,然后根據(jù)界面數(shù)據(jù)繪制界面。
[0088]腳本引擎710可以獨立于主程序720運行,可以在主程序720運行前運行,比如,在終端開機的時候就啟動腳本引擎710,主程序720啟動時直接從腳本引擎710獲取界面數(shù)據(jù),從而進一步根據(jù)界面數(shù)據(jù)從腳本引擎710獲取界面元素,繪制界面。
[0089]本實施例中,由腳本引擎710讀取并解析界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序720。主程序720直接從腳本引擎710接收界面數(shù)據(jù),根據(jù)界面數(shù)據(jù)從腳本引擎710獲取生成界面所需的界面元素,從而根據(jù)獲取的界面元素和界面數(shù)據(jù)繪制界面,相比現(xiàn)有技術(shù),主程序720減少了讀取和解析界面描述文件的步驟,使得程序能夠快速生成界面。
[0090]如圖9所示,在一個實施例中,腳本引擎710包括:
[0091]界面描述文件解析模塊712,用于讀取并解析界面描述文件,從而獲取界面元素標識、界面元素的組合關(guān)系信息和樣式數(shù)據(jù),界面元素的組合關(guān)系信息包括界面元素的排列順序以及界面元素在層級結(jié)構(gòu)中的位置標識。
[0092]界面元素標識可以唯一標識出界面元素,界面描述文件解析模塊712可以根據(jù)界面元素標識從腳本引擎710的界面元素庫中調(diào)取生成界面所需的界面元素。樣式數(shù)據(jù)可以在主程序720生成界面時,對界面元素作出進一步地調(diào)整,在一個實施例中,樣式數(shù)據(jù)可以包括顏色、字體、字號和界面元素是否顯示中的至少一項。
[0093]界面元素的組合關(guān)系信息包括界面元素的排列順序以及界面元素在層級結(jié)構(gòu)中的位置標識。界面元素的排列順序可以表示界面元素相對于其它界面元素的排列位置。層級結(jié)構(gòu)通過分層,使得界面元素層次分明,相互關(guān)系明確,便于對界面元素進行調(diào)整。界面元素在層級結(jié)構(gòu)中的位置標識可以標識界面元素在層級結(jié)構(gòu)中的相對位置,也可以表示界面元素是否疊加于其它界面元素之上或之下,也可以表示該界面元素是否包含或包含于其它界面元素。
[0094]在一個實施例中,層級結(jié)構(gòu)包括:至少一框架、至少一行和至少一界面元素;其中框架包含行、行包含界面元素。層級結(jié)構(gòu)還可以包括組,組包含界面元素。界面元素在該層級結(jié)構(gòu)中的位置標識可以包括行標識,還可以包括組標識。
[0095]布局數(shù)據(jù)生成模塊714,用于根據(jù)界面元素標識和界面元素的組合關(guān)系信息計算界面元素的位置信息,從而生成布局數(shù)據(jù),布局數(shù)據(jù)包括界面元素標識、界面元素的位置信息和界面元素的組合關(guān)系信息。
[0096]布局數(shù)據(jù)生成模塊714根據(jù)界面元素標識和界面元素的組合關(guān)系信息,可以計算出界面元素的位置信息。界面元素的組合關(guān)系信息,表示了界面元素的相對位置,腳本引擎710可以通過計算,得到界面元素的具體位置。
[0097]如圖10所示,在一個實施例中,布局數(shù)據(jù)生成模塊714還包括:
[0098]尺寸信息獲取模塊714a,用于根據(jù)界面元素標識獲取界面元素的尺寸信息。
[0099]位置信息計算模塊714b,用于根據(jù)尺寸信息和界面元素的組合關(guān)系信息,從層級結(jié)構(gòu)中的第一行開始,逐行計算界面元素的位置信息。
[0100]界面數(shù)據(jù)發(fā)送模塊716,用于將包括布局數(shù)據(jù)和樣式數(shù)據(jù)的界面數(shù)據(jù)發(fā)送給主程序 720。
[0101]界面數(shù)據(jù)發(fā)送模塊716將計算后得到的布局數(shù)據(jù),連同與布局數(shù)據(jù)對應(yīng)的樣式數(shù)據(jù)作為界面數(shù)據(jù),發(fā)送給主程序720,從而由主程序720去繪制界面。
[0102]在一個實施例中,位置信息包括:界面元素在繪制區(qū)域中的起始坐標、高和寬。
[0103]本實施例中,腳本引擎710通過從界面描述文件中獲取的界面元素標識和界面元素的組合關(guān)系,計算出界面元素的位置信息,將包括界面元素標識、界面元素的位置信息和界面元素的組合關(guān)系信息的布局數(shù)據(jù),連同樣式數(shù)據(jù),作為界面數(shù)據(jù)輸出給主程序720,大大減少了主程序720讀取界面描述文件帶來的耗時,主程序720在需要生成界面時,直接從腳本引擎710獲取界面數(shù)據(jù),從而生成界面,減少了生成界面的耗時。
[0104]如圖11所示,在一個實施例中,主程序720包括:
[0105]界面調(diào)整事件檢測模塊722,用于檢測界面調(diào)整事件。
[0106]界面調(diào)整事件檢測模塊722通過檢測界面調(diào)整事件,從而判斷是否需要對界面進行調(diào)整。在一個實施例中,界面調(diào)整事件包括:界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。界面調(diào)整事件還可以是鼠標對預(yù)設(shè)區(qū)域的點擊。
[0107]控制信號發(fā)送模塊724,用于當(dāng)測到界面調(diào)整事件時,向腳本引擎710發(fā)送調(diào)整界面的控制信號。
[0108]當(dāng)控制信號發(fā)送模塊724檢測到界面調(diào)整事件的時候,可以向腳本引擎710發(fā)送調(diào)整界面的控制信號。主程序720也可以直接對界面進行調(diào)整。
[0109]界面繪制模塊726,用于從腳本引擎710接收調(diào)整后的界面數(shù)據(jù),根據(jù)調(diào)整后的界面數(shù)據(jù),從腳本引擎710獲取與調(diào)整后的界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的界面元素和調(diào)整后的界面數(shù)據(jù)繪制界面。
[0110]界面繪制模塊726從腳本引擎710接收調(diào)整后的界面數(shù)據(jù),按照調(diào)整后的界面數(shù)據(jù),從腳本引擎710獲取界面元素,從而繪制界面。
[0111]本實施例中,通過檢測界面調(diào)整事件,判斷主程序720是否需要調(diào)整界面,當(dāng)檢測到界面調(diào)整事件時,向腳本引擎710發(fā)送調(diào)整界面的控制信號,由腳本引擎710完成對界面數(shù)據(jù)的調(diào)整,主程序720接收調(diào)整后的界面數(shù)據(jù),并根據(jù)調(diào)整后的界面數(shù)據(jù)繪制界面,從而可以靈活地對界面作出調(diào)整,提高了生成界面的效率。
[0112]如圖12所示,在一個實施例中,主程序720還包括:
[0113]功能觸發(fā)事件檢測模塊728,用于檢測針對界面元素的功能觸發(fā)事件。
[0114]功能實現(xiàn)模塊729,用于當(dāng)檢測到功能觸發(fā)事件時,根據(jù)功能觸發(fā)事件完成與功能觸發(fā)事件對應(yīng)的界面元素的功能。
[0115]本實施例中,界面數(shù)據(jù)直接由腳本引擎710提供,主程序720完成界面元素的功能的實現(xiàn),減少了主程序720啟動時為生成界面而增加的耗時。
[0116]如圖13所示,在一個實施例中,還提供了另一種生成界面的方法,包括:
[0117]步驟1010,從腳本引擎接收界面數(shù)據(jù)。
[0118]腳本引擎可以是一個可執(zhí)行程序,也可以是一個動態(tài)鏈接庫。界面數(shù)據(jù)可以包括布局數(shù)據(jù)和樣式數(shù)據(jù),布局數(shù)據(jù)包括界面元素標識、界面元素的位置信息和界面元素的組合關(guān)系信息。樣式數(shù)據(jù)可以包括顏色、字體、字號和界面元素是否顯示中的至少一項。位置信息包括界面元素在繪制區(qū)域中的起始坐標、高和寬。界面元素的組合關(guān)系信息可以包括界面元素的排列順序以及界面元素在層級結(jié)構(gòu)中的位置標識。該層級結(jié)構(gòu)可以包括:至少一框架、至少一行和至少一界面元素;其中框架包含行、行包含界面元素。層級結(jié)構(gòu)還可以包括組,組包含界面元素。
[0119]步驟1020,根據(jù)界面數(shù)據(jù),從腳本引擎獲取與界面數(shù)據(jù)對應(yīng)的界面元素。
[0120]腳本引擎中存在一個界面元素庫,包含生成界面所需的界面元素??梢愿鶕?jù)界面數(shù)據(jù)中的界面元素標識,從腳本引擎的界面元素庫中獲取界面元素。
[0121]步驟1030,根據(jù)獲取的界面元素和界面數(shù)據(jù)繪制界面。
[0122]可以根據(jù)界面數(shù)據(jù)中的信息,對獲取的界面元素進行處理,從而繪制界面。
[0123]在一個實施例中,該生成界面的方法還包括:檢測針對界面元素的功能觸發(fā)事件;當(dāng)檢測到功能觸發(fā)事件時,根據(jù)所述功能觸發(fā)事件完成與所述功能觸發(fā)事件對應(yīng)的界面元素的功能。
[0124]本實施例中,直接從腳本引擎獲取界面數(shù)據(jù),并根據(jù)界面數(shù)據(jù)從腳本引擎中獲取界面元素,從而繪制界面,提高了生成界面的效率,可以快速生成界面。
[0125]在另一個實施例中,從腳本引擎接收界面數(shù)據(jù)的步驟包括:
[0126]檢測界面調(diào)整事件。
[0127]界面調(diào)整事件可以包括:界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。界面調(diào)整事件還可以是鼠標對預(yù)設(shè)區(qū)域的點擊。
[0128]當(dāng)檢測到界面調(diào)整事件時,向腳本引擎發(fā)送調(diào)整界面的控制信號。
[0129]當(dāng)檢測到界面調(diào)整事件時,需要對界面數(shù)據(jù)進行處理,因此向腳本引擎發(fā)送調(diào)整界面的控制信號,由腳本引擎根據(jù)控制信號對界面數(shù)據(jù)進行處理。
[0130]接收腳本弓I擎根據(jù)控制信號調(diào)整的界面數(shù)據(jù)。
[0131]腳本引擎根據(jù)控制信號對界面數(shù)據(jù)進行調(diào)整,并將調(diào)整后的界面數(shù)據(jù)反饋回來。接收到調(diào)整后的界面數(shù)據(jù),就可以根據(jù)調(diào)整后的界面數(shù)據(jù)繪制界面。
[0132]本實施例中,當(dāng)檢測到界面調(diào)整事件事,向腳本引擎發(fā)送控制信號,由腳本引擎對界面數(shù)據(jù)進行調(diào)整,從而根據(jù)接收到的調(diào)整后的界面數(shù)據(jù)繪制界面,從而可以靈活地對界面作出調(diào)整,提高了生成界面的效率。
[0133]如圖14所示,在一個實施例中,提供了另一種生成界面的系統(tǒng),包括:
[0134]界面數(shù)據(jù)獲取模塊1210,用于從腳本引擎接收界面數(shù)據(jù)。
[0135]腳本引擎可以是一個可執(zhí)行程序,也可以是一個動態(tài)鏈接庫。界面數(shù)據(jù)可以包括布局數(shù)據(jù)和樣式數(shù)據(jù),布局數(shù)據(jù)包括界面元素標識、界面元素的位置信息和界面元素的組合關(guān)系信息。樣式數(shù)據(jù)可以包括顏色、字體、字號和界面元素是否顯示中的至少一項。位置信息包括界面元素在繪制區(qū)域中的起始坐標、高和寬。界面元素的組合關(guān)系信息可以包括界面元素的排列順序以及界面元素在層級結(jié)構(gòu)中的位置標識。該層級結(jié)構(gòu)可以包括:至少一框架、至少一行和至少一界面元素;其中框架包含行、行包含界面元素。該層級結(jié)構(gòu)還可以包括組,組包含界面元素。
[0136]界面元素獲取模塊1220,用從腳本引擎獲取與界面數(shù)據(jù)對應(yīng)的界面元素。
[0137]腳本引擎中存在一個界面元素庫,包含生成界面所需的界面元素。可以根據(jù)界面數(shù)據(jù)中的界面元素標識,從腳本引擎的界面元素庫中獲取界面元素。
[0138]繪制模塊1230,用于根據(jù)獲取的界面元素和界面數(shù)據(jù)繪制界面。
[0139]可以根據(jù)界面數(shù)據(jù)中的信息,對獲取的界面元素進行處理,從而繪制界面。
[0140]本實施例中,直接從腳本引擎獲取界面數(shù)據(jù),并根據(jù)界面數(shù)據(jù)從腳本引擎中獲取界面元素,從而繪制界面,提高了生成界面的效率,可以快速生成界面。
[0141]如圖15所示,在另一個實施例中,界面數(shù)據(jù)獲取模塊1210包括:
[0142]事件檢測模塊1211,用于檢測界面調(diào)整事件。
[0143]界面調(diào)整事件可以包括:界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。界面調(diào)整事件還可以是鼠標對預(yù)設(shè)區(qū)域的點擊。
[0144]信號發(fā)送模塊1212,用于當(dāng)檢測到界面調(diào)整事件時,向腳本引擎發(fā)送調(diào)整界面的控制信號。
[0145]當(dāng)檢測到界面調(diào)整事件時,需要對界面數(shù)據(jù)進行處理,因此向腳本引擎發(fā)送調(diào)整界面的控制信號,由腳本引擎根據(jù)控制信號對界面數(shù)據(jù)進行處理。
[0146]數(shù)據(jù)接收模塊1213,用于接收腳本引擎根據(jù)控制信號調(diào)整的界面數(shù)據(jù)。
[0147]腳本引擎根據(jù)控制信號對界面數(shù)據(jù)進行調(diào)整,并將調(diào)整后的界面數(shù)據(jù)反饋回來。數(shù)據(jù)接收模塊1213接收到調(diào)整后的界面數(shù)據(jù),就可以根據(jù)調(diào)整后的界面數(shù)據(jù)繪制界面。
[0148]本實施例中,當(dāng)檢測到界面調(diào)整事件事,向腳本引擎發(fā)送控制信號,由腳本引擎對界面數(shù)據(jù)進行調(diào)整,從而根據(jù)接收到的調(diào)整后的界面數(shù)據(jù)繪制界面,從而可以靈活地對界面作出調(diào)整,提高了生成界面的效率。
[0149]如圖16所示,在一個實施例中,該生成界面的系統(tǒng)還包括:
[0150]功能觸發(fā)事件檢測模塊1240,用于檢測針對界面元素的功能觸發(fā)事件。
[0151]功能實現(xiàn)模塊1250,用于當(dāng)檢測到所述功能觸發(fā)事件時,根據(jù)所述功能觸發(fā)事件完成與所述功能觸發(fā)事件對應(yīng)的界面元素的功能。
[0152]本實施例中,界面數(shù)據(jù)直接由腳本引擎提供,界面元素的功能的實現(xiàn)與,減少了主程序720啟動時為生成界面而增加的耗時。
[0153]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成的,程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
[0154]本發(fā)明實施例還提供了另一種生成界面的終端,如圖17所示,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分,具體技術(shù)細節(jié)未揭示的,請參照本發(fā)明實施例方法部分。該終端可以為包括手機、平板電腦、PDA (Personal Digital Assistant,個人數(shù)字助理)、P0S (Point of Sales,銷售終端)、車載電腦等任意終端設(shè)備,以終端為手機為例:
[0155]圖17示出的是與本發(fā)明實施例提供的終端相關(guān)的手機的部分結(jié)構(gòu)的框圖。參考圖17,手機包括:射頻(Rad1 Frequency,RF)電路1110、存儲器1120、輸入單元1130、顯示單元1140、傳感器1150、音頻電路1160、無線通信模塊1170、處理器1180、以及電源1190等部件。本領(lǐng)域技術(shù)人員可以理解,圖17中示出的手機結(jié)構(gòu)并不構(gòu)成對手機的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
[0156]下面結(jié)合圖17對手機的各個構(gòu)成部件進行具體的介紹:
[0157]RF電路1110可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器1180處理;另外,將設(shè)計上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路包括但不限于天線、至少一個放大器、收發(fā)信機、耦合器、低噪聲放大器(LowNoise Amplifier, LNA)、雙工器等。此外,RF電路110還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無線通信可以使用任一通信標準或協(xié)議,包括但不限于全球移動通訊系統(tǒng)(Global System of Mobile communicat1n, GSM)、通用分組無線服務(wù)(GeneralPacket Rad1 Service, GPRS)、碼分多址(Code Divis1n Multiple Access, CDMA)、寬帶碼分多址(Wideband Code Divis1n Multiple Access, WCDMA)、長期演進(Long TermEvolut1n, LTE))、電子郵件、短消息服務(wù)(Short Messaging Service, SMS)等。
[0158]存儲器1120可用于存儲程序程序以及模塊,處理器1180通過運行存儲在存儲器1120的程序程序以及模塊,從而執(zhí)行手機的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器1120可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)手機的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器1120可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
[0159]輸入單元1130可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與手機的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。具體地,輸入單元1130可包括觸控面板1131以及其他輸入設(shè)備1132。觸控面板1131,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板1131上或在觸控面板1131附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置。可選的,觸控面板1131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標,再送給處理器1180,并能接收處理器1180發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸控面板1131。除了觸控面板1131,輸入單元1130還可以包括其他輸入設(shè)備1132。具體地,其他輸入設(shè)備1132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
[0160]顯示單元1140可用于顯示由用戶輸入的信息或提供給用戶的信息以及手機的各種菜單。顯示單元1140可包括顯示面板1141,可選的,可以采用液晶顯示器(LiquidCrystal Display, LCD)、有機發(fā)光二極管(Organic Light-Emitting D1de, 0LED)等形式來配置顯示面板1141。進一步的,觸控面板1131可覆蓋顯示面板1141,當(dāng)觸控面板1131檢測到在其上或附近的觸摸操作后,傳送給處理器1180以確定觸摸事件的類型,隨后處理器1180根據(jù)觸摸事件的類型在顯示面板1141上提供相應(yīng)的視覺輸出。雖然在圖17中,觸控面板1131與顯示面板1141是作為兩個獨立的部件來實現(xiàn)手機的輸入和輸入功能,但是在某些實施例中,可以將觸控面板1131與顯示面板1141集成而實現(xiàn)手機的輸入和輸出功倉泛。
[0161]手機還可包括至少一種傳感器1150,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板1141的亮度,接近傳感器可在手機移動到耳邊時,關(guān)閉顯示面板1141和/或背光。作為運動傳感器的一種,加速計傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準)、振動識別相關(guān)功能(比如計步器、敲擊)等;至于手機還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
[0162]音頻電路1160、揚聲器1161,傳聲器1162可提供用戶與手機之間的音頻接口。音頻電路1160可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P聲器1161,由揚聲器1161轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器1162將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路1160接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器1180處理后,經(jīng)RF電路1110以發(fā)送給比如另一手機,或者將音頻數(shù)據(jù)輸出至存儲器1120以便進一步處理。
[0163]無線通信模塊1170包括但不限于無線保真(wireless fidelity, WiFi, —種短距離無線傳輸技術(shù))模塊、藍牙模塊、紅外通信模塊等。手機通過無線通信模塊1170可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖17示出了無線通信模塊1170,但是可以理解的是,其并不屬于手機的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
[0164]處理器1180是手機的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執(zhí)行存儲在存儲器1120內(nèi)的程序程序和/或模塊,以及調(diào)用存儲在存儲器1120內(nèi)的數(shù)據(jù),執(zhí)行手機的各種功能和處理數(shù)據(jù),從而對手機進行整體監(jiān)控??蛇x的,處理器1180可包括一個或多個處理單元;優(yōu)選的,處理器1180可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信。可以理解的是,上述調(diào)制解調(diào)處理器也可以不集成到處理器1180中。
[0165]手機還包括給各個部件供電的電源1190 (比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器1180邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。
[0166]盡管未示出,手機還可以包括攝像頭、藍牙模塊等,在此不再贅述。
[0167]在本發(fā)明實施例中,該終端所包括的處理器1180還具有以下功能:用于從腳本引擎接收界面數(shù)據(jù);根據(jù)界面數(shù)據(jù),從腳本引擎獲取與界面數(shù)據(jù)對應(yīng)的界面元素;根據(jù)獲取的界面元素和界面數(shù)據(jù)繪制界面。
[0168]在一個實施例中,處理器1180還具有以下功能:檢測界面調(diào)整事件;當(dāng)檢測到界面調(diào)整事件時,向腳本引擎發(fā)送調(diào)整界面的控制信號;接收腳本引擎根據(jù)控制信號調(diào)整的界面數(shù)據(jù)。
[0169]在一個實施例中,界面調(diào)整事件包括:界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。
[0170]在一個實施例中,界面數(shù)據(jù)包括布局數(shù)據(jù)和樣式數(shù)據(jù),布局數(shù)據(jù)包括界面元素標識、界面元素的位置信息和界面元素的組合關(guān)系信息。
[0171]在一個實施例中,樣式數(shù)據(jù)包括顏色、字體、字號和界面元素是否顯示中的至少一項。
[0172]在一個實施例中,界面元素的組合關(guān)系信息包括界面元素的排列順序以及界面元素在層級結(jié)構(gòu)中的位置標識。
[0173]在一個實施例中,層級結(jié)構(gòu)包括:至少一框架、至少一行和至少一界面元素;其中框架包含行、行包含界面元素。
[0174]在一個實施例中,層級結(jié)構(gòu)包括:至少一組,組包含界面元素。
[0175]在一個實施例中,位置信息包括:所述界面元素在繪制區(qū)域中的起始坐標、高和寬。
[0176]在一個實施例中,處理器1180還具有以下功能:用于檢測針對所述界面元素的功能觸發(fā)事件;當(dāng)檢測到所述功能觸發(fā)事件時,根據(jù)所述功能觸發(fā)事件完成與所述功能觸發(fā)事件對應(yīng)的界面元素的功能。
[0177]以上實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準。
【權(quán)利要求】
1.一種生成界面的方法,其特征在于,所述方法包括: 腳本引擎讀取界面描述文件,解析所述界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序; 所述主程序根據(jù)所述界面數(shù)據(jù),從所述腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面。
2.根據(jù)權(quán)利要求1所述的生成界面的方法,其特征在于,所述主程序根據(jù)所述界面數(shù)據(jù),從所述腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面的步驟包括: 所述主程序檢測界面調(diào)整事件; 當(dāng)所述主程序檢測到所述界面調(diào)整事件時,向所述腳本引擎發(fā)送調(diào)整界面的控制信號; 所述腳本引擎根據(jù)所述控制信號,對所述界面數(shù)據(jù)進行調(diào)整,并將所述調(diào)整后的界面數(shù)據(jù)發(fā)送給所述主程序; 所述主程序根據(jù)所述調(diào)整后的界面數(shù)據(jù),從所述腳本引擎獲取與所述調(diào)整后的界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的所述界面元素和所述調(diào)整后的界面數(shù)據(jù)繪制界面。
3.根據(jù)權(quán)利要求2所述的生成界面的方法,其特征在于,所述界面調(diào)整事件包括: 界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。
4.根據(jù)權(quán)利要求1-3任一項所述的生成界面的方法,其特征在于,所述腳本引擎讀取界面描述文件,解析所述界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序的步驟包括: 所述腳本引擎讀取并解析所述界面描述文件,從而獲取界面元素標識、界面元素的組合關(guān)系信息和樣式數(shù)據(jù),所述界面元素的組合關(guān)系信息包括界面元素的排列順序以及所述界面元素在層級結(jié)構(gòu)中的位置標識; 所述腳本引擎根據(jù)所述界面元素標識和所述界面元素的組合關(guān)系信息計算界面元素的位置信息,從而生成布局數(shù)據(jù),所述布局數(shù)據(jù)包括所述界面元素標識、所述界面元素的位置信息和所述界面元素的組合關(guān)系信息; 所述腳本引擎將包括所述布局數(shù)據(jù)和所述樣式數(shù)據(jù)的界面數(shù)據(jù)發(fā)送給所述主程序。
5.根據(jù)權(quán)利要求4所述的生成界面的方法,其特征在于,所述樣式數(shù)據(jù)包括顏色、字體、字號和界面元素是否顯示中的至少一項。
6.根據(jù)權(quán)利要求4所述的生成界面的方法,其特征在于,所述層級結(jié)構(gòu)包括:至少一框架、至少一行和至少一界面元素;其中所述框架包含所述行、所述行包含所述界面元素。
7.根據(jù)權(quán)利要求6所述的生成界面的方法,其特征在于,所述層級結(jié)構(gòu)還包括: 至少一組,所述組包含所述界面元素。
8.根據(jù)權(quán)利要求6所述的生成界面的方法,其特征在于,所述方法還包括: 所述腳本引擎根據(jù)所述界面元素標識獲取所述界面元素的尺寸信息; 所述腳本引擎根據(jù)所述尺寸信息和所述界面元素的組合關(guān)系信息,從所述層級結(jié)構(gòu)中的第一行開始,逐行計算所述界面元素的位置信息。
9.根據(jù)權(quán)利要求8所述的生成界面的方法,其特征在于,所述位置信息包括: 所述界面元素在繪制區(qū)域中的起始坐標、高和寬。
10.根據(jù)權(quán)利要求1-3任一項所述的生成界面的方法,其特征在于,所述方法還包括: 所述主程序檢測針對所述界面元素的功能觸發(fā)事件; 當(dāng)所述主程序檢測到所述功能觸發(fā)事件時,根據(jù)所述功能觸發(fā)事件完成與所述功能觸發(fā)事件對應(yīng)的界面元素的功能。
11.一種生成界面的系統(tǒng),其特征在于,所述系統(tǒng)包括: 腳本引擎,用于讀取界面描述文件,解析所述界面描述文件生成界面數(shù)據(jù),并發(fā)送給主程序; 主程序,用于根據(jù)所述界面數(shù)據(jù),從所述腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面。
12.根據(jù)權(quán)利要求11所述的生成界面的系統(tǒng),其特征在于,所述主程序包括: 界面調(diào)整事件檢測模塊,用于檢測界面調(diào)整事件; 控制信號發(fā)送模塊,用于當(dāng)測到所述界面調(diào)整事件時,向所述腳本引擎發(fā)送調(diào)整界面的控制信號; 界面繪制模塊,用于從所述腳本引擎接收調(diào)整后的界面數(shù)據(jù),根據(jù)所述調(diào)整后的界面數(shù)據(jù),從所述腳本引擎獲取與所述調(diào)整后的界面數(shù)據(jù)對應(yīng)的界面元素,并根據(jù)獲取的所述界面元素和所述調(diào)整后的界面數(shù)據(jù)繪制界面。
13.根據(jù)權(quán)利要求12所述的生成界面的系統(tǒng),其特征在于,所述界面調(diào)整事件包括: 界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。
14.根據(jù)權(quán)利要求11-13任一項所述的生成界面的系統(tǒng),其特征在于,所述腳本引擎包括: 界面描述文件解析模塊,用于讀取并解析所述界面描述文件,從而獲取界面元素標識、界面元素的組合關(guān)系信息和樣式數(shù)據(jù),所述界面元素的組合關(guān)系信息包括界面元素的排列順序以及所述界面元素在層級結(jié)構(gòu)中的位置標識; 布局數(shù)據(jù)生成模塊,用于根據(jù)所述界面元素標識和所述界面元素的組合關(guān)系信息計算界面元素的位置信息,從而生成布局數(shù)據(jù),所述布局數(shù)據(jù)包括所述界面元素標識、所述界面元素的位置信息和所述界面元素的組合關(guān)系信息; 界面數(shù)據(jù)發(fā)送模塊,用于將包括所述布局數(shù)據(jù)和所述樣式數(shù)據(jù)的界面數(shù)據(jù)發(fā)送給所述主程序。
15.根據(jù)權(quán)利要求14所述的生成界面的系統(tǒng),其特征在于,所述樣式數(shù)據(jù)包括顏色、字體、字號和界面元素是否顯示中的至少一項。
16.根據(jù)權(quán)利要求14所述的生成界面的系統(tǒng),其特征在于,所述層級結(jié)構(gòu)包括:至少一框架、至少一行和至少一界面元素;其中所述框架包含所述行、所述行包含所述界面元素。
17.根據(jù)權(quán)利要求16所述的生成界面的系統(tǒng),其特征在于,所述層級結(jié)構(gòu)還包括: 至少一組,所述組包含所述界面元素。
18.根據(jù)權(quán)利要求16所述的生成界面的系統(tǒng),其特征在于,所述布局數(shù)據(jù)生成模塊還包括: 尺寸信息獲取模塊,用于根據(jù)所述界面元素標識獲取所述界面元素的尺寸信息; 位置信息計算模塊,用于根據(jù)所述尺寸信息和所述界面元素的組合關(guān)系信息,從所述層級結(jié)構(gòu)中的第一行開始,逐行計算所述界面元素的位置信息。
19.根據(jù)權(quán)利要求18所述的生成界面的系統(tǒng),其特征在于,所述位置信息包括: 所述界面元素在繪制區(qū)域中的起始坐標、高和寬。
20.根據(jù)權(quán)利要求11-13任一項所述的生成界面的系統(tǒng),其特征在于,所述主程序還包括: 功能觸發(fā)事件檢測模塊,用于檢測針對所述界面元素的功能觸發(fā)事件; 功能實現(xiàn)模塊,用于當(dāng)檢測到所述功能觸發(fā)事件時,根據(jù)所述功能觸發(fā)事件完成與所述功能觸發(fā)事件對應(yīng)的界面元素的功能。
21.一種生成界面的方法,其特征在于,所述方法包括: 從腳本引擎接收界面數(shù)據(jù); 根據(jù)所述界面數(shù)據(jù),從腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素; 根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面。
22.根據(jù)權(quán)利要求21所述的生成界面的方法,其特征在于,所述從腳本引擎接收界面數(shù)據(jù)的步驟包括: 檢測界面調(diào)整事件; 當(dāng)檢測到所述界面調(diào)整事件時,向所述腳本引擎發(fā)送調(diào)整界面的控制信號; 接收所述腳本引擎根據(jù)所述控制信號調(diào)整的界面數(shù)據(jù)。
23.根據(jù)權(quán)利要求22所述的生成界面的方法,其特征在于,所述界面調(diào)整事件包括: 界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。
24.根據(jù)權(quán)利要求21-23任一項所述的生成界面的方法,其特征在于,所述界面數(shù)據(jù)包括布局數(shù)據(jù)和樣式數(shù)據(jù),所述布局數(shù)據(jù)包括所述界面元素標識、所述界面元素的位置信息和所述界面元素的組合關(guān)系信息。
25.根據(jù)權(quán)利要求24所述的生成界面的方法,其特征在于,所述樣式數(shù)據(jù)包括顏色、字體、字號和界面元素是否顯示中的至少一項。
26.根據(jù)權(quán)利要求24所述的生成界面的方法,其特征在于,所述界面元素的組合關(guān)系信息包括界面元素的排列順序以及所述界面元素在層級結(jié)構(gòu)中的位置標識。
27.根據(jù)權(quán)利要求26所述的生成界面的方法,其特征在于,所述層級結(jié)構(gòu)包括:至少一框架、至少一行和至少一界面元素;其中所述框架包含所述行、所述行包含所述界面元素。
28.根據(jù)權(quán)利要求27所述的生成界面的方法,其特征在于,所述層級結(jié)構(gòu)還包括: 至少一組,所述組包含所述界面元素。
29.根據(jù)權(quán)利要求27所述的生成界面的方法,其特征在于,所述位置信息包括: 所述界面元素在繪制區(qū)域中的起始坐標、高和寬。
30.根據(jù)權(quán)利要求21-23任一項所述的生成界面的方法,其特征在于,所述方法還包括: 檢測針對所述界面元素的功能觸發(fā)事件; 當(dāng)檢測到所述功能觸發(fā)事件時,根據(jù)所述功能觸發(fā)事件完成與所述功能觸發(fā)事件對應(yīng)的界面元素的功能。
31.一種生成界面的系統(tǒng),其特征在于,所述系統(tǒng)包括: 界面數(shù)據(jù)獲取模塊,用于從腳本引擎接收界面數(shù)據(jù); 界面元素獲取模塊,用于從腳本引擎獲取與所述界面數(shù)據(jù)對應(yīng)的界面元素; 繪制模塊,用于根據(jù)獲取的所述界面元素和所述界面數(shù)據(jù)繪制界面。
32.根據(jù)權(quán)利要求31所述的生成界面的系統(tǒng),其特征在于,所述界面數(shù)據(jù)獲取模塊包括: 事件檢測模塊,用于檢測界面調(diào)整事件; 信號發(fā)送模塊,用于當(dāng)檢測到所述界面調(diào)整事件時,向所述腳本引擎發(fā)送調(diào)整界面的控制信號; 數(shù)據(jù)接收模塊,用于接收所述腳本引擎根據(jù)所述控制信號調(diào)整的界面數(shù)據(jù)。
33.根據(jù)權(quán)利要求32所述的生成界面的系統(tǒng),其特征在于,所述界面調(diào)整事件包括: 界面元素的創(chuàng)建、界面元素的隱藏、界面元素的刪除、界面元素的移動、窗口的縮放、顏色的改變和字體的改變中的至少一項。
34.根據(jù)權(quán)利要求31-33任一項所述的生成界面的系統(tǒng),其特征在于,所述界面數(shù)據(jù)包括布局數(shù)據(jù)和樣式數(shù)據(jù),所述布局數(shù)據(jù)包括所述界面元素標識、所述界面元素的位置信息和所述界面元素的組合關(guān)系信息。
35.根據(jù)權(quán)利要求34所述的生成界面的系統(tǒng),其特征在于,所述樣式數(shù)據(jù)包括顏色、字體、字號和界面元素是否顯示中的至少一項。
36.根據(jù)權(quán)利要求34所述的生成界面的系統(tǒng),其特征在于,所述界面元素的組合關(guān)系信息包括界面元素的排列順序以及所述界面元素在層級結(jié)構(gòu)中的位置標識。
37.根據(jù)權(quán)利要求36所述的生成界面的系統(tǒng),其特征在于,所述層級結(jié)構(gòu)包括:至少一框架、至少一行和至少一界面元素;其中所述框架包含所述行、所述行包含所述界面元素。
38.根據(jù)權(quán)利要求37所述的生成界面的系統(tǒng),其特征在于,所述層級結(jié)構(gòu)還包括: 至少一組,所述組包含所述界面元素。
39.根據(jù)權(quán)利要求37所述的生成界面的系統(tǒng),其特征在于,所述位置信息包括: 所述界面元素在繪制區(qū)域中的起始坐標、高和寬。
40.根據(jù)權(quán)利要求31-33任一項所述的生成界面的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 功能觸發(fā)事件檢測模塊,用于檢測針對所述界面元素的功能觸發(fā)事件; 功能實現(xiàn)模塊,用于當(dāng)檢測到所述功能觸發(fā)事件時,根據(jù)所述功能觸發(fā)事件完成與所述功能觸發(fā)事件對應(yīng)的界面元素的功能。
【文檔編號】G06F9/44GK104252356SQ201310271599
【公開日】2014年12月31日 申請日期:2013年6月28日 優(yōu)先權(quán)日:2013年6月28日
【發(fā)明者】康亮 申請人:騰訊科技(深圳)有限公司