一个用于帮助组件化解耦的轻量框架java
按照惯例,反手就是一个超连接: github地址android
是否会以为ARouter太过繁杂,功能太多,HEasyRoute即是将ARouter中大部分功能剔除,只留下了Activity的页面跳转的一个库git
以下添加依赖到各模块的build.gradle:github
1、添加依赖
dependencies {
annotationProcessor 'com.hooyee:easyroute-compile:1.0.1'
compile 'com.hooyee:easyroute-lib:1.0.1'
}
2、添加区分各模块的参数
android {
...
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
arguments = [ moduleName : project.getName() ]
}
}
}
...
}
复制代码
-keepnames class * {
@com.moly.hooyee.annocation.Route <fields>;
}
-keep public class com.moly.hooyee.model.**{*;}
复制代码
在Application#onCreate()中调用EasyRoute.init(this);bash
在须要路由配置的Activity的类定义上加上注解:@Route(path = "/test")框架
在须要跳转到路由所标注的Activity的地方调用:EasyRoute.navigation(context, "/test");ide
// 在Application中初始化
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
EasyRoute.init(this);
}
}
// 具体调用代码
@Route(path = "test")
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn_test).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EasyRoute.navigation(getApplicationContext(), "/test/a1");
}
});
findViewById(R.id.btn_test2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EasyRoute.navigation(getApplicationContext(), "moudle2/t2");
}
});
}
}
复制代码
完成以上三步便可跳转到指定的Activity,跨模块调用一样可行组件化
须要注意的是,每一个moudle都须要配置 javaCompileOptions参数gradle