Update Demo

This commit is contained in:
2022-05-21 01:50:24 +08:00
parent 76bb612a4c
commit 07f042787e
3 changed files with 22 additions and 1 deletions

View File

@@ -27,9 +27,12 @@
*/
package com.highcapable.yukihookapi.demo_module.data
import com.highcapable.yukihookapi.hook.xposed.channel.data.ChannelData
import com.highcapable.yukihookapi.hook.xposed.prefs.data.PrefsData
object DataConst {
val TEST_KV_DATA = PrefsData("test_data", "Test data is nothing")
val TEST_CN_DATA = ChannelData<String>("key_from_host")
}

View File

@@ -72,6 +72,16 @@ class HookEntry : IYukiHookXposedInit {
// 若无上述需求 - 在宿主重新启动之前建议开启
// 你可以手动调用 [PackageParam.refreshModuleAppResources] 来刷新缓存
isEnableModuleAppResourcesCache = true
// 是否启用 Hook Xposed 模块激活等状态功能
// 为原生支持 Xposed 模块激活状态检测 - 此功能默认启用
// 关闭后你将不能再使用 [YukiHookModuleStatus] 中的功能
// 功能启用后 - 将会在宿主启动时自动 Hook [YukiHookModuleStatus]
isEnableHookModuleStatus = true
// 是否启用当前 Xposed 模块与宿主交互的 [YukiHookDataChannel] 功能
// 请确保 Xposed 模块的 [Application] 继承于 [ModuleApplication] 才能有效
// 此功能默认启用 - 关闭后将不会在功能初始化的时候装载 [YukiHookDataChannel]
// 功能启用后 - 将会在宿主启动时自动 Hook [Application] 的生命周期方法进行注册
isEnableDataChannel = true
// 是否启用 [Member] 缓存功能
// 为防止 [Member] 复用过高造成的系统 GC 问题 - 此功能默认启用
// 除非缓存的 [Member] 发生了混淆的问题 - 否则建议启用
@@ -190,7 +200,9 @@ class HookEntry : IYukiHookXposedInit {
.setTitle("Hooked")
.setMessage("I am hook your toast showing!")
.setPositiveButton("OK", null)
.show()
.setNegativeButton("SEND MSG TO MODULE") { _, _ ->
dataChannel.put(DataConst.TEST_CN_DATA, value = "I am host, can you hear me?")
}.show()
}
}
// 注入要 Hook 的方法

View File

@@ -36,6 +36,7 @@ import androidx.appcompat.app.AppCompatActivity
import com.highcapable.yukihookapi.YukiHookAPI
import com.highcapable.yukihookapi.demo_module.data.DataConst
import com.highcapable.yukihookapi.demo_module.databinding.ActivityMainBinding
import com.highcapable.yukihookapi.hook.factory.dataChannel
import com.highcapable.yukihookapi.hook.factory.isModuleActive
import com.highcapable.yukihookapi.hook.factory.isSupportResourcesHook
import com.highcapable.yukihookapi.hook.factory.modulePrefs
@@ -47,6 +48,11 @@ class MainActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
ActivityMainBinding.inflate(layoutInflater).apply {
setContentView(root)
dataChannel(packageName = "com.highcapable.yukihookapi.demo_app").with {
wait(DataConst.TEST_CN_DATA) {
Toast.makeText(applicationContext, it, Toast.LENGTH_SHORT).show()
}
}
moduleDemoActiveText.text = "Module is Active$isModuleActive"
moduleDemoActiveZhText.text = "Xposed 模块激活状态"
moduleDemoFrameworkText.text = "Hook Framework${YukiHookModuleStatus.executorName}"