Android 四大组件完整解读
什么是注册组件
AndroidManifest.xml 中静态声明的四大组件,会随 App 安装被注册到系统。LibChecker 的组件 Tab 就是把这些静态声明的条目完整地列出来。
四大组件一览
服务(Service)
在后台执行耗时操作的进程入口,也是 Android 进程间通信(IPC)的核心机制。常见用途:播放音乐、下载文件、推送接收。
活动(Activity)
四大组件中唯一用户可感知的,负责显示界面、处理交互。每个 Activity 对应一个界面窗口。
广播接收器(BroadcastReceiver)
监听系统或应用发出的广播通知。很多 App 的"自启动"本质上就是注册了开机广播。
内容提供器(ContentProvider)
跨进程提供数据访问接口,其他 App 可以通过 ContentResolver 来读写数据。通讯录、短信等系统数据都是通过 ContentProvider 暴露的。
为什么组件清单很重要
对于逆向和安全分析来说,组件清单是 App 行为能力的边界:
- 暴露过多组件 = 攻击面大
- 存在 export=true 且未做权限保护的组件 = 外部可以直接调用
- 多个空壳 Activity = 很可能引入了热更新 SDK
动态注册的盲区
需要注意:四大组件不仅可以静态注册,也可以在代码中动态注册。例如:
- 广播接收器可以在运行时 registerReceiver
- 动态注册的组件不会出现在 AndroidManifest 中
- 某些恶意行为可能完全靠动态注册实现,静态分析看不到