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模块制作入门「建议收藏」


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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 如何保证docker2375端口的安全

    如何保证docker2375端口的安全情景再现:之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口。由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,今天我们来聊聊如何解决这个问题。问题产生的原因首先我们要明白问题产生的原因,才能更好地解决问题!Docker为了实现集群管理,提供了远程管理的端口。DockerDaemon作为守护进程运行在后台,可以执行发送到管理端口上的Docker命令。当我们修改do

  • Python 爬虫系列教程一爬取批量百度图片[通俗易懂]

    Python 爬虫系列教程一爬取批量百度图片[通俗易懂]很久之前就学习了Python的爬虫了,也用来做过一些项目(主要是一些课程项目),但时间比较紧,一直没有空把它写下来,这个暑假,我可能会逐渐更新Python爬虫的相关知识。项目1:实现批量爬取百度图片先简单的介绍下这个项目。当你需要下载大量图片的时候,或许你会去百度图片里一张张右键下载,但这样未免太麻烦了,有了这个工具,你直接运行下程序,输入你想要下载图片的关键字,然后输入你想要下载图片的数…

  • linux查看pid 对应的程序_用户程序可以在内核态下运行吗

    linux查看pid 对应的程序_用户程序可以在内核态下运行吗进程pid和ppid、进程的uid和euid、用户的uid和gid、文件的创建者和所有者的关系辨析1、当我们创建用户时,由我们为新建用户命名和设置密码,同时系统会为我们所创建的用户名关联一个号,就是所谓的用户uid。同时我们还可以把这个用户放到某个用户群里,类似的,用户群也可以我们手工建立。如果建立用户时,不指明所建的用户属于哪个用户群,则系统会自动建立一个跟用户名同名的用户群。不管手工建立还是自…

  • pycharm整段代码缩进_eclipse整体向前缩进

    pycharm整段代码缩进_eclipse整体向前缩进整体缩进:鼠标拉选住代码块,按下tab键。反向缩进:鼠标拉选住代码块,按下shift+tab键值得注意的是反向缩进是按住shift,再按tab键。

  • php技术–php中感叹号!和双感叹号!!的用法(三元运算)

    php技术–php中感叹号!和双感叹号!!的用法(三元运算)

    2021年10月26日
  • 怎么判断一个数是奇数还是偶数,回复1.0_201是奇数还是偶数

    怎么判断一个数是奇数还是偶数,回复1.0_201是奇数还是偶数怎么判断一个数是奇数还是偶数?判断一个数是奇数还是偶数,我们最容易想到的就是对2取余。方法一:输出结果:Number为奇数输出结果:Number为偶数方法二:输出结果:Number为奇数输出结果:Number为偶数方法二的原理是什么呢?在计算机中,数据以补码的二进制存储的。偶数的最低为一定是0奇

    2022年10月19日

发表回复

您的电子邮箱地址不会被公开。

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