專利名稱:應(yīng)用的高效壓縮的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件應(yīng)用。更具體地,本發(fā)明涉及應(yīng)用的高效壓縮。
背景技術(shù):
某些計算設(shè)備的資源可能是極有限的。常見示例包括諸如移動電話和個人數(shù)字助 理(PDA)之類的移動設(shè)備。例如,支持Java應(yīng)用的移動設(shè)備可能僅允許安裝直到給定大小 的Java應(yīng)用。Java應(yīng)用包括分布在經(jīng)壓縮的容器文件(稱為Java ARchive或JAR文件的 壓縮文件)中的多個文件。JAR文件包含用于Java應(yīng)用的類文件和數(shù)據(jù)文件。JAR格式基 于流行的ZIP文件格式。高效JAR壓縮是極必要的,因為其減少了下載Java應(yīng)用所占用的 帶寬量并且還減少了應(yīng)用在其被操作的設(shè)備上的占用資源(footprint)。假設(shè)設(shè)備具有300千字節(jié)的JAR大小限制。還假設(shè)應(yīng)用的文件共計500千字節(jié),但 是,當(dāng)被壓縮為JAR文件時僅產(chǎn)生了 300千字節(jié)的大小。因此,設(shè)備將接受經(jīng)壓縮的應(yīng)用。 這產(chǎn)生了 500/300或5/3的壓縮比。如果壓縮比更好,比如說2/1,則應(yīng)用的擴(kuò)展版本,例如 添加了廣告的占用600千字節(jié)的版本可以被創(chuàng)建,因為該應(yīng)用可以仍然被壓縮為300千字 節(jié)。更高效的壓縮算法可以用來獲得更好的壓縮比。然而,這將破壞設(shè)備兼容性,因為目標(biāo) 設(shè)備僅支持標(biāo)準(zhǔn)JAR壓縮算法,因此不能夠解壓縮由更高效算法輸出的任何數(shù)據(jù)。因此,提 高標(biāo)準(zhǔn)JAR壓縮算法的壓縮比是更可取的。
發(fā)明內(nèi)容
在一個實施例中,一種用于向應(yīng)用插入廣告的方法包括從第一輸入可執(zhí)行文件 移除第一應(yīng)用代碼并將其置于輸出可執(zhí)行文件中,其中,第一應(yīng)用代碼表示應(yīng)用的一部分。 然后,第一組代理被插入第一輸入可執(zhí)行文件中,其中,第一組代理(proxy)在運(yùn)行時調(diào)用 第一應(yīng)用代碼。第二應(yīng)用代碼被添加到輸出可執(zhí)行文件中,其中,第二應(yīng)用代碼表示可執(zhí)行 來顯示廣告的代碼。壓縮輸出可執(zhí)行文件。然后,第一輸入可執(zhí)行文件和輸出可執(zhí)行文件 被提供給設(shè)備,以使得設(shè)備可以載入并執(zhí)行這些文件。
圖1是圖示出根據(jù)本發(fā)明一個實施例的用于向應(yīng)用插入廣告的方法的流程圖。圖2是圖示出根據(jù)本發(fā)明另一實施例的用于向應(yīng)用插入廣告的方法的流程圖。圖3是圖示出根據(jù)本發(fā)明另一實施例的用于向移動設(shè)備遞送廣告的方法的流程 圖。圖4是圖示出根據(jù)本發(fā)明另一實施例的用于在移動設(shè)備上運(yùn)行具有廣告的應(yīng)用 的方法的流程圖。圖5是圖示出可被本發(fā)明各個實施例采用的平臺中的一些的示例性網(wǎng)絡(luò)示圖。
具體實施例方式現(xiàn)在將詳細(xì)參考包括由發(fā)明人構(gòu)想出的用于實現(xiàn)本發(fā)明的最佳模式的本發(fā)明的 具體實施例。在附圖中圖示出了這些具體實施例的示例。雖然本發(fā)明結(jié)合這些具體實施例 來描述,然而將明白,不旨在將本發(fā)明局限于所描述的實施例。相反,旨在涵蓋可能包括在 如所附權(quán)利要求所限定的本發(fā)明的精神和范圍內(nèi)的替代、修改和等同物。在下面的描述中, 闡述了具體細(xì)節(jié)以提供對本發(fā)明的透徹理解。沒有所有或一些這些具體細(xì)節(jié)也可以實踐本 發(fā)明。另外,可能不對公知的特征進(jìn)行詳細(xì)描述以避免不必要地使本發(fā)明模糊。根據(jù)本發(fā)明,可以利用各種類型的操作系統(tǒng)、計算平臺、計算機(jī)程序和/或通用機(jī) 器來實現(xiàn)組件、處理步驟和/或數(shù)據(jù)結(jié)構(gòu)。另外,本領(lǐng)域普通技術(shù)人員將認(rèn)識到,在不脫離 這里描述的發(fā)明概念的范圍和精神的情況下,也可以使用具有不太通用的性質(zhì)的設(shè)備,例 如硬連線設(shè)備、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)等。在本發(fā)明的實施例中,廣告被植入包含一個或多個分別被壓縮的可執(zhí)行文件的應(yīng) 用中。例如,在Java應(yīng)用的情況中,廣告可被植入JAR文件中。當(dāng)用戶例如在移動電話上 啟動該Java應(yīng)用時,廣告消息可以在應(yīng)用運(yùn)行之前、期間或之后出現(xiàn)。在一個示例中,廣告 作為與電視廣告類似的短視頻出現(xiàn)。在另一示例中,廣告在應(yīng)用本身的操作期間作為圖形 廣告出現(xiàn),例如沿著應(yīng)用頂部或底部的橫幅廣告。在應(yīng)用是游戲程序的情況中,廣告可以被嵌入到游戲體驗本身中而出現(xiàn)。因此,例 如,如果游戲涉及人物跑著穿過城市,則廣告可以作為圖形廣告出現(xiàn)在城市中的建筑側(cè)面上。廣告可以通過Java代碼來呈現(xiàn),該Java代碼被添加到應(yīng)用的JAR中并且被掛鉤 (hook)到應(yīng)用的代碼中。然而,作為添加該代碼的結(jié)果,由JAR表示的經(jīng)壓縮應(yīng)用文件的集 合可能增大為超過設(shè)備所支持的最大JAR大小。例如,如果設(shè)備具有300千字節(jié)的JAR大 小限制并且原始JAR文件的大小已經(jīng)為300千字節(jié),則添加20千字節(jié)的廣告代碼將導(dǎo)致設(shè) 備不能運(yùn)行得到的實現(xiàn)了廣告的Java應(yīng)用。這樣,本發(fā)明的實施例利用了如下事實一般而言,大文件比小文件壓縮得更好。 假設(shè)存在內(nèi)容類似的文件A、B和C。文件X可以是文件A、B和C的串接。因此,X的大小 簡單地是文件A、B和C的大小之和。然而,壓縮文件X'的大小比壓縮文件A'、B'和C' 的大小之和要小。這是因為壓縮包括去除冗余。由于A、B和C的內(nèi)容類似,因此A的各部 分也將出現(xiàn)在B和C中。因此,與各自單獨(dú)被獲取的A、B和C相比,一起被獲取的A、B和C 包含更多的冗余。諸如JAR文件之類的壓縮應(yīng)用文件通常包含多個文件,其中每個文件分別被壓 縮。Java應(yīng)用示例中的許多文件是Java類文件,即文件的內(nèi)容是類似的。這樣,本發(fā)明的 實施例將應(yīng)用的每個Java類文件的大的部分與包含用于將廣告顯示為單個類文件的代碼 的每個Java類文件的大的部分組合起來。假設(shè)存在兩個輸入類文件A和B。出于簡化,假定A僅包含單個方法Method-A,該 方法包括數(shù)目X個指令(instruction)Method-AO{Instruction-A-I ;Instruction-A-2 ;
…Instruction-A-x ;}B包含另一單個方法,這里Method-B包括數(shù)目y個指令Method - B (){Instruction-B-I ;Instruction-B-2 ;…Instruction-B-y ;}本發(fā)明的實施例隨后創(chuàng)建包含這兩種方法的新的類X。因此,X看起來將像如下這 樣Method - A (){Instruction-A-I ;Instruction-A-2 ;…Instruction-A-x ;}Method-B(){Instruction-B-I ;Instruction-B-2 ;…Instruction-B-y ;}為了保持該代碼的功能,本發(fā)明的實施例將保持所輸入的類文件但是用代理取代 原始方法。為此,將重寫類文件A中的Method-A和類文件B中的Method-B以在經(jīng)組合的 類文件X中分別調(diào)用Method-A和Method-B。于是重寫的文件A表現(xiàn)為如下這樣Method - A (){X. Method-AO ;}而重寫的文件B表現(xiàn)為如下這樣Method - B (){X. Method-B ();}
本發(fā)明可被擴(kuò)展為覆蓋任意數(shù)目個輸入類文件。此外,其也可應(yīng)用于顯示廣告的 類文件。在創(chuàng)建了輸出類文件之后,從應(yīng)用的輸入類文件拷貝來的所包含代碼被編組 (instrument)為調(diào)用從顯示廣告的類文件拷貝來的代碼。因此,調(diào)用觸發(fā)廣告在應(yīng)用中的 所希望位置處并且在應(yīng)用生命周期中的所希望時間點處呈現(xiàn)。作為示例,當(dāng)前的技術(shù)狀態(tài) 包括基于控制流和數(shù)據(jù)流分析的方法,這些方法可適用于實現(xiàn)這種變換。提高經(jīng)壓縮可執(zhí)行文件的壓縮比允許被添加到原始應(yīng)用中的代碼將廣告顯示為 功能上更豐富。利用此的一種方式是提高廣告呈現(xiàn)的健壯性(robustness)。在許多移動設(shè) 備對可安裝應(yīng)用的大小施加了限制的同時,資源約束也出現(xiàn)在應(yīng)用運(yùn)行時間上。通常,可用 的堆(heap)存儲器的量較小并且執(zhí)行應(yīng)用的CPU不是非常強(qiáng)大。就此而言,廣告的顯示不 與原始應(yīng)用競爭諸如堆存儲器或CPU周期之類的稀有資源可能是重要的。當(dāng)在應(yīng)用開始時示出廣告時,負(fù)責(zé)呈現(xiàn)廣告的新被插入的代碼將在任何其它代碼 之前執(zhí)行,自由使用其所需要的所有資源,并且隨后調(diào)用原始應(yīng)用的代碼。然而,在應(yīng)用結(jié) 束時示出廣告可能是更大的挑戰(zhàn)。在此情況中,使原始應(yīng)用退出的代碼將轉(zhuǎn)而被觸發(fā)對廣 告的呈現(xiàn)的代碼取代。然而,在此時間點時,應(yīng)用可能仍然持有資源,例如,其線程可能仍然 在后臺運(yùn)行或者存儲器可能仍然被分配,這是因為應(yīng)用在退出時通常依賴于由操作系統(tǒng)自 動收回資源。因此,向原始應(yīng)用添加如下的代碼是可取的,該代碼跟蹤資源使用并在廣告在 應(yīng)用結(jié)束時被示出之前釋放任何所分配資源。平衡利用所添加代碼的另一方式是增加用戶體驗。在不用所公開的優(yōu)化的情況 下,應(yīng)用可能僅具有留給呈現(xiàn)僅包含靜態(tài)圖像的簡單廣告的代碼的空間。附加空間可以允 許添加實現(xiàn)虛擬機(jī)的代碼。于是廣告的呈現(xiàn)相當(dāng)于解譯(interpret)程序。廣告設(shè)計者將 利用這樣的編程語言來創(chuàng)作廣告程序,該編程語音例如通過提供用于顯示、縮放、旋轉(zhuǎn)或移 動圖像、播放聲音等的命令來明確地定向(target)廣告創(chuàng)建。此外,可由響應(yīng)于用戶輸入 有條件地執(zhí)行代碼的編程語言結(jié)構(gòu)來支持交互性。更豐富的功能還可以包括實現(xiàn)作為對在應(yīng)用中呈現(xiàn)廣告的補(bǔ)充的數(shù)字版權(quán)管理 (DRM)。DRM例如可用來迫使用戶每十次播放就連接到因特網(wǎng)并下載新的廣告。替代地,可 以限制用戶可以播放由廣告提供資金的游戲版本的次數(shù)。在達(dá)到限制之后,用戶必須獲取 全付費(fèi)版本的游戲以繼續(xù)玩耍。作為針對原始應(yīng)用的作者的附加服務(wù),可以添加這樣的代碼,其截獲應(yīng)用的崩潰 (crash),收集與崩潰時應(yīng)用的狀態(tài)有關(guān)的信息,并且經(jīng)由因特網(wǎng)將信息發(fā)送給服務(wù)器。應(yīng) 用的作者隨后可以訪問該信息并且洞察崩潰背后的的原因。替代地,信息可以存儲在設(shè)備 上并且僅在后來的時間點被發(fā)送,因為設(shè)備在應(yīng)用崩潰之后可能不會立即處于穩(wěn)定狀況。圖1是圖示出根據(jù)本發(fā)明一個實施例的用于向應(yīng)用插入廣告的方法的流程圖。方 法中的每個步驟可以用硬件、軟件或其任何組合來體現(xiàn)。在100處,第一應(yīng)用代碼從第一輸 入可執(zhí)行文件被移除并被置于輸出可執(zhí)行文件中,其中,第一輸入可執(zhí)行文件是應(yīng)用的一 部分。在102處,第一組代理被插入第一輸入可執(zhí)行文件中以取代被移除代碼,其中,第一 組代理在運(yùn)行時調(diào)用第一應(yīng)用代碼(現(xiàn)在位于輸出可執(zhí)行文件中)。在104處,第二應(yīng)用代 碼被添加到輸出可執(zhí)行文件中,其中,第二應(yīng)用代碼包括可執(zhí)行來顯示廣告的代碼并且第 二應(yīng)用代碼在應(yīng)用的外面。在106處,第一輸入可執(zhí)行文件被壓縮。在108處,輸出可執(zhí)行文件被壓縮。在110處,第一輸入可執(zhí)行文件和輸出可執(zhí)行文件被提供給設(shè)備以使得設(shè)備 可以載入并執(zhí)行它們。例如,第一可執(zhí)行文件和輸出可執(zhí)行文件可被客戶端計算機(jī)下載并 且被載入處理器可訪問的存儲設(shè)備中。第一輸入可執(zhí)行文件和輸出可執(zhí)行文件在Java應(yīng) 用場合中例如可以是JAR文件。設(shè)備可以是移動設(shè)備,例如移動電話或個人數(shù)字助理。設(shè) 備的資源可能是有限的,從而使得如果第一應(yīng)用代碼被置于第一壓縮文件中并且第二應(yīng)用 代碼被置于第二壓縮文件中,則該設(shè)備將不能夠運(yùn)行第一和第二壓縮文件。于是,得到的文 件產(chǎn)生了比原始文件更好的壓縮比,這是因為將代碼組合為單個輸出文件導(dǎo)致了每個文件 更多的冗余,這些冗余將被JAR或類似JAR的壓縮方案(即與其它文件分開地處理每個文 件的方案)所利用。圖2是圖示出根據(jù)本發(fā)明另一實施例的用于向應(yīng)用插入廣告的方法的流程圖。方 法中的每個步驟可以用硬件、軟件或其任何組合來體現(xiàn)。在200處,第一應(yīng)用代碼從第一輸 入可執(zhí)行文件被移除并被置于輸出可執(zhí)行文件中,其中,第一輸入可執(zhí)行文件是應(yīng)用的一 部分。在202處,第一組代理被插入第一輸入可執(zhí)行文件中以取代被移除代碼,其中,第一 組代理在運(yùn)行時調(diào)用第一應(yīng)用代碼(現(xiàn)在位于輸出可執(zhí)行文件中)。在204處,第二應(yīng)用代 碼從第二輸入可執(zhí)行文件被移除并被置于輸出可執(zhí)行文件中,其中,第二應(yīng)用代碼包括可 執(zhí)行來顯示廣告的代碼并且第二輸入可執(zhí)行文件在應(yīng)用的外面。在206處,第二組代理被 插入第二輸入可執(zhí)行文件中以取代被移除代碼,其中,第二組代理在運(yùn)行時調(diào)用第二應(yīng)用 代碼(現(xiàn)在位于輸出可執(zhí)行文件中)。在208處,第一輸入可執(zhí)行文件被壓縮。在210處, 第二輸入可執(zhí)行文件被壓縮。在212處,輸出可執(zhí)行文件被壓縮。在214處,第一和第二輸 入可執(zhí)行文件以及輸出可執(zhí)行文件被提供給設(shè)備以使得該設(shè)備可以載入并執(zhí)行它們。例 如,第一和第二輸入可執(zhí)行文件以及輸出可執(zhí)行文件可以被客戶端計算機(jī)下載并被載入處 理器可訪問的存儲設(shè)備中。第一和第二輸入可執(zhí)行文件以及輸出可執(zhí)行文件在Java應(yīng)用 場合中例如可以是JAR文件。設(shè)備可以是移動設(shè)備,例如移動電話或個人數(shù)字助理。設(shè)備 的資源可能是有限的,從而使得如果第一應(yīng)用代碼被置于第一壓縮文件中并且第二應(yīng)用代 碼被置于第二壓縮文件中,則該設(shè)備將不能夠運(yùn)行第一和第二壓縮文件。于是,得到的文件 產(chǎn)生了比原始文件更好的壓縮比,這是因為將來自原始輸入文件的代碼組合為單個輸出文 件導(dǎo)致了每個文件更多的冗余,這些冗余將被JAR或類似JAR的壓縮方案(即與其它文件 分開地處理每個文件的方案)所利用。圖3是圖示出根據(jù)本發(fā)明另一實施例的用于向移動設(shè)備遞送廣告的方法的流程 圖。方法中的每個步驟可以用硬件、軟件或其任何組合來體現(xiàn)。在300處,輸出可執(zhí)行文件 被壓縮,其中,輸出可執(zhí)行文件包含被設(shè)計來執(zhí)行應(yīng)用的第一應(yīng)用代碼以及被設(shè)計來顯示 廣告的第二應(yīng)用代碼。在302處,第一輸入可執(zhí)行文件被壓縮,其中,第一輸入可執(zhí)行文件 包含針對輸出可執(zhí)行文件中的第一應(yīng)用代碼的方法調(diào)用(method call)。在304處,第二輸 入可執(zhí)行文件被壓縮,其中,第二輸入可執(zhí)行文件包含針對輸出可執(zhí)行文件中的第二應(yīng)用 代碼的方法調(diào)用。第一和第二輸入可執(zhí)行文件以及輸出可執(zhí)行文件在Java應(yīng)用場合中例 如可以是JAR文件。在306處,第一和第二輸入可執(zhí)行文件以及輸出可執(zhí)行文件被遞送給 移動設(shè)備。例如,第一和第二輸入可執(zhí)行文件以及輸出可執(zhí)行文件可以被客戶端計算機(jī)下 載并被載入處理器可訪問的存儲設(shè)備中。設(shè)備例如可以是移動電話或個人數(shù)字助理。設(shè)備 的資源可能是有限的,從而使得如果第一應(yīng)用代碼被置于第一壓縮文件中并且第二應(yīng)用代碼被置于第二壓縮文件中,則該設(shè)備將不能夠運(yùn)行第一和第二壓縮文件。圖4是圖示出根據(jù)本發(fā)明另一實施例的用于在移動設(shè)備上運(yùn)行具有廣告的應(yīng)用 的方法的流程圖。方法中的每個步驟可以用硬件、軟件或其任何組合來體現(xiàn)。在400處,第 一和第二壓縮輸入可執(zhí)行文件以及壓縮輸出可執(zhí)行文件可以被接收。應(yīng)當(dāng)注意,盡管這三 個文件被描述為在單個步驟中,實際上,為了解釋權(quán)利要求的目的,第一和第二壓縮輸入可 執(zhí)行文件以及壓縮輸出可執(zhí)行文件可在不同時間和/或在不同事務(wù)處理(transaction)中 被接收。在402處,第一輸入可執(zhí)行文件被運(yùn)行,其中,第一輸入可執(zhí)行文件包含當(dāng)被執(zhí)行 時調(diào)用輸出可執(zhí)行文件中的第一方法的第一組代理,其中,第一方法表示應(yīng)用的一部分。在 404處,第二輸入可執(zhí)行文件被運(yùn)行,其中,第二輸入可執(zhí)行文件包含當(dāng)被執(zhí)行時調(diào)用輸出 可執(zhí)行文件中的第二方法的第二組代理,其中,第二方法表示呈現(xiàn)廣告的代碼的一部分。應(yīng) 當(dāng)注意,短語“應(yīng)用的一部分”將被解釋為是指應(yīng)用的任何部分,包括整個應(yīng)用本身。換言 之,當(dāng)?shù)诙椒ū贿\(yùn)行時,廣告被顯示給用戶。設(shè)備例如可以是移動電話或個人數(shù)字助理。 設(shè)備的資源可能是有限的,從而使得如果第一應(yīng)用代碼被置于第一壓縮文件中并且第二應(yīng) 用代碼被置于第二壓縮文件中,則該設(shè)備將不能夠運(yùn)行第一和第二壓縮文件。應(yīng)當(dāng)注意,本發(fā)明的實施例可以在其中服務(wù)結(jié)果的呈現(xiàn)是有用功能的任何網(wǎng)絡(luò)拓 撲中以及任何計算平臺上實現(xiàn)。例如,如圖5所示,構(gòu)想出了本發(fā)明在如下的網(wǎng)絡(luò)中實現(xiàn)的 實現(xiàn)方式,該網(wǎng)絡(luò)包括個人計算機(jī)502、媒體計算平臺503(例如,具有導(dǎo)航和記錄能力的線 纜和衛(wèi)星機(jī)頂盒(例如,Tivo))、手持計算設(shè)備(例如PDA) 504、蜂窩電話506,或者任何其 它類型的便攜式通信平臺。這些設(shè)備的用戶可以導(dǎo)航網(wǎng)絡(luò)并且從代理服務(wù)器請求流傳輸視 頻。用戶可以利用諸如504和506之類的移動設(shè)備來執(zhí)行客戶端側(cè)宏指令(macro)并且/ 或者請求服務(wù)器運(yùn)行服務(wù)器側(cè)宏指令。代理服務(wù)器508(或多種計算平臺中的任一者)可 以包括存儲器、處理器和通信組件,于是可以利用上述的各種技術(shù)。代理服務(wù)器508的處理 器可以被配置為例如運(yùn)行圖1-4中描述的所有處理。服務(wù)器508可被耦合到數(shù)據(jù)庫510,數(shù) 據(jù)庫510存儲與文件的壓縮有關(guān)的信息。應(yīng)用例如可以作為瀏覽器或其它應(yīng)用的一部分駐 留在這些設(shè)備上,或者從遠(yuǎn)程站點,例如在網(wǎng)頁中被提供。本發(fā)明還可以在廣泛種類的網(wǎng)絡(luò) 環(huán)境(由網(wǎng)絡(luò)512表示的,例如基于TCP/IP的網(wǎng)絡(luò)、電信網(wǎng)絡(luò)、無線網(wǎng)絡(luò)等)中被實踐。本 發(fā)明還可以作為可由計算機(jī)讀取的一系列指令而被有形地體現(xiàn)在一個或多個程序存儲設(shè) 備中(即,計算機(jī)可讀介質(zhì)中)。盡管已參考本發(fā)明的具體實施例詳細(xì)地示出并描述了本發(fā)明,然而本領(lǐng)域技術(shù)人 員將明白,在不脫離本發(fā)明的精神和范圍的情況下可以對所公開的實施例的形式和細(xì)節(jié)作 出改變。另外,盡管已參考各個實施例在此描述了本發(fā)明的各個優(yōu)點、方面和目的,然而將 明白,不應(yīng)當(dāng)通過參考這些優(yōu)點、方面和目的來限制本發(fā)明的范圍。而是,本發(fā)明的范圍應(yīng) 當(dāng)參考所附權(quán)利要求來確定。
權(quán)利要求
一種用于向應(yīng)用插入廣告的方法,該方法包括從第一輸入可執(zhí)行文件移除第一應(yīng)用代碼并將其置于輸出可執(zhí)行文件中;將第一組代理插入所述第一輸入可執(zhí)行文件中,其中,所述第一組代理在運(yùn)行時調(diào)用所述第一應(yīng)用代碼;將第二應(yīng)用代碼添加到所述輸出可執(zhí)行文件中,其中,所述第二應(yīng)用代碼表示可執(zhí)行來顯示所述廣告的代碼;壓縮所述輸出可執(zhí)行文件;以及將所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí)行文件以及所述輸出可執(zhí)行文件提供給設(shè)備,以使得所述設(shè)備可以載入并執(zhí)行所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí)行文件以及所述輸出可執(zhí)行文件。
2.如權(quán)利要求1所述的方法,其中,所述設(shè)備是移動電話。
3.如權(quán)利要求1所述的方法,其中,所述設(shè)備是個人數(shù)字助理。
4.如權(quán)利要求1所述的方法,其中,所述設(shè)備是資源有限的,從而使得如果所述第一應(yīng) 用代碼被置于第一壓縮文件中并且所述第二應(yīng)用代碼被置于第二壓縮文件中,則所述設(shè)備 將不能夠運(yùn)行所述第一壓縮文件和所述第二壓縮文件。
5.如權(quán)利要求1所述的方法,還包括在所述提供之前壓縮所述第一輸入可執(zhí)行文件。
6.一種用于向應(yīng)用插入廣告的方法,該方法包括從第一輸入可執(zhí)行文件移除第一應(yīng)用代碼并將其置于輸出可執(zhí)行文件中; 將第一組代理插入所述第一輸入可執(zhí)行文件中,其中,所述第一組代理在運(yùn)行時調(diào)用 所述第一應(yīng)用代碼;從第二輸入可執(zhí)行文件移除第二應(yīng)用代碼并將其置于所述輸出可執(zhí)行文件中,其中, 所述第二應(yīng)用代碼表示可執(zhí)行來顯示所述廣告的代碼;將第二組代理插入所述第二輸入可執(zhí)行文件中,其中,所述第二組代理在運(yùn)行時調(diào)用 所述第二應(yīng)用代碼;壓縮所述輸出可執(zhí)行文件;以及將所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí)行文件以及所述輸出可執(zhí)行文件提 供給設(shè)備,以使得所述設(shè)備可以載入并執(zhí)行所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí) 行文件以及所述輸出可執(zhí)行文件。
7.如權(quán)利要求6所述的方法,其中,所述設(shè)備是資源有限的,從而使得如果所述第一應(yīng) 用代碼被置于第一壓縮文件中并且所述第二應(yīng)用代碼被置于第二壓縮文件中,則所述設(shè)備 將不能夠運(yùn)行所述第一壓縮文件和所述第二壓縮文件。
8.一種用于向設(shè)備遞送應(yīng)用的方法,所述方法包括從第一輸入可執(zhí)行文件移除第一應(yīng)用代碼并將其置于輸出可執(zhí)行文件中; 將第一組代理插入所述第一輸入可執(zhí)行文件中,其中,所述第一組代理在運(yùn)行時調(diào)用 所述第一應(yīng)用代碼;從第二輸入可執(zhí)行文件移除第二應(yīng)用代碼并將其置于所述輸出可執(zhí)行文件中; 將第二組代理插入所述第二輸入可執(zhí)行文件中,其中,所述第二組代理在運(yùn)行時調(diào)用 所述第二應(yīng)用代碼;壓縮所述輸出可執(zhí)行文件;以及將所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí)行文件以及所述輸出可執(zhí)行文件提 供給設(shè)備,以使得所述設(shè)備可以載入并執(zhí)行所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí) 行文件以及所述輸出可執(zhí)行文件。
9.如權(quán)利要求8所述的方法,其中,所述設(shè)備是資源有限的,從而使得如果所述第一應(yīng) 用代碼被置于第一壓縮文件中并且所述第二應(yīng)用代碼被置于第二壓縮文件中,則所述設(shè)備 將不能夠運(yùn)行所述第一壓縮文件和所述第二壓縮文件。
10.一種用于向移動設(shè)備遞送廣告的方法,所述方法包括壓縮輸出可執(zhí)行文件,其中,所述輸出可執(zhí)行文件包含被設(shè)計來執(zhí)行應(yīng)用的第一應(yīng)用 代碼以及被設(shè)計來顯示廣告的第二應(yīng)用代碼;壓縮第一輸入可執(zhí)行文件,其中,所述第一輸入可執(zhí)行文件包含針對所述輸出可執(zhí)行 文件中的所述第一應(yīng)用代碼的方法調(diào)用;壓縮第二輸入可執(zhí)行文件,其中,所述第二輸入可執(zhí)行文件包含針對所述輸出可執(zhí)行 文件中的所述第二應(yīng)用代碼的方法調(diào)用;以及將所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí)行文件以及所述輸出可執(zhí)行文件遞 送給所述移動設(shè)備。
11.一種用于在移動設(shè)備上運(yùn)行具有廣告的應(yīng)用的方法,該方法包括接收經(jīng)壓縮的第一輸入可執(zhí)行文件和第二輸入可執(zhí)行文件以及經(jīng)壓縮的輸出可執(zhí)行 文件;運(yùn)行所述第一輸入可執(zhí)行文件,其中,所述輸入可執(zhí)行文件包含當(dāng)被執(zhí)行時調(diào)用所述 輸出可執(zhí)行文件中的第一方法的第一組代理,其中,所述第一方法表示所述應(yīng)用的一部分; 以及運(yùn)行所述第二輸入可執(zhí)行文件,其中,所述第二輸入可執(zhí)行文件包含當(dāng)被執(zhí)行時調(diào)用 所述輸出可執(zhí)行文件中的第二方法的第二組代理,其中,所述第二方法表示呈現(xiàn)所述廣告 的代碼的一部分。
12.如權(quán)利要求11所述的方法,其中,所述移動設(shè)備是資源有限的,從而使得如果所述 第一方法被置于第一壓縮文件中并且所述第二方法被置于第二壓縮文件中,則所述設(shè)備將 不能夠運(yùn)行所述第一壓縮文件和所述第二壓縮文件。
13.一種用于向移動設(shè)備遞送廣告的裝置,該裝置包括 接口 ;以及一個或多個處理器,被配置為執(zhí)行下面的步驟壓縮輸出可執(zhí)行文件,其中,所述輸出可執(zhí)行文件包含被設(shè)計來執(zhí)行應(yīng)用的第一應(yīng)用 代碼以及被設(shè)計來顯示廣告的第二應(yīng)用代碼;壓縮第一輸入可執(zhí)行文件,其中,所述第一輸入可執(zhí)行文件包含針對所述輸出可執(zhí)行 文件中的所述第一應(yīng)用代碼的方法調(diào)用;壓縮第二輸入可執(zhí)行文件,其中,所述第二輸入可執(zhí)行文件包含針對所述輸出可執(zhí)行 文件中的所述第二應(yīng)用代碼的方法調(diào)用;以及將所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí)行文件以及所述輸出可執(zhí)行文件遞 送給所述移動設(shè)備。
14.如權(quán)利要求13所述的裝置,其中,所述設(shè)備是移動電話。
15.如權(quán)利要求13所述的裝置,其中,所述設(shè)備是個人數(shù)字助理。
16.如權(quán)利要求13所述的裝置,其中,所述設(shè)備是資源有限的,從而使得如果所述第一 應(yīng)用代碼被置于第一壓縮文件中并且所述第二應(yīng)用代碼被置于第二壓縮文件中,則所述設(shè) 備將不能夠運(yùn)行所述第一壓縮文件和所述第二壓縮文件。
17.—種移動設(shè)備,包括接口 ;以及一個或多個處理器,被配置為執(zhí)行下面的步驟接收經(jīng)壓縮的第一輸入可執(zhí)行文件和第二輸入可執(zhí)行文件以及經(jīng)壓縮的輸出可執(zhí)行 文件;運(yùn)行所述第一輸入可執(zhí)行文件,其中,所述輸入可執(zhí)行文件包含當(dāng)被執(zhí)行時調(diào)用所述 輸出可執(zhí)行文件中的第一方法的第一組代理,其中,所述第一方法表示所述應(yīng)用的一部分; 以及運(yùn)行所述第二輸入可執(zhí)行文件,其中,所述第二輸入可執(zhí)行文件包含當(dāng)被執(zhí)行時調(diào)用 所述輸出可執(zhí)行文件中的第二方法的第二組代理,其中,所述第二方法表示呈現(xiàn)所述廣告 的代碼的一部分。
18.如權(quán)利要求17所述的移動設(shè)備,其中,所述移動設(shè)備是資源有限的,從而使得如果 所述第一方法被置于第一壓縮文件中并且所述第二方法被置于第二壓縮文件中,則所述設(shè) 備將不能夠運(yùn)行所述第一壓縮文件和所述第二壓縮文件。
19.一種用于向應(yīng)用插入廣告的方法,該方法包括從第一輸入可執(zhí)行文件移除第一應(yīng)用代碼并將其置于輸出可執(zhí)行文件中;將第一組代理插入所述第一輸入可執(zhí)行文件中,其中,所述第一組代理在運(yùn)行時調(diào)用 所述第一應(yīng)用代碼;將第二應(yīng)用代碼添加到所述輸出可執(zhí)行文件中,其中,所述第二應(yīng)用代碼表示可執(zhí)行 來顯示所述廣告的代碼;壓縮所述輸出可執(zhí)行文件;以及將所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí)行文件以及所述輸出可執(zhí)行文件提 供給設(shè)備,以使得所述設(shè)備可以載入并執(zhí)行所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí) 行文件以及所述輸出可執(zhí)行文件。
20.如權(quán)利要求19所述的方法,其中,所述設(shè)備是移動電話。
21.如權(quán)利要求19-20中任一項所述的方法,其中,所述設(shè)備是個人數(shù)字助理。
22.如權(quán)利要求19-21中任一項所述的方法,其中,所述設(shè)備是資源有限的,從而使得 如果所述第一應(yīng)用代碼被置于第一壓縮文件中并且所述第二應(yīng)用代碼被置于第二壓縮文 件中,則所述設(shè)備將不能夠運(yùn)行所述第一壓縮文件和所述第二壓縮文件。
23.如權(quán)利要求19-22中任一項所述的方法,還包括在所述提供之前壓縮所述第一輸 入可執(zhí)行文件。
24.一種用于向應(yīng)用插入廣告的方法,該方法包括從第一輸入可執(zhí)行文件移除第一應(yīng)用代碼并將其置于輸出可執(zhí)行文件中;將第一組代理插入所述第一輸入可執(zhí)行文件中,其中,所述第一組代理在運(yùn)行時調(diào)用 所述第一應(yīng)用代碼;從第二輸入可執(zhí)行文件移除第二應(yīng)用代碼并將其置于所述輸出可執(zhí)行文件中,其中, 所述第二應(yīng)用代碼表示可執(zhí)行來顯示所述廣告的代碼;將第二組代理插入所述第二輸入可執(zhí)行文件中,其中,所述第二組代理在運(yùn)行時調(diào)用 所述第二應(yīng)用代碼;壓縮所述輸出可執(zhí)行文件;以及將所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí)行文件以及所述輸出可執(zhí)行文件提 供給設(shè)備,以使得所述設(shè)備可以載入并執(zhí)行所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí) 行文件以及所述輸出可執(zhí)行文件。
25.如權(quán)利要求19-24中任一項所述的方法,其中,所述設(shè)備是資源有限的,從而使得 如果所述第一應(yīng)用代碼被置于第一壓縮文件中并且所述第二應(yīng)用代碼被置于第二壓縮文 件中,則所述設(shè)備將不能夠運(yùn)行所述第一壓縮文件和所述第二壓縮文件。
26.一種用于向移動設(shè)備遞送廣告的裝置,該裝置包括接口 ;以及一個或多個處理器,被配置為執(zhí)行下面的步驟壓縮輸出可執(zhí)行文件,其中,所述輸出可執(zhí)行文件包含被設(shè)計來執(zhí)行應(yīng)用的第一應(yīng)用 代碼以及被設(shè)計來顯示廣告的第二應(yīng)用代碼;壓縮第一輸入可執(zhí)行文件,其中,所述第一輸入可執(zhí)行文件包含針對所述輸出可執(zhí)行 文件中的所述第一應(yīng)用代碼的方法調(diào)用;壓縮第二輸入可執(zhí)行文件,其中,所述第二輸入可執(zhí)行文件包含針對所述輸出可執(zhí)行 文件中的所述第二應(yīng)用代碼的方法調(diào)用;以及將所述第一輸入可執(zhí)行文件和所述第二輸入可執(zhí)行文件以及所述輸出可執(zhí)行文件遞 送給所述移動設(shè)備。
27.如權(quán)利要求26所述的裝置,其中,所述設(shè)備是移動電話。
28.如權(quán)利要求26-27中任一項所述的裝置,其中,所述設(shè)備是個人數(shù)字助理。
29.如權(quán)利要求26-28中任一項所述的裝置,其中,所述設(shè)備是資源有限的,從而使得 如果所述第一應(yīng)用代碼被置于第一壓縮文件中并且所述第二應(yīng)用代碼被置于第二壓縮文 件中,則所述設(shè)備將不能夠運(yùn)行所述第一壓縮文件和所述第二壓縮文件。
全文摘要
在一個實施例中,一種用于向應(yīng)用插入廣告的方法包括從第一輸入可執(zhí)行文件移除第一應(yīng)用代碼并將其置于輸出可執(zhí)行文件中,其中,第一應(yīng)用代碼表示應(yīng)用的代碼部分。然后,第一組代理被插入第一輸入可執(zhí)行文件中,其中,第一組代理在運(yùn)行時調(diào)用第一應(yīng)用代碼。第二應(yīng)用代碼被添加到輸出可執(zhí)行文件中,其中,第二應(yīng)用代碼表示可執(zhí)行來顯示廣告的代碼。壓縮輸出可執(zhí)行文件。然后,第一輸入可執(zhí)行文件和輸出可執(zhí)行文件被提供給設(shè)備,以使得設(shè)備可以載入并執(zhí)行這些文件。
文檔編號G06Q30/00GK101946251SQ200980105305
公開日2011年1月12日 申請日期2009年1月14日 優(yōu)先權(quán)日2008年2月14日
發(fā)明者托馬斯·羅帕蒂克 申請人:雅虎公司