学习Xposed框架,在github:https://github.com/rovo89 下载XposedInstaller安装到手机上来管理Xposed的模块。
本文记录根据官方文档(资料1)在android studio下创建Xposed模块的步骤:
1 打开AS创建空activity的项目;
2 在AndroidManifest.xml下添加<meta-data>,代码如下:
        <meta-data
android:name="xposedmodule"
android:value="true"/>
<meta-data
android:name="xposeddescription"
android:value="学习" />
<meta-data
android:name="xposedminversion"
android:value="54"/>

  需要添加三个<meta-data>,注意的是name字符串不能更改且version要对应你等下要依赖的jar版本

3 包含XposedBridgeApi-54.jar——这里要与上面的xposedminversion value对应
3.1 在app目录下创建deps文件夹,并将jar复制到此目录下,如图:

                                             


 
3.2 在app目录下的build.gradle文本(见上图)中添加命令将jar包含进项目:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
<span style="color:#3333ff;">provided fileTree(dir: 'deps', include: ['*.jar'])</span> }

4 在java目录下创建java类开始写代码,按照官方文档的代码:

package com.jason.learnxpose;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage; /**
* Created by vendanner.
*/
public class Tutorial implements IXposedHookLoadPackage{
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
XposedBridge.log("Loaded app" + lpparam.packageName);
}
}

5 在assets/xposed_init文本中添加我们写的类全名:Xposed框架只会加载在此文本中出现的类(看Xposed学习三)

                               

  xposed_init内容:com.jason.learnxpose.Tutorial

6 Run得到将当前模块安装到手机中;在最初我们是创建没有activity项目,在Run时需要修改设置:
点击右图中的app,得到下图
选择Do not launch Activity。
此时点击Run将apk安装到手机,打开手机中的Xposed Installer点击模块看到刚刚安装的模块。模块必须重启才能开始工作,在后面的讨论Xposed原理会讲到为何重启才能工作。至此,在android
studio上开发Xposed模块的全部流程结束。
 
 

参考资料:

版权声明:本文为博主原创文章,未经博主允许不得转载。

Xposed学习一:初探的更多相关文章

  1. Xposed学习三:基石

    在上一篇我们留下问题:handleLoadPackage如何生效即在何时被执行. 先看XposedBridge.class的main(该函数是在appruntime.start函数中替换原先zygot ...

  2. Xposed学习

    刚接触,不是太懂,就昨天root荣耀6就花了一天时间,其实root早就ok,只是因为Xposed框架总是提示红色警告,以为不好用,后来试了几次发现,跟手机也有很大关系,有的不能很好的支持框架,有的模块 ...

  3. Vue学习记录-初探Vue

    写在开头 2017年,部门项目太多,而且出现了一个现象,即:希望既要有APP,也能够直接扫码使用,也能放到微信公众号里面. 从技术角度来说,APP我们可以选择原生开发,也可以选择ReactNative ...

  4. 深度强化学习day01初探强化学习

    深度强化学习 基本概念 强化学习 强化学习(Reinforcement Learning)是机器学习的一个重要的分支,主要用来解决连续决策的问题.强化学习可以在复杂的.不确定的环境中学习如何实现我们设 ...

  5. xposed学习四:总结

    xposed的学习要告一段落,接下来去学习android apk和so加固,这里我们回顾下xposed吧. xposed是个hook框架,它是基于dalvik(确切来说是目前的版本,作者说ART也快出 ...

  6. Xposed学习二:实现机制

    在上一篇我们学习了如何在AS中创建Xposed模块,本篇来分析下官方教程中redClock的实现原理.本系列文章基于version-51 public void handleLoadPackage(X ...

  7. DeepMind背后的人工智能:深度学习原理初探

    去年11月,一篇名为<Playing Atari with Deep Reinforcement Learning>的文章被初创人工智能公司DeepMind的员工上传到了arXiv网站.两 ...

  8. Castle学习笔记----初探IOC容器

    通常IOC实现的步骤为-->建立容器-->加入组件-->获取组件-->使用组件. 1.建立容器 建立容器也就是IWindsorContainer.接着我门要向容器中注册服务,并 ...

  9. Xposed 学习笔记

    Xposed框架用法 1.配置AndroidManifest.xml <meta-data android:name="xposedmodule" android:value ...

随机推荐

  1. pytorch(02)tensor的概念以及创建

    二.张量的简介与创建 2.1张量的概念 张量的概念:Tensor 张量是一个多维数组,它是标量.向量.矩阵的高维拓展 Tensor与Variable Variable是torch.autograd(t ...

  2. 13. Vue CLI脚手架

    一. Vue CLI 介绍 1. 什么是Vue CLI? Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.Vue CLI 致力于将 Vue 生态中的工具基础标准化.它确保了各种构建工 ...

  3. Java数组:多维数组(二维),Arrays类,冒泡排序

    Arrays类数组工具类:java.util.ArraysArrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用 具有 ...

  4. 2019 南京网络赛 B super_log 【递归欧拉降幂】

    一.题目 super_log 二.分析 公式很好推出来,就是$$a^{a^{a^{a^{...}}}}$$一共是$b$个$a$. 对于上式,由于指数太大,需要降幂,这里需要用到扩展欧拉定理: 用这个定 ...

  5. 七种join的书写规范

    在mysql中的两表进行连接时,总共有7种连接情况,具体可见下图 由图的从左到右的顺序 图1.左连接(left join):返回左表中的所有记录和右表中的连接字符字段相等的记录,若右表没有匹配值则补N ...

  6. JVM之对象回收

    finalize /** *此代码演示了两点: *1.对象可以在被GC时自我拯救. *2.这种自救的机会只有一次,因为一个对象的finalize()方法最多只会被系统自动调用一次 */ public ...

  7. P1328_生活大爆炸版石头剪刀布(JAVA语言)

    题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...

  8. APIView里如何获取HTTP里的数据

    request.data.get()  获取post方法表单里的数据 request.post.get()  获取post方法表单里的数据 request.GET.get()  获取URL里的数据 r ...

  9. Android 学习之活动的生命周期

    •返回栈 Android 中的活动是可以叠层的: 我们每启动一个新的活动,就会覆盖在原活动之上: 然后点击 Back 键会销毁最上面的活动,下面一个活动就会重新显示出来: 其实 Android 是使用 ...

  10. 服务器安装部署-01-MySQL

    1 MySQL 1.1 安装 在root用户权限下 # 创建mysql用户和用户组,同时禁止登陆 shell> groupadd mysql shell> useradd -r -g my ...