perona是一个跨平台的服务启动框架。是服务端版本solon的情侣版,有android版本,有ios版本。
借签了B/S模式,在客户端实现组件功能的服务化,进而为大项目的组件化开发,提供一套弱偶合的方案。比如像支付宝那种有N多组件组成的项目...
基于客户端的需要,框架里也支持消息总线功能。用于组件之间的消息分发.
最佳的效果:开发一个动态的框架性主项目,所有组件功能全在服务端进行配置。
implementation 'org.noear:perona:0.1.18' //暂时还不能用,未上传中央仓库:)
import org.noear.perona.XApp; //:不要太纠结大小写的问题:)
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
//可以初始化一些参数
//
Map<String, Object> args = new HashMap<>();
args.put("env", 1);
XApp.start(this, args);
//
//...
//
}
}public class XModule2 implements XModule {
@Override
public void start(XApp app) {
//app.application(); //此对象可用
app.reg(this,"xapp://module2/m1", (c)->{
//c.param("a");
c.output("m1");
c.destroy();//手动控制注销上下文(如果其它地方不需要了)
});
}
}perona.xmodule=demo.module2.XModule2
compile project(':module2')
或
implementation 'demo.module2:0.x.x'
//调用功能
////不需要回调的
XClient.call(this,"xapp://module2/m1?a=1", null);
////需要回调的
XClient.call(this,"xapp://module2/m1?a=1", null,(c,data)->{
if(data==null){
return;
}
});
//分发消息
XClient.send(this,"msg://topic/m1?a=1", null);<a href="xapp://module2/xxx?id=1">xxx</a>