前言:在高手如云的XDA论坛上Xposed框架都被许多开发者誉为“安卓第一神器”。究竟是什么神奇的能力让它在众多APP中脱引而出呢?本文将指引大家完成一个Xposed上最简单的Demo,让大家感受一下Xposed的能力。

一、手机环境

1.ROOT过的Android手机(根据手机型号自行ROOT,本文不再详述)

2.安装了Xposed框架(没有Xposed框架的可从此处下载)

二、原理

Xposed替换了/system/bin/app_process可执行文件,在启动Zygote时加载额外的jar文件(/data/data/de.robv.android.xposed.installer/bin/XposedBridge.jar),并执行一些初始化操作(XposedBridge的main方法),然后我们就可以在这个Zygote上下文中进行某些hook操作。

三、开发Xposed模块

1.加入jar包

将XposedBridgeApi-54.jar加入到libs文件夹下,没有jar包的可从此处下载:

2.导入jar包

在build.gradle的dependencies下加入语句:(单引号内内容为实际jar包所在路径)

compile files('libs/XposedBridgeApi-54.jar')

3.修改Androidmanifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.administrator.xposeddemo"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><!-- 作为xposed模块 --><meta-dataandroid:name="xposedmodule"android:value="true" /><!-- 模块描述 --><meta-dataandroid:name="xposeddescription"android:value="模块描述" /><!-- XposedBridgeApi的最低版本号 --><meta-dataandroid:name="xposedminversion"android:value="54" /></application></manifest>

主要在application下加入三个元数据标签,

xposedmodule表示作为Xposed下的一个模块,value值为true。

xposeddescription表示对本模块的描述,该描述会显示在安装好后的程序名称下方。

xposedminversion表示jar包的最低版本号,我们使用的是54。

4.新建一个类Test,该类实现IXposedHookLoadPackage的接口,代码如下:

package com.example.administrator.xposeddemo;import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;/*** Created by Administrator on 2016/5/10.*/
public class Test implements IXposedHookLoadPackage {@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {// 打印装载的apk程序包名XposedBridge.log("Launch app: " + loadPackageParam.packageName);}
}

该类覆盖了接口中的handleLoadPackage方法,通过对该方法中的参数loadPackageParam执行某些操作可对实际运行的该apk进行劫持,这里我们只是简单地打印包名。

5.指定该模块的运行入口

在/app/src/main/下新建一个assets文件夹:

在该文件夹下新建一个名为"xposed_init"的文件:

在xposed_init中写上Test类的入口:

6.将程序进行key签名后生成apk,然后安装到手机上。

注:尽量签名后生成apk安装,debug运行有时候不行。

安装完成后通知栏会出现如下图通知,点击“激活并重启”

重启后Xposed框架的模块下会出现该Demo:

7.Android studio下查看Tag为“Xposed”的logcat信息:

结果如我们预想的那样,logcat下可以看到我们launch的各种app包名。

完整源码下载请点击这里。

Xposed模块开发入门教程相关推荐

  1. AndriodStudio 开发环境下实现Xposed模块开发入门。Xposed框架模块编写教程

    前言: Xposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作.Xposed 就好比是 ...

  2. Xposed 模块开发入门

    Xposed模块开发入门 阅读本文之前,你应该准备好以下事项: 安装 Android Studio,并完成配置 掌握 Xposed 的安装和使用方法 拥有阅读 Java 代码的能力 阅读本文之后你将掌 ...

  3. Xposed模块开发入门-最基本的项目创建

    本人结合网络上的种种教程以及自己实践,记录下一个完整的基本Xposed模块项目的创建过程. 开发环境: Mac系统 AndroidStudio 3.2.1 gradle 3.2.1 VirtualXp ...

  4. Xposed模块开发入门,实现修改微信钱包显示的余额

    一.什么是Xposed框架 Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作. 二.为你的安卓设备 ...

  5. Xposed模块开发教程整理

    Xposed模块开发教程 Xposed官网 Xposed官方文档 Xposed框架介绍 了解和使用Android神器Xposed框架 Xposed模块开发 Xposed模块开发入门 在手机状态栏增加显 ...

  6. Xposed 模块开发笔记

    相关文章: Xposed 模块开发入门 最近使用 Xposed 过程中遇到一些问题以及常识, 所以做下记录, 方便之后再次使用 MyLog 为自定义的日志输出类, 可以使用 XposedBridge. ...

  7. (译)Xposed模块开发教程

    (译)Xposed模块开发教程 原文地址.这是开发者所写的,可以说是官方开发指南.文章讲述了Xposed的原理,以及怎么开发Xposed框架的模块.头一次翻译技术文档,有错误的话请多包涵. 好了,你想 ...

  8. Xposed模块开发教程(一) 了解并使用Xposed

    系列教程: Xposed模块开发教程(一) 了解并使用Xposed http://blog.csdn.net/u014418171/article/details/52910768 Xposed模块开 ...

  9. Arduino可穿戴开发入门教程LilyPad介绍

    Arduino可穿戴开发入门教程LilyPad介绍 Arduino输出模块 LilyPad官方共提供了4种输出模块,他们分别是单色LED模块(图1.5).三色LED模块(图1.6).蜂鸣器模块(图1. ...

最新文章

  1. 独家 | 如何让情绪智力驱动创新?
  2. leetcode 94
  3. javascript 查看变量类型
  4. filter过滤后重新添加_Spring Boot 2.X(十):自定义注册 Servlet、Filter、Listener
  5. 批处理启动myeclipse
  6. 怎么把竖列中的数相加python_使用python将另一列的列和总和内容分组
  7. Linux基础—1.Linux系统(CentOS6.7)详细安装过程
  8. 这篇文章写给想学计算机视觉还没开始的人
  9. 名字打架 源码 php,无聊发天蝎与各星座名字打架结果
  10. 思维导图设计测试用例
  11. Oracle 对 JDK收费和.NET Core 给我们的机遇
  12. 固定资产管理软件分析
  13. java 泰勒级数_使用rSymPy计算泰勒级数
  14. 视频转文字怎么操作?这些方法值得收藏
  15. ActiveMQ 无法访问管理页面
  16. VB.net 移动文件夹去另一个地址,删除文件夹里某种类型的文件
  17. Java学习笔记:案例:计算发送工资条
  18. AD19 基础应用技巧(差分线的添加走线与蛇形等长)
  19. 使用Node.js和TransloadIt构建用户头像组件
  20. PDF转Word文字可编辑的软件有哪些?

热门文章

  1. PermissionX 1.6发布,支持Android 12,可能是今年最大的版本升级
  2. 所有的事情都会趋于平淡
  3. 药家鑫案遇害者亲属愿接受药父20万元赠款
  4. 【Java】JavaMail编程实现邮件客户端-OutBox InBox
  5. 数据结构与算法期末复习总结
  6. php 创建透明png,php生成透明背景图片实例
  7. 前端利器——炫酷的CodePen
  8. oracle常用函数使用大全 (Oracle除法)
  9. Idea打包:scala打成jar包
  10. 开发巴西市场全攻略,外贸人收藏