接口 XposedModuleInterface
- 所有已知实现类:
XposedModule
public interface XposedModuleInterface
模块初始化接口。
-
嵌套类概要
嵌套类修饰符和类型接口说明static interface封装模块加载所在进程的信息。static interface封装正在加载的包(package)信息。static interface封装已准备好 ClassLoader 的包信息。static interface封装了有关系统服务的信息。 -
方法概要
修饰符和类型方法说明default void当模块被加载到目标进程时会收到通知。default void当一个带有R.attr.hasCode的包被加载到进程中时会收到通知。default void当AppComponentFactory已实例化类加载器, 并准备创建Application时会收到通知。default void当 system server 已准备好启动关键服务时会收到通知。
-
方法详细资料
-
onModuleLoaded
当模块被加载到目标进程时会收到通知。
该回调保证在每个进程中只会被调用一次。- 参数:
param- 模块被加载所在进程的相关信息- 抛出:
RuntimeException- 回调中抛出的所有异常都会被捕获并记录日志。
-
onPackageLoaded
@RequiresApi(29) default void onPackageLoaded(@NonNull XposedModuleInterface.PackageLoadedParam param) 当一个带有R.attr.hasCode的包被加载到进程中时会收到通知。 此时默认类加载器已经准备就绪,但AppComponentFactory尚未实例化。对于加载到进程中的每个包名,该回调只会被调用一次。 请注意,一个进程可能会加载多个包,例如使用
R.attr.sharedUserId的情况,以及通过Context.createPackageContext(String, int)并指定Context.CONTEXT_INCLUDE_CODE的情况。在 system server 中,首次回调会被
onSystemServerStarting(SystemServerStartingParam)替代, 因此这里的param.isFirstPackage()永远不会为true。- 参数:
param- 当前正在加载的包的信息- 抛出:
RuntimeException- 回调中抛出的所有异常都会被捕获并记录日志。
-
onPackageReady
当AppComponentFactory已实例化类加载器, 并准备创建Application时会收到通知。对于加载到进程中的每个包名,该回调只会被调用一次。 请注意,一个进程可能会加载多个包,例如使用
R.attr.sharedUserId的情况,以及通过Context.createPackageContext(String, int)并指定Context.CONTEXT_INCLUDE_CODE的情况。在 system server 中,首次回调会被
onSystemServerStarting(SystemServerStartingParam)替代, 因此这里的param.isFirstPackage()永远不会为true。- 参数:
param- 当前正在加载的包的信息- 抛出:
RuntimeException- 回调中抛出的所有异常都会被捕获并记录日志。
-
onSystemServerStarting
当 system server 已准备好启动关键服务时会收到通知。 在 system server 中,此回调会替代onPackageLoaded(PackageLoadedParam)和onPackageReady(PackageReadyParam)的首次回调阶段。- 参数:
param- system server 的相关信息- 抛出:
RuntimeException- 回调中抛出的所有异常都会被捕获并记录日志。
-