專(zhuān)利名稱(chēng):一種手機(jī)軟件動(dòng)態(tài)加載方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及手機(jī)終端技術(shù)領(lǐng)域,尤其涉及一種手機(jī)軟件動(dòng)態(tài)加載方法及裝置。
背景技術(shù):
對(duì)于一些非智能手機(jī),例如MTK Feature Wione (臺(tái)灣聯(lián)發(fā)科技手機(jī)),其應(yīng)用程序都是在出廠(chǎng)前燒錄進(jìn)手機(jī)里面,不能讓用戶(hù)自己安裝、更新和刪除第三方提供的新的手機(jī)軟件,這樣就限制了用戶(hù)的個(gè)性化需求,不利于這類(lèi)手機(jī)的普及和應(yīng)用。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種手機(jī)軟件動(dòng)態(tài)加載的方法及裝置,用于解決在,如MTK Feature Wione,手機(jī)上動(dòng)態(tài)加載和運(yùn)行第三方軟件的技術(shù)問(wèn)題。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種手機(jī)軟件動(dòng)態(tài)加載方法,包括獲取所述第三方應(yīng)用程序的文件句柄,將所述第三方應(yīng)用程序載入到內(nèi)存中;將第三方應(yīng)用程序需要的本地應(yīng)用程序接口(Native API)函數(shù)導(dǎo)出到函數(shù)映射結(jié)構(gòu)類(lèi)型(EXT_FSET)實(shí)例中;將第三方應(yīng)用程序在內(nèi)存中的載入地址及EXT_FSET結(jié)構(gòu)實(shí)例地址作為動(dòng)態(tài)加載函數(shù)的參數(shù)傳入動(dòng)態(tài)加載函數(shù),并執(zhí)行動(dòng)態(tài)加載函數(shù)。進(jìn)一步地,在載入所述第三方應(yīng)用程序之前,還包括第三方應(yīng)用程序的生成過(guò)程, 具體為在編寫(xiě)第三方應(yīng)用程序時(shí),按照動(dòng)態(tài)加載接口編寫(xiě)第三方應(yīng)用程序的入口函數(shù), 將所述EXT_FSET結(jié)構(gòu)類(lèi)型的指針作為所述入口函數(shù)的參數(shù);對(duì)第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接,生成第三方應(yīng)用程序的可執(zhí)行文件或包含所述第三方應(yīng)用程序的可執(zhí)行文件和資源文件的安裝包;若生成的是安裝包,則在載入所述第三方應(yīng)用程序之前還包括解包的過(guò)程。進(jìn)一步地,在對(duì)所述第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接時(shí),將包含入口函數(shù)的代碼段置于所生成的可執(zhí)行文件起始位置。進(jìn)一步地,所述動(dòng)態(tài)加載函數(shù)通過(guò)第三方應(yīng)用程序的可執(zhí)行文件在內(nèi)存中的起始地址調(diào)用第三方應(yīng)用程序的入口函數(shù),并將所述EXT_FSET結(jié)構(gòu)實(shí)例地址作為參數(shù)傳入所述第三方應(yīng)用程序的入口函數(shù)。基于本發(fā)明實(shí)施例,本發(fā)明還提出一種手機(jī)軟件動(dòng)態(tài)加載裝置,該裝置包括應(yīng)用載入模塊,用于獲取所述第三方應(yīng)用程序的文件句柄,將所述第三方應(yīng)用程序載入到手機(jī)內(nèi)存中;API導(dǎo)出模塊,用于將第三方應(yīng)用程序需要的手機(jī)Native API導(dǎo)出到函數(shù)映射結(jié)構(gòu)類(lèi)型EXT_FSET實(shí)例當(dāng)中;跳轉(zhuǎn)執(zhí)行模塊,用于在第三方應(yīng)用程序的可執(zhí)行文件載入成功及Native API導(dǎo)出成功后,以存儲(chǔ)所述第三方應(yīng)用程序的可執(zhí)行文件的內(nèi)存地址及函數(shù)映射結(jié)構(gòu)類(lèi)型EXT_ FSET實(shí)例的地址為參數(shù),通過(guò)動(dòng)態(tài)加載函數(shù)執(zhí)行跳轉(zhuǎn)操作后運(yùn)行所述第三方應(yīng)用程序。進(jìn)一步地,所述裝置還包括第三方應(yīng)用程序生成模塊,該模塊用于生成第三方應(yīng)用程序,該模塊進(jìn)一步包括編制模塊,用于編制第三方應(yīng)用程序,并按照動(dòng)態(tài)加載接口編寫(xiě)第三方應(yīng)用程序的入口函數(shù),所述入口函數(shù)的參數(shù)包括所述EXT_FSET結(jié)構(gòu)類(lèi)型的指針;編譯鏈接模塊,用于對(duì)第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接,生成第三方應(yīng)用程序的可執(zhí)行文件或包含所述第三方應(yīng)用程序的可執(zhí)行文件和資源文件的安裝包。進(jìn)一步地,所述編譯鏈接模塊在對(duì)所述第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接時(shí),將包含入口函數(shù)的代碼段置于所生成的可執(zhí)行文件起始位置。進(jìn)一步地,所述跳轉(zhuǎn)執(zhí)行模塊所執(zhí)行的動(dòng)態(tài)加載函數(shù)以存儲(chǔ)所述第三方應(yīng)用程序的可執(zhí)行文件的內(nèi)存地址及函數(shù)映射結(jié)構(gòu)類(lèi)型EXT_FSET實(shí)例的地址為參數(shù),通過(guò)第三方應(yīng)用程序的可執(zhí)行文件在內(nèi)存中的起始地址調(diào)用第三方應(yīng)用程序的入口函數(shù),并將EXT_ FSET結(jié)構(gòu)實(shí)例地址作為參數(shù)傳入所述第三方應(yīng)用程序的入口函數(shù),從而將所述第三方應(yīng)用程序運(yùn)行起來(lái)。本發(fā)明在手機(jī)的只讀存儲(chǔ)器中燒結(jié)通用的動(dòng)態(tài)加載程序,并向第三方公開(kāi)第三方應(yīng)用程序需要遵循的程序入口函數(shù)、Native API導(dǎo)入結(jié)構(gòu)及第三方應(yīng)用程序的編譯鏈接的方式,通用動(dòng)態(tài)加載程序依據(jù)上述預(yù)設(shè)的接口加載運(yùn)行第三方應(yīng)用程序。通過(guò)本發(fā)明的技術(shù)方案解決了在,如MTK Feature Wione,手機(jī)上動(dòng)態(tài)加載和運(yùn)行第三方應(yīng)用程序的技術(shù)問(wèn)題,使得用戶(hù)能夠在如MTK feature phone手機(jī)上面安裝各種第三方應(yīng)用程序,使用戶(hù)在不換手機(jī)的前提下,有了更多新的用戶(hù)體驗(yàn)。
圖1為本發(fā)明手機(jī)軟件動(dòng)態(tài)加載方法的流程圖;圖2為本發(fā)明手機(jī)軟件動(dòng)態(tài)加載裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明的基本思想是在手機(jī)出廠(chǎng)時(shí),在手機(jī)的只讀存儲(chǔ)器中燒結(jié)通用的動(dòng)態(tài)加載程序,通過(guò)該通用動(dòng)態(tài)加載程序提供的動(dòng)態(tài)加載接口加載運(yùn)行第三方應(yīng)用程序。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下舉實(shí)施例并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。圖1為本發(fā)明手機(jī)軟件動(dòng)態(tài)加載的方法流程圖,具體步驟如下步驟101 按照動(dòng)態(tài)加載接口編寫(xiě)第三方應(yīng)用程序的入口函數(shù);為了在類(lèi)似MTK Feature Phone手機(jī)上動(dòng)態(tài)加載第三方應(yīng)用程序,第三方應(yīng)用程序首先需要按照本發(fā)明提供的動(dòng)態(tài)加載接口來(lái)編寫(xiě);本發(fā)明提供的動(dòng)態(tài)加載接口的核心內(nèi)容包括第三方應(yīng)用程序的程序入口的定義,以及如何將手機(jī)提供的本地應(yīng)用程序接口(Native API)函數(shù)指針導(dǎo)入到第三方應(yīng)用程序中。所述Native API指手機(jī)芯片原廠(chǎng)商提供的用于實(shí)現(xiàn)手機(jī)界面控制、本地應(yīng)用控制 (如短信、電話(huà)、多媒體等)、及系統(tǒng)事件處理等功能的函數(shù)。
本發(fā)明一優(yōu)選實(shí)施例中,對(duì)第三方應(yīng)用程序的程序入口的定義如下#pragma arm section code = " DL_entry_sec“void DL_entry(EXT_FSET*fset){//以下省略第三方應(yīng)用程序入口函數(shù)的具體執(zhí)行代碼...}#pragma arm section code其中,DL_entry_sec為第三方應(yīng)用程序的程序入口函數(shù)所在的代碼段的名稱(chēng); DL_entry為第三方應(yīng)用程序的程序入口函數(shù);fset為傳入第三方應(yīng)用程序的程序入口函數(shù)的指針參數(shù);EXT_FSET為一結(jié)構(gòu)類(lèi)型,本發(fā)明命名為函數(shù)映射結(jié)構(gòu)類(lèi)型,該結(jié)構(gòu)實(shí)質(zhì)上是一個(gè)指針集合,用于映射手機(jī)提供的Native API函數(shù),以供第三方應(yīng)用程序調(diào)用;EXT_ FSET需要對(duì)第三方應(yīng)用程序公開(kāi),第三方應(yīng)用程序只有依照該接口定義的映射關(guān)系才能正確地調(diào)用手機(jī)提供的Native API ;第三方應(yīng)用程序所在文件的文件名為DL_test. c。基于上述第三方應(yīng)用程序的程序入口函數(shù)的定義,所述EXT_FSET結(jié)構(gòu)類(lèi)型的定義示例如下typedef struct{//Phone native apisUI_funcs*ui_funcs ;Event_funcs氺event_funcs ;...} EXT_FSET ;UI_funcs、event_funcs分別代表手機(jī)native API里面的圖形接口(UI)函數(shù)指針集合和事件(event)函數(shù)指針集合。以UI_funcs為例,定義如下typedef struct{void(氺goto_mainmenu)(void);void (*mmi_gfx_entry_menuscreen) (void);...}UI_funcs ;各個(gè)函數(shù)指針的集合就是函數(shù)指針的結(jié)構(gòu),里面的每一個(gè)指針與手機(jī)Native API 構(gòu)成映射關(guān)系,第三方應(yīng)用程序通過(guò)訪(fǎng)問(wèn)該結(jié)構(gòu)的各個(gè)成員即可調(diào)用對(duì)應(yīng)的手機(jī)Native API。步驟102 對(duì)第三方應(yīng)用程序進(jìn)行編譯鏈接生成可執(zhí)行文件,在編譯鏈接時(shí),通過(guò)編譯鏈接參數(shù)指定包含入口函數(shù)的代碼段,并將包含入口函數(shù)的代碼段置于運(yùn)行域的起始位置;本發(fā)明優(yōu)選實(shí)施例中,在編譯鏈接時(shí)所使用的參數(shù)如下
在編譯時(shí)加入以下參數(shù)/ropi/rwpi在鏈接時(shí)力口入以下參數(shù)-entry DL_test. ο (DL_entry_sec) -f irstDL_test. ο(DL_entry_sec)-rwpi-ropi。其中,ropi參數(shù)用于指定被編譯或鏈接的為一個(gè)段,在這個(gè)段中代碼和只讀數(shù)據(jù)的地址在運(yùn)行的時(shí)候可以改變。rwpi參數(shù)用于指定被編譯或鏈接的為一個(gè)段,在這個(gè)段中的可讀/寫(xiě)的數(shù)據(jù)地址在運(yùn)行的時(shí)候可以改變。entry參數(shù)用于指定執(zhí)行鏈接的目標(biāo)文件中唯一的初始化入口點(diǎn)。First參數(shù)用于將被選擇的輸入段放在運(yùn)行域的起始位置。本發(fā)明通過(guò)entry參數(shù)指定鏈接后生成的第三方應(yīng)用程序的初始化入口點(diǎn)位于DL_entry_sec 標(biāo)識(shí)的代碼段;通過(guò)First參數(shù)將DL_entry_sec所標(biāo)識(shí)的代碼段指定為第三方應(yīng)用程序運(yùn)行時(shí)的起始點(diǎn)。DL_test. ο是DL_test. c (程序入口函數(shù)所在文件)編譯生成的目標(biāo)(obj)文件, 對(duì)目標(biāo)文件進(jìn)行鏈接后獲得可執(zhí)行二進(jìn)制BIN文件。本發(fā)明優(yōu)選實(shí)施例中,若第三方應(yīng)用程序還需要一些資源文件,例如圖標(biāo) (icon)、音頻(audio)、視頻(video)、圖像(image)類(lèi)型的文件等,可將上述編譯鏈接后生成的可執(zhí)行文件和資源文件一起打包,打包后生成可動(dòng)態(tài)加載的程序包。以上步驟為生成可動(dòng)態(tài)加載的第三方應(yīng)用程序的過(guò)程,在生成第三方應(yīng)用程序后,即可通過(guò)以下動(dòng)態(tài)加載過(guò)程在手機(jī)中動(dòng)態(tài)加載并運(yùn)行第三方應(yīng)用程序。步驟103 把編譯鏈接生成的第三方應(yīng)用程序的可執(zhí)行文件存入手機(jī)的內(nèi)存或外存;優(yōu)選地,若之前對(duì)編譯鏈接后生成的可執(zhí)行文件和資源文件進(jìn)行了打包操作,則在執(zhí)行該步驟之前,還需要進(jìn)行解包操作,并將解出的資源文件和可執(zhí)行BIN文件存放在手機(jī)的內(nèi)存或外存的指定文件目錄下。步驟104 獲取需要加載的第三方應(yīng)用程序的可執(zhí)行文件的文件句柄,通過(guò)該文件句柄獲取第三方應(yīng)用程序可執(zhí)行文件的大小,并申請(qǐng)相同大小的內(nèi)存空間,然后將第三方應(yīng)用程序的可執(zhí)行文件讀入到新申請(qǐng)的內(nèi)存空間中;步驟105 將第三方應(yīng)用程序需要的手機(jī)Native API導(dǎo)出到EXT_FSET結(jié)構(gòu)實(shí)例中;步驟106 將存放第三方應(yīng)用程序的可執(zhí)行文件的內(nèi)存地址及存放Native API指針的EXT_FSET結(jié)構(gòu)實(shí)例的內(nèi)存地址作為動(dòng)態(tài)加載函數(shù)的參數(shù),執(zhí)行動(dòng)態(tài)加載函數(shù);步驟107 動(dòng)態(tài)加載函數(shù)通過(guò)第三方應(yīng)用程序的可執(zhí)行文件在內(nèi)存中的起始地址調(diào)用第三方應(yīng)用程序的入口函數(shù),并將EXT_FSET結(jié)構(gòu)實(shí)例地址作為參數(shù)傳入所述第三方應(yīng)用程序的入口函數(shù)。具體動(dòng)態(tài)加載程序?qū)嵗缦翴l第三方應(yīng)用程序入口函數(shù)類(lèi)型定義(DL_FUNC為DL_entry的類(lèi)型定義)typedef void(*DL_FUNC)(EXT_FSET*fset);//動(dòng)態(tài)加載函數(shù)dl_jump_cmd定義void dl_jump_cmd(DL_FUNC addr, EXT_F SET*fset){H通過(guò)dl_jump_cmd跳轉(zhuǎn)后,第三方應(yīng)用程序開(kāi)始執(zhí)行
7
addr (fset);}//jUmp_t0_bin為存放第三方應(yīng)用程序的可執(zhí)行文件的內(nèi)存起始地址//fset為EXT_FSET結(jié)構(gòu)實(shí)例的指針dl_jump_cmd (jump_to_bin, fset);圖2為本發(fā)明手機(jī)軟件動(dòng)態(tài)加載裝置200的結(jié)構(gòu)示意圖,該裝置包括應(yīng)用載入模塊201,用于獲取所述第三方應(yīng)用程序的文件句柄,將所述第三方應(yīng)用程序載入到手機(jī)內(nèi)存中;所述第三方應(yīng)用程序需要按照動(dòng)態(tài)加載接口編寫(xiě)入口函數(shù);API導(dǎo)出模塊202,用于將第三方應(yīng)用程序需要的手機(jī)Native API導(dǎo)出到函數(shù)映射結(jié)構(gòu)類(lèi)型EXT_FSET實(shí)例當(dāng)中;跳轉(zhuǎn)執(zhí)行模塊203,用于在第三方應(yīng)用程序的可執(zhí)行文件載入成功及Native API 導(dǎo)出成功后,以存儲(chǔ)所述第三方應(yīng)用程序的可執(zhí)行文件的內(nèi)存地址及函數(shù)映射結(jié)構(gòu)類(lèi)型 EXT_FSET實(shí)例的地址為參數(shù),通過(guò)動(dòng)態(tài)加載函數(shù)執(zhí)行跳轉(zhuǎn)操作后運(yùn)行所述第三方應(yīng)用程序。優(yōu)選地,所述裝置還進(jìn)一步包括第三方應(yīng)用程序生成模塊220,該模塊用于生成第三方應(yīng)用程序,該模塊進(jìn)一步包括編制模塊221,用于編制第三方應(yīng)用程序,并按照動(dòng)態(tài)加載接口編寫(xiě)第三方應(yīng)用程序的入口函數(shù),所述入口函數(shù)的參數(shù)包括所述EXT_FSET結(jié)構(gòu)類(lèi)型的指針;編譯鏈接模塊222,用于對(duì)第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接,生成第三方應(yīng)用程序的可執(zhí)行文件或包含所述第三方應(yīng)用程序的可執(zhí)行文件和資源文件的安裝包。 所述編譯鏈接模塊在對(duì)所述第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接時(shí),將包含入口函數(shù)的代碼段置于所生成的可執(zhí)行文件起始位置。所述跳轉(zhuǎn)執(zhí)行模塊203所執(zhí)行的動(dòng)態(tài)加載函數(shù)以存儲(chǔ)所述第三方應(yīng)用程序的可執(zhí)行文件的內(nèi)存地址及函數(shù)映射結(jié)構(gòu)類(lèi)型EXT_FSET實(shí)例的地址為參數(shù),通過(guò)第三方應(yīng)用程序的可執(zhí)行文件在內(nèi)存中的起始地址調(diào)用第三方應(yīng)用程序的入口函數(shù),并將EXT_FSET 結(jié)構(gòu)實(shí)例地址作為參數(shù)傳入所述第三方應(yīng)用程序的入口函數(shù),從而將所述第三方應(yīng)用程序運(yùn)行起來(lái)。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種手機(jī)軟件動(dòng)態(tài)加載方法,其特征在于,包括獲取所述第三方應(yīng)用程序的文件句柄,將所述第三方應(yīng)用程序載入到內(nèi)存中;將第三方應(yīng)用程序需要的本地應(yīng)用程序接口(Native API)函數(shù)導(dǎo)出到函數(shù)映射結(jié)構(gòu)類(lèi)型(EXT_FSET)實(shí)例中;將第三方應(yīng)用程序在內(nèi)存中的載入地址及EXT_FSET結(jié)構(gòu)實(shí)例地址作為動(dòng)態(tài)加載函數(shù)的參數(shù)傳入動(dòng)態(tài)加載函數(shù),并執(zhí)行動(dòng)態(tài)加載函數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在載入所述第三方應(yīng)用程序之前,還包括第三方應(yīng)用程序的生成過(guò)程,具體為在編寫(xiě)第三方應(yīng)用程序時(shí),按照動(dòng)態(tài)加載接口編寫(xiě)第三方應(yīng)用程序的入口函數(shù),將所述EXT_FSET結(jié)構(gòu)類(lèi)型的指針作為所述入口函數(shù)的參數(shù);對(duì)第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接,生成第三方應(yīng)用程序的可執(zhí)行文件或包含所述第三方應(yīng)用程序的可執(zhí)行文件和資源文件的安裝包;若生成的是安裝包,則在載入所述第三方應(yīng)用程序之前還包括解包的過(guò)程。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在對(duì)所述第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接時(shí),將包含入口函數(shù)的代碼段置于所生成的可執(zhí)行文件起始位置。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動(dòng)態(tài)加載函數(shù)通過(guò)第三方應(yīng)用程序的可執(zhí)行文件在內(nèi)存中的起始地址調(diào)用第三方應(yīng)用程序的入口函數(shù),并將所述EXT_FSET 結(jié)構(gòu)實(shí)例地址作為參數(shù)傳入所述第三方應(yīng)用程序的入口函數(shù)。
5.一種手機(jī)軟件動(dòng)態(tài)加載裝置,其特征在于,該裝置包括應(yīng)用載入模塊,用于獲取所述第三方應(yīng)用程序的文件句柄,將所述第三方應(yīng)用程序載入到手機(jī)內(nèi)存中;API導(dǎo)出模塊,用于將第三方應(yīng)用程序需要的手機(jī)Native API導(dǎo)出到函數(shù)映射結(jié)構(gòu)類(lèi)型EXT_FSET實(shí)例當(dāng)中;跳轉(zhuǎn)執(zhí)行模塊,用于在第三方應(yīng)用程序的可執(zhí)行文件載入成功及Native API導(dǎo)出成功后,以存儲(chǔ)所述第三方應(yīng)用程序的可執(zhí)行文件的內(nèi)存地址及函數(shù)映射結(jié)構(gòu)類(lèi)型EXT_FSET 實(shí)例的地址為參數(shù),通過(guò)動(dòng)態(tài)加載函數(shù)執(zhí)行跳轉(zhuǎn)操作后運(yùn)行所述第三方應(yīng)用程序。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括第三方應(yīng)用程序生成模塊,該模塊用于生成第三方應(yīng)用程序,該模塊進(jìn)一步包括編制模塊,用于編制第三方應(yīng)用程序,并按照動(dòng)態(tài)加載接口編寫(xiě)第三方應(yīng)用程序的入口函數(shù),所述入口函數(shù)的參數(shù)包括所述EXT_FSET結(jié)構(gòu)類(lèi)型的指針;編譯鏈接模塊,用于對(duì)第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接,生成第三方應(yīng)用程序的可執(zhí)行文件或包含所述第三方應(yīng)用程序的可執(zhí)行文件和資源文件的安裝包。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述編譯鏈接模塊在對(duì)所述第三方應(yīng)用程序的源代碼文件進(jìn)行編譯鏈接時(shí),將包含入口函數(shù)的代碼段置于所生成的可執(zhí)行文件起始位置。
8.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述跳轉(zhuǎn)執(zhí)行模塊所執(zhí)行的動(dòng)態(tài)加載函數(shù)以存儲(chǔ)所述第三方應(yīng)用程序的可執(zhí)行文件的內(nèi)存地址及函數(shù)映射結(jié)構(gòu)類(lèi)型EXT_FSET實(shí)例的地址為參數(shù),通過(guò)第三方應(yīng)用程序的可執(zhí)行文件在內(nèi)存中的起始地址調(diào)用第三方應(yīng)用程序的入口函數(shù),并將EXT_FSET結(jié)構(gòu)實(shí)例地址作為參數(shù)傳入所述第三方應(yīng)用程序的入口函數(shù),從而將所述第三方應(yīng)用程序運(yùn)行起來(lái)。
全文摘要
本發(fā)明公開(kāi)了一種手機(jī)軟件動(dòng)態(tài)加載方法及裝置,用于解決在,例如MTK Feature Phone,手機(jī)上動(dòng)態(tài)加載和運(yùn)行第三方軟件的技術(shù)問(wèn)題。本發(fā)明在手機(jī)的只讀存儲(chǔ)器中燒結(jié)通用的動(dòng)態(tài)加載程序,并向第三方公開(kāi)第三方應(yīng)用程序需要遵循的程序入口函數(shù)、Native API導(dǎo)入結(jié)構(gòu)及第三方應(yīng)用程序的編譯鏈接的方式,通用動(dòng)態(tài)加載程序依據(jù)上述預(yù)設(shè)的接口加載運(yùn)行第三方應(yīng)用程序。通過(guò)本發(fā)明的技術(shù)方案解決了在手機(jī)上動(dòng)態(tài)加載和運(yùn)行第三方應(yīng)用程序的技術(shù)問(wèn)題,使得用戶(hù)能夠在如MTK feature phone手機(jī)上面運(yùn)行各種第三方應(yīng)用程序,使用戶(hù)在不換手機(jī)的前提下,有了更多新的用戶(hù)體驗(yàn)。
文檔編號(hào)G06F9/445GK102486735SQ201010578209
公開(kāi)日2012年6月6日 申請(qǐng)日期2010年12月2日 優(yōu)先權(quán)日2010年12月2日
發(fā)明者劉思音 申請(qǐng)人:騰訊科技(深圳)有限公司