專利名稱:一種應(yīng)用程序加載的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及機(jī)器到機(jī)器(M2M,machine to machine)領(lǐng)域,特別是指M2M終端模組中一種應(yīng)用程序加載的方法及裝置。
背景技術(shù):
物聯(lián)網(wǎng)是在計(jì)算機(jī)互聯(lián)網(wǎng)的基礎(chǔ)上,融合無線數(shù)據(jù)通信等技術(shù),構(gòu)造的一個(gè)覆蓋世界萬物的網(wǎng)絡(luò),實(shí)現(xiàn)物品之間信息的互聯(lián)與共享。M2M是機(jī)器之間所有建立連接的技術(shù)和手段,隨著移動(dòng)通信技術(shù)的發(fā)展,M2M相關(guān)業(yè)務(wù)和產(chǎn)品成爆發(fā)式增長,已經(jīng)滲入到國民經(jīng)濟(jì)的各個(gè)方面,在環(huán)境監(jiān)測、智能家居、智能電網(wǎng)、自動(dòng)抄表等行業(yè)已有應(yīng)用,正在推動(dòng)著社會(huì)生產(chǎn)和生活方式新一輪的變革。
在現(xiàn)階段,M2M終端主要以無線通信方式接入移動(dòng)運(yùn)營商的網(wǎng)絡(luò),實(shí)現(xiàn)與行業(yè)應(yīng)用管理服務(wù)平臺的通信。主流的M2M終端的開發(fā)方式是在無線通訊模組已有軟硬件功能的基礎(chǔ)上,利用平臺軟件提供的二次開發(fā)接口進(jìn)行二次開發(fā)。由于現(xiàn)有M2M終端平臺的開發(fā)模式,大多是應(yīng)用程序代碼和平臺代碼混合在一起編譯。應(yīng)用程序代碼,也可以稱之為行業(yè)應(yīng)用代碼和平臺代碼通過二次開發(fā)接口緊密耦合,編譯后的平臺代碼和應(yīng)用程序代碼融為一體,最終生成一個(gè)整體的可執(zhí)行鏡像文件。這樣導(dǎo)致行業(yè)應(yīng)用軟件開發(fā)時(shí),編譯效率較低,平臺和行業(yè)應(yīng)用不能夠?qū)崿F(xiàn)獨(dú)立升級,不利于終端的性能維護(hù)。新的發(fā)展趨勢是從M2M終端的平臺軟件中將應(yīng)用程序分離出來,作為獨(dú)立的程序和平臺軟件各自單獨(dú)開發(fā)編譯。但是,由于平臺本身沒有支持獨(dú)立應(yīng)用程序運(yùn)行的環(huán)境,所以當(dāng)務(wù)之急是開發(fā)出獨(dú)立的應(yīng)用程序動(dòng)態(tài)加載運(yùn)行技術(shù)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種應(yīng)用程序加載的方法及裝置,不僅提高編譯效率,有利于終端維護(hù);且能在獨(dú)立應(yīng)用程序執(zhí)行時(shí),實(shí)現(xiàn)業(yè)務(wù)功能。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明提供了一種應(yīng)用程序加載的方法,該方法包括機(jī)器到機(jī)器M2M終端模組上電初始化后,啟動(dòng)應(yīng)用程序管理器;應(yīng)用程序管理器接收加載應(yīng)用程序指令,創(chuàng)建加載線程;加載線程根據(jù)加載應(yīng)用程序指令,加載應(yīng)用程序,應(yīng)用程序執(zhí)行完成后,結(jié)束加載線程。上述方案中,所述加載線程根據(jù)加載應(yīng)用程序指令加載應(yīng)用程序包括加載線程根據(jù)加載應(yīng)用程序指令中包含的應(yīng)用程序鏡像文件路徑,打開文件系統(tǒng)中的應(yīng)用程序鏡像文件,讀取應(yīng)用程序鏡像文件長度,對應(yīng)用程序鏡像文件進(jìn)行預(yù)加載,獲取應(yīng)用程序鏡像文件信息,加載應(yīng)用程序。上述方案中,所述對應(yīng)用程序鏡像文件進(jìn)行預(yù)加載包括加載線程根據(jù)預(yù)置的替換函數(shù)代碼長度,在內(nèi)存中分配相應(yīng)長度的空間,讀取應(yīng)用程序鏡像文件中最開始部分的替換函數(shù)的代碼,將所述代碼拷貝到所分配的空間并執(zhí)行,加載線程向替換函數(shù)發(fā)送獲取應(yīng)用程序鏡像文件信息參數(shù),替換函數(shù)根據(jù)所述接收的參數(shù),獲取應(yīng)用程序鏡像文件信息。上述方案中,所述加載應(yīng)用程序包括根據(jù)應(yīng)用程序鏡像文件信息及應(yīng)用程序鏡像文件長度,獲取執(zhí)行應(yīng)用程序鏡像文件所需空間大小,釋放預(yù)加載所分配的空間,并根據(jù)所述執(zhí)行應(yīng)用程序鏡像文件所需空間大小,在內(nèi)存中分配相應(yīng)大小的空間并初始化,將應(yīng)用程序鏡像文件拷貝到所分配的空間,執(zhí)行替換函數(shù),向替換函數(shù)發(fā)送調(diào)用應(yīng)用程序入口函數(shù)參數(shù),替換函數(shù)調(diào)用應(yīng)用程序入口函數(shù)。上述方案中,所述加載應(yīng)用程序之后,該方法進(jìn)一步包括執(zhí)行應(yīng)用程序過程中,執(zhí)行到軟中斷指令,觸發(fā)軟中斷異常,進(jìn)入軟中斷服務(wù)器程序,軟中斷服務(wù)程序根據(jù)軟中斷指令,及本地保存的軟中斷指令與二次開發(fā)接口函數(shù)的對應(yīng)關(guān)系,執(zhí)行與所述軟中斷指令對應(yīng)的二次開發(fā)接口函數(shù),二次開發(fā)接口函數(shù)執(zhí)行完畢,返回繼續(xù)執(zhí)行 應(yīng)用程序。上述方案中,所述啟動(dòng)應(yīng)用程序管理器之后,該方法進(jìn)一步包括應(yīng)用程序管理器接收更新應(yīng)用程序指令,創(chuàng)建更新線程,更新線程根據(jù)接收的更新應(yīng)用程序指令中的更新的應(yīng)用程序鏡像文件地址,獲取更新的應(yīng)用程序鏡像文件,將文件系統(tǒng)中的應(yīng)用程序鏡像文件覆蓋。本發(fā)明還提供了一種應(yīng)用程序加載的裝置,該裝置包括應(yīng)用程序管理器、加載線程;應(yīng)用程序管理器,用于在M2M終端模組上電初始化并啟動(dòng)后,接收加載應(yīng)用程序指令,創(chuàng)建加載線程,應(yīng)用程序執(zhí)行完畢后,結(jié)束加載線程;加載線程,用于根據(jù)加載應(yīng)用程序指令,加載并執(zhí)行應(yīng)用程序。上述方案中,所述加載線程具體用于,根據(jù)加載應(yīng)用程序指令中的應(yīng)用程序鏡像文件路徑,打開文件系統(tǒng)中的應(yīng)用程序鏡像文件,讀取應(yīng)用程序鏡像文件長度,對應(yīng)用程序鏡像文件進(jìn)行預(yù)加載,獲取應(yīng)用程序鏡像文件信息,加載應(yīng)用程序。上述方案中,所述加載線程具體用于,根據(jù)預(yù)置的替換函數(shù)代碼長度,在內(nèi)存中分配相應(yīng)長度的空間,讀取應(yīng)用程序鏡像文件中最開始部分的替換函數(shù),拷貝到所分配的空間并執(zhí)行,接收替換函數(shù)返回的應(yīng)用程序鏡像文件信息。上述方案中,加載線程具體用于,根據(jù)應(yīng)用程序鏡像文件及應(yīng)用程序鏡像文件長度,獲取執(zhí)行應(yīng)用程序鏡像文件所需空間大小,并在內(nèi)存中分配相應(yīng)大小的空間,將應(yīng)用程序鏡像文件拷貝到所分配的空間,執(zhí)行替換函數(shù),替換函調(diào)用入口函數(shù),執(zhí)行應(yīng)用程序。上述方案中,該裝置進(jìn)一步包括軟中斷服務(wù)程序單元,用于根據(jù)軟中斷指令,及軟中斷指令與二次開發(fā)接口函數(shù)的對應(yīng)關(guān)系,執(zhí)行與所述軟中斷指令對應(yīng)的二次開發(fā)接口函數(shù);相應(yīng)的,所述加載線程,進(jìn)一步用于在執(zhí)行到軟中斷指令,通知軟中斷服務(wù)程序單元。上述方案中,該裝置進(jìn)一步包括更新線程,用于根據(jù)更新指令中的更新的應(yīng)用程序鏡像文件地址,獲取更新的應(yīng)用程序鏡像文件,覆蓋文件系統(tǒng)中的應(yīng)用程序鏡像文件;相應(yīng)的,應(yīng)用程序管理器,還用于接收更新應(yīng)用程序指令,創(chuàng)建更新線程。由此可見,采用本發(fā)明所述的方法及裝置,應(yīng)用程序管理器接收加載應(yīng)用程序指令后,創(chuàng)建加載線程,加載線程根據(jù)接收的指令,加載應(yīng)用程序,如此,可以加載獨(dú)立編譯的應(yīng)用程序,提高編譯效率;進(jìn)一步的,接收更新應(yīng)用程序指令,創(chuàng)建更新線程,更新線程可以獨(dú)立更新,也就是升級應(yīng)用程序,有利于終端的維護(hù);并且,可以通過觸發(fā)軟中斷的方式,執(zhí)行二次開發(fā)接口函數(shù),從而訪問二次開發(fā)接口,在獨(dú)立應(yīng)用程序執(zhí)行時(shí),實(shí)現(xiàn)短信、語音等業(yè)務(wù)功能。
圖I為本發(fā)明實(shí)現(xiàn)應(yīng)用程序加載的方法實(shí)施例示意圖;圖2為本發(fā)明實(shí)現(xiàn)加載線程加載應(yīng)用程序的方法實(shí)施例示意圖;圖3為本發(fā)明實(shí)現(xiàn)訪問二次開發(fā)接口的方法實(shí)施例示意圖;圖4為本發(fā)明實(shí)現(xiàn)應(yīng)用程序加載的裝置組成示意圖。
具體實(shí)施例方式本發(fā)明的基本思想是M2M終端模組上電初始化后,啟動(dòng)應(yīng)用程序管理器,應(yīng)用程序管理器根據(jù)接收的指令,創(chuàng)建加載線程,加載應(yīng)用程序;應(yīng)用程序執(zhí)行完畢后,結(jié)束加載線程。下面通過附圖與具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。本發(fā)明提供一種應(yīng)用程序加載的方法,如圖I所示,具體步驟如下步驟101、M2M終端模組上電初始化后,啟動(dòng)自身的應(yīng)用程序管理器;這里,M2M終端模組上電之后,M2M終端模組的平臺軟件進(jìn)行基本功能及業(yè)務(wù)的初始化,包括硬件初始化、系統(tǒng)資源初始化、協(xié)議棧初始化等,然后啟動(dòng)應(yīng)用程序管理器。步驟102、應(yīng)用程序管理器根據(jù)接收的加載應(yīng)用程序指令,創(chuàng)建加載線程,加載線程根據(jù)所述指令加載應(yīng)用程序;這里,應(yīng)用程序管理器接收加載應(yīng)用程序指令,所述加載應(yīng)用程序指令中包含應(yīng)用程序鏡像文件在文件系統(tǒng)中的路徑,可以由M2M終端模組的其他模塊,或者用戶通過M2M終端模組的USB 口等方式發(fā)送;應(yīng)用程序管理器創(chuàng)建加載線程,將所述路徑發(fā)送給加載線程,加載線程根據(jù)所述路徑打開文件系統(tǒng)中的應(yīng)用程序鏡像文件,讀取應(yīng)用程序鏡像文件長度,對應(yīng)用程序鏡像文件進(jìn)行預(yù)加載,獲取應(yīng)用程序鏡像文件信息,加載應(yīng)用程序。所述應(yīng)用程序鏡像文件為通過編譯器獨(dú)立編譯的應(yīng)用程序所生成的鏡像文件,該鏡像文件為二進(jìn)制BIN格式,且鏡像文件中數(shù)據(jù)與指令是地址獨(dú)立的,即編譯后應(yīng)用程序鏡像文件中指令與數(shù)據(jù)的地址為相對地址,這樣,可以將應(yīng)用程序鏡像文件拷貝到內(nèi)存中的任意一段空間內(nèi)執(zhí)行,將所述應(yīng)用程序鏡像文件下載至M2M終端模組的文件系統(tǒng)中。所述讀取應(yīng)用程序鏡像文件長度包括加載線程調(diào)用C庫函數(shù),C庫函數(shù)獲取應(yīng)用程序鏡像文件長度,發(fā)送給加載線程。上述過程中所述對應(yīng)用程序鏡像文件進(jìn)行預(yù)加載,獲取應(yīng)用程序鏡像文件信息,加載應(yīng)用程序過程如圖2所示,包括以下步驟步驟1021、加載線程對應(yīng)用程序進(jìn)行預(yù)加載,獲取應(yīng)用程序鏡像文件信息;其中,所述預(yù)加載過程包括加載線程首先根據(jù)預(yù)置的替換函數(shù)代碼長度,在內(nèi)存中分配相應(yīng)長度的空間,然后根據(jù)應(yīng)用程序鏡像文件路徑,讀取應(yīng)用程序鏡像文件中,位于最開始部分的應(yīng)用程序入口函數(shù)的替換函數(shù)的代碼,將所述代碼拷貝到所分配的空間內(nèi)并執(zhí)行,向替換函數(shù)發(fā)送獲取應(yīng)用程序鏡像文件信息參數(shù),替換函數(shù)根據(jù)所述接收的參數(shù),獲取應(yīng)用程序鏡像文件信息,之后替換函數(shù)將獲取的應(yīng)用程序鏡像文件信息返回給加載線程。
所述替換函數(shù)為替換應(yīng)用程序入口函數(shù),位于應(yīng)用程序鏡像文件的最開始部分,接收獲取應(yīng)用程序鏡像文件信息參數(shù)時(shí),用于獲取應(yīng)用程序鏡像文件信息,接收調(diào)用應(yīng)用程序入口函數(shù)參數(shù)時(shí),用于調(diào)用應(yīng)用程序入口函數(shù);所述參數(shù)可以根據(jù)需要設(shè)定。例如,為一個(gè)二維數(shù)組,其中一維表示替換函數(shù)要實(shí)現(xiàn)的不同的功能,一維表示替換函數(shù)的返回值,假如發(fā)送給替換函數(shù)的數(shù)組為(1,0),I表示替換函數(shù)要獲取應(yīng)用程序鏡像文件信息,替換函數(shù)獲取應(yīng)用程序鏡像文件信息后,假設(shè)所獲取的文件信息為2,則將(1,2)返回給加載線程。假設(shè)發(fā)送給替換函數(shù)的數(shù)組為(0,0),0表示要調(diào)用應(yīng)用程序入口函數(shù),替換函數(shù)不需返回任何信息給參數(shù)的發(fā)送方。所述應(yīng)用程序鏡像文件信息為零初始化數(shù)據(jù)區(qū)長度,其中,所述獲取應(yīng)用程序鏡像文件信息包括替換函數(shù)根據(jù)自身的零初始化數(shù)據(jù)區(qū)長度參數(shù)查詢應(yīng)用程序鏡像文件,獲取與所述參數(shù)對應(yīng)的參數(shù)的參數(shù)值。所述零初始化數(shù)據(jù)區(qū)長度為編譯器編譯應(yīng)用程序,生成應(yīng)用程序鏡像文件過程中,生成的以全局變量形式保存的參數(shù)及對應(yīng)的參數(shù)值。步驟1022、根據(jù)應(yīng)用程序鏡像文件信息加載應(yīng)用程序;
具體的,加載線程根據(jù)獲取的應(yīng)用程序鏡像文件信息及應(yīng)用程序鏡像文件長度,獲取應(yīng)用程序鏡像文件執(zhí)行所需的空間大小,所述獲取為將應(yīng)用程序鏡像文件長度加零初始化數(shù)據(jù)區(qū)長度,即為執(zhí)行應(yīng)用程序鏡像文件所需的空間大小。釋放預(yù)加載分配的空間,按照獲取的應(yīng)用程序鏡像文件執(zhí)行所需的空間大小,在內(nèi)存中分配相應(yīng)大小的空間,同時(shí)初始化所分配的空間,所述初始化為將所述空間清零。加載線程讀取應(yīng)用程序鏡像文件,拷貝到所分配的空間;然后,加載線程從所分配空間的首地址處開始執(zhí)行,也就是執(zhí)行應(yīng)用程序入口函數(shù)的替換函數(shù),此時(shí),加載線程向替換函數(shù)發(fā)送調(diào)用應(yīng)用程序入口函數(shù)參數(shù),替換函數(shù)根據(jù)接收的參數(shù),調(diào)用應(yīng)用程序入口函數(shù),所述應(yīng)用程序入口函數(shù)用于執(zhí)行應(yīng)用程序。步驟103、應(yīng)用程序執(zhí)行完畢后,結(jié)束加載線程。這里,應(yīng)用程序執(zhí)行完畢后,應(yīng)用程序入口函數(shù)根據(jù)執(zhí)行狀態(tài),向應(yīng)用程序管理器返回狀態(tài)值。加載線程卸載應(yīng)用程序鏡像文件,釋放分配的空間,應(yīng)用程序管理器根據(jù)接收的狀態(tài)值,及自身保存的狀態(tài)值與狀態(tài)的對應(yīng)關(guān)系,確定后續(xù)執(zhí)行步驟。例如,接收的狀態(tài)值為1,狀態(tài)值I對應(yīng)的狀態(tài)為執(zhí)行錯(cuò)誤,結(jié)束執(zhí)行,則應(yīng)用程序管理器會(huì)結(jié)束加載線程;其中,所述狀態(tài)值與狀態(tài)的對應(yīng)關(guān)系可以根據(jù)需要預(yù)置。進(jìn)一步的,步驟101之后,若應(yīng)用程序管理器接收網(wǎng)絡(luò)模塊發(fā)送的更新應(yīng)用程序指令,創(chuàng)建更新線程,更新線程根據(jù)接收的指令更新應(yīng)用程序,所述更新應(yīng)用程序指令中包含更新的應(yīng)用程序鏡像文件的地址,具體更新過程為更新線程根據(jù)接收的更新應(yīng)用程序指令中更新的應(yīng)用程序鏡像文件的地址,讀取地址中更新的應(yīng)用程序鏡像文件,覆蓋文件系統(tǒng)中的應(yīng)用程序鏡像文件。這樣,可以完成應(yīng)用程序的獨(dú)立升級。若應(yīng)用程序在執(zhí)行過程中需要完成包括短信、語音、數(shù)據(jù)傳輸以及定制的通訊協(xié)議棧等業(yè)務(wù)功能;或者鏡像系統(tǒng)資源的訪問及使用,則需要訪問M2M終端模組的二次開發(fā)接口,具體過程如圖3所示,包括以下步驟步驟301、應(yīng)用程序觸發(fā)軟中斷異常,執(zhí)行所述軟中斷對應(yīng)的二次開發(fā)接口函數(shù);這里,應(yīng)用程序執(zhí)行過程中,執(zhí)行到軟中斷指令,觸發(fā)軟中斷異常,進(jìn)入軟中斷服務(wù)程序,軟中斷服務(wù)程序根據(jù)本地保存的軟中斷與二次開發(fā)接口函數(shù)的對應(yīng)關(guān)系,執(zhí)行軟中斷對應(yīng)的二次開發(fā)接口函數(shù)。所述軟中斷指令為應(yīng)用程序編譯時(shí),在應(yīng)用程序的頭文件中聲明二次開發(fā)接口函數(shù)的同時(shí),聲明所述二次開發(fā)接口函數(shù)對應(yīng)的軟中斷號,編譯后,形成軟中斷指令。所述二次開發(fā)接口函數(shù)為短信、語音等業(yè)務(wù)對應(yīng)的函數(shù),二次開發(fā)接口函數(shù)的執(zhí)行即為業(yè)務(wù)執(zhí)行的過程。步驟302、二次開發(fā)接口函數(shù)執(zhí)行完畢,返回繼續(xù)執(zhí)行應(yīng)用程序?;谏鲜龇椒?,本發(fā)明還提供了一種應(yīng)用程序加載的裝置,如圖4所示,該裝置包括應(yīng)用程序管理器41、加載線程42 ;應(yīng)用程序管理器41,用于接收的加載應(yīng)用程序指令,創(chuàng)建加載線程;應(yīng)用程序執(zhí)行完畢后,結(jié)束加載線程42; 其中,所述加載應(yīng)用程序指令中包含應(yīng)用程序鏡像文件在文件系統(tǒng)中的路徑;加載線程42,用于根據(jù)加載應(yīng)用程序指令加載應(yīng)用程序。所述加載線程42具體用于,根據(jù)加載應(yīng)用程序指令中的應(yīng)用程序鏡像文件在文件系統(tǒng)中的路徑,打開文件系統(tǒng)中的應(yīng)用程序鏡像文件,讀取應(yīng)用程序鏡像文件長度,對應(yīng)用程序鏡像文件進(jìn)行預(yù)加載,獲取應(yīng)用程序鏡像文件信息,加載應(yīng)用程序。所述加載線程42具體用于,根據(jù)預(yù)置的替換函數(shù)代碼長度,在內(nèi)存中分配相應(yīng)長度的空間,讀取位于應(yīng)用程序鏡像文件最開始部分的替換函數(shù),拷貝到所分配的空間并執(zhí)行,向替換函數(shù)發(fā)送獲取應(yīng)用程序鏡像文件信息參數(shù),接收替換函數(shù)返回的應(yīng)用程序鏡像文件信息。所述加載線程42具體用于,根據(jù)應(yīng)用程序鏡像文件信息及應(yīng)用程序鏡像文件長度,獲取執(zhí)行應(yīng)用程序鏡像文件所需的空間,釋放預(yù)加載分配的空間,并根據(jù)獲取的執(zhí)行應(yīng)用程序鏡像文件所需的空間,在內(nèi)存中分配相應(yīng)大小的空間;將應(yīng)用程序鏡像文件拷貝到所分配的空間,執(zhí)行替換函數(shù),向替換函數(shù)發(fā)送調(diào)用應(yīng)用程序入口函數(shù)參數(shù),替換函數(shù)調(diào)用應(yīng)用程序入口函數(shù)。該裝置進(jìn)一步包括軟中斷服務(wù)程序單元43,用于根據(jù)軟中斷指令、以及本地保存的軟中斷指令與二次開發(fā)接口函數(shù)的對應(yīng)關(guān)系,執(zhí)行與所述軟中斷指令對應(yīng)的二次開發(fā)接口函數(shù);相應(yīng)的,加載線程42,進(jìn)一步用于在執(zhí)行應(yīng)用程序時(shí),執(zhí)行到軟中斷指令,觸發(fā)軟中斷異常,通知軟中斷服務(wù)程序單元43 ;所述通知中包含軟中斷指令。該裝置進(jìn)一步包括更新線程44,用于根據(jù)更新應(yīng)用程序指令中更新的應(yīng)用程序鏡像文件地址,獲取更新的應(yīng)用程序鏡像文件,覆蓋文件系統(tǒng)中的應(yīng)用程序鏡像文件;相應(yīng)的,應(yīng)用程序管理器41,還用于接收更新應(yīng)用程序指令,創(chuàng)建更新線程;所述更新應(yīng)用程序指令包括更新的應(yīng)用程序鏡像文件地址。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種應(yīng)用程序加載的方法,其特征在于,該方法包括 機(jī)器到機(jī)器M2M終端模組上電初始化后,啟動(dòng)應(yīng)用程序管理器; 應(yīng)用程序管理器接收加載應(yīng)用程序指令,創(chuàng)建加載線程; 加載線程根據(jù)加載應(yīng)用程序指令,加載應(yīng)用程序,應(yīng)用程序執(zhí)行完成后,結(jié)束加載線程。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述加載線程根據(jù)加載應(yīng)用程序指令加載應(yīng)用程序包括 加載線程根據(jù)加載應(yīng)用程序指令中包含的應(yīng)用程序鏡像文件路徑,打開文件系統(tǒng)中的應(yīng)用程序鏡像文件,讀取應(yīng)用程序鏡像文件長度,對應(yīng)用程序鏡像文件進(jìn)行預(yù)加載,獲取應(yīng)用程序鏡像文件信息,加載應(yīng)用程序。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對應(yīng)用程序鏡像文件進(jìn)行預(yù)加載包括 加載線程根據(jù)預(yù)置的替換函數(shù)代碼長度,在內(nèi)存中分配相應(yīng)長度的空間,讀取應(yīng)用程序鏡像文件中最開始部分的替換函數(shù)的代碼,將所述代碼拷貝到所分配的空間并執(zhí)行,力口載線程向替換函數(shù)發(fā)送獲取應(yīng)用程序鏡像文件信息參數(shù),替換函數(shù)根據(jù)所述接收的參數(shù),獲取應(yīng)用程序鏡像文件信息。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述加載應(yīng)用程序包括 根據(jù)應(yīng)用程序鏡像文件信息及應(yīng)用程序鏡像文件長度,獲取執(zhí)行應(yīng)用程序鏡像文件所需空間大小,釋放預(yù)加載所分配的空間,并根據(jù)所述執(zhí)行應(yīng)用程序鏡像文件所需空間大小,在內(nèi)存中分配相應(yīng)大小的空間并初始化,將應(yīng)用程序鏡像文件拷貝到所分配的空間,執(zhí)行替換函數(shù),向替換函數(shù)發(fā)送調(diào)用應(yīng)用程序入口函數(shù)參數(shù),替換函數(shù)調(diào)用應(yīng)用程序入口函數(shù)。
5.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述加載應(yīng)用程序之后,該方法進(jìn)一步包括 執(zhí)行應(yīng)用程序過程中,執(zhí)行到軟中斷指令,觸發(fā)軟中斷異常,進(jìn)入軟中斷服務(wù)器程序,軟中斷服務(wù)程序根據(jù)軟中斷指令,及本地保存的軟中斷指令與二次開發(fā)接口函數(shù)的對應(yīng)關(guān)系,執(zhí)行與所述軟中斷指令對應(yīng)的二次開發(fā)接口函數(shù),二次開發(fā)接口函數(shù)執(zhí)行完畢,返回繼續(xù)執(zhí)行應(yīng)用程序。
6.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述啟動(dòng)應(yīng)用程序管理器之后,該方法進(jìn)一步包括 應(yīng)用程序管理器接收更新應(yīng)用程序指令,創(chuàng)建更新線程,更新線程根據(jù)接收的更新應(yīng)用程序指令中的更新的應(yīng)用程序鏡像文件地址,獲取更新的應(yīng)用程序鏡像文件,將文件系統(tǒng)中的應(yīng)用程序鏡像文件覆蓋。
7.一種應(yīng)用程序加載的裝置,其特征在于,該裝置包括應(yīng)用程序管理器、加載線程; 應(yīng)用程序管理器,用于在M2M終端模組上電初始化并啟動(dòng)后,接收加載應(yīng)用程序指令,創(chuàng)建加載線程,應(yīng)用程序執(zhí)行完畢后,結(jié)束加載線程; 加載線程,用于根據(jù)加載應(yīng)用程序指令,加載并執(zhí)行應(yīng)用程序。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于, 所述加載線程具體用于,根據(jù)加載應(yīng)用程序指令中的應(yīng)用程序鏡像文件路徑,打開文件系統(tǒng)中的應(yīng)用程序鏡像文件,讀取應(yīng)用程序鏡像文件長度,對應(yīng)用程序鏡像文件進(jìn)行預(yù)加載,獲取應(yīng)用程序鏡像文件信息,加載應(yīng)用程序。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述加載線程具體用于,根據(jù)預(yù)置的替換函數(shù)代碼長度,在內(nèi)存中分配相應(yīng)長度的空間,讀取應(yīng)用程序鏡像文件中最開始部分的替換函數(shù),拷貝到所分配的空間并執(zhí)行,接收替換函數(shù)返回的應(yīng)用程序鏡像文件信息。
10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于, 加載線程具體用于,根據(jù)應(yīng)用程序鏡像文件及應(yīng)用程序鏡像文件長度,獲取執(zhí)行應(yīng)用程序鏡像文件所需空間大小,并在內(nèi)存中分配相應(yīng)大小的空間,將應(yīng)用程序鏡像文件拷貝到所分配的空間,執(zhí)行替換函數(shù),替換函調(diào)用入口函數(shù),執(zhí)行應(yīng)用程序。
11.根據(jù)權(quán)利要求7、8或9所述的裝置,其特征在于,該裝置進(jìn)一步包括軟中斷服務(wù)程序單元,用于根據(jù)軟中斷指令,及軟中斷指令與二次開發(fā)接口函數(shù)的對應(yīng)關(guān)系,執(zhí)行與所述軟中斷指令對應(yīng)的二次開發(fā)接口函數(shù); 相應(yīng)的,所述加載線程,進(jìn)一步用于在執(zhí)行到軟中斷指令,通知軟中斷服務(wù)程序單元。
12.根據(jù)權(quán)利要求7、8或9所述的裝置,該裝置進(jìn)一步包括更新線程,用于根據(jù)更新指令中的更新的應(yīng)用程序鏡像文件地址,獲取更新的應(yīng)用程序鏡像文件,覆蓋文件系統(tǒng)中的應(yīng)用程序鏡像文件; 相應(yīng)的,應(yīng)用程序管理器,還用于接收更新應(yīng)用程序指令,創(chuàng)建更新線程。
全文摘要
本發(fā)明公開了一種應(yīng)用程序加載的方法,該方法包括M2M終端模組上電初始化后,啟動(dòng)應(yīng)用程序管理器;應(yīng)用程序管理器接收加載應(yīng)用程序指令,創(chuàng)建加載線程;加載線程根據(jù)加載應(yīng)用程序指令,加載應(yīng)用程序,應(yīng)用程序執(zhí)行完成后,結(jié)束加載線程。本發(fā)明還公開了一種應(yīng)用程序加載的裝置,采用本發(fā)明所述的方法及裝置,提高編譯效率,有利于終端維護(hù),獨(dú)立應(yīng)用程序執(zhí)行時(shí),實(shí)現(xiàn)業(yè)務(wù)功能。
文檔編號G06F9/445GK102750157SQ20111009929
公開日2012年10月24日 申請日期2011年4月20日 優(yōu)先權(quán)日2011年4月20日
發(fā)明者魯剛 申請人:中興通訊股份有限公司