專利名稱:一種基于arm的手機應用程序動態加載方法
技術領域:
本發明涉及一種移動通信技術,特別是涉及一種基于arm (—種嵌入式 開發技術)的手機應用程序動態加載方法。
背景技術:
目前手機行業競爭激烈,手機功能同質化嚴重,如何開發差異化產品, 獲得用戶認可變得越來越難。在這種情況下,以內容取代功能或許是一個可 行的切入點。手機提供功能是不變的,但提供的內容可以不斷更新的,如果 以手機為載體,能向用戶提供豐富實用的信息,以及動態的運算功能將極大 的拓寬手機的應用范圍,而從一個手機功能提供者變為手機內容提供者也將 極大提升手機生產商的生存發展空間。
而要做到這點,動態加載技術是其中很重要的一環,手機存儲空間有限, 不可能將所有應用程序都放在手機上,而且應用也是根據需要不斷變化產生 的,如能做到手機主程序和單一應用分離,手機僅作為一個運行平臺,運行 不同的應用。當需要某個應用時可以從網上下載到手機的外部存儲卡,然后 動態加載到手機上運行。
Java是最流行的可實現動態加載的技術,但由于需要先集成Java虛擬 機,更重要的是,Java是全開放平臺,誰都可以用Java來開發應用為自己 謀利,而在手機中內置了 Java虛擬機的手機廠商卻無法從中獲利,影響了手 機廠商的成本和收入。
發明內容
本發明要解決的技術問題是為了克服現有技術的缺陷,提供一種基于ami的手機應用程序動態加載方法,其是可支持動態加載,支持代碼分離, 同時它所提供的應用開發平臺是可控的且非全公開的。
本發明是通過下述技術方案來解決上述技術問題的 一種基于arm的手 機應用程序動態加載方法,其特征在于,其包括以下步驟
51、 在一主程序和需要動態加載的應用程序之間定義一套歸一化接口;
52、 主程序按照歸一化接口實現應用程序需要的運行環境以及代碼拷貝 功能;
53、 在主程序中啟動加載過程,將需要加載的應用程序從手機的外部存 儲設備拷貝到指定的運行空間;
54、 應用程序按照歸一化接口生成與主程序匹配的接口;
55、 主程序按照歸一化接口去啟動應用程序,程序運行轉入應用程序空 間,加載完成。
優選地,所述歸一化接口包含主程序和應用程序之間的加載機制。 優選地,所述加載機制包括函數調用機制、參數調用、返回值以及內存 訪問機制。
優選地,所述主程序和應用程序之間定義兩個準則。
優選地,所述準則中的一個是為了實現歸一化接口定義的加載機制,需 要利用arm的編譯工具在生成應用程序的時候,要將代碼和數據分離,并按 照定義的內存布局來存儲,并將啟動函數放在指定的地址位置。
優選地,所述準則中的一個是主程序使用arm的編譯工具在隨機存儲器 中按照歸一化接口預留空間給應用程序。
優選地,所述步驟S2中,在生成主程序的時候,按照歸一化接口為加 載的應用程序定義運行空間;在生成應用程序的時候,按照歸一化接口生成 一個與主程序運行空間一致的二進制代碼。
本發明的積極進步效果在于本發明基于arm的手機應用程序動態加載 方法可支持動態加載,支持代碼分離,同時它所提供的應用開發平臺是可控的且非全公開的,從而限制非法開發和利用。
圖1為本發明基于arm的手機應用程序動態加載方法的流程圖。
具體實施例方式
下面結合附圖給出本發明較佳實施例,以詳細說明本發明的技術方案。 如圖1所示,本發明基于arm的手機應用程序動態加載方法包括以下步
驟
步驟一在主程序和需要動態加載的應用程序之間定義一套歸一化接 口,其中歸一化接口包含主程序和應用程序之間的加載機制,加載機制包括 函數調用機制、參數調用、返回值以及內存訪問機制等;
步驟二主程序按照歸一化接口實現應用程序需要的運行環境以及代碼
拷貝功能。即在生成主程序的時候,按照歸一化接口為加載的應用程序定義 運行空間。在生成應用程序的時候,按照歸一化接口生成一個與主程序運行 空間一致的二進制代碼。
步驟三在主程序中啟動加載過程,將需要加載的應用程序從手機的外
部存儲設備拷貝到指定的運行空間。
步驟四應用程序按照歸一化接口生成與主程序匹配的接口。 步驟五主程序按照歸一化接口去啟動應用程序,程序運行轉入應用程 序空間,加載完成。
本發明的實質是利用arm編譯工具的特性,在主程序和應用程序之間定 義兩個雙方認可的準則
準則一為了實現歸一化接口定義的加載機制,需要利用arm的編譯工 具在生成應用程序的時候,要將代碼和數據分離,并按照定義的內存布局來 存儲,并將啟動函數放在指定的地址位置。準則二主程序也要使用arm的編譯工具在它的RAM (Random Access Memory,隨機存儲器)中按照歸一化接口預留足夠的空間給應用程序。
按照上述準則生成的主程序下載到手機里運行,按照上述準則生成的應 用程序放在手機的外部存儲設備中,在主程序啟動加載的時候,能夠確保加 載成功。
雖然以上描述了本發明的具體實施方式
,但是本領域的技術人員應當理 解,這些僅是舉例說明,在不背離本發明的原理和實質的前提下,可以對這 些實施方式做出多種變更或修改。因此,本發明的保護范圍由所附權利要求 書限定。
權利要求
1、一種基于arm的手機應用程序動態加載方法,其特征在于,其包括以下步驟S1、在一主程序和需要動態加載的應用程序之間定義一套歸一化接口;S2、主程序按照歸一化接口實現應用程序需要的運行環境以及代碼拷貝功能;S3、在主程序中啟動加載過程,將需要加載的應用程序從手機的外部存儲設備拷貝到指定的運行空間;S4、應用程序按照歸一化接口生成與主程序匹配的接口;S5、主程序按照歸一化接口去啟動應用程序,程序運行轉入應用程序空間,加載完成。
2、 如權利要求1所述的基于arm的手機應用程序動態加載方法,其特 征在于,所述歸一化接口包含主程序和應用程序之間的加載機制。
3、 如權利要求2所述的基于arm的手機應用程序動態加載方法,其特 征在于,所述加載機制包括函數調用機制、參數調用、返回值以及內存訪問 機制。
4、 如權利要求3所述的基于arm的手機應用程序動態加載方法,其特 征在于,所述主程序和應用程序之間定義兩個準則。
5、 如權利要求4所述的基于arm的手機應用程序動態加載方法,其特 征在于,所述準則中的一個是為了實現歸一化接口定義的加載機制,需要利 用arm的編譯工具在生成應用程序的時候,要將代碼和數據分離,并按照定 義的內存布局來存儲,并將啟動函數放在指定的地址位置。
6、 如權利要求4所述的基于arm的手機應用程序動態加載方法,其特 征在于,所述準則中的一個是主程序使用arm的編譯工具在隨機存儲器中按 照歸 一化接口預留空間給應用程序。
7、 如權利要求1所述的基于arm的手機應用程序動態加載方法,其特征在于,所述步驟S2中,在生成主程序的時候,按照歸一化接口為加載的應用程序定義運行空間;在生成應用程序的時候,按照歸一化接口生成一個 與主程序運行空間一致的二進制代碼。
全文摘要
本發明公開了一種基于arm的手機應用程序動態加載方法,其包括以下步驟在一主程序和需要動態加載的應用程序之間定義一套歸一化接口;主程序按照歸一化接口實現應用程序需要的運行環境以及代碼拷貝功能;在主程序中啟動加載過程,將需要加載的應用程序從手機的外部存儲設備拷貝到指定的運行空間;應用程序按照歸一化接口生成與主程序匹配的接口;主程序按照歸一化接口去啟動應用程序,程序運行轉入應用程序空間,加載完成。本發明可支持動態加載,支持代碼分離,同時所提供的應用開發平臺是可控的且非全公開的。
文檔編號H04M1/72GK101673204SQ20091005638
公開日2010年3月17日 申請日期2009年8月13日 優先權日2009年8月13日
發明者李景龍, 邱世慶 申請人:上海酷吧信息技術有限公司