refactor: remove Java example

This commit is contained in:
2025-06-15 03:22:00 +08:00
parent 6ead14e65b
commit cca6e1d2a8

View File

@@ -1,120 +0,0 @@
/*
* YukiHookAPI - An efficient Kotlin version of the Xposed Hook API.
* Copyright (C) 2019-2022 HighCapable
* https://github.com/HighCapable/YukiHookAPI
*
* Apache License Version 2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* This file is Created by fankes on 2022/5/25.
*/
package com.highcapable.yukihookapi.demo_module.hook.java;
import android.app.Activity;
import android.os.Bundle;
import com.highcapable.yukihookapi.YukiHookAPI;
import com.highcapable.yukihookapi.hook.core.api.priority.YukiHookPriority;
import com.highcapable.yukihookapi.hook.factory.ReflectionFactoryKt;
import com.highcapable.yukihookapi.hook.log.YLog;
import com.highcapable.yukihookapi.hook.xposed.bridge.event.YukiXposedEvent;
import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit;
import kotlin.Unit;
// ========
// This only demonstrates how to use it in the Java case (Java 1.8+ only)
// The code here is for demonstration only does not mean that it will work in the future Demo will only sync the latest Kotlin usage
// It is recommended to use Kotlin to complete the writing of the Hook part
// Please remove the code note "//" below to use this demo, but make sure to comment out the HookEntry annotation on the Kotlin side
// 这里仅演示了 Java 情况下的使用方式 (仅限 Java 1.8+)
// 这里的代码仅供演示 - 并不代表今后都可以正常运行 - Demo 只会同步最新的 Kotlin 使用方法
// 建议还是使用 Kotlin 来完成 Hook 部分的编写
// 请删除下方的注释 "//" 以使用此 Demo - 但要确保注释掉 Kotlin 一边的 HookEntry 的注解
// ========
// @InjectYukiHookWithXposed(isUsingResourcesHook = true)
public class HookEntry implements IYukiHookXposedInit {
@Override
public void onInit() {
YukiHookAPI.Configs configs = YukiHookAPI.Configs.INSTANCE;
YLog.Configs logConfigs = YLog.Configs.INSTANCE;
logConfigs.setTag("YukiHookAPI-Demo");
logConfigs.setEnable(true);
logConfigs.setRecord(false);
logConfigs.elements(
YLog.Configs.TAG,
YLog.Configs.PRIORITY,
YLog.Configs.PACKAGE_NAME,
YLog.Configs.USER_ID
);
configs.setDebug(true);
configs.setEnableModuleAppResourcesCache(true);
configs.setEnableDataChannel(true);
}
@Override
public void onHook() {
// Here is the Java writing method that is more similar to the Kotlin writing method, just for reference
// Calling Kotlin's lambda in Java also needs to return Unit.INSTANCE in the Unit case
// 这里介绍了比较近似于 Kotlin 写法的 Java 写法 - 仅供参考
// 在 Java 中调用 Kotlin 的 lambda 在 Unit 情况下也需要 return Unit.INSTANCE
YukiHookAPI.INSTANCE.encase(e -> {
e.loadZygote(l -> {
var result = ReflectionFactoryKt.method(Activity.class, m -> {
m.setName("onCreate");
m.param(Bundle.class);
return Unit.INSTANCE;
});
l.hook(result, YukiHookPriority.DEFAULT, h -> {
h.after(a -> {
Activity instance = ((Activity) a.getInstance());
instance.setTitle(instance.getTitle() + " [Active]");
return Unit.INSTANCE;
});
return Unit.INSTANCE;
});
return Unit.INSTANCE;
});
// The rest of the code has been omitted, you can continue to refer to the above method to complete
// 余下部分代码已略 - 可继续参考上述方式完成
// ...
return Unit.INSTANCE;
});
}
@Override
public void onXposedEvent() {
// Since Java does not support some methods that do not override Kotlin Interface
// So this method is not needed here, you can leave the content blank
// 由于 Java 不支持不重写 Kotlin Interface 的部分方法
// 所以不需要此方法这里可以不填写内容
YukiXposedEvent event = YukiXposedEvent.INSTANCE;
event.onInitZygote(startupParam -> {
// Write the startupParam method here
// 这里编写 startupParam 方法
return Unit.INSTANCE;
});
event.onHandleLoadPackage(loadPackageParam -> {
// Write the loadPackageParam method here
// 这里编写 loadPackageParam 方法
return Unit.INSTANCE;
});
event.onHandleInitPackageResources(resourcesParam -> {
// Write the resourcesParam method here
// 这里编写 resourcesParam 方法
return Unit.INSTANCE;
});
}
}