System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開實施例涉及計算機,具體涉及應用程序擴展方法、裝置和電子設備。
技術介紹
1、傳統的應用程序擴展往往采用插件的形式,在主程序開發的過程中,需要先定義插件的接口,插件的開發者需要實現這些接口,并在應用程序啟動后,將自己的插件注冊到應用程序中。在應用程序運行的過程中,一旦發生特定事件后,應用程序會檢查注冊到這個接口的插件,并調用插件的接口,這種應用程序的擴展方式的程序架構清晰,主程序可以不關心插件的具體實現,插件的開發者只需要按照接口規范開發并注冊插件,即可實現對主程序的擴展。
技術實現思路
1、提供該公開內容部分以便以簡要的形式介紹構思,這些構思將在后面的具體實施方式部分被詳細描述。該公開內容部分并不旨在標識要求保護的技術方案的關鍵特征或必要特征,也不旨在用于限制所要求的保護的技術方案的范圍。
2、第一方面,本公開實施例提供了一種應用程序擴展方法,包括:檢測第一程序是否向目標頻道發送消息;若是,則向訂閱上述目標頻道的第二程序發送上述消息,以供上述第二程序基于上述消息執行預設操作,其中,上述第一程序和上述第二程序中的至少一個為擴展程序。
3、第二方面,本公開實施例提供了一種應用程序擴展裝置,包括:檢測單元,用于檢測第一程序是否向目標頻道發送消息;發送單元,用于若第一程序向目標頻道發送消息,則向訂閱上述目標頻道的第二程序發送上述消息,以供上述第二程序基于上述消息執行預設操作,其中,上述第一程序和上述第二程序中的至少一個為擴展程序。
4、第三方面,本
5、第四方面,本公開實施例提供了一種計算機可讀介質,其上存儲有計算機程序,該程序被處理器執行時實現如第一方面所述的應用程序擴展方法的步驟。
6、本公開實施例提供的應用程序擴展方法、裝置和電子設備,通過檢測第一程序是否向目標頻道發送消息;若是,則向訂閱上述目標頻道的第二程序發送上述消息,以供上述第二程序基于上述消息執行預設操作,其中,上述第一程序和上述第二程序中的至少一個為擴展程序。這種方式通過使用消息隊列模式實現了訂閱者(即第二程序)和發布者(即第一程序)之間的消息路由功能。
7、傳統的基于插件的應用擴展方式通常存在以下問題:
8、首先,是二進制兼容問題。由于編譯工具鏈的版本不同,或者編譯優化的等級不同,主程序和插件之間很容易產生二進制不兼容的問題,此類問題常常會比較隱蔽,只有在調用特定接口的時候才會產生崩潰,對于崩潰的定位也比一般的應用程序崩潰的定位困難。
9、其次,是穩定性問題。插件的本質通常是一個動態鏈接庫,它與進程共享同樣的地址空間,因此,一旦插件內部產生異常,就會導致主程序崩潰退出,對于一款成熟的應用程序而言,往往存在十幾乃至上百個插件程序,這些插件的開發者水平也各不相同,難免存在不同程序的缺陷,每次程序啟動,通常會同時加載幾個乃是十幾個插件,主程序穩定性會隨著插件數量的增多而降低。
10、再次,是語言類型限制問題。插件的本質通常是一個動態鏈接庫,最適合編寫插件的語言是c/c++這種能夠生成native?code(原生代碼)的程序設計語言,如果是java或c#這種帶有中間層的語言,或者python這種腳本語言,就不太適合作為插件的開發語言,雖然可以借助語言本身提供的工具實現動態鏈接庫開發,但開發效率較低。因此,語言類型的限制也造成了插件機制的應用存在局限性。
11、相比于傳統的基于插件的應用擴展方式,本方案可以盡量減少擴展程序與主程序之間的耦合,使得主程序和擴展程序的開發與構建相互獨立,無需擔心二進制兼容問題,擴展程序的不穩定性也不會影響主程序,且擴展程序的開發可以使用任意主流開發語言。
本文檔來自技高網...【技術保護點】
1.一種應用程序擴展方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述第一程序為主程序,所述第二程序為擴展程序;以及
3.根據權利要求1所述的方法,其特征在于,所述第一程序為擴展程序,所述第二程序為主程序;以及
4.根據權利要求1所述的方法,其特征在于,所述第一程序和所述第二程序均為擴展程序;以及
5.根據權利要求1所述的方法,其特征在于,在所述檢測第一程序是否向目標頻道發送消息之前,所述方法還包括:
6.根據權利要求5所述的方法,其特征在于,所述擴展程序目錄包括至少一個擴展程序子目錄,每個擴展程序子目錄包括擴展程序和擴展程序配置文件,所述擴展程序配置文件包括啟動標識和擴展程序標識,所述啟動標識用于告知所述主程序是否需要啟動該擴展程序。
7.根據權利要求5所述的方法,其特征在于,所述啟動結果包括啟動成功標識和詳情信息,若所述啟動成功標識指示啟動失敗,則所述詳情信息包括失敗原因。
8.根據權利要求5所述的方法,其特征在于,在所述向所述反饋頻道發送所述擴展程序的啟動結果之后,所述
9.根據權利要求8所述的方法,其特征在于,所述接口消息包括事件列表字段和/或服務列表字段,所述事件列表字段用于表征至少一個事件,每個事件包括該事件對應的頻道名稱字段,所述服務列表字段用于表征至少一個服務,每個服務包括該服務對應的頻道名稱字段。
10.根據權利要求1-9之一所述的方法,其特征在于,所述第一程序和所述第二程序使用遠程字典服務數據庫進行通信。
11.一種應用程序擴展裝置,其特征在于,包括:
12.一種電子設備,其特征在于,包括:
13.一種計算機可讀介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1-10中任一所述的方法。
...【技術特征摘要】
1.一種應用程序擴展方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述第一程序為主程序,所述第二程序為擴展程序;以及
3.根據權利要求1所述的方法,其特征在于,所述第一程序為擴展程序,所述第二程序為主程序;以及
4.根據權利要求1所述的方法,其特征在于,所述第一程序和所述第二程序均為擴展程序;以及
5.根據權利要求1所述的方法,其特征在于,在所述檢測第一程序是否向目標頻道發送消息之前,所述方法還包括:
6.根據權利要求5所述的方法,其特征在于,所述擴展程序目錄包括至少一個擴展程序子目錄,每個擴展程序子目錄包括擴展程序和擴展程序配置文件,所述擴展程序配置文件包括啟動標識和擴展程序標識,所述啟動標識用于告知所述主程序是否需要啟動該擴展程序。
7.根據權利要求5所述的方法,其特征在于,所述啟動結果包括啟動成功標識和詳情...
【專利技術屬性】
技術研發人員:杜冀秦,張瑞生,
申請(專利權)人:北京字跳網絡技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。