欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種動態(tài)調(diào)用原生接口的方法、裝置和系統(tǒng)的制作方法

文檔序號:9631452閱讀:416來源:國知局
一種動態(tài)調(diào)用原生接口的方法、裝置和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種動態(tài)調(diào)用原生接口的方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]Web應(yīng)用由于采用HTML、CSS、JavaScript等作為開發(fā)語言,具有天然的跨平臺優(yōu)勢,一次性開發(fā)就可以運行在多種類型的嵌入式終端平臺上,大大提高了多平臺開發(fā)的效率,受到了越來越多人的青睞。然而,由于Web應(yīng)用運行于瀏覽器中,與設(shè)備API相隔離,功能受到一定的限制,并且運行效率也一直為人們所詬病。另外,Web應(yīng)用通常需要訪問系統(tǒng)的設(shè)備功能,包括:攝像頭、加速計、地理位置信息、通訊錄、照片庫、存儲卡和媒體播放等,這些功能與硬件或操作系統(tǒng)底層有關(guān),Web應(yīng)用不具備所需的較高權(quán)限,無法直接調(diào)用。因此,迫切需要一種新的開發(fā)模式,可以結(jié)合使用原生技術(shù)與Web技術(shù),既可以實現(xiàn)設(shè)備功能的調(diào)用以及豐富高效的系統(tǒng)原生接口,又能夠在一定程度上保證跨平臺的特性。
[0003]然而,由于目前嵌入式終端上瀏覽器比較精簡,同時原生接口存在多種形式,如Java,C/C++等,現(xiàn)有的瀏覽器插件機制難以支撐以上需求。應(yīng)此問題,目前的嵌入式終端瀏覽器多采用修改Web引擎源碼,從瀏覽器內(nèi)核部分支持擴展的原生接口,實現(xiàn)與JavaScript的綁定。這種方法需要獲取平臺源碼,對平臺依賴性很大;而且對于不同的操作系統(tǒng),需要在不同的平臺源碼環(huán)境中進行重復(fù)編譯開發(fā),開發(fā)工作量大,維護困難。目前新興的一種技術(shù)是采用JavaScript框架來擴展原生接口,通過在應(yīng)用層實現(xiàn)原生接口。例如,在Android的APP層實現(xiàn)Java對象,將應(yīng)用啟動時將該對象注冊到Web引擎中,當JavaScript調(diào)用到該接口時,調(diào)用該對象接口運行。
[0004]以上方法均可以實現(xiàn)在嵌入式瀏覽器的Web應(yīng)用中通過JavaScript腳本調(diào)用原生接口的技術(shù),但均需要事先在Web引擎、應(yīng)用或者系統(tǒng)中內(nèi)置原生接口,當原生接口需要更新或增加時,需要升級系統(tǒng)或者應(yīng)用;另外,在應(yīng)用中擴展的原生接口,只能為該應(yīng)用本身所調(diào)用,無法為其他應(yīng)用提供服務(wù),這些都給Web應(yīng)用的開發(fā)和推廣帶來了極大的不便。
[0005]因此,需要一種新的調(diào)用原生接口的方法,能夠在不升級系統(tǒng)或應(yīng)用的前提下,動態(tài)擴展和增加應(yīng)用所需的原生接口,并且能為所有運行于該系統(tǒng)之上的Web應(yīng)用所調(diào)用。

【發(fā)明內(nèi)容】

[0006]本發(fā)明的目的是提供一種能夠克服上述缺陷的動態(tài)調(diào)用原生接口的方法、裝置和系統(tǒng)。
[0007]在第一方面,本發(fā)明提供了一種動態(tài)調(diào)用原生接口的方法,包括:監(jiān)聽Web應(yīng)用或瀏覽器內(nèi)核對原生接口的調(diào)用請求;對監(jiān)聽到的調(diào)用請求進行解析;根據(jù)所述解析結(jié)果,查找所請求的原生接口并將其加載到內(nèi)存中;從內(nèi)存中調(diào)用已加載的原生接口,將執(zhí)行結(jié)果返回給發(fā)出請求的Web應(yīng)用或瀏覽器內(nèi)核。
[0008]優(yōu)選地,所述調(diào)用請求中包含的接口名稱和相關(guān)參數(shù)通過http鏈接中的擴展參數(shù)傳遞,所述解析所述調(diào)用請求是對所述接口名稱和相關(guān)參數(shù)進行解析,所述執(zhí)行結(jié)果的返回是通過http鏈接進行的,所述監(jiān)聽是通過呈現(xiàn)狀態(tài)轉(zhuǎn)換的應(yīng)用程序接口 RESTful API進行的;所述方法還包括將解析后的相關(guān)參數(shù)傳入所述原生接口。
[0009]優(yōu)選地,所述原生接口是Java接口:所述監(jiān)聽是監(jiān)聽通過JavaScript方式調(diào)用原生接口的事件;所述查找和加載是查找Jar包并將其加載到內(nèi)存中;
[0010]所述調(diào)用是從內(nèi)存中加載所述Jar包并通過Java反射機制來執(zhí)行的。
[0011]優(yōu)選地,所述原生接口是C/C++接口:所述監(jiān)聽是監(jiān)聽通過JavaScript方式調(diào)用原生接口的事件;利用動態(tài)鏈接庫來執(zhí)行所述查找;利用動態(tài)鏈接庫的庫函數(shù)來執(zhí)行所述調(diào)用。
[0012]優(yōu)選地,所述方法還包括檢測是否有需要更新或擴充的原生接口,基于檢測結(jié)果發(fā)出更新或擴充接口請求;對所述檢測模塊進行響應(yīng);在接收到所述響應(yīng)后,下載需要更新或擴充的原生接口 ;對下載的原生接口進行完整性和可靠性的驗證;存儲通過校驗的原生接口以供調(diào)用。
[0013]在第二方面,本發(fā)明提供了一種動態(tài)調(diào)用原生接口的裝置,包括監(jiān)聽模塊、解析模塊、加載模塊、執(zhí)行模塊和本地存儲模塊,其中:所述監(jiān)聽模塊用于監(jiān)聽Web應(yīng)用或瀏覽器內(nèi)核對原生接口的調(diào)用請求,并將所述調(diào)用請求傳遞給所述解析模塊;所述解析模塊用于解析所述調(diào)用請求,并將解析結(jié)果傳遞給加載模塊;所述加載模塊用于根據(jù)所述解析結(jié)果,在所述本地存儲模塊中查找所請求的原生接口并將其加載到內(nèi)存中;所述執(zhí)行模塊從內(nèi)存中調(diào)用已加載的原生接口,將執(zhí)行結(jié)果返回給發(fā)出請求的Web應(yīng)用。
[0014]優(yōu)選地,所述監(jiān)聽模塊將所述調(diào)用請求中包含的接口名稱和相關(guān)參數(shù)通過http鏈接中的擴展參數(shù)傳遞給所述解析模塊;所述解析模塊是對是對所述接口名稱和相關(guān)參數(shù)進行解析:所述執(zhí)行模塊還用于將解析后的相關(guān)參數(shù)傳入所述原生接口,并且通過http鏈接將所述執(zhí)行結(jié)果返回給發(fā)出請求的Web應(yīng)用;所述監(jiān)聽模塊是呈現(xiàn)狀態(tài)轉(zhuǎn)換的應(yīng)用程序接口 RESTful API ο
[0015]優(yōu)選地,所述原生接口是Java接口:所述監(jiān)聽模塊監(jiān)聽通過JavaScript方式調(diào)用原生接口的事件;所述加載模塊將在本地存儲模塊中查找到的Jar包加載到內(nèi)存中;所述執(zhí)行模塊從內(nèi)存中加載所述Jar包,通過Java反射機制來執(zhí)行原生接口的調(diào)用。
[0016]優(yōu)選地,所述原生接口是C/C++接口:所述監(jiān)聽模塊是監(jiān)聽通過JavaScript方式調(diào)用原生接口的事件;所述加載模塊利用動態(tài)鏈接庫在本地存儲模塊中查找所請求的原生接口 ;所述執(zhí)行模塊利用動態(tài)鏈接庫的庫函數(shù)來調(diào)用所請求的原生接口。
[0017]在第三方面,本發(fā)明提供了一種動態(tài)調(diào)用原生接口的系統(tǒng),包括第一方面所述的裝置、檢測模塊、下載模塊、校驗?zāi)K、更新模塊和原生接口管理服務(wù)器,其中:所述檢測模塊用于檢測是否有需要更新或擴充的原生接口,基于檢測結(jié)果向所述原生接口管理服務(wù)器發(fā)出更新或擴充接口請求;所述原生接口管理服務(wù)器對所述檢測模塊進行響應(yīng);檢測模塊在接收到所述響應(yīng)后,調(diào)用所述下載模塊從原生接口管理服務(wù)器下載需要更新或擴充的原生接口 ;所述校驗?zāi)K對下載的原生接口進行完整性和可靠性的驗證;所述更新模塊將通過校驗的原生接口加載到所述本地存儲模塊中,以供所述執(zhí)行模塊調(diào)用。
[0018]本發(fā)明通過在嵌入式終端上集成為Web應(yīng)用提供接口服務(wù)并且與服務(wù)端的接口管理服務(wù)器進行交互的原生接口管理引擎,實現(xiàn)了對所需要的原生接口的動態(tài)更新或擴充,并且實現(xiàn)了嵌入式終端上Web應(yīng)用或瀏覽器內(nèi)核無需升級即可調(diào)用相應(yīng)接口。
【附圖說明】
[0019]圖1是根據(jù)本發(fā)明實施例的原生接口動態(tài)擴展裝置的示意圖;
[0020]圖2為根據(jù)本發(fā)明一個實施例的Web應(yīng)用調(diào)用原生接口的流程圖;
[0021 ] 圖3為根據(jù)本發(fā)明另一個實施例的Web應(yīng)用調(diào)用原生接口的流程圖;
[0022]圖4為根據(jù)本發(fā)明又一個實施例的Web應(yīng)用調(diào)用原生接口的流程圖;
[0023]圖5為根據(jù)本發(fā)明實施例的更新原生接口模塊的流程圖。
【具體實施方式】
[0024]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
[0025]本發(fā)明目的在于克服目前嵌入式瀏覽器Web應(yīng)用調(diào)用原生接口技術(shù)中存在的上述缺陷,提出一種動態(tài)調(diào)用原生接口的方法、裝置及系統(tǒng),可以實現(xiàn)在服務(wù)端動態(tài)擴展或修改所需原生接口,終端上Web應(yīng)用或瀏覽器
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
桓台县| 札达县| 洞头县| 武宁县| 定陶县| 遂溪县| 恩施市| 墨玉县| 扬中市| 郯城县| 栖霞市| 湖口县| 永平县| 涟源市| 舞钢市| 和顺县| 紫云| 积石山| 阿坝县| 社旗县| 光泽县| 阿荣旗| 阿克苏市| 易门县| 偏关县| 滕州市| 海阳市| 化德县| 高雄县| 广饶县| 娱乐| 长白| 衡东县| 南阳市| 西乌珠穆沁旗| 赫章县| 吉林省| 洪江市| 嘉兴市| 当涂县| 五常市|