安卓路由技术选型调研

张开发
2026/4/15 23:26:12 15 分钟阅读

分享文章

安卓路由技术选型调研
本文侧重调研安卓路由框架以及简单使用对比适合不熟悉的人快速上手查字典。一、路由库选型数据目前看起来基本的功能都过得去框架也是大体差不多互相借鉴的也都支持路由拦截回调式onActivityResult等便捷功能。所以这里只做数据展示选型所属更新时间维护状态Star技术文章ARouter阿里2020 - 10功能冻结 / 基本停更GitHub最高兼容 AGP 7.x14.5k稀土掘金TheRouter货拉拉2026 - 03活跃维护支持 Android 15、AGP 91.3k知乎、稀土掘金WMRouter美团2021稳定维护支持 Kotlin 协程2.4k美团技术团队DRouter滴滴2023 - 12基本停更功能稳定777稀土掘金目前看起来只有TheRouter维护比较积极所以后面只好简单分析下TheRouter二、TheRouter快速上手TheRouter最简单demo示例1、基础使用1、添加依赖app/build.gradle新增依赖plugins{idtherouter}dependencies{implementationcn.therouter:router:1.3.2annotationProcessorcn.therouter:apt:1.3.2}根目录build.gradle// 语法要求buildscript必须放最plugins顶部buildscript{repositories{google()mavenCentral()}dependencies{classpathcn.therouter:plugin:1.3.2}}2、框架初始化Application onCreate中初始化TheRouter.init(this);TheRouter.setDebug(true);页面 onCreate注册 (建议在BaseActivity、BaseFragment统一处理)TheRouter.inject(this);3、使用要跳转的页面注解Routeimportcom.therouter.demo.R;importcom.therouter.router.Autowired;importcom.therouter.router.Route;Route(pathrouter://home)publicclassHomeActivityextendsBaseActivity{AutowiredStringname;OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_home);TextViewtvNamefindViewById(R.id.tv_name);tvName.setText(欢迎name);}}4、页面跳转回调功能TheRouter.build(router://home).withString(name,TheRouter Java Demo).navigation(this,newNavigationCallback(){});5、统一拦截功能// 拦截器NavigatorKt.setRouterInterceptor(newRouterInterceptor(){Overridepublicvoidprocess(NonNullRouteItemrouteItem,NonNullInterceptorCallbackinterceptorCallback){if(false){Toast.makeText(MainActivity.this,未登录,Toast.LENGTH_SHORT).show();}interceptorCallback.onContinue(routeItem);}});2、跑通官方demo扫码下载 (张涛没有提供二维码自己打的包)最小改动运行TheRouter官方demo官方库app/build.gradle.kts启动多dex支持defaultConfig{multiDexEnabledtrue}根目录settings.gradle.kts替换pluginManagement{repositories{maven(urlhttps://maven.aliyun.com/repository/google)maven(urlhttps://maven.aliyun.com/repository/gradle-plugin)maven(urlhttps://maven.aliyun.com/repository/public)maven(urlhttps://maven.therouter.cn:8443/repository/maven-public/)}}plugins{id(org.gradle.toolchains.foojay-resolver-convention)version1.0.0}dependencyResolutionManagement{repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories{maven(urlhttps://maven.aliyun.com/repository/google)maven(urlhttps://maven.aliyun.com/repository/central)maven(urlhttps://maven.therouter.cn:8443/repository/maven-public/)}}rootProject.nameTheRouter// Include all modules directlyinclude(:app)include(:business-a)include(:business-b)include(:business-base)include(:compose)include(:router)include(:apt)

更多文章