一、前言 最近 ChatGPT 的 Plus 用户在 GPT-4 中新增了插件功能, GPT 在插件的加持下如虎添翼。 那么常用的插件是哪些?插件化是什么?插件化有什么好处? 三、插件化 3.1 什么是插件化 "插件化"是指在软件中引入插件系统,这样用户可以按照需要安装和使用不同的插件以扩展软件的功能。 3.2 ChatGPT 插件化的好处 对 OpenAI 的好处: 模块化和扩展性:插件化的设计允许 OpenAI 更好地扩展其功能。 这种模式的设计思想与插件化设计相似,因为插件化设计也是通过插件管理器(类似于工厂类)来加载和管理不同的插件。 五、总结 本文介绍了 GPT-4 一些好用的插件,介绍什么是插件化、插件化的好处插件化和设计模式的关系和 GPT 插件目前还存在的一些问题。
Android 插件化系列文章目录 【Android 插件化】插件化简介 ( 组件化与插件化 ) 【Android 插件化】插件化原理 ( JVM 内存数据 | 类加载流程 ) 【Android 插件化 】插件化原理 ( 类加载器 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 获取插件入口 Activity 组件 | 加载插件 Resources 资源 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 运行应用 | 代码整理 ) 文章目录 Android 插件化系列文章目录 一、组件化与插件化 二、插件化示例 三、插件化标准引入 机制 , 动态部署其插件 apk ; 这类软件第一次打开时 , 需要下载该模块的 插件 apk , 并安装 , 此时会卡顿以下 , 之后可以流畅访问 ; 三、插件化标准引入 ---- 插件化 中 ,
Android 插件化系列文章目录 【Android 插件化】插件化简介 ( 组件化与插件化 ) 【Android 插件化】插件化原理 ( JVM 内存数据 | 类加载流程 ) 【Android 插件化 】插件化原理 ( 类加载器 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 获取插件入口 Activity 组件 | 加载插件 Resources 资源 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 运行应用 | 代码整理 ) 【Android 插件化】Hook 插件化框架 ( Hook 技术 | 代理模式 | 静态代理 | 动态代理 ) 【Android 插件化】Hook 插件化框架 ( Hook 实现思路 | Hook 按钮点击事件 ) 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动过程
框架简介 : https://www.infoq.cn/article/ctrip-android-dynamic-loading/
终于,在能够保存配置信息后,我们可以开始编写插件的挂载功能了。 首先我们需要知道系统为我们在各个关键的环节都预留了插件点给我们,系统运行到插件点时,会检测到是否有插件挂在这个点上,然后执行插件的逻辑! 插件的工作就是找到合适的插件点,挂上去,然后执行自己的逻辑。 插件点,插件钩子,插件接口。。。 在老高这儿是一个概念 官方的插件接口及功能列表 我们的插件需要执行的逻辑在这里,Widget_Contents_Post_Edit类的finishPublish方法 文件路径var/Widget/Contents 有了类本身,我们可以在插件中随意调用他的公共方法!
前言 四大组件的插件化是插件化技术的核心知识点,而Activity插件化更是重中之重,Activity插件化主要有三种实现方式,分别是反射实现、接口实现和Hook技术实现。 反射实现会对性能有所影响,主流的插件化框架没有采用此方式,关于接口实现可以阅读dynamic-load-apk的源码,这里不做介绍,目前Hook技术实现是主流,因此本篇文章主要介绍Hook技术实现。 图4 从图4可以发现,在Activity通过AMS校验前,会调用Activity的startActivityForResult方法: frameworks/base/core/java/android/ 4. 更多的Android插件化原理请查看即将要出版的《Android进阶之光》续作。
插件作者收集了多于九千个PWMs从不同的来源和物种,并且使用motif2TF程序,把它们和候选结合TFs联系在一起。并且作者开发了iregulon。允许,预测的cis调控结合位点直接整合进生物网络。 (暂且中断原来文章,因为牵扯知识相对深奥,所以先看一下这个插件的用法,然后继续翻译)http://iregulon.aertslab.org/tutorial.html (暂且中断原来文章,因为牵扯知识相对深奥 ,所以先看一下这个插件的用法,然后继续翻译)http://iregulon.aertslab.org/tutorial.html 手册 iRegulon可以解决以下问题。 iregulon 1)转换excel文件格式成tab-delimited format(.txt) 2)点击file,import,network from table 3)select file,选中 4) column1(microRNA)source interaction 5)column4(target gene name)for target interaction 6)tick show text
插件是MyBatis对外开放了四个接口,可以用于自定义扩展。 prepare (BaseSatementHandler)SQL预编译 parameterize 设置参数 batch 批量处理 update 增删改操作 query 查询操作 以上4个接口在 MyBatis实现自定义插件 创建自定义插件主要步骤: 编写插件代码实现Interceptor接口,设置要代理的方法 在mybatis-config.xml中注册插件 下边来简单做一个分表的插件,根据主键 field.set(mappedStatement, sqlSource); return invocation.proceed(); } } 在mybatis-config.xml中注册插件 插件的核心原理 那MyBatis是如何实现插件功能的呢?如果有多个插件它又是如何执行的呢? 插件的实现使用了动态代理、反射和责任链的方式实现。 下边我将抽出MyBatis的插件核心代码。
文章目录 一、插件化技术弊端 二、恶意插件化程序的解决方向 三、常用的插件化虚拟引擎 一、插件化技术弊端 ---- 在之前的 Android 应用中 , 部分黑客将应用破解 , 植入自己的恶意代码 , , 使用自动化脚本 , 一晚上甚至可以封装数量巨大的恶意应用 ; 目前的 Android 生态中 , 存在着大量的该类使用插件化技术进行 ; 据统计 , 应用市场中 , 插件化应用中 , 恶意插件化应用 是 正常使用插件化技术应用的 数倍 ; 针对上述问题 , 需要使用一些技术识别 恶意 插件化应用 , 并删除此类应用 ; 二、恶意插件化程序的解决方向 ---- 首先 , 要先识别出使用了插件化技术的应用 ; 插件化应用有相同的特点 : 使用了 插件化 技术 的应用 , 都有相同的特点 , 当前的插件化基本都是基于 Hook 的插件化技术 , 这样可以零侵入代码 , 开发的插件 APK 与普通 APK , 一般不经过用户同意秘密加载插件 ( 感觉有些大厂的插件化也是偷摸加载的 , 插件化对用户透明 ) , 分析出恶意插件的非法加载插件的指纹特征 , 与正常使用插件化技术的应用进行区分 ; 检测恶意插件化应用
Android 插件化系列文章目录 【Android 插件化】插件化简介 ( 组件化与插件化 ) 【Android 插件化】插件化原理 ( JVM 内存数据 | 类加载流程 ) 【Android 插件化 】插件化原理 ( 类加载器 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 获取插件入口 Activity 组件 | 加载插件 Resources | 插件包管理 ) 【Android 插件化】Hook 插件化框架 ( 通过反射获取 “插件包“ 中的 Element[] dexElements ) 【Android 插件化】Hook 插件化框架 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 ) 【Android 插件化】Hook 插件化框架 ( 插件包资源加载 ) ---- 文章目录 Android 插件化系列文章目录
Android 插件化系列文章目录 【Android 插件化】插件化简介 ( 组件化与插件化 ) 【Android 插件化】插件化原理 ( JVM 内存数据 | 类加载流程 ) 【Android 插件化 】插件化原理 ( 类加载器 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 获取插件入口 Activity 组件 | 加载插件 Resources ) 【Android 插件化】Hook 插件化框架 ( Hook 实现思路 | Hook 按钮点击事件 ) 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动过程 | 插件包管理 ) 【Android 插件化】Hook 插件化框架 ( 通过反射获取 “插件包“ 中的 Element[] dexElements ) 【Android 插件化】Hook 插件化框架
Android 插件化系列文章目录 【Android 插件化】插件化简介 ( 组件化与插件化 ) 【Android 插件化】插件化原理 ( JVM 内存数据 | 类加载流程 ) 【Android 插件化 】插件化原理 ( 类加载器 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 获取插件入口 Activity 组件 | 加载插件 Resources 资源 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 运行应用 | 代码整理 ) ---- 文章目录 Android 插件化系列文章目录 一、" 插件化 " 中的 dex 文件 二、类加载器分析 三、获取类加载器 四、双亲委派机制 一、" 插件化 " 中的 dex 文件 ---- 现在的大型 Android 项目 , 基本都是 组件化 + 插件化 开发 , 项目架构上都是 组件化 的框架 ,
我认为插件化思维是一种极客精神,而且大量可拓展、需要协同开发的程序都离不开插件机制支撑。 没有插件化,核心库的代码会变得冗余,功能耦合越来越严重,最后导致维护困难。 2.1 插件化分类 插件化许多都是从设计模式演化而来的,大概可以参考的有:命令模式,工厂模式,抽象工厂模式等等,笔者根据个人经验,总结出三种插件化形式: ❈ 约定/注入插件化。 事件插件化。 插槽插件化。 ❈ 最后还有一个不算插件化实现方式,但效果比较优雅,姑且称为分形插件化吧。下面一一解释。 2.1.3 插槽插件化 这种插件化一般用在对 UI 元素的拓展。 2.4 哪些场景可以插件化 最后梳理下插件化适用场景,笔者根据有限的经验列出一下一些场景。
文章目录 一、插件化的由来 二、插件化要解决的问题 1、动态加载APK 2、资源加载 3、代码加载 一、插件化的由来 一个dex文件方法数限制: 因为现在的一个app中功能模块的解耦和运维团队的分离越来越厉害 因此产生了插件化技术。 二、插件化要解决的问题 1、动态加载APK 有一个宿主程序,他会到我们指定的sd卡中加载apk, 会通过代理的activity去执行。
Framework和插件化技术有了一定的了解;本文将探讨Android四大组件之一——Service组件的插件化方式。 我们能否用与之相同的方式实现Service的插件化?如果不行,它们的差别在哪里,应该如何实现Service的插件化? Service的插件化思路 现在我们已经明白了Service组件的工作原理,可对如何实现Service的插件化依然是一头雾水。 Service组件的插件化吗? 不论是借尸还魂还是女娲造人,对这些组件的插件化终归结底是要赋予组件“生命”。 插件化系列的文章有整整一个月没有更新了,非常抱歉!
Framework和插件化技术有了一定的了解;本文将探讨Android四大组件之一——Service组件的插件化方式。 我们能否用与之相同的方式实现Service的插件化?如果不行,它们的差别在哪里,应该如何实现Service的插件化? Service的插件化思路 现在我们已经明白了Service组件的工作原理,可对如何实现Service的插件化依然是一头雾水。 Service组件的插件化吗? 不论是借尸还魂还是女娲造人,对这些组件的插件化终归结底是要赋予组件“生命”。 插件化系列的文章有整整一个月没有更新了,非常抱歉!
应该如何实现它的插件化? 的插件化,这一点特别重要。 如果能让插件支持这些操作,不就支持了插件化么? 我个人觉得,如果只是希望插件化,那么是否支持ContentProvider无伤大雅,但是,如果希望实现虚拟化或者说容器技术,所有组件是必须支持插件化的。 ——推翻——改进的整个过程完全展现了出来,Android的插件化已经到达了百花齐放的阶段,插件化之路也不只有一条,但是万变不离其宗,希望我的分析和思考对各位读者理解甚至创造插件化方案带来帮助。
Android 插件化系列文章目录 【Android 插件化】插件化简介 ( 组件化与插件化 ) 【Android 插件化】插件化原理 ( JVM 内存数据 | 类加载流程 ) 【Android 插件化 】插件化原理 ( 类加载器 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 获取插件入口 Activity 组件 | 加载插件 Resources 资源 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 运行应用 | 代码整理 ) ---- 文章目录 Android 插件化系列文章目录 前言 一、" 宿主 " 模块启动 " 插件 " 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 ) 中对注入的上下文进行了相关代理操作 , 插件包中的界面组件 PluginActivity 凡是涉及上下文的操作 , 都统一委托给注入的上下文来完成
文章目录 一、VAHunt 检测插件引擎具体细节 一、VAHunt 检测插件引擎具体细节 ---- 上图的执行顺序是 ⑤ -> ④ -> ③ -> ② -> ① ; 存在 2 个 Intent 对象 , StubIntent 是 “桩” 组件对应的 Intent 对象 , TargetIntent 是插件包中的 Intent 对象 ; StubIntent 对应的组件需要欺骗 AMS , 因此该组件一定在 中发现启动的组件 StubIntent 类型 来自内部封装的 TargetIntent 中 , 调用 setType / setClassName ( setComponent ) 设置启动的组件是插件组件 ; 一旦发现了上述模式 , 就直接根据执行路径 , 反向找到 ⑤ 中在 AndroidManifest.xml 中注册的组件信息 ; 插件组件可以以不同的方式存储 , 字符串 , 对象 , 特殊标识 一直找到最终设置的组件类型 ; 匹配 " 桩 " 组件 : 获取到 " 桩 " 组件 , 与 AndroidManifest.xml 清单文件中的组件进行对比 , 如果查到了相应的组件 , 则可以直接判定该应用是插件化应用
插件化是2016年移动端最火爆的几个名词之一,目前淘宝、百度、腾讯等都有成熟的动态加载框架,包括apkplug, 本篇博客就来探讨一下插件化设计。 本博客主要从以下几个方面对插件化进行解析: Ø 为什么会提出插件化? Ø 插件化概述 Ø 插件化例子 1. 为什么会提出插件化? 插件化概述 Ø 插件化的概念: Android 插件化 —— 指将一个程序划分为不同的部分,也就说把一个很大的app分成n多个比较小的app,其中有一个app是主app,比如一般 App 的皮肤样式就可以看成一个插件 Ø 插件化的优缺点 插件化的优点主要有以下几个方面: 1) 模块解耦,应用程序扩展性强 2) 解除单个dex函数不能超过 65535的限制 3) 动态升级,下载更新节省流量 4 插件化例子 在介绍完插件化的概念和优缺点之后,我们就先一个小的案例,来帮助大家更好的理解插件的原理是什么样的。