Java反射在Android中的应用
文章平均质量分 94
比如自定义注解,Hook技术,热修复等
我叫菜鸡
Day day up.
展开
-
Hook技术(五)如何Hook系统中任意服务
获取服务&注册 ServiceManager.getService()public static IBinder getService(String name) { try { IBinder service = sCache.get(name); //先从缓存中查看 if (service != null) { ...原创 2018-03-15 15:48:58 · 6265 阅读 · 3 评论 -
Hook技术(四)对系统启动Activity进行Hook之偷梁换柱Activity
引出问题我们如果要启动一个activity,我们的做法是1. 在AndroidManifest.xml中声明一个Activity 2. startActivity,如果不在AndroidManifest.xml中声明,启动activity会报错(android.content.ActivityNotFoundException)。但是我们想,我们使用插件化,按照正常的思维是不是要将插件化中的所...原创 2018-03-12 18:05:05 · 2487 阅读 · 3 评论 -
hook技术(三)对AMS&PMS进行Hook
本文基于Android系统源码8.0版本进行hook抛出问题AMS是什么?从启动Activity的角度看app如何和AMS交互hook点在哪里?AMS是什么?AMS是Android框架层用来管理四大组件的管家类并且负责进程的启动消亡和优先级的调度,是Android系统的核心服务。从启动Activity的角度看app如何和AMS交互我们知道activity...原创 2018-03-12 13:08:11 · 1864 阅读 · 0 评论 -
Hook技术(二)对系统服务Hook
上一次,我们用Hook技术对startActivity进行了操作。我们这一届继续Hook一些比较深入的东西。更加深入的理解Hook。通过上一次,我们小结,Hook就是用我们的代理去替换原本的服务,然后达到拓展的目的,甚至改变原有服务的目的。那我们今天就尝试改变系统剪贴板。要想改变系统剪贴板,我们就得了解剪贴板服务最基本的流程,从而我们好控制系统剪贴板的Hook点在哪里。 剪贴板服务的基...原创 2018-03-12 13:07:35 · 1055 阅读 · 0 评论 -
Hook技术(一)对startActivity进行简单Hook
目的这篇文章是让大家体会hook技术大概是什么样子,在那些地方可以应用到。后面文章将深入hook技术,以及解析市面上现有的hook开源框架原理。在前面的文章中我们已经说过什么是代理模式,那我们就先使用最简单的静态代理模式应用在我们的hook技术中。我们先复习一下静态代理模式。/** * 定义Demo接口 */ public interface Demo { ...原创 2018-03-12 13:07:03 · 1763 阅读 · 0 评论 -
自定义注解
++如果没有基础的同学必须先看我前面的java动态代理模式和java注解基础和java反射总结这几篇文章++ 分析注解起到一个规范作用&获取值得作用,那么值拿到之后就需要操作值,怎么操作呢?当然通过反射,所以接下来就看如何搞。我们从最熟悉的调用开始展开。 特殊说明 其中Class,Constructor,Field,Method,Package都实现了A...原创 2018-03-11 10:49:03 · 207 阅读 · 0 评论 -
java动态代理模式
静态代理大家都明白,就是相当于包装了一次,在包装这一次的时候可以加一些业务逻辑。同样静态代理的特点是一个接口对应一个代理类,当然委托类可以多个。静态代理/** * 定义Demo接口 */ public interface Demo { public void save(); }/** * DemoImpl实现Demo接口并覆写save()...原创 2018-03-11 10:48:24 · 194 阅读 · 0 评论 -
java反射总结
所用到的类java.lang.Classjava.lang.reflect.Constructorjava.lang.reflect.Fieldjava.lang.reflect.Methodjava.lang.reflect.Modifier 作用: - 当一个类被加载以后,Java虚拟机就会自动产生一个Class对象。通过这个Class对象我们就能获得加载到虚拟机...原创 2018-03-11 10:47:47 · 304 阅读 · 0 评论 -
java注解基础
一:元注解元注解的作用就是负责注解其他注解1.@Target 说明: 用来指明注解所修饰的目标,包括packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数) 取值: 值 作用 英文描述 CONSTRUCTOR 用于描...原创 2018-03-11 10:47:01 · 261 阅读 · 0 评论