HotReloadSession

API 102 的会话式热重载协调器。

把同一代的 hook 安装集中到 onTargetReady,并在每个 hook 上使用 reloadKey("...")。重载时,libxposed 会先原子替换 reloadKey(即底层 hook ID)与 executable 都相同的 hook; 本类在所有新 hook 成功安装后,才 unhook 没有被新代码重新声明的旧 hook。 因此不会出现旧实现先被全部摘掉、再等待新实现逐个安装的空窗。

一个 module entry 对应一个 session。不要在异步线程里安装属于该 session 的 hook:只有 onTargetReady 的同步执行窗口会被记录和收尾。session 会接管 HotReloadedParam.oldHookHandles 中的全部旧 handle,不要与 raw libxposed hook、其它 session 或其它旧 handle 管理方式混用。 libxposed 只保证单个 handle / 相同 ID hook 的原子替换,不提供跨多个 hook 的整批回滚。

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard

跨代宿主状态与外部回调清理入口。

Functions

Link copied to clipboard

注册目标进程就绪后的 hook 安装逻辑。

Link copied to clipboard
fun prepare(param: XposedModuleInterface.HotReloadingParam, extra: Array<Any?> = emptyArray()): Boolean

在旧 entry 的 onHotReloading 中调用。

Link copied to clipboard
fun restore(base: XposedInterface, param: XposedModuleInterface.HotReloadedParam, onExtra: Consumer<Array<Any?>>? = null): HotReloadResult

在新 entry 的 onHotReloaded 中调用。