Andoid 匯流排設計 三

2021-07-15 12:34:54 字數 2970 閱讀 6317

具體的**設計:

標記註解 用於執行方法上面

@retention(retentionpolicy.runtime)

@target(elementtype.method)

public @inte***cesubscriber

標記執行型別 同步或者非同步

subscribemethod 儲存目標函式的乙個類:

裡面有:

//執行物件

private object object;

// 方法

private method method;

// 引數 (只支援乙個引數的方法)

private class<> parameters;

//執行型別

private subscribertype subscribertype;

省 get set

distributehandler 是乙個分發介面

asyndistributehandler 非同步分發實現。

syncdistributehandler 同步分發實現。

public inte***cedistributehandler

public classasyndistributehandlerimplements distributehandler

private subscribemethod subscribemethod = null;

@override

public void handevent(final object parameter)

}).start();

}

public class syncdistributehandler implementsdistributehandler@override

public void handevent(object parameter) 分發處理 管理類

distributemaneger 管理事件的分發

public classdistributemanegerelse if (subscribemethod.getsubscribertype().equals(subscribertype.sync))

}}/**

* 登出

反射處理類 reflectionhelper :

public classreflectionhelper

}}/**

* * 根據 post 函式裡面的引數 獲取 有這些引數的方法

* @param parameter

* @param subscribemethodlist

* @return

*/public static listgettypesubscribemethods(object parameter, listsubscribemethodlist)

}return typesubscribemethodlist;

}/**

* 執行

* * @param subscribemethod

* @param parameter

*/public static void invokesubscribemethod(subscribemethod subscribemethod, object parameter) catch (illegalacces***ception e) catch (invocationtargetexception e)

}/**

* 根據 obj 獲取 列表

* * @param obj

* @param subscribemethodlist

* @return

*/public static listgettypeobjsubscribemethod(object obj, listsubscribemethodlist)

}return typesubscribemethodlist;

}eventbus 事件處理類:

public class eventbus

/** * 初始化例項

*/private static synchronized void newinstance()

}/**

* 註冊某物件

* 1 . 獲取含有註解的方法 引數

* * @param obj

*/public void register(object obj)

/** * 傳送事件

* * @param obj

*/public void post(object obj)

/** * 反註冊某物件

* * @param obj

*/public void unregister(object obj)

/** *

* @return

*/public listgetsubscribemethodlist() 好到此 **寫完了 接下來就是 測試及使用 最後總結一下。

Andoid 匯流排設計 一

以前沒有用過 evenbus 在andoid開發過程中 經常使用廣播進行通訊,太麻煩了,後面發現了乙個叫evenbus的東西 終於可以減少 了好多廣播事件。簡單了,耦合度低了。evenbus 確實是個好東西。沒有了解過的同學可以看看 eventbus 舉個列子 public class mainac...

平台匯流排(三)

平台匯流排 用於平台公升級的 三星 s3c2410 s3c6410 s5pv210 gpio控制器 gpio控制器 gpio控制器 uart i2cspi 控制邏輯方法相同 1,配置gpio暫存器 2.讀寫資料 位址會不同 三元素 匯流排 開機的時候就已經建立了,不需要我們建立 struct bus...

SOI匯流排(三)

使用者邏輯 該模組針對使用者不同的應用來設計,本質上就是使用者的具體業務應用,與spi 4介面沒有直接關係。當應用支援多個埠時,這部分就顯得至關重要。下面以支援兩個埠的應用來說明使用者邏輯的設計技巧。1 sink core的使用者邏輯 埠為兩個時,使用者邏輯就需要用兩個不同的fifo根據埠的位址等來...