專利名稱:一種移動終端加載共享函數(shù)庫的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及應(yīng)用程序的運行,特別是涉及移動終端加載共享函數(shù)庫的方法和裝置。
背景技術(shù):
移動終端應(yīng)用程序的可下載是指,移動終端能支持將某些獨立的可選擇可替換的 軟件模塊并且將其下載到移動終端中以實現(xiàn)不同的擴(kuò)展功能。目前這種功能可擴(kuò)展性已被 看作"智能手機(jī)"的重要功能之一。本發(fā)明所稱的移動終端是指手機(jī)、個人數(shù)字助理(PDA, Personal Digital Assistant)等具有無線通訊功能的小型手持式移動通信設(shè)備。
通過將移動終端外部存儲(譬如手機(jī)擴(kuò)展卡)上的代碼和數(shù)據(jù)拷入內(nèi)存中運行解 決了非智能手機(jī)不能動態(tài)加載運行應(yīng)用程序的限制。但是應(yīng)用程序之間彼此獨立,而每個 應(yīng)用又由許多模塊組成,各模塊分別完成相對獨立的功能,它們彼此協(xié)作來完成整個軟件 系統(tǒng)的工作。其中可能存在一些模塊的功能較為通用,在不同的應(yīng)用中都會被使用。如果將 所有模塊的源代碼都靜態(tài)編譯到應(yīng)用程序中,會有兩個問題一是增加了應(yīng)用程序的大小, 不僅占用更多的磁盤空間,運行時也會消耗較大的內(nèi)存空間,造成系統(tǒng)資源的浪費;其二, 每次修改程序時都必須編譯所有源代碼,增加了編譯過程的復(fù)雜性。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的上述不足,本發(fā)明的一個目的是提供一種移動終端加載共享函數(shù)
庫的方法,可以將相對通用的模塊獨立編譯成共享函數(shù)庫。 本發(fā)明移動終端加載共享函數(shù)庫的方法,包括 步驟1 :將共享函數(shù)庫編譯成預(yù)定格式的共享函數(shù)庫文件A,所述共享函數(shù)庫至少 提供導(dǎo)入接口頭文件B; 步驟2 :將所述導(dǎo)入接口頭文件B解析成相應(yīng)的源文件C ; 步驟3 :將應(yīng)用程序D、導(dǎo)入接口頭文件B和源文件C 一起編譯成預(yù)定格式的文件 E ; 步驟4 :將所述共享函數(shù)庫文件A與所述文件E存儲在所述移動終端外部存儲裝 置中; 步驟5 :從所述移動終端外部存儲裝置中加載運行所述文件E,并加載所述共享函 數(shù)庫文件A。 作為上述技術(shù)方案的優(yōu)選,所述步驟5具體為 步驟51 :從所述移動終端外部存儲裝置中加載運行所述文件E ; 步驟52 :判斷是否需要調(diào)用所述共享函數(shù)庫文件A,若是,從所述移動終端外部存
儲裝置中加載所述共享函數(shù)庫文件A;若否,直接運行所述應(yīng)用程序D。 作為上述技術(shù)方案的優(yōu)選,該方法還包括 步驟6 :判斷是否需要卸載所述共享函數(shù)庫A,若是,則卸載所述共享函數(shù)庫A,若否,則運行應(yīng)用程序D。 作為上述技術(shù)方案的優(yōu)選,所述共享函數(shù)庫文件A還編譯成提供共享函數(shù)庫入口 處所創(chuàng)建的導(dǎo)出函數(shù)的名稱和/或地址映射表的格式。 作為上述技術(shù)方案的優(yōu)選,所述源文件C用于負(fù)責(zé)完成程序跳轉(zhuǎn)和上下文處理。
本發(fā)明的另一個目的是提供一種移動終端加載共享函數(shù)庫的裝置,包括
第一編譯模塊,用于將共享函數(shù)庫編譯成預(yù)定格式的共享函數(shù)庫文件A ;
解析模塊,用于將所述第一編譯模塊提供的導(dǎo)入接口頭文件B解析成相應(yīng)的源文 件C; 第二編譯模塊,用于將應(yīng)用程序D、第一編譯模塊提供的導(dǎo)入接口頭文件B和解析 模塊提供的源文件C 一起編譯成文件E ; 存儲模塊,用于將所述第一編譯模塊的共享函數(shù)庫文件A與所述第二編譯模塊編 譯的文件E存儲在所述移動終端外部存儲裝置中; 加載及運行模塊,用于從所述移動終端外部存儲裝置中加載運行所述編譯模塊的
文件E,并加載所述第一編譯模塊編譯的共享函數(shù)庫文件A。 作為上述技術(shù)方案的優(yōu)選,所述加載及運行模塊具體包括 第一加載模塊,用于從所述移動終端外部存儲裝置中加載運行所述第二編譯模塊 編譯的文件E; 第一判斷模塊,用于判斷是否需要調(diào)用所述共享函數(shù)庫文件A ; 第二加載模塊,用于從所述移動終端外部存儲裝置中加載所述共享函數(shù)庫A。 作為上述技術(shù)方案的優(yōu)選,該裝置還包括 第二判斷模塊,用于判斷是否需要卸載所述共享函數(shù)庫A ; 卸載模塊,用于當(dāng)所述第二判斷模塊的結(jié)果為是時,卸載所述共享函數(shù)庫A。 作為上述技術(shù)方案的優(yōu)選,所述第一編譯模塊還將共享函數(shù)庫文件A編譯成提供
共享函數(shù)庫入口處所創(chuàng)建的導(dǎo)出函數(shù)的名稱和/或地址映射表的格式。 作為上述技術(shù)方案的優(yōu)選,所述解析模塊中的源文件C用于負(fù)責(zé)完成程序跳轉(zhuǎn)和
上下文處理。 本發(fā)明構(gòu)建共享函數(shù)庫的方法和裝置,將相對通用的模塊獨立編譯成共享函數(shù) 庫,應(yīng)用程序在運行時可根據(jù)需要加載相應(yīng)的共享函數(shù)庫。因此可以縮減應(yīng)用程序的大小, 降低運行時消耗的內(nèi)存空間,避免不必要的資源浪費,尤其適用于嵌入式的環(huán)境。另外,在 修改程序時,也不必編譯所有的模塊,提高了程序的編譯速度。
圖1是本發(fā)明加載共享函數(shù)庫方法的一優(yōu)選實施例的流程圖;
圖2是本發(fā)明實施例的單元關(guān)系圖; 圖3是本發(fā)明加載共享函數(shù)庫方法的另一優(yōu)選實施例的流程圖;
圖4是本發(fā)明加載共享函數(shù)庫裝置的一優(yōu)選實施例的結(jié)構(gòu)簡圖;
圖5是本發(fā)明加載共享函數(shù)庫裝置的另一優(yōu)選實施例的結(jié)構(gòu)簡圖。
具體實施例方式
下面結(jié)合附圖,對本發(fā)明的具體實施方式
作進(jìn)一步的詳細(xì)說明。對于所屬技術(shù)領(lǐng) 域的技術(shù)人員而言,從對本發(fā)明的詳細(xì)說明中,本發(fā)明的上述和其他目的、特征和優(yōu)點將顯 而易見。 實施例1 本發(fā)明移動終端加載共享函數(shù)庫方法的優(yōu)選實施例的流程圖如圖1所示,其包 括 步驟1 :將共享函數(shù)庫編譯成預(yù)定格式的共享函數(shù)庫文件A,所述共享函數(shù)庫至少 提供導(dǎo)入接口頭文件B; 步驟2 :將所述導(dǎo)入接口頭文件B解析成相應(yīng)的源文件C ; 步驟3 :將應(yīng)用程序D、導(dǎo)入接口頭文件B和源文件C 一起編譯成預(yù)定格式的文件 E ; 步驟4 :將所述共享函數(shù)庫文件A與所述文件E存儲在所述移動終端外部存儲裝 置中; 步驟5 :從所述移動終端外部存儲裝置中加載運行所述文件E,并加載所述共享函 數(shù)庫文件A。 可以通過圖2所示的單元關(guān)系圖來實現(xiàn)本發(fā)明共享函數(shù)庫的編譯。
實施例2 本發(fā)明加載共享函數(shù)庫方法的另一優(yōu)選實施例的流程圖如圖3所示,其包括 步驟201 :先制作共享函數(shù)庫,并編譯成預(yù)定格式的共享函數(shù)庫文件A ; 其中,預(yù)定格式的共享函數(shù)庫文件A要提供所導(dǎo)出的函數(shù)的具體體現(xiàn)、與導(dǎo)出函
數(shù)相對應(yīng)的提供給應(yīng)用程序使用的導(dǎo)入接口頭文件B和共享函數(shù)庫入口處所創(chuàng)建的導(dǎo)出
函數(shù)的名稱與地址映射表。 步驟202 :使用文件生成工具將共享函數(shù)庫提供的導(dǎo)入接口頭文件B解析生成相 應(yīng)的源文件C ; 其中,源文件C主要負(fù)責(zé)完成程序跳轉(zhuǎn)和上下文處理。 步驟203 :應(yīng)用程序D、導(dǎo)入接口頭文件B和步驟202中生成的相應(yīng)的源文件C 一 起編譯成預(yù)定格式的文件E; 步驟204 :將共享函數(shù)庫A與步驟203中應(yīng)用程序編譯好的文件E放入移動終端 外部存儲(譬如手機(jī)擴(kuò)展卡)中; 步驟205 :用戶啟動加載應(yīng)用程序到移動終端;
步驟206 :裝載運行步驟203中編譯好的文件; 步驟207 :運行過程中判斷是否需要調(diào)用共享函數(shù)庫A,需要調(diào)用則執(zhí)行步驟208 ; 不需要調(diào)用共享函數(shù)庫則運行應(yīng)用程序(步驟211)即可;
步驟208 :裝載共享函數(shù)庫A ; 步驟209 :判斷是否需要卸載共享函數(shù)庫A,需要卸載則卸載共享函數(shù)庫A(步驟 210),不需要卸載則繼續(xù)運行應(yīng)用程序(步驟211); 步驟210 :卸載共享函數(shù)庫A ; 步驟211 :繼續(xù)運行應(yīng)用程序。
實施例3 本發(fā)明加載共享函數(shù)庫裝置的優(yōu)選實施例的結(jié)構(gòu)簡圖如圖4所示,其包括
第一編譯模塊31,用于將共享函數(shù)庫編譯成預(yù)定格式的共享函數(shù)庫文件A ;
解析模塊32,用于將所述第一編譯模塊提供的導(dǎo)入接口頭文件B解析成相應(yīng)的源 文件C; 第二編譯模塊33,用于將應(yīng)用程序D、第一編譯模塊提供的導(dǎo)入接口頭文件B和解 析模塊提供的源文件C 一起編譯成文件E ; 存儲模塊34,用于將所述第一編譯模塊的共享函數(shù)庫文件A與所述第二編譯模塊 編譯的文件E存儲在所述移動終端外部存儲裝置中; 加載及運行模塊35,用于從所述移動終端外部存儲裝置中加載運行所述編譯模塊 的文件E,并加載所述第一編譯模塊編譯的共享函數(shù)庫文件A。
實施例4 本發(fā)明加載共享函數(shù)庫裝置的另一優(yōu)選實施例的結(jié)構(gòu)簡圖如圖5所示,其包括相 互關(guān)聯(lián)的編譯單元4A和加載及運行單元4B。
其中,編譯單元4A具體包括 第一編譯模塊41,用于將共享函數(shù)庫編譯成預(yù)定格式的共享函數(shù)庫文件A ;
解析模塊42,用于將所述第一編譯模塊提供的導(dǎo)入接口頭文件B解析成相應(yīng)的源 文件C; 第二編譯模塊43,用于將應(yīng)用程序D、第一編譯模塊提供的導(dǎo)入接口頭文件B和解 析模塊提供的源文件C 一起編譯成文件E ; 存儲模塊44,用于將所述第一編譯模塊的共享函數(shù)庫文件A與所述第二編譯模塊 編譯的文件E存儲在所述移動終端外部存儲裝置中。
加載及運行單元4B具體包括 第一加載模塊45,用于從所述移動終端外部存儲裝置中加載運行所述第二編譯模 塊編譯的文件E; 第一判斷模塊46,用于判斷是否需要調(diào)用所述共享函數(shù)庫文件A ; 第二加載模塊47,用于從所述移動終端外部存儲裝置中加載所述共享函數(shù)庫A; 第二判斷模塊48,用于判斷是否需要卸載所述共享函數(shù)庫A ; 卸載模塊49,用于當(dāng)所述第二判斷模塊的結(jié)果為是時,卸載所述共享函數(shù)庫A。 本發(fā)明移動終端加載共享函數(shù)庫的方法和裝置,將相對通用的模塊獨立編譯成共
享函數(shù)庫,應(yīng)用程序在運行時可根據(jù)需要加載相應(yīng)的共享函數(shù)庫。因此可以縮減應(yīng)用程序
的大小,降低運行時消耗的內(nèi)存空間,避免不必要的資源浪費,尤其適用于嵌入式的環(huán)境。
另外,在修改程序時,也不必編譯所有的模塊,提高了程序的編譯速度。 應(yīng)當(dāng)理解,本發(fā)明雖然已通過以上實施例及其附圖而清楚說明,然而在不背離本 發(fā)明精神及其實質(zhì)的情況下,所屬技術(shù)領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的變 化和修正,但這些相應(yīng)的變化和修正都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
一種移動終端加載共享函數(shù)庫的方法,其特征在于,包括步驟1將共享函數(shù)庫編譯成預(yù)定格式的共享函數(shù)庫文件A,所述共享函數(shù)庫至少提供導(dǎo)入接口頭文件B;步驟2將所述導(dǎo)入接口頭文件B解析成相應(yīng)的源文件C;步驟3將應(yīng)用程序D、導(dǎo)入接口頭文件B和源文件C一起編譯成預(yù)定格式的文件E;步驟4將所述共享函數(shù)庫文件A與所述文件E存儲在所述移動終端外部存儲裝置中;步驟5從所述移動終端外部存儲裝置中加載運行所述文件E,并加載所述共享函數(shù)庫文件A。
2. 如權(quán)利要求1所述的方法,其特征在于,所述步驟5具體為 步驟51 :從所述移動終端外部存儲裝置中加載運行所述文件E ;步驟52 :判斷是否需要調(diào)用所述共享函數(shù)庫文件A,若是,從所述移動終端外部存儲裝 置中加載所述共享函數(shù)庫文件A ;若否,直接運行所述應(yīng)用程序D。
3. 如權(quán)利要求l所述的方法,其特征在于,還包括步驟6 :判斷是否需要卸載所述共享函數(shù)庫A,若是,則卸載所述共享函數(shù)庫A,若否,則運行應(yīng)用程序D。
4. 如權(quán)利要求l所述的方法,其特征在于,所述共享函數(shù)庫文件A還編譯成提供共享函 數(shù)庫入口處所創(chuàng)建的導(dǎo)出函數(shù)的名稱和/或地址映射表的格式。
5. 如權(quán)利要求l所述的方法,其特征在于,所述源文件C用于負(fù)責(zé)完成程序跳轉(zhuǎn)和上下 文處理。
6. —種移動終端加載共享函數(shù)庫的裝置,其特征在于,包括 第一編譯模塊,用于將共享函數(shù)庫編譯成預(yù)定格式的共享函數(shù)庫文件A; 解析模塊,用于將所述第一編譯模塊提供的導(dǎo)入接口頭文件B解析成相應(yīng)的源文件C ;第二編譯模塊,用于將應(yīng)用程序D、第一編譯模塊提供的導(dǎo)入接口頭文件B和解析模塊提供的源文件C 一起編譯成文件E ;存儲模塊,用于將所述第一編譯模塊的共享函數(shù)庫文件A與所述第二編譯模塊編譯的文件E存儲在所述移動終端外部存儲裝置中;加載及運行模塊,用于從所述移動終端外部存儲裝置中加載運行所述編譯模塊的文件E,并加載所述第一編譯模塊編譯的共享函數(shù)庫文件A。
7. 如權(quán)利要求6所述的裝置,其特征在于,所述加載及運行模塊具體包括第一加載模塊,用于從所述移動終端外部存儲裝置中加載運行所述第二編譯模塊編譯的文件E ;第一判斷模塊,用于判斷是否需要調(diào)用所述共享函數(shù)庫文件A;第二加載模塊,用于從所述移動終端外部存儲裝置中加載所述共享函數(shù)庫A。
8. 如權(quán)利要求6所述的裝置,其特征在于,還包括第二判斷模塊,用于判斷是否需要卸載所述共享函數(shù)庫A ;卸載模塊,用于當(dāng)所述第二判斷模塊的結(jié)果為是時,卸載所述共享函數(shù)庫A。
9. 如權(quán)利要求6所述的裝置,其特征在于,所述第一編譯模塊還將共享函數(shù)庫文件A編 譯成提供共享函數(shù)庫入口處所創(chuàng)建的導(dǎo)出函數(shù)的名稱和/或地址映射表的格式。
10. 如權(quán)利要求6所述的裝置,其特征在于,所述解析模塊中的源文件C用于負(fù)責(zé)完成程序跳轉(zhuǎn)和上下文處理c
全文摘要
本發(fā)明提出了一種移動終端加載共享函數(shù)庫的方法和裝置。通過將應(yīng)用程序D、導(dǎo)入接口頭文件B和源文件C一起編譯成預(yù)定格式的文件E,并將共享函數(shù)庫文件A與文件E存儲在外部存儲中,可以將相對通用的模塊獨立編譯成共享函數(shù)庫。本發(fā)明可以縮減應(yīng)用程序的大小,降低運行時消耗的內(nèi)存空間,避免不必要的資源浪費,尤其適用于嵌入式的環(huán)境。另外,在修改程序時,也不必編譯所有的模塊,提高了程序的編譯速度。
文檔編號G06F9/445GK101702130SQ20091021239
公開日2010年5月5日 申請日期2009年11月12日 優(yōu)先權(quán)日2009年11月12日
發(fā)明者金威 申請人:深圳市五巨科技有限公司