zh en

指南

本指南將描述如何爲Easer添加新功能,如增加新的Event或Operation,同時也會簡單涉及Easer的設計結構。
(注意:Profile是一組Operation的集合,所以要擴展Profile只要創建相應的新Operation即可。)

增加Event/Operation

在Easer中,所有的Event和Operation都被視爲插件(plugin),均放置於ryey.easer.plugins包下——更具體地,Event在ryey.easer.plugins.event包下,Operation在ryey.easer.plugins.operation包下。

要新建Event或Operation,可以使用提供的腳本,之後自行填充;也可以純手動。

使用腳本自動生成模板

在utils目錄下有兩個腳本(new_event.pynew_operation.py),用於創建相應插件的“模板”——通用部分會被創建,一般而言只需要填充其中TODO部分即可。 做完之後,在ryey.easer.plugins.PluginRegistry中註冊該新插件即完成。

組件的各個部分詳解見下。

詳細步驟

要增加新的Event或Operation,本質上來說要做兩件事:

  1. 實現新Event或Operation的功能(通過擴展/繼承相應接口,並實現相應內容)
  2. ryey.easer.plugins.PluginRegistry中註冊該新插件

其中:

而在PluginRegistry中註冊只需要在其init()方法中仿照已有條目,爲新插件寫一行代碼。

強烈建議仿照已有插件的做法,將新的插件放於相應的包/目錄內。

EventPlugin接口和OperationPlugin接口均有詳細註釋。

無論是EventPlugin還是OperationPlugin均需實現UI部分,均是通過實現一個ryey.easer.commons.plugindef.PluginViewFragment的子類來完成。

一些常用的子類已在ryey.easer.plugins或子包中寫好,方便使用。

接口/抽象類作用

PluginDefStorageData爲通用的接口,實際使用中會使用相應的子接口(如EventPlugin)。每個插件的各個部件均會使用數據,所以其對應數據類(即StorageData的子類)需要作爲泛型參數。