DroidPlugin
Luckie stone
Android应用开发。
展开
-
插件开发之360 DroidPlugin源码分析(五)Service预注册占坑
在了解系统的activity,service,broadcastReceiver的启动过程后,今天将分析下360 DroidPlugin是如何预注册占坑的?本篇文章主要分析Service预注册占坑,Service占了坑后又是什么时候开始瞒天过海欺骗AMS的?先看下Agenda:AndroidMainfest.xml中概览 Service中关键方法被hook时机 startService被h...转载 2018-05-15 08:00:08 · 180 阅读 · 0 评论 -
Service插件化
在Activity生命周期管理以及广播的管理中我们详细探讨了Android系统中的Activity、BroadcastReceiver组件的工作原理以及它们的插件化方案,相信读者已经对Android Framework和插件化技术有了一定的了解;本文将探讨Android四大组件之一——Service组件的插件化方式。与Activity, BroadcastReceiver相比,Serv...转载 2018-05-14 16:22:42 · 216 阅读 · 0 评论 -
BroadcastReceiver插件化
在Activity生命周期管理以及插件加载机制中我们详细讲述了插件化过程中对于Activity组件的处理方式,为了实现Activity的插件化我们付出了相当多的努力;那么Android系统的其他组件,比如BroadcastReceiver,Service还有ContentProvider,它们又该如何处理呢?相比Activity,BroadcastReceiver要简单很多——广播的生命...转载 2018-05-14 16:21:39 · 473 阅读 · 0 评论 -
Hook机制之AMS&PMS
在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook;插件框架通过AOP实现了插件使用和开发的透明性。在讲述DroidPlugin如何实现四大组件的插件化之前,有必要说明一下它对ActivityManagerService以及PackageManagerService的Hook方式(以下简称AMS,PMS)。ActivityManagerServ...转载 2018-05-14 16:18:11 · 297 阅读 · 0 评论 -
Hook机制之Binder-Hook
Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager,AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。插件框架作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,自然会对这些系统服务做出一定的改造(Hook),使得插件的开发...转载 2018-05-14 16:17:28 · 204 阅读 · 0 评论 -
Android插件化原理解析——Hook机制之动态代理
使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。阅读本文之前,可以先clone一份understand-plugin-framework,参考此项目的dynamic-pr...转载 2018-05-14 16:16:38 · 221 阅读 · 0 评论 -
Activity生命周期管理
之前的Android插件化原理解析系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在Android系统上运行起来?在Java平台要做到动态运行模块、热插拔可以使用ClassLoader技术进行动态类加载,比如广泛使用的OSGi技术。在Android上当然也可以使用动态加载技术,但是...转载 2018-05-14 16:18:57 · 3946 阅读 · 0 评论 -
插件加载机制
上文Activity生命周期管理中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务;通过HookAMS和拦截ActivityThread中H类对于组件调度我们成功地绕过了AndroidMAnifest.xml的限制。但是我们启动的『没有在AndroidManifet.xml中显式声明』的Activity和宿主程序存在于同一个Apk中;通常...转载 2018-05-14 16:20:51 · 614 阅读 · 0 评论 -
插件开发之360 DroidPlugin源码分析(一)初识
DroidPlugin的是什么? 一种新的插件机制,一种免安装的运行机制,是一个沙箱(但是不完全的沙箱。就是对于使用者来说,并不知道他会把apk怎么样), 是模块化的基础。DroidPlugin的缺点是什么?• a.通知栏限制(无法在插件中发送具有自定义资源的Notification,例如: 1. 带自定义RemoteLayout的Notification 2. 图标通过R.draw...转载 2018-05-15 07:59:32 · 197 阅读 · 0 评论 -
插件开发之360 DroidPlugin源码分析(二)Hook机制
前言:新插件的开发,可以说是为插件开发者带来了福音,虽然还很多坑要填补,对于这款牛逼的插件机制,一直想找个时间分析和总结下它的code,话不多说,直接入正题,本文是分析../hook/handle及../hook/proxy下代码,../hook/binder单独分析Hook机制的包结构关系 Hook机制的类图关系 Hook机制的时序图关系 Manifest权制申请 基类Hook做了什...转载 2018-05-15 07:59:42 · 212 阅读 · 0 评论 -
插件开发之360 DroidPlugin源码分析(三)Binder代理
Hook机制中Binder代理类关系图 Hook机制中Binder代理时序图 MyServiceManager ServiceManagerCacheBinderHook ServiceManagerBinderHook BinderHookHook机制中Binder代理类关系图Hook机制中Binder代理时序图MyServiceManagermOriginS...转载 2018-05-15 07:59:50 · 225 阅读 · 0 评论 -
插件开发之360 DroidPlugin源码分析(四)Activity预注册占坑
在了解系统的activity,service,broadcastReceiver的启动过程后,今天将分析下360 DroidPlugin是如何预注册占坑的?本篇文章主要分析Activity预注册占坑,Activity占了坑后又是什么时候开始瞒天过海欺骗AMS的?先看下Agenda:AndroidMainfest.xml中概览 Activity中关键方法被hook时机 startActivi...转载 2018-05-15 07:59:58 · 238 阅读 · 0 评论 -
ContentProvider插件化
目前为止我们已经完成了Android四大组件中Activity,Service以及BroadcastReceiver的插件化,这几个组件各不相同,我们根据它们的特点定制了不同的插件化方案;那么对于ContentProvider,它又有什么特点?应该如何实现它的插件化?与Activity,BroadcastReceiver等频繁被使用的组件不同,我们接触和使用ContentProvider的机会...转载 2018-05-14 16:23:48 · 396 阅读 · 0 评论