江西省新的建设厅三类人员网站,体育设施建设网站,做数学题的网站有吗,seo服务指什么意思前提#xff1a;需要已经安装Xposed Installer 1. 新建一个AS项目 并把MainActvity和activity_main.xml这两个文件删掉#xff0c;然后在AndriodManifest.xml中去掉这个Activity的声明 2. 在settings.gralde文件中加上阿里云的仓库地址#xff0c;否则Xposed依赖无法下载
m…前提需要已经安装Xposed Installer 1. 新建一个AS项目 并把MainActvity和activity_main.xml这两个文件删掉然后在AndriodManifest.xml中去掉这个Activity的声明 2. 在settings.gralde文件中加上阿里云的仓库地址否则Xposed依赖无法下载
maven { url https://maven.aliyun.com/repository/public/ }settings.gradle
pluginManagement {repositories {maven { url https://maven.aliyun.com/repository/public/ }mavenCentral()maven {url https://jitpack.io}google {content {includeGroupByRegex(com\\.android.*)includeGroupByRegex(com\\.google.*)includeGroupByRegex(androidx.*)}}gradlePluginPortal()}
}
dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {maven { url https://maven.aliyun.com/repository/public/ }mavenCentral()maven {url https://jitpack.io}google()}
}rootProject.name MyFirstXposedPlugin
include :app3. 在app模块下的build.gradle文件中添加依赖
dependencies {// 必须使用compileOnly否则Xposed Install会提示Cannot Load ModulecompileOnly de.robv.android.xposed:api:82......
} 4. 新建一个MyXposedModule类里面我们hook一个普通方法
package com.example.myfirstxposedplugin;import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;public class MyXposedModule implements IXposedHookLoadPackage {Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {// 在这里添加你的钩子逻辑XposedBridge.log(当前应用的包名 loadPackageParam.packageName);if (loadPackageParam.packageName.equals(目标应用的包名)) {// hookTargetMethod();}}private void hookTargetMethod() {// 在这里添加目标应用的方法钩子逻辑
// Class? targetClass XposedHelpers.findClass(目标类的完整路径, null);
// XposedHelpers.findAndHookMethod(targetClass, 目标方法名, 参数类型.class, new XC_MethodHook() {
// Override
// protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
// // 在方法调用前执行的逻辑
// }
//
// Override
// protected void afterHookedMethod(MethodHookParam param) throws Throwable {
// // 在方法调用后执行的逻辑
// }
// });}
}5. 在assets目录下新建一个名为xposed_init的文件在里面添加刚刚新建的类的全类名
com.example.myfirstxposedplugin.MyXposedModule 6. 在AndriodManifest.xml文件中将该项目声明成Xposed模块添加如下代码
?xml version1.0 encodingutf-8?
manifest xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsapplicationandroid:allowBackuptrueandroid:dataExtractionRulesxml/data_extraction_rulesandroid:fullBackupContentxml/backup_rulesandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/Theme.MyFirstXposedPlugintools:targetApi31!-- 添加 Xposed 模块入口 --meta-dataandroid:namexposedmoduleandroid:valuetrue /!-- Xposed 模块的入口类 --meta-dataandroid:nameMyXposedModuleandroid:valuecom.example.myfirstxposedplugin.MyXposedModule /!-- 指定最低支持的 Xposed 框架版本 --meta-dataandroid:namexposedminversionandroid:value82 / !-- 使用你模块所需的最低版本号 --!-- 提供模块的描述信息 --meta-dataandroid:namexposeddescriptionandroid:value这是我的 Xposed 模块用于实现某某功能。 //application/manifest 最后将这个项目安装到实机或者模拟器中
你在Xposed Installer的侧边菜单栏中的模块标签页就能看到我们刚刚编写的模块了
勾选上然后重启手机 重启之后如果能在日志界面看到如下的内容则表示该模块激活了 希望对你有帮助