專利名稱:數(shù)據(jù)語言中變量的自動更新的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及應(yīng)用軟件的變量處理,本發(fā)明尤其涉及處理數(shù)據(jù)語言中的動
態(tài)變量。
相關(guān)技術(shù)說明
數(shù)據(jù)語言正在成為一種越來越盛行的編程方法。數(shù)據(jù)語官包括標記語宮,諸 如基于XML的語言,包括HTML和TRIGML頃(由商通公司所有),數(shù)據(jù)語言 廣泛應(yīng)用于編寫基于web的應(yīng)用程序,但并不僅限與此,使用基于XML的語言實 現(xiàn)的功能的示例包括記帳和交易處理程序等,
數(shù)據(jù)語言本質(zhì)上是解釋性的。通過數(shù)據(jù)語言程序進行一通,并且例如利用該 程序屮定義的元素來顯示網(wǎng)頁,該程序可以定義所用的元素,以及關(guān)于元件如何被 敏示的元忭特性,這些語言也可用于用戶界面的生成,
在數(shù)據(jù)語言的使用巾出現(xiàn)了一些困難,諸如變量的處理就是這樣。因為XML 本質(zhì)上是觶釋性的,所以動態(tài)的變量一旦設(shè)定便不能更改,對解決這一問題所作的 —些嘗試包括通過使用Java腳本,然而,Java腳本在代碼被重新執(zhí)行之前并不修 改變置,并且還要有某種機制來觸發(fā)J鵬腳本使之重新運行,并蹄在自動機制, 換句話說,包含toa腳本的程序代碼必須被再次運行才能確定新的變量值,如果 變量是動態(tài)且變化的,則在代碼被重新執(zhí)行之前,tova腳本中使用的變S不會得到 更新,
使用數(shù)據(jù)語言的另一困難在于,它們不允許訪問底層的計算機或處理器平臺 函數(shù),例如,如果你想使用數(shù)據(jù)語言來顯示指示電池水平的電池面標,則數(shù)據(jù)語言 中沒有這樣的機制來訪樹平臺所知道的電池水平,Javii腳本也同樣存在沒有訪問計
算JV平臺函數(shù)的能力這一 問通,
因此,業(yè)界痛要提供允許對包含動錢量的表達式求值的方法和設(shè)備,此外, 還耱要有方法和設(shè)備來提供對計算 1/平臺級函數(shù)的訪問,
發(fā)明9Efi
通過創(chuàng)建可以對動態(tài)變S求值并訪問計算機平臺的底層函數(shù)的系統(tǒng)、方法和 設(shè)備,與本發(fā)明一致的系統(tǒng)和方法克服了現(xiàn)有系統(tǒng)的不足,
在本發(fā)明的一種實施方式中,通過以下步驟來對具有用數(shù)據(jù)語言編寫的動態(tài)
變量的表達式進行求值接收該動態(tài)變量,確定該動態(tài)變S的第一值,使用該第一
值對該表達式求值,以及檢測與該動態(tài)變豕相關(guān)聯(lián)的變化,在接收到與該動態(tài)變it
相關(guān)聯(lián)的第二值并使用與該動態(tài)變量相關(guān)聯(lián)的第二值對該表達式求值之后;在不寬
新解釋其他包含該表達式的程序代碼的情況下使用第二值對該表達式進行求值,
在另一種實施方式中,通過以下步驟來更新動態(tài)變量解析用數(shù)據(jù)語言編寫 的包含該動態(tài)變量的指令,在存儲器中建立該動態(tài)變量,為該動態(tài)變置賦值,以及 在不解析此用數(shù)據(jù)語言編寫的包含該動態(tài)變置的指令的情況下更新該動態(tài)變量的 值.也可通過創(chuàng)建與該動態(tài)值相關(guān)聯(lián)的對象來更新動態(tài)變量,其中該對象決定動態(tài) 變量的伹,進一歩地,可將對函數(shù)值的觀測與動態(tài)變豕相關(guān)聯(lián),并在該函數(shù)值改變 時給予該對象通知,
在又一種實施方式中,一種用于更新數(shù)據(jù)語言中的動態(tài)變逸的設(shè)備包括為 動態(tài)變量分配的存儲器位置,其中,是響應(yīng)于解析數(shù)據(jù)語言中的指令而為該動態(tài)變 量分配該存儲器位置i以及處理器,用來對動態(tài)變量的更新求值,
在再一種實旌方式中,一種用于更新用數(shù)據(jù)語言編寫的動態(tài)變量的計算機可 執(zhí)行的指令的計算機可讀介質(zhì),這些計算機可執(zhí)行指令在被執(zhí)行時運行以下步驟: 解析用數(shù)據(jù)語言編寫的包含該動^$量的指令,在存儲器中建立該動態(tài)變量,為該 動態(tài)變量賦值,以及在不解析此用數(shù)據(jù)語言編寫的包含該動態(tài)變置的指令的情況下 更新該動態(tài)變量的值,
本發(fā)明的^目的、優(yōu)勢和特性在閱讀下述附國簡要說明、發(fā)明具體說明和 權(quán)利要求書后將變得顯而易見,
新翻糖驀說明參考以下各圖,貫穿始終相同的附圖標記代表相同的要素
圖1是在本發(fā)明的一個實施方式中設(shè)備可以工作的一種通信環(huán)境的功能圖 圖2是一般性地示出本發(fā)明的一個實施方式中樣本移動設(shè)備的組件的功能 性框圉;
圖3是一般性地示出本發(fā)明的一種實施方式中樣本計算設(shè)備的組件的功能 性框圖
圖4是示出本發(fā)明的一種實施方式中的計算機平臺的應(yīng)用架構(gòu)的框圖 圖5是示出本發(fā)明的一種實施方式中更新用戶界面組件的系統(tǒng)以及捕繪tfg 播放器,actor (邏輯部分)和trig (W要素)的架構(gòu)的框圖i
圖6是示出本發(fā)明的一種實施方式中Tri^lL代碼、對象和actor的框圖以
及
圖7是描繪本發(fā)明的一種實施方式中對動態(tài)表達式求值的過程的流程圖,
具侓說明
現(xiàn)在將詳細參考附圖中示出的本發(fā)明目前的示例性和優(yōu)選實施方式,貫穿各 圖,相同的附圖標記標示相同或相應(yīng)的部件。對本領(lǐng)域技術(shù)人員而言,在結(jié)合附圖 考慮以下具體說明后,本發(fā)叨的本質(zhì)、目的和優(yōu)勢更為顯而易見,
對于本說明中的術(shù)語使用,術(shù)語"無線設(shè)備"、"無線電話"和"移動設(shè)備" 被可互換地使用,本文使ffl的術(shù)語"應(yīng)用程序"旨在涵達可執(zhí)行的和不可執(zhí)行的 軟件文件、康始數(shù)據(jù)、聚合數(shù)據(jù),補丁、內(nèi)容、用戶界面和用戶界面組件以及, 代碼片段,進一歩地,貫穿各圖,除非在此說明中特別指出,否則相同的附圖標記 指代相同的耍素,并且冠詞"一"和"該"包括復數(shù)形式,
TWgML是一種在開發(fā)用戶界面中很有用處的數(shù)據(jù)驅(qū)動語言,Tri砂CL是 QUALCOMM公司所有的產(chǎn)品,與在XML下定義的數(shù)據(jù)語言類似,TrfgML代碼 包括了標簽的使用,雖然將在用于無線設(shè)備上的用戶界面的TrigML的背豕中捕述 各實施方式,但是應(yīng)認識到這僅是用于說明目的,而不是對發(fā)明的限定,本文中所 描述的設(shè)備和方法也可以在非用戶界面環(huán)境、以及在如前所述的使用不同數(shù)據(jù)語言 的使用環(huán)境中應(yīng)用,
圉1是在本發(fā)明的一個實旌方式中設(shè)備可工作的通信環(huán)境100的功能圖,在 本倒中,通信環(huán)境l加包括無線網(wǎng)絡(luò)122,無線網(wǎng)絡(luò)122可以是由無線服務(wù)供應(yīng)
商運營來為移動設(shè)備提供數(shù)據(jù)或電信連接的通信網(wǎng)絡(luò),進一歩地,無線網(wǎng)絡(luò)122還 可包括有線網(wǎng)絡(luò)、因特網(wǎng)、廣域網(wǎng),公共電話交換網(wǎng)(PSW)和其他公共和域?qū)?用網(wǎng)絡(luò),從而使設(shè)備可以使用連接到這些兩絡(luò)的其他設(shè)備來直接或間接iUi信,
在一個示例中,無線網(wǎng)絡(luò)122可包括蜂窩電話網(wǎng),若千移動設(shè)備與無線網(wǎng)絡(luò) 122通信,諸如有蜂窩電話112、膝上型計算機U6、 PDA 118和移動消息接發(fā)設(shè) 備120,這些設(shè)備只是作為可以在無線網(wǎng)絡(luò)122上通信的許多類型的設(shè)備的示例而 示出,
圖1所述的是應(yīng)用程序服務(wù)器124和用戶界面臞務(wù)器126,用戶界面服務(wù)器 126是供應(yīng)用戶界面組件130 (下文中詳述)的計算設(shè)備,這些用戶界面組件130可 以被下載到連接于無線網(wǎng)絡(luò)122的其他設(shè)備,用戶界面組件包括用以呈示用戶界面 的代碼和域數(shù)據(jù)(諸如函數(shù)調(diào)用、菜單、內(nèi)容調(diào)用的代碼、皮膚等),注意,還可使 用包括內(nèi)容服務(wù)器在內(nèi)的許多其他服務(wù)器來連接到該網(wǎng)絡(luò)來傳遞信息,可用的信息 類型是無限的,并且對于本領(lǐng)域技術(shù)人員來說,許多不同的示例應(yīng)屬顯而易見,用 戶界面服務(wù)器126包括配S成通過無線網(wǎng)絡(luò)122向作出請求的設(shè)備提供用戶界面 組件130的堀務(wù)器軟件,
應(yīng)用程序服務(wù)器124是耦合到無線網(wǎng)絡(luò)122的使軟件應(yīng)用程序128可供移動 設(shè)備下載的計算設(shè)備或系統(tǒng), -般來說,應(yīng)用程序128可供諸如蜂窩電話112等 的連接到無線網(wǎng)絡(luò)122的設(shè)各下載,以在那些設(shè)備上執(zhí)獰,在這個特定的實現(xiàn)方式 中,由應(yīng)用程序下載服務(wù)器124供應(yīng)的至少一個應(yīng)用程序128是配置成可供在這 些移動設(shè)備中的至少一個上執(zhí)行的基于內(nèi)容的應(yīng)用程序,該基于內(nèi)容的應(yīng)用程序 (客戶端灘設(shè)置為從內(nèi)容瓶務(wù)器(未示出)檢索可供經(jīng)由用戶界面在移動設(shè)備上呈現(xiàn) 的內(nèi)容,
圖2是一般性地示出本發(fā)明的一種實施方式中樣本移動設(shè)備加l組件的功能 性框圖,移動設(shè)備2M可以是具有計算功能集的任何設(shè)備,諸如蜂窩電話、個人 數(shù)宇助理、手持式"攀上"設(shè)備、膝上型電腦、便擁式音樂描放器、全球定位衛(wèi)雖 (GPS)設(shè)備或類似設(shè)備,
移動設(shè)備201具有可以接收并執(zhí)行軟件g^以及顯示數(shù)據(jù)的計算機平臺2幼, 計算機平臺250包括處理器252,諸如專用集成電路"ASIC"、數(shù)字信號處理器 (,")、微處理器、微控制器、逮輯電路、狀態(tài)機或其他數(shù)據(jù)處理設(shè)備,處理器252執(zhí)行應(yīng)用程序編程接口 ("API"堤254,其可以與移動設(shè)備的存儲器256中在 何駐留的程序接口,存儲器256可以包括隨機存取3m讀存儲器(^AM或ROM)、 EPROM、 EEPROM、快閃存儲器、或各種計算機平臺通用的任何存儲器。計算機 平臺250還包括本地存儲258,它可以保持不在存儲器256中活動地使用的軟件應(yīng) 用gff、文件、或數(shù)據(jù),諸如從用戶界面服務(wù)器126 (圖1)下載的軟件應(yīng)用程序 或用戶界面組件,本地存儲258典型地包含一個或多個快閃存儲器單元,但也可以 是業(yè)界所知的任何二級或三級存儲設(shè)備,諸如磁介質(zhì)、EPROM、 EEPROM、光介 質(zhì)、磁帶、或者軟盤或硬盤,
計箅機平臺250還包括可由軟件應(yīng)用程序用來經(jīng)由用戶界面(未示出)顯示數(shù) 據(jù)的顯示器260,
圖2中所述的組件在很多類型的移動設(shè)備中都很常見,但也應(yīng)意識到,可以 向移動設(shè)備201添加其他組件,并且在某些情形中,圖2中所述的某些組件可以從 移動設(shè)備201中省去,
圖3是一般性地示出了本發(fā)明的一種實施方式中的樣本計算設(shè)備301的核心 組件的功能性框圖,計算設(shè)備301可以是任何國定的計算設(shè)備,諸如臺式計算機或 服務(wù)器。
在本例中,計算設(shè)備301包括處理器單元3M、存儲器306、存儲介質(zhì)313 和音頻單元331 。處理器單元304優(yōu)選地包括微處理器或諸如數(shù)字信號處理器(DSP》 等的專用處理器,但在替換方案中也可以是任何常規(guī)形式的處理器、控制器、微控 制器或狀態(tài)機.處理器單元304被耦合到存儲器306,后者優(yōu)選被實現(xiàn)為保持由處 理器單元304執(zhí)行的軟件指令RAM存儲器,在'-替換實施方式中,存儲器306可 由固件或快閃存儲器構(gòu)成。在此種實施方式中,存儲器306中存儲的軟件指令包 括操作系統(tǒng)310以及一個或多個其他應(yīng)用程序312,諸如采用用戶界面的應(yīng)用程序 (未示凼)。
移動設(shè)備3M還包括啟用計算設(shè)備301與諸如移動設(shè)備等的一個或多個其他 計算設(shè)備之間的雙向通信的通信模塊321 ,通信模塊321可包括用來啟用射頻或諸 如蜂窩電話網(wǎng)絡(luò)、藍牙連接、無線局域兩、或可能無線廣域網(wǎng)等的其他無線通信的 組件,替換地,通信模塊321可包括廟用諸如以太網(wǎng)連接、RJ-ll連接、通用串 行總線連接,IE^1394伙線)連接、或其他類似連接等的陸線或硬線連接兩絡(luò)通 信的組件,這些意在作為非窮舉性的列表,并且許多其他替換方案是可能的,音頻 單元331是移動設(shè)備則的配置為將信號在模擬與數(shù)字格式之間轉(zhuǎn)換的組件,移 動設(shè)備301使用音頻單元331來經(jīng)由揚聲器332輸出聲音,并從麥克風333接收 輸入信號,
圖3僅示出了在許多常規(guī)計箅設(shè)備中--般能找到的某些組件,在特定實現(xiàn)中 還能例行地找到許多其他組件,并且在某些情形中,圖3中所述的一些組件可以被 省去,然而,圖3所述的計算設(shè)備301在今天常見的計算設(shè)備中是很典型的,
圖4示出了本發(fā)明的一種實施方式中一種設(shè)備的應(yīng)用程序架構(gòu),該設(shè)備將包 括"計算機平臺"》計算機平臺可以指設(shè)備中包括硬件、軟件或兩者兼有的組件, 例如,它可能包括操作系統(tǒng)、包括芯片在內(nèi)的底展硬件組件、用戶界面硬件(例如, 顯示器、輸入和輸出設(shè)備)、庫、支持API、操作系統(tǒng)的附加擴展等,
在一種實施方式中,無線設(shè)備的應(yīng)用程序架構(gòu)400包括設(shè)備AH405、 BREW API 410、 BREW擴展415、 Trig禍放器420、 Actors (邏輯部分〉425和Trig (UI 要素)430,設(shè)備AH 405可包括由軟件平臺用來尋址諸如特定處理器或ASIC函 數(shù)、特定設(shè)備硬件功能集等的專門與該設(shè)備相關(guān)聯(lián)的函數(shù)的那些API,
BREW API 410是由QUALCOMM公司開發(fā)的軟件平臺,BREW AM 410為 應(yīng)用程序提供了無需專n為該設(shè)備編寫也能調(diào)用設(shè)備AH 405和其他函數(shù)的能力, 換句話說,它從應(yīng)用程序抽象出硬件的特定方面,由此允許為許多設(shè)備編寫應(yīng)用程 序,而無霜為應(yīng)用程序在其上執(zhí)行的每個特定設(shè)備改編應(yīng)用程序或僅霜略微改編, BREW擴展415提供了向BREW平臺添加附加功能的能力,諸如提供MP3 播放器、fava虛擬機等。
Trig播放器420、Trig430和Actors425是QUALCOMM公司開發(fā)的uiO加iw 架構(gòu)的組件,這些組件典型是指設(shè)備400的用戶界面方面,在一種實施方式中, Trig430是應(yīng)用程序為在設(shè)備400上呈示用戶界面所用的編譯好的TrigMyB代碼 及其他資源何包括元數(shù)據(jù)、文本文件和圖像),稱為Trigl杖(未示出)的多個Trig 430和Trig的更新可用于用戶界面,
由QUALCOMM公司所有的TMgML代碼是一種基于XML的數(shù)據(jù)語言,并 且用戶界面雖現(xiàn)語言可用其來創(chuàng)作Trig 430, TrfgML代碼還包括針對移動的功能 集、交互式用戶界面事件模型、和像素定般其他優(yōu)勢.
Actor42S包括了將Trig連接到底層設(shè)備AHs405和/或BREWAPI410的底 層C代碼。Actor42S還可以用作輸A^I出的可執(zhí)行件,并且由于Actor連接到底 層設(shè)備和BREW AH,因此它們也可以訪問計算機平臺函數(shù),
Trig播放器420可被實現(xiàn)為BREW擴展415,雖然在圖4中它被分立出來, Trig播放器用來通過使用TOg和Aetor來呈示用戶界面,
應(yīng)當認識到,雖然對圖4的討論是基于QUALCOMM公司的uiO加架構(gòu)(包 括編譯好的TOgML、 Trfg報放器、BREW API等),但這僅是出于示例目的,并且 本發(fā)明包括其他數(shù)據(jù)語言、計算機和軟件平臺以及設(shè)備架構(gòu),
圖5是示出本發(fā)明的一種實施方式中更新用戶界面組件的系統(tǒng)以及維述 Trig播放器420, Ac加425和TOg430的架構(gòu)的框圖,設(shè)備5加包括Trig播放器 420, Actor 425,和Trig 430, Trig可包括Trig^代碼505、文本串510、圖像 515和更新通迸520 (更新通道可定義取回Triglet 530的URL和定時方案),可以 無線地更新Trig,由此允許用戶界面在設(shè)備離開制造商后仍能被更新.可以使用服 務(wù)器525來下載新的Trig和/成Trig的更新的組件(例如,Triglet530),由此允許為 設(shè)備定制用戶界面,
面6是示出本發(fā)明的--種實施方式中TrigML代碼、對象和Actor的關(guān)聯(lián)的 框圖。TrigML代碼可以使用一系列標簽(605 - 625)來編寫,這些標簽可以定義要執(zhí) 行的動作,并定義與程序代碼的S的相關(guān)的特定參數(shù).在一種實施方式中,此 TrigML代碼在其于無線設(shè)備上被解析并執(zhí)行之前已被編譯好,
在本發(fā)明的一種實施方式中,當TrigML程序代碼被解析以供執(zhí)行時,將對象 (S3(J-650)與TrigML代碼中的元素(605-625灘關(guān)聯(lián).這些對象可包含元素的表示, 例如,元素620表示一個長度為3的框,當對這一元素求值時,就創(chuàng)建了一個框長 度值=3(645)的對象,
在程序代碼中的表達式中包含動態(tài)變量可能是合乎耱要的,例如,如果霱要 —代表無線設(shè)備的電池水平的圖標,則在假定框的寬度隨電池水平變化的情況下, 更新此框的寬度來顯示隨電池充放電而變化的當前電池水平是合乎滯要的*
在這種情形中,元素"<*欲width = "tatteyKfe/10">" (645)包含了具有會根據(jù) 電池中余留的電量而變化的動態(tài)變里-teltoylife(電池壽命)"的表達式 ("batt ylife/lO 》,該對象進一步對其進行操作,將tetteyHfe值除以W,應(yīng)注意,
該表達式可包含簡單或復合的操作,包括隨動態(tài)變s使用數(shù)宇、串、算子等,
在一種實Kt式中,創(chuàng)建對象640來確定包含動^E量的元素中表達式的值, 此外,創(chuàng)建actor 655并使用其來接收tattety她值,對象640在對該表達式求值時 將使用actor中表示的值作為該動態(tài)變量,
在該設(shè)備中,由一函數(shù),例如AH來監(jiān)視并確定當前teteylife (660)*該函 數(shù)可包括那些相對于計算設(shè)備而言處于計算機層或平臺層的函數(shù)(例如,設(shè)備和/或 BREW AM),或可以是本地或遠程執(zhí)行的、并與本地計算機或遠程計算機相關(guān)的 其他AH、功能或任務(wù)的其他函數(shù),本領(lǐng)域技術(shù)人員應(yīng)當認識到,"tattoyl泡"函數(shù) 僅用于描述S的,并且任何函數(shù)/API都可使用,
可以使用很多范例來向actor 655吿知baltoylife函數(shù)6幼的值的變化,例如, 可實現(xiàn)觀測/通知棋式,其中向bateylifc函數(shù)660告知actor 6S5存在,且當值發(fā) 生變化時,通知actor 655。采用這種范例,actor 655待命并等待來自bateylife函 數(shù)6幼的關(guān)于發(fā)生改變的指示,一旦actor 655收到了發(fā)生改變的指示,它就通知 對象MO,以使對象640可以從tetteyl股函數(shù)660取回值,該對象隨后使用新的 函數(shù)值對包含動態(tài)變量的表達式求值,
另一范例包括輪詢,其中aclor 655定期輪詢batteryMe函數(shù)柳以期獲得 發(fā)生了變化的指示*處理如前文所述地進行,其中對象取回函數(shù)值并對表達式求值。 尚有其他范例存在,并為本領(lǐng)域技術(shù)人員所知,且其仍應(yīng)包含在本發(fā)明的范圍中,
當代表了表達式的對象被重新求值時,就可將新的值就用于編寫TrigML代 碼的目的,還應(yīng)注意到,該動態(tài)變量可能經(jīng)常改變,并且在毎次改變時,只有與表 達式相關(guān)聯(lián)的對象需要被重新求值以確定新的值,TrigML代碼無雜被重新解析, 圖7是描述本發(fā)明的一種實施方式中對動態(tài)表達式求值的過程的流程圖,首 先,該方法從接收具有動態(tài)變量的表達式開始(步驟705),應(yīng)注意,表達式典型為 數(shù)據(jù)語言格式,諸如是基于XML的格式,然而,其他的數(shù)據(jù)語言也可使用,
并且,動態(tài)變量是可能會改變的變豕,并且在該數(shù)據(jù)語言程序代碼的初始解 析之后,可能耱要該變至的任何改變,它還可能和與計算機平臺相關(guān)聯(lián)的函數(shù)有關(guān),
接下來,創(chuàng)建一個對象來對表達式求值(步驟710),對象的使用并不是必須的, 并且可能只對某些元素來說是必要的,對象可以包含值,不一定是數(shù)字或標豕值, 而可以是該元素的目的的表示,
隨后創(chuàng)建協(xié)助提供動態(tài)變量的值的actor (步驟715),替換地,actor可能B經(jīng) 存在,且該存在的actor被用來通知對象函數(shù)值己改變,該敏or被鏈接到與該動態(tài) 變量相關(guān)聯(lián)的函數(shù),該actor可提供兩個函敏并不要求這些函數(shù)被分派給該actor, 并且它還可執(zhí)行更多的函數(shù)),首先,它可以允許査詢艱回激取一個值第二,它 可用作向?qū)ο笾甘竞瘮?shù)的改變的機制(采用本文討論的范例之一),
該對象隨后從函數(shù)中取回函數(shù)值(歩驟720),該對象接下來對表達式求值(步 驟725),隨后,確定函數(shù)值是否發(fā)生改效步騸730),這可以如本文所描述地經(jīng)由 向actor指示發(fā)生了改變、而actor指示對象發(fā)生了改變的函數(shù)來執(zhí)行,
如果在步驟730中函數(shù)值發(fā)生改變,則走"是"路徑,且對象從函數(shù)重新取回函 數(shù)值(歩驟735),并使用該新的函數(shù)值(與該動態(tài)變量相關(guān)聯(lián))對表達式求值(步驟 745),
如果在歩驟730中函數(shù)值沒有發(fā)生改變,則走,否"路徑,并且使用本文所描述 的范例或是本領(lǐng)域技術(shù)人員所知的其他范例之一來監(jiān)視變化,
另一種實施方式包括更新依賴于布爾表達式的"動作"標簽,例如, <anim^e whiWval卿雙AesAvi她)> 120"....
在此,當所給出的布爾表達式為真時,'ani咖te'動畫標簽即被激活,如果在未 來任何一點,該表達式解析為'假',則動畫將被停用,
通過堅持在每次表達式解析為真時,即在表達式的任何子元索發(fā)生改變,并 且整個袞達式值解析為真時,使標簽被(立即)黴活,就可將布爾表達式用于一次性 'action'標簽,,例如,
<doload when。 "val卿助es/etroraasgi) = 'Do柳toaded'"... >
這里,每次訴S節(jié)點/resteorasg被更新,且表達式求值為真時,就會執(zhí)行 'doloarf操作。
表達式還可以作為資海路徑元素被嵌入,例如,
<imagerer="res/{valueofl[/var/restype)}/{ val咖l[/v虹/n咖)* W)"...》
在這一實施方式中 三個耍素的資源路徑是對第一個元素使用串字面值并對 最后各元素使用兩個表達式來構(gòu)造成的,該資源路徑指示了要雖示圖像的位置,若 這些子表達式中有任何一個發(fā)生變化,該資源路徑就會被自動重新求值,并可能導 致一不同的圖像被顯示,
通過在XML屬性中直接嵌入任意復合的表達式,就可能用簡潔而優(yōu)雅的標記 來創(chuàng)建可動態(tài)更新的UI,而無霜事件或嵌入的腳本語言,
上述方法和軟件設(shè)計說明還可在作為指令存儲在RAM或其他存儲器存儲設(shè) 備中的裝置中實現(xiàn),雖然本文中所給凼的過程是按特定次序順序示出并說明,但是 在其他的實施方式中,這些過程步驟可按不同的次序執(zhí)行,重復執(zhí)行多次,和域 并行進行,進一歩地,在一些實施方式中,在這幾個過程中維述的一個或多個步驟 可以作為獨立步騸執(zhí)行,合并為更少的步驟,或可能被整體省略,
雖然以上公開示出了本發(fā)明示例性的實施方式,但是應(yīng)當注意到,可對所描 述的實施方式進行各種變動和更改而不會脫離所附權(quán)利要求定義的本發(fā)明的精神 和范圍,進一步地,雖然發(fā)明中的要素在說明書或權(quán)利要求書中可能是單數(shù)形式, 但是除非明確陳述為單數(shù)形式,否則也構(gòu)想了復數(shù)形式,
權(quán)利要求
1.一種對在數(shù)據(jù)語言編寫的程序代碼中對具有動態(tài)變量的表達式求值的方法,包括接收所述動態(tài)變量;確定所述動態(tài)變量的第一值;使用所述第一值對所述表達式求值;檢測與所述動態(tài)變量相關(guān)聯(lián)的改變;接收與所述動態(tài)變量相關(guān)聯(lián)的第二值;以及使用所述與動態(tài)變量相關(guān)聯(lián)的第二值對所述表達式求值;其中在不重新解釋包含所述表達式的其他程序代碼的情況下使用所述第二值對所述表達式進行求值。
2. -浙更新數(shù)據(jù)語官中的動態(tài)變量的方法,包括-解析用所述數(shù)據(jù)語盲編寫的包含所述動態(tài)變量的指令i 在存儲器中創(chuàng)建所述動態(tài)變量 為所述動態(tài)變量賦值i以及在不解析所述用數(shù)據(jù)語言編寫的包含所述動態(tài)變豕的指令的情況下更新所述 動態(tài)變量的值,
3. 權(quán)利要求2所述的方法,進一步包括創(chuàng)建與所述動態(tài)值相關(guān)聯(lián)的對象,其中所述對象決定所述動態(tài)變量的值,
4. 權(quán)利耍求2所述的方法,進一步包括 觀測與所述動態(tài)變量相關(guān)聯(lián)的函數(shù)值i以及 在所述函數(shù)值發(fā)生變化時,通知所述對象。
5. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述為動態(tài)變量賦值的步驟包 括對與軟件平臺相關(guān)聯(lián)的函數(shù)求值,
6. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述動態(tài)變量被包含在復合等 式中,并且所述方法進一步包括用更新后的動態(tài)變S的IW所述復合等式求值,
7. —種用于更新數(shù)據(jù)語官中的動態(tài)變JI的裝置,包括-為動態(tài)變量分派的存儲器位里,其中所述動態(tài)變置是響應(yīng)于解析數(shù)據(jù)諾言中 的措令面被分派了所述存儲器位置i以及處理器,用于對所述動態(tài)變量的更新求值,
8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述存儲器進一步包括與所述 動態(tài)變鼉相關(guān)聯(lián)的對象,其中所述對象接收代表所述動態(tài)變量的值,
9. 根據(jù)權(quán)利要求8所述的裝里,其特征在于,所述函數(shù)值是基于一軟件平臺 函數(shù),
10. —種包含用于更新用數(shù)據(jù)語言編寫的動態(tài)變量的計算機可執(zhí)行指令的計 算機可讀介質(zhì),所述計算機可執(zhí)行指令在被執(zhí)行時運行以下歩驟解析用所述數(shù)據(jù)語言編寫的包含所述動態(tài)變量的指令 在存儲器中創(chuàng)建所述動態(tài)變量; 為所述動態(tài)變量賦值;以及在不解析所述用數(shù)據(jù)語官編寫的包含所述動態(tài)變量的指令的情況下更新所述 動態(tài)變Jt的值,
11. 根據(jù)權(quán)利要求10所述的計算機可讀介質(zhì),其特征在于,所述用于更新用 數(shù)據(jù)語言編寫的動態(tài)變量的計算機可執(zhí)獰措令在被執(zhí)行時進一步包括以下步驟,創(chuàng)建與所述動態(tài)值相關(guān)聯(lián)的對象,其中所述對象決定所述動態(tài)變量的也。
12. 根據(jù)權(quán)利要求W所述的計算機可讀介質(zhì),其特征在于,所述用于更新用 數(shù)據(jù)稱言編寫的動態(tài)變量的計沐機可執(zhí)行指令在被執(zhí)行時進—步包括以下步驟-觀測與所述動態(tài)變雖相關(guān)聯(lián)的函數(shù)值;以及 在所述函數(shù)值發(fā)生變化時通知所述對象,
13. 根據(jù)權(quán)利要求10所述的計算機可讀介質(zhì),其特征在于,所述為動態(tài)變量 賦值的歩驟包括對與軟件平臺相關(guān)聯(lián)的函數(shù)求值,
14. —種用于更新數(shù)振語言中的動態(tài)變量的裝置,包銜 用于解析用所述數(shù)據(jù)銀言編寫的包含所述動態(tài)變量的指令的裝置 用于在存儲器中創(chuàng)建IWi動態(tài)變置的裝置 用于為所述動態(tài)變豕賦值的裝S:以及用于在不解析所述用數(shù)據(jù)語言編寫的包含所述動態(tài)變量的指令的情況下更新 所述動態(tài)變量的值的裝置,
15. 權(quán)利要求W所述的裝置,進一步包括 用于創(chuàng)建與所述動態(tài)值相關(guān)聯(lián)的對象的裝置,其中所述對象決定所述動態(tài)變 量的值,
16.權(quán)利要求14所述的裝置,進一步包括 用予觀測與所述動態(tài)值相關(guān)聯(lián)的函數(shù)值的裝置,以及 用于在所述函數(shù)值發(fā)生變化時通知所述對象的裝置,
全文摘要
所描述的是自動更新數(shù)據(jù)語言中的變量的各種方法和裝置。通過以下步驟來更新動態(tài)變量解析用數(shù)據(jù)語言編寫的包含該動態(tài)變量的指令,在存儲器中建立該動態(tài)變量,為該動態(tài)變量賦值,以及在不解析此用數(shù)據(jù)語言描述并包含該動態(tài)變量的指令的情況下更新該動態(tài)變量的值。也可通過創(chuàng)建與該動態(tài)值相關(guān)聯(lián)的對象來更新動態(tài)變量,其中該對象決定該動態(tài)變量的值。進一步地,可以將函數(shù)值的觀測與該動態(tài)變量相關(guān)聯(lián),并在函數(shù)值發(fā)生變化時給予該對象通知。
文檔編號G06F9/45GK101185062SQ200680018995
公開日2008年5月21日 申請日期2006年5月31日 優(yōu)先權(quán)日2005年5月31日
發(fā)明者N·C·布魯克, N·克萊瑞, S·G·布特林 申請人:高通股份有限公司