Android Studio接入ARouter以及简单使用

2019-06-13 11:31:32

传送门 Android Studio接入ARouter以及简单使用


1 所有module的 build.gradle中


注意是所有的module!

注意是所有的module!

注意是所有的module!


你可能会说如果我的A module依赖了 B module,那么只要在B里面配置是不是就可以了?绝对不行!无论module之间关系如何,必须要同样配置!包括主项目和library项目!


dependencies {

    ......

    

    compile ('com.alibaba:arouter-api:1.4.1'){ exclude group: 'com.android.support' }

    annotationProcessor 'com.alibaba:arouter-compiler:1.2.2'

}

1

2

3

4

5

6

AROUTER_MODULE_NAME这个参数是固定的,不用改成自己的项目名


android {

    defaultConfig {

        ...

        javaCompileOptions {

            annotationProcessorOptions {

                arguments = [AROUTER_MODULE_NAME: project.getName()]

            }

        }

    }

}

1

2

3

4

5

6

7

8

9

10

2 Application初始化


public class MyApplication extends Application {  

  

  

    @Override  

    public void onCreate() {  

        super.onCreate();  

  

        initRouter(this);  

    }  

  

  

    public static void initRouter(Application application) {  

        if (BuildConfig.DEBUG) {  

            ARouter.openLog();     // 打印日志  

            ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)  

        }  

        ARouter.init(application);  

    }  

  

  

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

3 使用

/app/MainActivity 自定义但是必须有两级(两个/组成)


@Route(path = "/app/MainActivity")

public class MainActivity extends AppCompatActivity {


    private Button button;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

    }

}

1

2

3

4

5

6

7

8

9

public class MusicActivity extends AppCompatActivity {


    private Button button;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.music_activity_main);

        initView();

    }


    private void initView() {

        button=findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                ARouter.getInstance().build("/app/MainActivity").navigation();

            }

        });

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20




  • 2020-03-22 21:16:07

    用vue做的跟随鼠标移动的div

    最近接到一个任务,就是在既存用electron-vue开发的桌面端程序上追加随鼠标移动的动画效果,之前一直使用angular和react,没怎么接触过vue,先做一个vue的简单例子,然后再整合。

  • 2020-03-23 15:16:30

    import,require具体用法

    import 和 require 是JS模块化编程使用的,是前端开发者们在性能探索中的又一大进步。

  • 2020-03-30 15:37:12

    PM2下使用 npm run 命令

    npm run xxxx 是 node常用的启动方式之一,本文介绍下如何用PM2来实现该方式的启动。 下面是项目的package.json文件部分代码:

  • 2020-04-01 10:15:11

    vue-cli3.0中vue.config.js的基本配置(去除esLint提示和解决build后静态文件路径报错)

    vue-cli是开发vue项目必不可少的脚手架工具,3.0版本之前的目录结构是由config目录的,关于webpack配置的文件都放在该目录里面,而3.0版本之后做了一个大更新,webpack相关的默认配置都帮你集成到webpack的npm 包里面去了,官方提供的一种修改配置的方式就是开发者自己在项目的根目录(与src同层级的目录)下建立一个vue.config.js的文件,然后去覆盖自定义的配置,达到你想要的效果,下面写一个基本的默认配置