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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 与阿根廷一起学习Java Web四个发展:对于信息传输和信息传输

    与阿根廷一起学习Java Web四个发展:对于信息传输和信息传输

    2022年1月5日
    44
  • Java 8 开发的 4 大顶级技巧,你都知道吗 ?

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 来源:https://dzone.com/articles/java-8-top-tips 正文 我使用Java 8…

    2021年6月28日
    75
  • go 环境搭建(mac 版)

    go 环境搭建(mac 版)1.下载合适你电脑的版本,下载地址是:https://studygolang.com/dl,我是macm1的,我下载的是https://studygolang.com/dl/golang/go1.17.2.darwin-arm64.pkg如下图:2.下载完成后,双击安装,安装成功后如下图:3.打开终端,输入goversion如果出现版本成功,就是安装成功了,如下图:如果输入命令,说找不到commandnotfound:go的情况解决如下:…

    2022年10月12日
    0
  • 【大数据应用开发】大数据的概念[通俗易懂]

    【大数据应用开发】大数据的概念[通俗易懂]一.大数据的概念维基百科定义:大数据是指利用常用软件工具捕获,管理和处理数据所耗时间超过可容忍时间的数据集。二.大数据4V特征Volume:体量巨大Velocity:处理速度快Variety:类型繁多(结构化,半结构化,非结构化)Value:价值密度低三.大数据主流技术数据采集预处理flume可以进行流式日志数据的收集sqoop可以交互关系型数据库,进行导入导…

    2022年6月4日
    41
  • ora00904::标识符无效_ora-00911 无效字符

    ora00904::标识符无效_ora-00911 无效字符ORA:即Oracle报错。标识符无效:SQL语句中,这个字段名不在表中。解决方案:修改SQL语句中对应的字段或者修改表里面对应的列名。在这里我想说一下,因为我用的是hibernate内部封装好的save方法,咱也不能去改人家的底层方法是不是,所以我在这里用到一个注解(@Column)去指定SQL要执行的字段我第一次用的时候放在了这里↑但是没什么效果,然后我就把这个注解(@Column)放到getset方法上,问题就解决了。我的问题已经解决,也希望能帮到大家。…

    2022年10月24日
    0
  • MySQL数据库建表语句

    MySQL数据库建表语句**建立一个叫student的表**CREATETABLE`student`(**id为int类型设置不能为空值**`id`INTNOTNULLauto_incrementprimarykeyCOMMENT’学生id’,`name`VARCHAR(16)NOTNULLCOMMENT’学生姓名’,`sex`CHAR(1)DEFAULT’男’COMMENT’性别’…

    2022年9月8日
    0

发表回复

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

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