Xposed模块制作入门「建议收藏」

Xposed模块制作入门「建议收藏」由于某个项目的特殊需求,可能要用Xposed框架干一些事情。然而在国内基本没有找到关于Xposed模块制作的文章(基本上全是下载呵呵),只在XDA上找到一篇教程。这篇文章差不多是XDA上的教程翻译过来的(原文链接:http://forum.xda-developers.com/showthread.php?t=2709324可能需科学上网) 首先,Xposed框架是干啥的捏?玩安卓机比较多的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

由于某个项目的特殊需求,可能要用Xposed框架干一些事情。然而在国内基本没有找到关于Xposed模块制作的文章(基本上全是下载呵呵),只在XDA上找到一篇教程。这篇文章差不多是XDA上的教程翻译过来的(原文链接:http://forum.xda-developers.com/showthread.php?t=2709324 可能需科学上网) 首先,Xposed框架是干啥的捏?玩安卓机比较多的童鞋可能都知道这个东西,一般用来美化或者自定义系统,因为它可以改变系统应用的执行方式。Xposed框架的工作原理见(http://www.360doc.com/content/14/0625/09/9462341_389540723.shtml)。本菜鸡姿势水平不太够,没能完全看懂orz……

Xposed模块也是一个Android应用,和普通的apk差不多,但是Xposed框架可以把这个应用识别为一个Xposed模块。

1.在AndroidManifest.xml里添加一些东西

在application节点里添加

<meta-data
            android:name="xposedmodule"
            android:value="true" />
        <meta-data
            android:name="xposedminversion"
            android:value="30" />
        <meta-data
            android:name="xposeddescription"
            android:value="Add a smiley face" />

然后Xposed框架就会把这个应用识别为一个Xposed模块,在Xposed Installer里面可以看见这个模块并且可以激活。

2.然而真正起作用的代码还米有写。为了标识要起作用的代码所在位置,需要在工程的/assets文件夹里添加一个名为xposed_init的文件,里面每行的内容是起作用的代码的包名以及类名。比如:com.example.xposedtrial.Main

3.在工程里添加Xposed bridge要用到的库。把这个库放到工程的根目录下,而不是libs目录下。在properties-java build path里面把这个库加入build path中。XposedBridgeApi.jar可以在XDA论坛下载。

4.在之前定义好的包里面添加对应的类,实现要进行的操作。这个类要实现IXposedHookLoadPackage接口。这里的例子实现在状态栏的时钟后面添加一个笑脸符号。

重载handleLoadPackage方法,添加如下的代码:

@Override
	public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
		// TODO Auto-generated method stub
		if (!lpparam.packageName.equals("com.android.systemui"))//check if the package being loaded is systemUI
            return;
		//All code here is only called if it is indeed SystemUI
		findAndHookMethod("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader, "updateClock", new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
            	TextView tv = (TextView)param.thisObject;
            	tv.append(":)");
            }
		});
	}

先检测现在的程序包名是不是com.android.systemui 。如果是的话继续执行下面的代码。afterHookMethod方法会在com.android.systemui.statusbar.policy.clock的updateClock方法执行完之后执行。这里执行的代码是给时钟后面添加一个微笑符号。

安装并激活此模块,重启系统。运行效果如图:

Xposed模块制作入门「建议收藏」


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191615.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于RT-Thread操作系统的 基础四轮组智能车设计与实践

    基于RT-Thread操作系统的 基础四轮组智能车设计与实践这是一个很好的window,可以多少的。英俊的训练的场地的情况测window。简介:这是一个很好的window,可以多少的。英俊的训练的场地的情况测window。关键词:window

    2022年7月25日
    7
  • pycharm安装no interpreter_no python interpreter configured

    pycharm安装no interpreter_no python interpreter configured今天由于重装了系统,所以必须得重新配置一些软件,在打开pycharm运行程序时显示“nopythoninterpreterconfiguredforproject”提示。根据字面意思是“python没有解释器”。解决办法:找到你之前下载python环境支持库如下图所示:在pycharm中点击File-&gt;setting进行如下图操作,选中支持库中pythonw.exe…

    2022年8月26日
    4
  • cmd命令怎么切换盘符_windows切换盘符命令

    cmd命令怎么切换盘符_windows切换盘符命令转载于:https://www.cnblogs.com/QMM2008/p/4003039.html

    2022年10月3日
    0
  • 角度 弧度的转换_角度换算度分秒

    角度 弧度的转换_角度换算度分秒由数学关系已知 360度=2π弧度 =>180度= π*弧度 可证得一:1度=(π*弧度)/180 = 弧度/60 =>度=弧度*(π/180)   即60度=弧度*(60*π/180) 可证得二:1弧度=180/π=60度 =>弧度=度*(180/π) 即60弧度=度*(180/π)例1:cos(3

    2022年10月26日
    0
  • EasyCVR通过Ehome协议接入部分设备显示离线排查报告

    EasyCVR通过Ehome协议接入部分设备显示离线排查报告对于需要将不同视频协议做融合的项目,我们一般都是建议大家选用EasyCVR视频平台,EasyCVR支持多种协议的视频接入,对于通用的第三方协议,我们支持了海康的Ehome和GB28181的国标协议。EasyCVR视频网关平台接入的部分Ehome设备显示离线,可以从下图中看到,除了通过HIKSDK接入的设备外,通过Ehome接入的设备全部离线:可见离线的部分设备都是Ehome协议接入,Ehome设备为主动注册类型,判断设备是否真实在线的方法一般为抓取对应对端口7660的包,或者是在海康sdk的回调

    2022年10月28日
    0
  • Vue学习之按键修饰符

    Vue学习之按键修饰符Vue学习之按键修饰符

    2022年4月23日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号