什么是注册组件?

基础知识

注册组件,即人们常说的“四大组件”,包括:

它们被静态声明在 APK 的 AndroidManifest.xml 文件中,随 App 安装被注册在系统中。下面简要介绍它们各自的用途。

一些基于 Intent 防火墙(IFW)包管理器(PM) 处理方式的 App 可以做到禁用以上的 静态注册 的组件。

警告

随意禁用注册组件是一项危险的操作,最好的情况是相关功能无法使用。如果 App 的开发者没有做良好的容错处理,将很可能导致 App 闪退、数据丢失。 注意

广播接收器可以被 动态注册,即 App 可能存在很多不为用户所知的广播被启动 App 后注册,这些广播是无法被知晓和禁用的。 注意

App 可以在应用启动的过程中 动态注册 四大组件,因此存在某一组件被禁用后启动 App 又重新被启用的情况。

为什么我的 App 中有这些奇怪的组件?

activity_tinker

很多 App 中会有上图这种重复的活动,这种一般是引入了热更新 SDK。每一个活动只是一个“占位符”,由云端动态注册成为实体活动。