Android面试题——掘金-三方框架之Arouter(5.4)
一 概述
1 | Android 三方框架相关面试题:ARouter |
二 面试题解答(仅供参考)
2.1 ARouter 是什么?它的主要作用是什么?
1 | ARouter 是阿里巴巴开源的 Android 路由框架,解决模块化开发中页面跳转、服务调用、解耦的问题。 |
2.2 ARouter 的主要功能有哪些?
1 | -页面路由跳转:ARouter.getInstance().build("/login/main").navigation() |
2.3 ARouter 的基本使用流程?
1 | 1.在 build.gradle 中引入 |
2.4 ARouter 是如何实现路由表的?
1 | ARouter 通过注解处理器(APT)在编译期扫描 @Route 注解,生成路由表类(如 ARouter$$Root$$xxx.java)。 |
2.5 ARouter 如何实现参数注入?
1 | 1.概念 |
2.6 ARouter 如何支持模块间调用服务(Service)?
1 | 通过接口 + 实现类注入机制实现服务调用: |
2.7 ARouter 拦截器怎么实现?拦截器优先级怎么控制?
1 | 1.实现 IInterceptor 接口,并注册到路由表中。 |
2.8 ARouter 如何处理找不到路径或跳转失败?
1 | 1.设置全局降级策略: |
2.9 ARouter 支持哪些类型的参数?
1 | 支持大多数基本类型、Serializable、Parcelable、自定义对象(需自定义 JsonService 实现): |
2.10 ARouter 的优缺点?
1 | 1.优点: |
2.11 ARouter 和 Activity/Fragment/Service 直接调用的对比?
对比项 | 直接调用 | ARouter |
---|---|---|
解耦性 | 强依赖(需 import) | ✅ 完全解耦 |
编译依赖 | 有 | ✅ 无(通过路由路径) |
可扩展性 | 差 | ✅ 支持服务调用、拦截器等 |
跳转方式 | 固定 | 灵活,支持降级、参数注入 |
多模块支持 | 手动管理依赖 | ✅ 模块完全独立 |
2.12 总结
维度 | 说明 |
---|---|
路由注册 | 注解 @Route |
编译时处理 | APT 生成路由表 |
路由跳转 | build + navigation |
参数传递 | @Autowired + withXXX |
拦截器 | IInterceptor |
服务调用 | 接口注入(navigation(Class)) |
资源开销 | 少,运行期性能高 |
三 参考
- 掘金—知识库的大纲