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


相关推荐

  • oracle如何修改用户密码_oracle重置用户名密码

    oracle如何修改用户密码_oracle重置用户名密码轻松搞定Oracle用户密码修改 摘要:服务器更换、数据库移植都会涉及到Oracle用户密码的修改操作,这里给出几段简单的代码,帮您轻松搞定Oracle用户密码的修改操作。 我们假设这样一个应用场景,数据库需要移植,库中某一个用户的Oracle用户密码不知道,可是这个密码因为在其他程序中使用了而不能修改,在新的数据库系统中,这

    2022年7月28日
    12
  • 最新、最全、最准确的手机号正则表达式

    最新、最全、最准确的手机号正则表达式更新到2018年1月,支持最新的166号段/***手机号码正则表达式*/privatestaticfinalStringPHONE_NUMBER_REG="^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\\d{8}$";

    2022年6月14日
    30
  • acwing1185. 单词游戏(欧拉图)「建议收藏」

    acwing1185. 单词游戏(欧拉图)「建议收藏」有 N 个盘子,每个盘子上写着一个仅由小写字母组成的英文单词。你需要给这些盘子安排一个合适的顺序,使得相邻两个盘子中,前一个盘子上单词的末字母等于后一个盘子上单词的首字母。请你编写一个程序,判断是否能达到这一要求。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含整数 N,表示盘子数量。接下来 N 行,每行包含一个小写字母字符串,表示一个盘子上的单词。一个单词可能出现多次。输出格式如果存在合法解,则输出”Ordering is possible.”,否则输出”The

    2022年8月9日
    3
  • JAVA Map转List

    JAVA Map转List将Map的key转成List:ListmapKeyList=newArrayList(map.keySet());将Map的Value转成List:ListmapValueList=newArrayList(map.valueSet());

    2022年7月26日
    19
  • 2021最新Java面经系列整理,持续更新「建议收藏」

    2021最新Java面经系列整理,持续更新。。。欢迎大家关注收藏,一起加油O(∩_∩)O哈~2021最新Java面经系列 系列 内容 地址 框架篇 2021最新Java面经整理|框架篇(一)Spring框架 https://blog.csdn.net/shipfei_csdn/article/details/109530018 2021最新Java面经整理|框架篇(二)SpringMVC框架 https://blog.csdn.net/..

    2022年4月18日
    50
  • 测试用例要素_用例是什么

    测试用例要素_用例是什么测试用例分层每个测试用例都有1个或多个测试步骤(List[step]),每个测试步骤对应一个API请求或其他用例的引用。从上图分析,我们可以看到testsuite中包含了3个测试用例,testca

    2022年7月31日
    7

发表回复

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

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