Notice
The English translation of this page has not been completed, you are welcome to contribute translations to us.
You can use the Chrome Translation Plugin to translate entire pages for reference.
- class
YukiHookDataChannelclass YukiHookDataChannel private constructor()
Change Records
v1.0.88
added
Function Illustrate
实现 Xposed 模块的数据通讯桥。
通过模块与宿主相互注册 BroadcastReceiver
来实现数据的交互。
模块需要将 Application
继承于 ModuleApplication
来实现此功能。
Pay Attention
模块与宿主需要保持存活状态,否则无法建立通讯。
- class
NameSpaceinner class NameSpace internal constructor(private val context: Context?, private val packageName: String)
Change Records
v1.0.88
added
v1.0.90
modified
新增 isSecure
参数
v1.1.9
modified
移除 isSecure
参数
Function Illustrate
YukiHookDataChannel
命名空间。
- method
withinline fun with(initiate: NameSpace.() -> Unit): NameSpace
Change Records
v1.0.88
added
Function Illustrate
创建一个调用空间。
- field
dataMaxByteSizevar dataMaxByteSize: Int
Change Records
v1.1.9
added
Function Illustrate
YukiHookDataChannel
允许发送的最大数据字节大小。
默认为 500 KB (500 * 1024)
,详情请参考 receiverDataMaxByteSize
的注释。
最小不能低于 100 KB (100 * 1024)
,否则会被重新设置为 100 KB (100 * 1024)
。
设置后将在全局生效,直到当前进程结束。
超出最大数据字节大小后的数据将被自动分段发送。
Pay Attention
请谨慎调整此参数,如果超出了系统能够允许的大小会引发 TransactionTooLargeException 异常。
- field
dataMaxByteCompressionFactorvar dataMaxByteCompressionFactor: Int
Change Records
v1.1.9
added
Function Illustrate
YukiHookDataChannel
允许发送的最大数据字节大小倍数 (分段数据)。
默认为 3
,详情请参考 receiverDataMaxByteCompressionFactor
的注释。
最小不能低于 2
,否则会被重新设置为 2
。
设置后将在全局生效,直到当前进程结束。
超出最大数据字节大小后的数据将按照此倍数自动划分 receiverDataMaxByteSize
的大小。
Pay Attention
请谨慎调整此参数,如果超出了系统能够允许的大小会引发 TransactionTooLargeException 异常。
- method
allowSendTooLargeDatafun allowSendTooLargeData(): NameSpace
Change Records
v1.1.5
added
Function Illustrate
解除发送数据的大小限制并禁止开启分段发送功能。
仅会在每次调用时生效,下一次没有调用此方法则此功能将被自动关闭。
你还需要在整个调用域中声明注解 SendTooLargeChannelData
以消除警告。
Pay Attention
若你不知道允许此功能会带来何种后果,请勿使用。
- method
putfun <T> put(key: String, value: T)
fun <T> put(data: ChannelData<T>, value: T?)
fun put(vararg data: ChannelData<*>)
Change Records
v1.0.88
added
Function Illustrate
发送键值数据。
- method
putfun put(key: String)
Change Records
v1.0.88
added
Function Illustrate
仅发送键值监听,使用默认值
VALUE_WAIT_FOR_LISTENER
发送键值数据。
- method
waitfun <T> wait(key: String, priority: ChannelPriority?, result: (value: T) -> Unit)
fun <T> wait(data: ChannelData<T>, priority: ChannelPriority?, result: (value: T) -> Unit)
Change Records
v1.0.88
added
v1.0.90
modified
移除默认值 value
v1.1.5
modified
新增 priority
参数
Function Illustrate
获取键值数据。
- method
waitfun wait(key: String, priority: ChannelPriority?, callback: () -> Unit)
Change Records
v1.0.88
added
v1.1.5
modified
新增 priority
参数
Function Illustrate
仅获取监听结果,不获取键值数据。
Pay Attention
仅限使用 VALUE_WAIT_FOR_LISTENER 发送的监听才能被接收。
- method
checkingVersionEqualsfun checkingVersionEquals(priority: ChannelPriority?, result: (Boolean) -> Unit)
Change Records
v1.0.88
added
v1.1.5
modified
新增 priority
参数
Function Illustrate
获取模块与宿主的版本是否匹配。
通过此方法可原生判断 Xposed 模块更新后宿主并未重新装载造成两者不匹配的情况。
- method
obtainLoggerInMemoryDatafun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (List<YLogData>) -> Unit)
Change Records
v1.1.4
added
v1.1.5
modified
新增 priority
参数
Function Illustrate
获取模块与宿主之间的
List<YLogData>
数据。
由于模块与宿主处于不同的进程,我们可以使用数据通讯桥访问各自的调试日志数据。
Pay Attention
模块与宿主必须启用 YLog.Configs.isRecord 才能获取到调试日志数据。
由于 Android 限制了数据传输大小的最大值,如果调试日志过多将会自动进行分段发送,数据越大速度越慢。