使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。 阅读本文之前,可以先 ...
在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook 插件框架通过AOP实现了插件使用和开发的透明性。在讲述DroidPlugin如何实现四大组件的插件化之前,有必要说明一下它对ActivityManagerServiche以及PackageManagerService的Hook方式 以下简称AMS,PMS 。 ActivityManagerServ ...
2016-04-13 16:41 0 1973 推荐指数:
使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。 阅读本文之前,可以先 ...
上文 Activity生命周期管理 中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务;通过Hook AMS和拦截ActivityThread中H类对于组件调度我们成功地绕过了AndroidMAnifest.xml的限制。 但是我们启动 ...
概述 该篇基于AndroidQ,主要介绍系统启动中的 AMS(ActivityManagerService)的启动过程。 AMS对四大组件(AndroidQ将activity移到了ActivityTaskManagerService中,但也和AMS相关联)进行管理和调度。同时,AMS也对进程 ...
前言 做过 Android 开发的童鞋都知道,不能在非主线程修改 UI 控件,因为 Android 规定只能在主线程中访问 UI ,如果在子线程中访问 UI ,那么程序就会抛出异常 并且,Android 也不建议在 UI 线程既主线程中做一些耗时操作,否则会导致程序 ANR 。如果我们需要 ...
前言:在上一篇博文《小白也能看懂的插件化DroidPlugin原理(一)-- 动态代理》中详细介绍了 DroidPlugin 原理中涉及到的动态代理模式,看完上篇博文后你就会发现原来动态代理真的非常简单,只不过就是实现一个 InvocationHandler 接口重写一下 invoke 方法 ...
概述 这里主要介绍 PackageManagerService(简称PMS)的启动 和 一个应用的安装过程。这里只是大致总结,供参考,不少地方同样需要进一步深入了解学习的。 该篇相关代码也是基于AndroidQ的。 PMS也是核心服务之一,管理包相关内容,解析 ...
概述 该篇基于Android 10的代码。在 AMS之AMS的启动---Android Framework(Android 10) 中已经介绍了,在Android 10中,activity的调度和管理已经从AMS移到了ActivityTaskManagerService中(这里简称ATMS ...
WordPress 的插件机制实际上只的就是这个 Hook 了,它中文被翻译成钩子,允许你参与 WordPress 核心的运行,是一个非常棒的东西,下面我们来详细了解一下它。 PS:本文只是简单的总结一下,更多用法还是要参考文中给出的函数。 钩子分类 钩子分为两种,一种叫做动作(action ...