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-02-22 17:35:14

    使用tweenjs写一个发牌的demo

    移动端h5的三大抽奖方式:转盘,老虎机,翻纸牌。 前两样demo比较多,用户也审美疲劳了。这次微信公众号要抽奖,于是调研了下翻纸牌。

  • 2020-02-22 17:45:43

    tweenjs简单快速学习

    tweenjs 是使用 JavaScript 中的一个简单的补间动画库,支持数字、对象的属性和 CSS 样式属性的赋值。 tweenjs 以平滑的方式修改元素的属性值,需要传递给 tween 要修改的值、动画结束时的最终值和动画花费时间(duration),之后 tween 引擎就可以计算从开始动画点到结束动画点之间值,从而产生平滑的动画效果。

  • 2020-02-22 17:47:12

    easeJs入门学习教程

    createjs中包含以下四个部分: EaselJS:用于 Sprites、动画、向量和位图的绘制,创建 HTML5 Canvas 上的交互体验(包含多点触控) TweenJS:用于做动画效果 SoundJS:音频播放引擎 PreloadJS:网站资源预加载

  • 2020-02-22 17:54:59

    最新FullCalendar中文文档

    Fullcalendar是一款用来管理日程安排、工作计划的日历工具,它功能非常强大而且非常实用。而目前网络上没有很好的中文文档,为了更好的和大家分享Fullcalendar的相关使用,即日起计划将Fullcalendar的英文文档翻译成中文版。

  • 2020-02-22 17:57:05

    nuxtjs支持api接口,serverMiddleware

    Who can’t relate to this: You’ve built a small portfolio page for someone, maybe a company, a friend or yourself. And the only API endpoint you’d need is one for a form. What now? Scaffolding a new service just for this one endpoint?

  • 2020-02-22 17:59:34

    FullCalendar插件的基本使用带详细配置翻译

    前段时间,一直在开发考勤系统,当时为满足设计的需求,选了好几个插件,最后决定采用Fullcanlendar的插件。感觉这个插件可以满足现阶段的功能开发需求

  • 2020-02-22 18:03:10

    Vue组件中使用Sass或者Less全局变量

    本文以Sass做案例,Less的参考,基本配置大同小异。 假如我们有一个Sass的全局变量common.scss文件,路径 ../style/common.scss 代码如下: