首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏向治洪

    android插件开发机制

    插件机制实质上就是由主体程序定义接口,然后由插件去实现这些接口,以达到功能模块化。 Android系统是基于Linux内核的,其安全机制也继承了Linux的特性,再加上android framework没有提供插件化编程的接口,使得在android上做插件开发显得很困难。 Step2:建立插件工程,实现接口。 在上面的方法中我们获得了插件的路径以及实现接口类的类名,从而能够动态的加载这个类,而通过检索sharedUserId能够获得到路径却无法获得到类名,那么可以在插件中加入一个xml文件来说明插件中包含的实现类 总结一下,当插件的功能比较简单,选择第一种方法比较容易实现;当插件功能较多,逻辑复杂时,可以将插件再细分成模块,同时xml文件可以表现出插件的组织结构,那么第二种方法更好一些。

    98170发布于 2018-01-30
  • 来自专栏前端小课堂

    FIS 插件机制

    spriter(csssprite处理器):对css进行sprites化处理 postpackager(打包后处理器):打包之后对文件进行处理,通常用来将map.json转换成其他语言的文件,比如php 插件调用机制 当我们在fis系统中加载一个插件的时候,会利用 nodejs的require向上查找机制 从 fis-kernel 模块出发,向上查找所需模块。 fis插件系统巧妙的利用了nodejs的require机制来实现其扩展机制。 :fis编译机制内核 fis-command-release:fis release命令的提供者,处理编译过程,并提供文件监听、自动上传等功能 fis-command-install:fis install http://fex-team.github.io/fis-site/docs/more/extension-point.html 2、插件调用机制 http://fex-team.github.io

    1.1K30发布于 2019-09-04
  • 来自专栏Nicky's blog

    Meven的插件机制

    Maven的生命周期与Maven插件是项目绑定的,Maven默认地将一些默认插件的目标与Maven的生命周期维系在了一起,比如default的compile这个阶段就是和maven-compiler-plugin 这个插件的compile目标维系着不可分割的关系。 为了不让用户不用任何配置就能进行一般程度的项目构建,Maven默认给自己生命周期的核心阶段绑定了自己的插件。 clean如下: 生命周期阶段 插件目标 pre-clean clean maven-clean-plugin:clean post-clean site如下: 生命周期阶段 插件目标 pre-site site maven-site-plugin:site post-site site-deploy maven-site-plugin:deploy 最麻烦的就是最核心的default 生命周期阶段 插件目标

    53030发布于 2019-01-17
  • 来自专栏poslua

    Kong 插件加载机制概述

    概述 插件可以认为是 Kong 管理 API 的核心,其模块化和可扩张性做得很好,尤其是其灵活的加载机制使得 Kong 能够针对不同 API 启用、组合任意插件。 无论是为了理解这些插件的工作原理,亦或者是定制开发属于自己的插件,熟悉插件的加载机制无疑都是一个关键的前提。 Kong 从 0.11.0 版本开始区分了社区版和商业版,节点之间的消息通信也改为了数据库轮训机制(原先是通过 serf 实现的),通过最终一致性实现了节点的无状态,任何时候节点只需连上数据库即可工作。 所以我这里将基于 Kong 0.12.3 版本分析其插件加载机制。 我一般研究一门新技术,倾向于研究更新更早期的代码。 因为非常成熟有名的代码往往已经过度设计,对于阅读代码入门不一定是好的选择。 理解「phase 循环」对于掌握 Kong 插件机制至关重要!

    2.1K30发布于 2019-08-19
  • 来自专栏小工匠聊架构

    JPOM - Plugin插件工厂机制

    文章目录 地址 版本 源码解析-插件工厂机制 地址 Gitee: https://gitee.com/dromara/Jpom 官网: https://jpom.io/ 一款简而轻的低侵入式在线构建、 版本 我们以2.8.12为例子,鉴赏学习一下 源码解析-插件工厂机制

    56520编辑于 2022-03-31
  • 来自专栏云瓣

    探寻 webpack 插件机制

    在探寻 webpack 插件机制前,首先需要了解一件有意思的事情,webpack 插件机制是整个 webpack 工具的骨架,而 webpack 本身也是利用这套插件机制构建出来的。 因此在深入认识 webpack 插件机制后,再来进行项目的相关优化,想必会大有裨益。 webpack 插件 先来瞅瞅 webpack 插件在项目中的运用 const MyPlugin = require('myplugin') const webpack = require('webpack 了解一些常见的事件钩子是写 webpack 插件的前置条件,下面列举些常见的事件钩子以及作用: 钩子 作用 参数 类型 after-plugins 设置完一组初始化插件之后 compiler sync 否则会浪费很多时间而且会有挫败感; 结合调试工具来分析,很多点不用调试工具的话很容易顾此失彼; 动手实现个 webpack 插件 结合上述知识点的分析,不难写出自己的 webpack 插件,关键在于想法

    1.2K70发布于 2018-05-02
  • 来自专栏码农沉思录

    Mybatis插件机制详解

    Mybatis采用责任链模式,通过动态代理组织多个插件(拦截器),通过这些插件可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最好了解下它的原理 ,以便写出安全高效的插件。 update, query) 总体概括为: 拦截执行器的方法 拦截参数的处理 拦截结果集的处理 拦截Sql语法构建的处理 Mybatis是通过动态代理的方式实现拦截的,阅读此篇文章需要先对Java的动态代理机制有所了解 我们可以定义插件对Mybatis的结果集自动映射进行修改。 插件Interceptor Mybatis的插件实现要实现Interceptor接口,我们看下这个接口定义的方法。 理解这个接口的定义,先要知道java动态代理机制

    1.2K10发布于 2018-07-23
  • 来自专栏奇梦博客

    Xiuno插件开发,Overwrite 机制说明 PHP 插件 XiunoBBS

    Overwrite 机制 我们已经知道了 Hook 机制就是插入合并,那么 Overwrite 就很好理解了。 Overwrite 就是覆盖的意思,Xiuno BBS 的 overwrite 机制就是用来"覆盖"原来的文件。 比如你的插件目录如下: ---- plugin/ my_plugin/      conf.json         overwrite/          view/              htm /                     header.inc.htm ---- 那么这个插件的 header.inc.htm 就会“覆盖”view/htm/header.inc.htm,并不是真正的覆盖

    1.8K20发布于 2018-09-29
  • 来自专栏Eureka的技术时光轴

    NPAPI插件开发学习:Webkit的插件机制

    转载CSDN博友的一篇关于NPAPI插件机制的博文。 原文地址:http://blog.csdn.net/milado_nju/article/details/7216136 # 插件机制(NPAPI plugin) ## 概述 Chromium中的NPAPI 插件(plugin)来源于mozilla的插件机制。 当没有任何插件实例并且空闲一段事件后,它才会被销毁,这样做的好处是避免频繁的创建和销毁plugin进程。 下图描述了browser和plugin进程间的通讯机制及其所涉及的相关的模块(类)。 主要的部分在renderer进程和plugin进程之间,机制也相对更复杂一些。

    2.3K40发布于 2019-07-24
  • 来自专栏奇梦博客

    Xiuno插件开发,Hook 机制说明 PHP 插件 XiunoBBS

    Hook 机制 Xiuno BBS 的插件机制分为两种,一种是 Hook,一种是 Overwrite。 所谓 Hook,就是往代码里插入代码,多个插件的代码合并后插入到 hook 指定的位置,最后生成的代码存放于 tmp 目录,被 include 在”Hello, Xiuno Plugin“章节中的实例就是基于 --{hook header_body_start.htm}-->

    制作插件 A: plugin/ my_plugin_a/ conf.json         hook/ header_body_start.htm 假定 header_body_start.htm 的内容为: Hello, Pugin A 有插件 B: plugin/ my_plugin_B

    3K20发布于 2018-09-29
  • 来自专栏为数不多的Android技巧

    Android 插件化原理解析——插件加载机制

    另外,插件框架原理解析系列文章见索引。 ClassLoader机制 或许有的童鞋还不太了解Java的ClassLoader机制,我这里简要介绍一下。 因此本文的内容用一句话就可以概括: 将插件的dex或者apk文件告诉『合适的』DexClassLoader,借助它完成插件类的加载 关于CLassLoader机制更多的内容,请参阅『深入理解Java虚拟机 『激进方案』中我们自定义了插件的ClassLoader,并且绕开了Framework的检测;利用ActivityThread对于LoadedApk的缓存机制,我们把携带这个自定义的ClassLoader 如果我们一定程度上放弃这种『侵入性』,那么我们就能实现一个两者优点兼而有之的插件框架!这里我先卖个关子~ OK,本文的内容就到这里了;关于『插件机制对于Activity的处理方式』也就此完结。 所以目前我这个实现基本没什么暖用;当然我这里只是就『代码加载』进行举例;至于资源,那牵扯到另外一个问题——插件系统的资源管理机制这个在后续文章的合适机会我会单独讲解。

    2K10发布于 2018-09-05
  • 来自专栏有文化的技术人

    LangChain 插件架构实现机制分析

    概述 LangChain 是一个用于构建基于大语言模型(LLM)应用的开源框架,其核心设计理念是「模块化」和「可组合性」,通过统一的接口抽象和灵活的插件机制,使开发者能够轻松构建复杂的 AI 应用。 核心插件机制 3.1 Runnable 接口 - 统一抽象层 「Runnable」 是 LangChain 最核心的抽象接口,所有可执行组件都实现此接口,这是实现插件化的基础。 _run(expression) 3.4 Callback 回调系统 回调系统是 LangChain 的事件驱动机制,用于监控、日志记录和调试。 扩展机制总结 6.1 扩展点 扩展点 基类/接口 用途 语言模型 BaseLLM, BaseChatModel 集成新的 LLM 工具 BaseTool 添加新的工具能力 向量存储 VectorStore 总结 LangChain 的插件架构具有以下特点: 「统一的 Runnable 接口」:所有组件实现相同接口,支持无缝组合 「声明式 LCEL 语言」:通过管道操作符简化链的构建 「丰富的扩展点」:工具

    9010编辑于 2026-04-09
  • 来自专栏向治洪

    Android 插件化之Hook机制

    Android 操作系统中系统维护着自己的一套事件分发机制,那么Hook就是在事件传送到终点前截获并监控事件的传输。 其原理示意图如下: 众所周知,Android 系统中使用了沙箱机制,普通用户程序的进程空间都是独立的,程序的运行互不干扰,而进程之间要实现通信需要借助Android的Binder机制

    53630编辑于 2022-11-30
  • 来自专栏犀牛饲养员的技术笔记

    mybatis插件机制源码解析

    首先需要说明的是,本篇文章不是mybatis插件开发的教程,而是从源码层面分析mybatis是如何支持用户自定义插件开发的。 mybatis的插件机制,让其扩展能力大大增加。 比如我们项目中经常用到的PageHelper,这就是一款基于mybatis插件能力开发的产品,它的功能是让基于mybatis的数据库分页查询更容易使用。 当然基于插件我们还可以开发其它功能,比如在执行sql前打印日志、做权限控制等。 正文 mybatis插件也叫mybatis拦截器,它支持从方法级别对mybatis进行拦截。 我们先来看下自定义的插件是如何加载进来的,比如我们使用PageHelper插件,通常会在mybatis-config.xml中加入如下的配置: <plugins> <plugin interceptor java动态代理机制中有两个重要的角色:InvocationHandler(接口)和Proxy(类),这个是背景知识需要掌握的。

    59620发布于 2021-10-19
  • 来自专栏程序通事

    SPI 机制-插件化扩展功能

    SPI(Service Provider Interfaces),中文直译服务提供者接口,一种服务发现机制。 可能很多人都不太熟悉这个机制,但是平常或多或少都用到了这个机制,比如我们使用 JDBC 连接操作数据库的时候。 基于这个问题, Dubbo SPI 机制改进 Java SPI 的不足,做到按需加载并且增加 ioc 与 aop 的功能,下篇文章可以在具体聊聊,敬请期待。

    1.2K20发布于 2019-09-05
  • 来自专栏coolblog.xyz技术专栏

    MyBatis 源码分析 - 插件机制

    以 MyBatis 为例,我们可基于 MyBatis 插件机制实现分页、分表,监控等功能。由于插件和业务无关,业务也无法感知插件的存在。因此可以无感植入插件,在无形中增强功能。 本篇文章在分析完 MyBatis 插件机制后,会手写一个简单的分页插件,以帮助大家更好的掌握 MyBatis 插件的编写。 2. 插件机制原理 我们在编写插件时,除了需要让插件类实现 Interceptor 接口,还需要通过注解标注该插件的拦截点。 实现一个分页插件 为了更好的向大家介绍 MyBatis 的插件机制,下面我将手写一个针对 MySQL 的分页插件。Talk is cheap. Show code. 在上面的输出中,SQL 语句中包含了 LIMIT 字样,这说明插件生效了。 5. 总结 到此,关于 MyBatis 插件机制就分析完了。总体来说,MyBatis 插件机制比较简单。

    68731发布于 2018-09-20
  • 来自专栏黯羽轻扬

    插件机制详述_VSCode插件开发笔记1

    /激活,但在进程列表能够看到Code Helper的CPU占用接近100%,进程级沙箱保证了插件机制的稳定性 三.核心理念 稳定性:插件隔离 插件可能会影响启动性能和IDE自身的稳定性,所以通过进程隔离来解决这个问题 /激活,所有在此之前也不耗费内存等资源 实现上是插件注册特定激活事件(activation events),由IDE来触发执行,比如markdown插件只在用户代开md文件时才需要激活 激活方式 插件插件清单文件 清单文件用来描述插件的meta信息,直接把package.json作为清单文件,并增加了一些特有字段,比如触发插件加载的激活事件(activation events)、插件想要增强的扩展点 (contribution points) IDE在启动过程中扫一遍插件清单文件,UI相关的就扩展UI,UI无关的就把扩展点与插件功能关联起来 另外,由于插件的执行环境是Node进程,所以npm package )比较有意思,即插件组装成的插件,类似于React Native的Nuclide 输入插件名称等meta信息,就得到一个插件项目,然后用VS Code单独打开该项目(工作空间不能有其它项目目录),F5启动

    3.3K50发布于 2019-06-12
  • 来自专栏Nicky's blog

    Meven系列之插件机制简介

    Maven的生命周期与Maven插件是项目绑定的,Maven默认地将一些默认插件的目标与Maven的生命周期维系在了一起,比如default的compile这个阶段就是和maven-compiler-plugin 这个插件的compile目标维系着不可分割的关系。 为了不让用户不用任何配置就能进行一般程度的项目构建,Maven默认给自己生命周期的核心阶段绑定了自己的插件。 clean如下: 生命周期阶段 插件目标 pre-clean clean maven-clean-plugin:clean post-clean site如下: :deploy 最麻烦的就是最核心的default 生命周期阶段 插件目标 process-resources maven-resources-plugin:resources compile

    21810编辑于 2022-05-07
  • 来自专栏poslua

    Kong 插件加载机制源码解析(上)

    前言 我曾经在前面的文章中系统性的描述了下 Kong 的插件加载机制,这篇我将通过源码解析的方式呈现其数据走向。 插件的预加载也是一项重要的工作,像之后阶段运行的「phase 循环」均依赖这个时候装载完成的插件。 需要注意的是,这里预装载的插件是 Kong 所有已安装的插件(也包含自定义的插件),即使没有启用也会被装载。 ,用于按优先级大小遍历插件。 ctx.plugins_for_request,这个对象用来保存当前请求启用的插件(包括下个阶段的局部插件)。

    3.3K30发布于 2019-08-19
  • 来自专栏ZKEASOFT

    纸壳CMS的插件加载机制

    :) 插件化设计 纸壳CMS是基于插件化设计的,可以通过扩展插件来实现不同的功能。 ,各插件的引用也相互独立,即各插件都可引用各自需要的nuget包来达到目的。 插件存放目录 纸壳CMS的插件的存放目录在开发环境和已发布的程序中是不一样的。 <SectionPlug>() 相关代码 有关插件用到的所有相关代码,都在 EasyFrameWork/Mvc/Plugin 目录下: 插件加载 纸壳CMS在程序启动时加载所有启用的插件Loader.cs DLL的关键,纸壳CMS主要通过它来加载插件,并加载插件的相关依赖,并注册插件

    83920发布于 2018-08-27
领券