中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Andromeda —— 適用于多進程架構(gòu)的組件通信框架

2018-07-13    來源:oschina

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

Android 的組件化由來已久,已經(jīng)生產(chǎn)了一些不錯的方案,尤其是在頁面跳轉(zhuǎn)這方面,阿里的 ARouter、 天貓的統(tǒng)跳協(xié)議、 Airbnb 的 DeepLinkDispatch, 借助注解來完成頁面的注冊,巧妙地實現(xiàn)了路由跳轉(zhuǎn)。

盡管 ARouter 等方案也支持接口的路由,但單進程的接口路由已經(jīng)無法滿足日益復雜業(yè)務需求。在很多移動端應用中,既有單進程的通信需求,也有跨進程的通信需求,并且還要支持跨進程通信中的Callback調(diào)用,以及全局的事件總線。

愛奇藝 Andromeda 框架,不僅滿足以上需求,而且還在此基礎(chǔ)上做到了整個進程間通信的阻塞式調(diào)用,讓異步連接代碼更優(yōu)雅。

Andromeda 的功能

Andromeda 是愛奇藝開源的一個 Android 平臺上輕量級的組件間通信框架,目前主要包含以下功能:

  • 本地服務路由,注冊本地服務是 registerLocalService(Class, Object), 獲取本地服務是 getLocalService(Class);

  • 遠程服務路由,注冊遠程服務是 registerRemoteService(Class, Object), 獲取遠程服務是 getRemoteService(Class);

  • 全局(含所有進程)事件總線, 訂閱事件為 subscribe(String, EventListener), 發(fā)布事件為 publish(Event);

  • 遠程方法回調(diào),如果某個業(yè)務接口需要遠程回調(diào),可以在定義 aidl 接口時使用 IPCCallback;

注: 這里的服務不是 Android 中四大組件的 Service,而是指提供的接口與實現(xiàn)。為了表示區(qū)分,后面的服務均是這個含義,而 Service 則是指 Android 中的組件。

這里為什么需要區(qū)分本地服務和遠程服務呢?

最重要的一個原因是本地服務的參數(shù)和返回值類型不受限制,而遠程服務則受 binder 通信的限制?梢哉f,Andromeda 的出現(xiàn)為組件化完成了最后一塊拼圖。

??

Andromeda 和其他組件間通信方案的對比

接入方式

首先在 buildscript 中添加 classpath (以 1.0.0 為例):

classpath "org.qiyi.video.svg:core:1.0.0"
classpath "org.qiyi.video.svg:plugin:1.0.0"

這兩個分別是核心代碼庫和 gradle 插件庫的路徑。 在 Application 或 library Module 中使用核心庫:

implementation 'org.qiyi.video.svg:core:1.0.0'

在 Application Module 中使用 gradle 插件:

apply plugin: 'org.qiyi.svg.plugin'

在 Andromeda 之前,可能是由于業(yè)務場景不夠復雜的原因,絕大多數(shù)通信框架都要么沒有涉及 IPC 問題,要么解決方案不優(yōu)雅,而 Andromeda 的意義在于同時融合了本地通信和遠程通信,完整地解決了組件通信的問題。

目前Andromeda 框架已經(jīng)開源:https://gitee.com/bettar/Andromeda。本次杭州源創(chuàng)會,我們還特別邀請了 Andromeda 的作者、愛奇藝架構(gòu)師——王海龍,為我們介紹 Android 組件化框架的發(fā)展和使用,以及適用于多進程架構(gòu)的組件通信框架 Andromeda。

除此之外,我們 2018 年 7 月 21 日(周六)的杭州源創(chuàng)會 —— 移動開發(fā)專場還邀請了:阿里國際UED高級前端技術(shù)專家——辟蹊、即構(gòu)科技資深架構(gòu)師——冼牛、個推 Android 高級研發(fā)工程師——李子洋、釘釘開放平臺高級技術(shù)專家——莘舟,五位行業(yè)大牛齊聚,以移動開發(fā)為核心,與你一起分享交流,進行一場關(guān)于面對面的技術(shù)對話。

點擊報名,與業(yè)內(nèi)大咖和更多小伙伴當面交流。

注:以上內(nèi)容有引用和參考 [Andromeda:首個適用于多進程架構(gòu)的組件通信框架]

https://my.oschina.net/u/3783511/blog/1820539

標簽: isp 代碼 通信

版權(quán)申明:本站文章部分自網(wǎng)絡,如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:關(guān)于 Vue.js:那些好的,不怎么樣的和糟糕的

下一篇:曾紅極一時的 Classic Shell Win 經(jīng)典開始菜單“復活”