[發(fā)明專利]動(dòng)態(tài)加載和調(diào)用程序的方法及裝置有效
| 申請?zhí)枺?/td> | 201310487438.2 | 申請日: | 2013-10-17 |
| 公開(公告)號: | CN103530156B | 公開(公告)日: | 2016-11-16 |
| 發(fā)明(設(shè)計(jì))人: | 榮濤 | 申請(專利權(quán))人: | 北京奇虎科技有限公司;奇智軟件(北京)有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京市浩天知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11276 | 代理人: | 宋菲;劉云貴 |
| 地址: | 100088 北京市西城區(qū)新*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 動(dòng)態(tài) 加載 調(diào)用 程序 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及插件處理技術(shù)領(lǐng)域,具體涉及一種動(dòng)態(tài)加載和調(diào)用程序的方法及裝置。
背景技術(shù)
類加載器(class?loader)是JavaTM中的一個(gè)很重要的概念。類加載器負(fù)責(zé)加載Java類的字節(jié)代碼到Java虛擬機(jī)(Virtual?Machine)中。同時(shí),類加載器是Java語言的一個(gè)創(chuàng)新,也是Java語言流行的重要原因之一。它使得Java類可以被動(dòng)態(tài)加載到Java虛擬機(jī)中并執(zhí)行。類加載器從JDK1.0就出現(xiàn)了,最初是為了滿足在Web容器和OSGI中得到了廣泛的使用。
Java虛擬機(jī)使用Java類的方式如下:Java源程序(.java文件)在經(jīng)過Java編譯器編譯之后被轉(zhuǎn)換成Java字節(jié)代碼(.class文件)。類加載器負(fù)責(zé)讀取Java字節(jié)代碼,并轉(zhuǎn)換成java.lang.Class類的一個(gè)實(shí)例。每個(gè)這樣的實(shí)例用來表示一個(gè)Java類。通過此實(shí)例的newInstance()方法就可以創(chuàng)建出該類的一個(gè)對象。
Java中的類加載器大致分為兩類,一類是系統(tǒng)提供的,另一類是由Java應(yīng)用開發(fā)人員編寫的。系統(tǒng)提供的類加載器主要有下面三個(gè):
引導(dǎo)加載器(Bootstrap?class?loader):用來加載Java核心庫,它是由原生代碼來實(shí)現(xiàn)的,并不繼承于Java.lang.ClassLoader。
擴(kuò)展加載器(Extensions?class?loader):用來加載Java擴(kuò)展庫。Java?VM的實(shí)現(xiàn)會(huì)提供一個(gè)擴(kuò)展庫目錄。該類加載器在此目錄中查找并加載相關(guān)的Java類。
系統(tǒng)加載器(System?class?loader):根據(jù)設(shè)定的環(huán)境變量來加載Java類。Java應(yīng)用的類都是由它完成加載的。
除了系統(tǒng)提供的類加載器以外,開發(fā)人員可以通過繼承java.lang.ClassLoader類的方式實(shí)現(xiàn)自己的類加載器,以滿足特殊的需求。
以在智能手機(jī)的安卓(Android)平臺上加載APK(Android?Package)格式的程序包為例。在加載APK之前,系統(tǒng)必須先安裝APK,具體安裝過程包括:首先要把該APK下載到本地,然后調(diào)用系統(tǒng)安裝程序,用戶逐步確認(rèn)后系統(tǒng)復(fù)制該APK安裝包到data/app目錄下,解壓并掃描安裝包,把dex文件(Dalvik字節(jié)碼)保存到dalvik-cache目錄下,并在data/data目錄下創(chuàng)建對應(yīng)的應(yīng)用數(shù)據(jù)目錄。上述安裝APK的步驟繁瑣復(fù)雜,用戶需要反復(fù)點(diǎn)擊和確認(rèn)后才能實(shí)現(xiàn)APK的加載,不利于APK的推廣。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的動(dòng)態(tài)加載和調(diào)用程序的方法和相應(yīng)的動(dòng)態(tài)加載和調(diào)用程序的裝置。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種動(dòng)態(tài)加載和調(diào)用程序的方法,其包括:由主系統(tǒng)發(fā)起對調(diào)用程序的調(diào)用請求;所述調(diào)用程序加載被調(diào)用程序生成相關(guān)句柄及文件,并得到所述調(diào)用程序的實(shí)例;所述調(diào)用程序?qū)⑺稣{(diào)用程序的實(shí)例賦值給所述被調(diào)用程序的實(shí)例;由所述調(diào)用程序發(fā)起對所述被調(diào)用程序的調(diào)用請求;由所述主系統(tǒng)根據(jù)程序的生命周期調(diào)用所述調(diào)用程序?qū)?yīng)的方法,由所述調(diào)用程序根據(jù)程序的生命周期調(diào)用所述被調(diào)用程序?qū)?yīng)的方法。
根據(jù)本發(fā)明的另一方面,提供了一種動(dòng)態(tài)加載和調(diào)用程序的裝置,其包括:主系統(tǒng)、調(diào)用程序運(yùn)行模塊以及被調(diào)用程序運(yùn)行模塊;其中,所述主系統(tǒng)包括:第一調(diào)用請求發(fā)起單元和第一調(diào)用單元;所述調(diào)用程序運(yùn)行模塊包括:加載單元、賦值單元、第二調(diào)用請求發(fā)起單元以及第二調(diào)用單元;
所述第一調(diào)用請求發(fā)起單元適于發(fā)起對調(diào)用程序的調(diào)用請求;所述加載單元適于加載被調(diào)用程序生成相關(guān)句柄及文件,并得到所述調(diào)用程序的實(shí)例;所述賦值單元適于將所述調(diào)用程序的實(shí)例賦值給所述被調(diào)用程序的實(shí)例;所述第二調(diào)用請求發(fā)起單元適于發(fā)起對所述被調(diào)用程序的調(diào)用請求;所述第一調(diào)用單元適于根據(jù)程序的生命周期調(diào)用所述調(diào)用程序?qū)?yīng)的方法;所述第二調(diào)用單元適于根據(jù)程序的生命周期調(diào)用所述被調(diào)用程序?qū)?yīng)的方法。
根據(jù)本發(fā)明提供的動(dòng)態(tài)加載和調(diào)用程序的方法及裝置,主系統(tǒng)利用調(diào)用程序作為媒介實(shí)現(xiàn)對被調(diào)用程序的加載和調(diào)用,具體地,在主系統(tǒng)發(fā)起對調(diào)用程序的調(diào)用請求之后,調(diào)用程序加載被調(diào)用程序;在加載過程中,將調(diào)用程序的實(shí)例賦值給被調(diào)用程序的實(shí)例;之后調(diào)用程序能夠發(fā)起對被調(diào)用程序的調(diào)用請求;進(jìn)而通過主系統(tǒng)調(diào)用調(diào)用程序?qū)?yīng)的方法,調(diào)用程序調(diào)用被調(diào)用程序?qū)?yīng)的方法,實(shí)現(xiàn)了被調(diào)用程序的加載和調(diào)用。利用本發(fā)明提供的方案,跳過上述繁瑣復(fù)雜的安裝步驟,只需下載程序包即可加載和調(diào)用。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎科技有限公司;奇智軟件(北京)有限公司,未經(jīng)北京奇虎科技有限公司;奇智軟件(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310487438.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 動(dòng)態(tài)矢量譯碼方法和動(dòng)態(tài)矢量譯碼裝置
- 動(dòng)態(tài)口令的顯示方法及動(dòng)態(tài)令牌
- 動(dòng)態(tài)庫管理方法和裝置
- 動(dòng)態(tài)令牌的身份認(rèn)證方法及裝置
- 令牌、動(dòng)態(tài)口令生成方法、動(dòng)態(tài)口令認(rèn)證方法及系統(tǒng)
- 一種動(dòng)態(tài)模糊控制系統(tǒng)
- 一種基于動(dòng)態(tài)信號的POS機(jī)和安全保護(hù)方法
- 圖像動(dòng)態(tài)展示的方法、裝置、系統(tǒng)及介質(zhì)
- 一種基于POS機(jī)聚合碼功能分離顯示動(dòng)態(tài)聚合碼的系統(tǒng)
- 基于動(dòng)態(tài)口令的身份認(rèn)證方法、裝置和動(dòng)態(tài)令牌
- IDL調(diào)用裝置及調(diào)用方法
- 調(diào)用方法及調(diào)用系統(tǒng)
- 一種服務(wù)調(diào)用方法及裝置
- 服務(wù)調(diào)用方法、服務(wù)調(diào)用裝置及服務(wù)調(diào)用系統(tǒng)
- 組件調(diào)用方法、裝置及計(jì)算機(jī)可讀存儲介質(zhì)
- 身份驗(yàn)證方法及裝置
- 系統(tǒng)調(diào)用處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲介質(zhì)
- 一種數(shù)據(jù)調(diào)用方法、裝置、電子設(shè)備及存儲介質(zhì)
- 一種微服務(wù)請求重試的方法及終端
- 業(yè)務(wù)數(shù)據(jù)的處理方法、裝置及系統(tǒng)





