# 快速开始 > 集成 `YukiHookAPI` 到你的项目中。 ## 环境要求 - Windows 7 及以上/macOS 10.14 及以上/Linux 发行版(Arch/Debian) - Android Studio 4.1 及以上 - IntelliJ IDEA 2021.01 及以上 - Kotlin 1.6.0 及以上 - Android Gradle Plugin 7.0 及以上 - Gradle 7.0 及以上 ## 集成依赖 在你的项目 `build.gradle` 中添加依赖。 > 示例如下 ```gradle repositories { google() mavenCentral() // ❗若你的 Plugin 版本过低,作为 Xposed 模块使用务必添加,其它情况可选 maven { url "https://dl.bintray.com/kotlin/kotlin-eap" } // ❗作为 Xposed 模块使用务必添加,其它情况可选 maven { url "https://api.xposed.info/" } // MavenCentral 有 2 小时缓存,若无法集成最新版本请添加此地址 maven { url "https://s01.oss.sonatype.org/content/repositories/releases" } } ``` 在你的 app `build.gradle` 中添加 `plugin`。 > 示例如下 ```gradle plugins { // ❗作为 Xposed 模块使用务必添加,其它情况可选 id 'com.google.devtools.ksp' version '' } ``` 在你的 app `build.gradle` 中添加依赖。 > 示例如下 ```gradle dependencies { // 基础依赖 implementation 'com.highcapable.yukihookapi:api:' // ❗作为 Xposed 模块使用务必添加,其它情况可选 compileOnly 'de.robv.android.xposed:api:82' // ❗作为 Xposed 模块使用务必添加,其它情况可选 ksp 'com.highcapable.yukihookapi:ksp-xposed:' } ``` 请将 <version> 修改为 [这里](about/changelog) 的最新版本。 !> `YukiHookAPI` 的 `api` 与 `ksp-xposed` 依赖的版本必须一一对应,否则将会造成版本不匹配错误。 ## 作为 Xposed 模块使用 在你的 `AndroidManifest.xml` 中添加基础代码。 > 示例如下 ```xml ``` 在你的项目中创建一个 Hook 入口类,继承于 `YukiHookXposedInitProxy` 并加入注释 `InjectYukiHookWithXposed`。 !> 在默认配置情况下,你的入口类需要建立在你的包名的 hook 子包名下,假设你的包名为 `com.example.demo`,入口类应为 `com.example.demo.hook.你的入口类名称`。 > 示例如下 ```kotlin @InjectYukiHookWithXposed class MainHook : YukiHookXposedInitProxy { override fun onHook() = YukiHookAPI.encase { // Your code here. } } ``` 然后,你就可以开始编写 Hook 代码了。 有关作为 Xposed 模块使用的相关配置详细内容,你可以 [点击这里](config/xposed-using) 继续阅读。 ## 作为 Hook API 使用 ### 集成方式 创建你的自定义 `Application`。 !> 无论使用任何 `Hook Framework`,你都需要加入其对接的 Xposed 依赖支持。 !> 若目标 `Hook Framework` 没有集成 Xposed API 你需要自行实现并对接 `XposedBridge`。 在 `attachBaseContext` 中添加 `YukiHookAPI.encase` 方法。 > 示例如下 ```kotlin override fun attachBaseContext(base: Context?) { // 装载 Hook Framework // // Your code here. // // 装载 YukiHookAPI YukiHookAPI.encase(base) { // Your code here. } super.attachBaseContext(base) } ``` 然后,你就可以开始编写 Hook 代码了,方式与作为 Xposed 模块使用基本一致。 有关作为 Hook API 使用的相关配置详细内容,你可以 [点击这里](config/api-using) 继续阅读。 ### 特别说明 !> 由于你使用了自定义的 Hook 框架而并非模块,~~`YukiHookModuleStatus`~~ ~~`YukiHookModulePrefs`~~ 功能将失效。