必看12

熟练组件化、模块化、路由 ARouter 使用与原理;

一、基础概念

1、什么是模块化?

答案

把整个项目按业务 / 功能拆分成多个独立 module,

比如首页、我的、订单、登录等;

代码分层、职责拆分,方便多人协作、解耦、复用。

2、什么是组件化?

答案

在模块化基础上,让每个业务模块可以单独编译、独立运行成 App

开发时单个组件可单独调试,打包时再合并成一个主 App。

组件化 = 模块化 + 可独立工程化

3、模块化和组件化区别

答案

  1. 模块化:只能作为 Library 依赖,不能单独运行;
  2. 组件化:既可作为 Library 被依赖,也可独立 Application 单独运行;
  3. 组件化更适合大型项目、并行开发、按需编译提速。

4、为什么要做组件化 / 模块化?

答案

  1. 业务解耦,模块间低依赖;
  2. 多人团队并行开发互不干扰;
  3. 单个模块独立编译,编译速度快
  4. 业务可按需裁剪、插件化扩展;
  5. 便于维护、复用、单元测试。

二、组件化核心问题

5、组件化最大难点是什么?

答案

各业务组件不能直接相互依赖,否则又高耦合;

需要路由框架实现跨组件页面跳转、通信、解耦。

6、组件化怎么实现互相通信、页面跳转?

答案

ARouter 路由框架 ;通过路径字符串跳转,不直接依赖目标类,实现完全解耦。

相关推荐
取个名字太难了~3 小时前
越用越便宜,越用越强大:影像 SDK 的边际成本递减与网络效应实践
android·数码相机·美颜·相机连接·demu
AFinalStone6 小时前
Android 7系统网络(四)Native层(下)—netd Controller详解
android·网络
爱笑鱼7 小时前
Handler(一):post 之后,Runnable 到底在哪个线程执行?
android
木木子227 小时前
[特殊字符] 音乐播放器——状态驱动的多媒体控制
android·开发语言·华为·php·harmonyos
雨白8 小时前
C 语言基础:结构体、联合体与枚举
android
阿巴斯甜9 小时前
Android 代码混淆
android
apihz11 小时前
台风实时与历史详情查询免费 API 接口完整教程
android·开发语言·tcp/ip·dubbo·台风·天气预报
浪客川12 小时前
AOSP源码隐藏状态栏
android·aosp
没有了遇见12 小时前
AI Agent 是什么?—— 一文理解 LLM、Memory、Skills、Tools、MCP、Workflow,Context
android·前端·程序员
知行合一。。。12 小时前
LangChain--07--智能体、Agent的基本用法
android·数据库·langchain