标签:反射清除筛选

Android 热修复(三):反射实现运行期热修复

本文整理自享学团队直播课《热修复(三):反射实现运行期热修复》。 上一篇把「类替换」这条链的原理走完了:补丁 dex 用反射转成一组 Element,插到 PathClassLoader 内部 DexPathList 维护的 dexElements 数组最前面,类加载按顺序先命中补丁,旧类被顶掉。这一篇不再讲原理,而是亲手用反射写出来HotFix.installPatch 并进行应用测试。 整个

Android 热修复(二):dex 补丁热修复原理

本文整理自享学团队直播课《热修复(二):dex 补丁热修复原理》。 上一篇我们把这四种主流的方案(QZone、Tinker、AndFix、Robust)的原理讲了一遍。那一篇的核心差异记住这一个就可以了:AndFix 走方法替换(native 层改 ArtMethod),Robust 走字节码插桩,QZone 和 Tinker 走类替换。 类加载方案的核心动作只有一件事: 把补丁 dex 用反射转

Android 插件化(三):如何加载插件里的资源

本文整理自享学团队直播课《Android 插件化(三):资源加载》。 前面两讲把插件的类和 Activity 都"骗"进来了,但插件的 Activity 跑起来之后,getResources 拿到的还是宿主的资源——图片、字符串、布局全是宿主那套。这一讲要做的就是让插件用自己的 AssetManager 单独加载一份属于插件的资源。 要做到这一点,你得先想通两件事: 上一讲那两个 Hook 点

Android 插件化(二):如何启动插件里的 Activity

本文整理自享学团队直播课《Android 插件化(二):Activity加载》。 上一讲解决的是"插件的类能被加载进来",这一讲解决的是"插件的 Activity 能真正被启动"。前者靠类加载器,后者靠 Hook——在 Android 启动 Activity 的链路中间安插一个钩子,把"要启动哪个 Activity"这个信息偷偷换一遍,让一个已注册的占坑 Activity 去骗过 AMS 的校验,

Android 插件化(一):如何加载插件里的类

本文整理自享学团队直播课《Android 插件化(一):类加载》。 插件化的第一件事:让宿主把自己没装过的「插件类」加载进来。拆开看,底层动作就三步:用一个 DexClassLoader 去加载插件 APK,反射拿到它内部的 dexElements,再合并进宿主自己的 dexElements。这三步做完,宿主 loadClass 一个插件类,和加载自己的类没有区别。 结论就上面三句,但直接看反射代

Agentic AI (二)反射设计模式:自我反思与外部反馈

一、反射设计模式:让 Agent 审视自己的输出 1.1 从人类反思到 LLM 反思 人写东西很少一遍到位。草稿写完回头看,会发现日期不明确、用词不准、漏了签名,改完再发。这个「写完 → 审视 → 修改」的过程就是反思(reflection)。 LLM 也能走同样的流程。与其让它一次生成最终答案,不如分两步:先生成初稿,再让它以另一个提示词审视初稿、指出问题、写出改进稿。课程里用邮件举过例子:约朋