Android Kotlin ARouter组件化构建项目

远古应用: App(一堆的代码)

远古应用升级版: App + Base(抽取通用代码)

远古应用Pro: App + Base + lib(lib_log,lib_network,lib_map)

MVC

MVP (MVC升级版本) m(data) v(ui) p(impl)->逻辑

组件化 App + (N + Module(App)) - N Library

如何动态构建组件化?
App
Module 笑话 地图 星座 语音设置 系统设置 天气 应用管理 开发者模式
lib lib_base lib_network lib_voice

使用ARouter路由做组件化跳转
https://github.com/alibaba/ARouter/blob/master/README_CN.md

1、添加依赖和配置

在每个Module依赖文件中增加运行时注解

 //运行时注解
kapt(DependenciesConfig.AROUTER_COMPILER)

   //ARouter
    kapt {
        arguments {
            arg("AROUTER_MODULE_NAME", project.name)
        }
    }

2、添加注解

@Route(path = ARouterHelper.PATH_CONSTELLATION)
class ConstellationActivity:BaseActivity()   {

}
 

3、初始化SDK

open class BaseApp : Application() {

    override fun onCreate() {
        super.onCreate()
        //只有主进程才能初始化
        val processName = CommonUtils.getProcessName(this)
        if (!TextUtils.isEmpty(processName)) {
            if (processName == packageName) {
                initApp()
            }
        }
    }

    //初始化App
    private fun initApp() {
        ARouterHelper.initHelper(this)

    }
}

4、发起路由操作

   val btn = findViewById<Button>(R.id.btn)
        btn.setOnClickListener {
            ARouterHelper.startActivity(ARouterHelper.PATH_APP_MANAGER)
        }

你可能感兴趣的:(android)