当前位置: 首页 > wzjs >正文

装饰网站建设软件下载软路由做网站

装饰网站建设软件下载,软路由做网站,外贸建站哪家公司专业,别墅设计参考Android插件化学习之路(一)之动态加载综述_android 动态加载资源-CSDN博客 有三种方式实现插件化,这三种方式的前提都需要在宿主App中创建代理Activity 1.反射 在宿主Activity的生命周期方法中通过反射调用插件Activiy的生命周期方法 2…

参考Android插件化学习之路(一)之动态加载综述_android 动态加载资源-CSDN博客

有三种方式实现插件化,这三种方式的前提都需要在宿主App中创建代理Activity

1.反射

        在宿主Activity的生命周期方法中通过反射调用插件Activiy的生命周期方法

2.hook AMS

        安卓插件化中的 Hook AMS 技术是通过拦截并篡改 ActivityManagerService(AMS)对组件生命周期的管理逻辑,从而实现动态加载未注册插件组件的核心手段。其核心原理在于利用反射机制和动态代理技术,在系统与应用层的交互过程中“偷梁换柱”:当应用层通过 startActivity 请求启动未在 AndroidManifest.xml 中注册的插件 Activity 时,系统会通过 Binder 调用向 AMS 发起请求,此时通过 Hook 机制拦截 IActivityTaskManager 接口的 startActivity 方法,将原始 Intent 中的目标组件替换为宿主中已预注册的代理占位组件(如 ProxyActivity),以此绕过 AMS 对插件 Activity 的合法性校验;待 AMS 完成并通知应用进程启动目标组件时,再通过 Hook ActivityThread 内部的 Handler 对象,拦截 LAUNCH_ACTIVITY 消息并恢复原始插件组件调度信息,最终由系统完成插件 Activity 的实例化与生命周期调用。这一过程涉及两次关键 Hook:首次在客户端发起请求时伪装身份,二次在服务端回调时还原真实意图,例如在 Android 10 的实现中需修改 IActivityTaskManager 的 AIDL 调用链,并动态替换 ApplicationThread 的调度逻辑。然而,此类技术需面对系统版本差异(如 Android 8 后对非公开 API 的限制)、Binder 接口变更(如 IActivityManager 合并为 IActivityTaskManager)、厂商定制系统兼容性问题,以及因频繁反射操作引发的性能损耗和崩溃风险。腾讯 QZone、Tinker 等插件化框架正是基于此类 Hook 策略,结合 DexClassLoader 动态加载机制与资源隔离方案,实现了免安装运行插件、热修复及模块化扩展功能,但同时也对系统稳定性维护提出了更高要求。

精简

在startActivity方法中,将插件Activity替换成代理Activity,这样可以绕过AMS 对Activity 的合法性校验。当 AMS 通知应用进程启动代理Activity时,拦截 LAUNCH_ACTIVITY 消息并将代理Activity替换为插件Activity

3.hook Instrumentation

        安卓插件化中的 Hook Instrumentation 技术是一种通过拦截并篡改系统对组件生命周期管理的核心手段,其本质是利用反射机制篡改 ActivityThread 中的 mInstrumentation 实例,从而控制组件的启动与创建流程。具体实现中,开发者会先通过反射获取当前进程的 ActivityThread 对象,进而提取系统默认的 Instrumentation 实例,并创建一个自定义的代理类(如 FixInstrumentation)继承并重写其关键方法(如 execStartActivity 和 newActivity)。在 execStartActivity 中,开发者会检测待启动的 Intent 是否指向未注册的插件 Activity(如 com.example.PluginActivity),若匹配则将其替换为宿主中已注册的代理占位组件(如 ProxyActivity),同时将原始目标组件信息暂存于 Intent 的附加数据中;而在 newActivity 方法中,则通过恢复原始组件类名并调用父类方法完成插件 Activity 的真实实例化。这一过程绕过了 Android 系统对未在 AndroidManifest.xml 中注册组件的校验逻辑,实现了动态加载插件组件的功能。然而,该技术需面对不同安卓版本中类结构差异、系统对非公开 API 的限制(如 Android 9 后的私有接口限制)以及厂商定制系统导致的兼容性问题,同时也需警惕因反射操作引发的性能损耗和潜在崩溃风险。此类 Hook 技术广泛应用于插件化框架(如 DroidPlugin、VirtualApk)中,为模块化开发、热修复及动态功能扩展提供了底层支持。

精简

通过反射替换 ActivityThread 中的 Instrumentation 实例,Instrumentation用来管理Activity的生命周期和创建Activity,利用自定义代理类拦截组件启动流程,在 execStartActivity 中将插件 Activity 替换为代理Activity以绕过 AMS 校验,并在 newActivity 方法中将代理Activity替换为插件Activity


文章转载自:

http://mPvbLOkJ.dkwry.cn
http://BIciBvho.dkwry.cn
http://U7zrxWaW.dkwry.cn
http://sXaF8Nu0.dkwry.cn
http://0Nz2g5Fp.dkwry.cn
http://lwy4WenH.dkwry.cn
http://MrzmKbuw.dkwry.cn
http://RMoYQ60V.dkwry.cn
http://3FuJCMcJ.dkwry.cn
http://9LYVfxbQ.dkwry.cn
http://m08VCzwF.dkwry.cn
http://BRiu9wBF.dkwry.cn
http://Lt9RwVWK.dkwry.cn
http://QNadnF4z.dkwry.cn
http://GgCkO6Bq.dkwry.cn
http://hpS6j4MF.dkwry.cn
http://W045JVYU.dkwry.cn
http://OPA259KL.dkwry.cn
http://vLTVGsRM.dkwry.cn
http://fpoZxuOX.dkwry.cn
http://sbci3Srg.dkwry.cn
http://lKjydlTA.dkwry.cn
http://HqH4fxrN.dkwry.cn
http://4RkZtCkG.dkwry.cn
http://Mo0iM5zy.dkwry.cn
http://yTcxfMNE.dkwry.cn
http://qkwfZiI8.dkwry.cn
http://k4IS1nWA.dkwry.cn
http://uOoiiWQP.dkwry.cn
http://E8dRlSuD.dkwry.cn
http://www.dtcms.com/wzjs/720325.html

相关文章:

  • 保定网站制作方案建站公司常见提成比例
  • 足球网站怎么做的有源码手机怎么搭建网站
  • 安徽工程建设信息网站6网站域名服务器
  • 电子商务网站建设作品绿茶直播
  • 江门网站快速排名优化织梦cms模板下载
  • 衡水专业网站制作做响应式网站的微博号
  • 网站建设_免费视频做wordpress
  • 网站seo优化合同山东省最新消息今天
  • cms管理手机网站模板下载特色的重庆网站推广
  • 网站死链怎么办个人网站可以做社交类型
  • 写作网站后台账号密码忘了怎么办贵阳网站建设咨询
  • 多种不同产品的网站怎么做seo制作一个网站的费用
  • 建设工程人员锁定网站网页制作源代码分享
  • 一个女的让我和她做优惠网站免费虚拟机安卓版
  • 网站 优化手机版个人急售二手房
  • 邯郸做淘宝网站商城网站开发文档
  • 公司企业网站制作教程诚聘高新网站开发工程师
  • 阿里云ace搭建wordpresswin10系统优化工具
  • 上海所有公司名称郑州企业网站优化公司
  • 网站推广思路线上推广的好处
  • 手机网站模板 织梦反诈app开发公司
  • 建设网站前景怎么样网站建设 好的公司
  • 网站开发违约解除合同通知函仿别人的网站
  • 网站改版提升总结嘉兴丝绸大厦做网站的公司
  • 电子商务网站建设解决方案白银市建设局网站
  • 做网站时给网页增加提醒wordpress喜欢_赏_分享
  • 长春网站建设推广优化wordpress背景颜色
  • 成都手机网站制作网络安全公司排名前十名
  • 做企业网站用什么cms淄博网站制作定制
  • 美了一站式变美共享平台北京微网站