美文网首页
一个出于ARouter,却更轻便简洁的Route工具

一个出于ARouter,却更轻便简洁的Route工具

作者: 跳跃在代码上的豆豆 | 来源:发表于2018-11-20 17:37 被阅读0次

    HEasyRoute

    一个用于帮助组件化解耦的轻量框架

    写在文前

    按照惯例,反手就是一个超链接:
    github地址

    说明

    是否会觉得ARouter太过繁杂,功能太多,HEasyRoute便是将ARouter中大部分功能剔除,只留下了Activity的页面跳转的一个库

    导入

    如下添加依赖到各模块的build.gradle:

    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.**{*;}
    

    简单使用

    1. 在Application#onCreate()中调用EasyRoute.init(this);

    2. 在需要路由配置的Activity的类定义上加上注解:@Route(path = "/test")

    3. 在需要跳转到路由所标注的Activity的地方调用:EasyRoute.navigation(context, "/test");

    示例代码

    // 在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参数

    相关文章

      网友评论

          本文标题:一个出于ARouter,却更轻便简洁的Route工具

          本文链接:https://www.haomeiwen.com/subject/pjbxqqtx.html