一個出於ARouter,卻更輕便簡潔的Route工具

騎著小貓碼程式碼丶發表於2018-08-27

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引數

相關文章