XposedNoRebootModuleSample 不需要频繁重启调试的Xposed 模块源码例子
XposedNoRebootModuleSample(不需要频繁重启调试的Xposed 模块源码例子)
Xposed Module Sample No Need To Reboot When Debug github:https://github.com/asiontang/XposedNoRebootModuleSample
@Override
public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable
{
if (!"cn.asiontang.location.demo".equals(loadPackageParam.packageName))
return;
try
{
//在发布时,直接调用即可。
if (!BuildConfig.DEBUG)
{
handleLoadPackage4release(loadPackageParam);
return;
}
//在调试模式为了不频繁重启,使用反射的方式调用自身的指定函数。 /*【方法2】*/
final String packageName = MainXposedHook.class.getPackage().getName();
String filePath = String.format("/data/app/%s-%s.apk", packageName, 1);
if (!new File(filePath).exists())
{
filePath = String.format("/data/app/%s-%s.apk", packageName, 2);
if (!new File(filePath).exists())
{
XposedBridge.log("Error:在/data/app找不到APK文件" + packageName);
return;
}
}
final PathClassLoader pathClassLoader = new PathClassLoader(filePath, ClassLoader.getSystemClassLoader());
final Class<?> aClass = Class.forName(packageName + "." + MainXposedHook.class.getSimpleName(), true, pathClassLoader);
final Method aClassMethod = aClass.getMethod("handleLoadPackage4release", XC_LoadPackage.LoadPackageParam.class);
aClassMethod.invoke(aClass.newInstance(), loadPackageParam); /*【方法1】:无法达到效果*/
//final Class<MainActivity> pathClassLoader = MainActivity.class;
//final Class<?> aClass = Class.forName(pathClassLoader.getPackage().getName() + "." + MainXposedHook.class.getSimpleName(), true, pathClassLoader.getClassLoader());
//final Method aClassMethod = aClass.getMethod("handleLoadPackage4release", XC_LoadPackage.LoadPackageParam.class);
//aClassMethod.invoke(aClass.newInstance(), loadPackageParam);
}
catch (final Exception e)
{
XposedBridge.log(e);
}
} public void handleLoadPackage4release(final XC_LoadPackage.LoadPackageParam loadPackageParam)
{
XposedBridge.log("------------5");
}
XposedNoRebootModuleSample 不需要频繁重启调试的Xposed 模块源码例子的更多相关文章
- windows 下使用 mingw编译器 调试时 无法跟进源码
windows 下使用 mingw编译器 调试时 无法跟进源码 最近在公司使用QT 开发,官方在线下载的 安装的QT mingw 都是没有debug版本的 由于没有debug版本动态库 所以你调试的时 ...
- Visual Studio 2017中使用SourceLink调试ASP.NET Core源码
背景 当我们在学习ASP.NET Core或者调试ASP.NET Core程序的时候,有时候需要调试底层代码,但是当我们在Visual Studio中调试程序的时候,由于一些基础库或者第三方库缺少pd ...
- maven项目debug调试不能够进入源码问题解决
Maven项目在debug调试模式的时候,进入调试模式,但是没有进入源码界面. 上述问题的解决方法如下: 第一步: 第二步: 第三步: 第四步: 第五步: 到这里就解决了:
- 手把手教你调试Entity Framework 6源码
0 摘要 本文讲述在Visual Studio 2013(VS 2013)下调试Entity Framework 6(EF 6)源码的配置过程.原则上,VS 2012也适用. 之前打算编写<E ...
- 使用VS2015调试Qt5.9.5源码
调试的前提 1.Qt5.9.5源码. 2.Qt5.9.5对应VS2015版本的pdb文件. 前提1在安装Qt时勾选源代码选项即可,这样安装后的Qt目录会多出一个“Src”的目录,里面就是Qt的源码. ...
- 如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一)
1 前言 这是SpringBoot2.1源码分析专题的第一篇文章,主要讲如何来搭建我们的源码阅读调试环境.如果有经验的小伙伴们可以略过此篇文章. 2 环境安装要求 IntelliJ IDEA JDK1 ...
- 调试tomcat9.0.19源码
本文所用到的环境: IntelliJ IDEA Apache Maven 3.3.9 jdk1.8 1. 查看Tomcat版本 $TOMCAT_HOME\bin\version.bat D:\Prog ...
- 如何调试 Java 开源项目源码,记一种源码导入开发工具并调试的通用方法
楔子 说起读开源项目源码,很多朋友觉得高大上.大佬牛逼,云云~ 挡在很多人面前的不是源码怎么读,而是不知道如何导入源码到开发工具以及如何调试源码. 本文将以 spring-cloud-gateway ...
- QT 如何在调试时能进入源码方式(MacOS)
最近在学习QT, 遇到一些crash, 也没看过QT源码啊, 就想类似Java一样, 在出错时进入源码跟踪一下, 但是QT和Java太不一样了, 死活进不去. 研究了几天, 发现本来是很简单的事情, ...
随机推荐
- 【web性能】 JS、CSS的合并、压缩、缓存管理
本篇文章主要讨论下目前JS,CSS 合并.压缩.缓存管理存在的一些问题,然后分享下自己项目中用到的1个处理方案,并提供1个实例下载. 存在的问题: 合并.压缩文件主要有2方面的问题: 1. 每次发 ...
- linux中U盘umonut时出现“Device is busy”的解决方法
问题: #umount /dev/sda1 umount: /mnt/usb: device is busy 查找占用目录进程: #lsof |grep /mnt/usb bash 1971 root ...
- .NET在EF中使用sql,用动态类吧!
.NET在EF中使用sql,用动态类吧! 前言 在.NET中使用Entity Framework能快速.方便地结合LINQ来对数据库进行一系列的增删改查操作.但是由于EF根据表达式最后生成通用的sql ...
- 从一个前端项目实践 Git flow 的流程与参考
Git flow 出自 A successful Git branching model,这里使用了一个前端项目配合本文稿实施了 git flow 并记录流程作出示例和参考,对 hotfix 与持续部 ...
- php pod
//PDO:数据访问抽象层 //dsn:数据源: //带有事务功能: $dsn = "mysql:host=localhost;dbname=mydb"; ——建立数据源 //造p ...
- linux 实时时钟(RTC)驱动【转】
转自:http://blog.csdn.net/yaozhenguo2006/article/details/6820218 这个是linux内核文档关于rtc实时时钟部分的说明,此文档主要描述了rt ...
- 推荐个Java代码质量检测的利器 —— FindBugs
一.下载 插件的下载地址(sourceforge):FindBugs-Eclipse插件 二.安装 Eclipse插件的安装,就不多说了. 三.使用 1.找一个Project,选中它(也可以针对某个P ...
- [HDOJ5584]LCM Walk(数论,规律)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5584 给一个坐标(ex, ey),问是由哪几个点走过来的.走的规则是x或者y加上他们的最小公倍数lcm ...
- leetcode Database2 (四)
一.Duplicate Emails Write a SQL query to find all duplicate emails in a table named Person. +----+--- ...
- 安装hadoop
生成yum源 cd /var/ftp/pub/cdh/5 createrepo --update . 从节点 yum clean all 配置yum库 /etc/yum.repos.d # cat / ...