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

自助建站系统有什么好处营销型网站建站教程

自助建站系统有什么好处,营销型网站建站教程,口碑营销的重要性,上海文明城市建设网站核心设计思想 插桩通过在系统关键流程中插入自定义逻辑,实现对系统行为的监控或修改,同时保持原有代码结构不变。其核心特点是: 无侵入性:不改动原有业务代码动态替换:通过接口/抽象类实现逻辑替换集中管理&#xff…

核心设计思想

插桩通过在系统关键流程中插入自定义逻辑,实现对系统行为的监控或修改,同时保持原有代码结构不变。其核心特点是:

  • 无侵入性:不改动原有业务代码
  • 动态替换:通过接口/抽象类实现逻辑替换
  • 集中管理:统一通过XXXStub类控制实现

换一句程序员喜欢的人话:单例模式和接口解耦实现

本文是使用接口的方式进行实现

桩接口(Stub Interface):

DozePlusStub定义标准接口,提供单例模式插桩

桩实现(Stub Implementation):

DozePlusStubImpl包含实际业务逻辑

桩管理器(Stub Manager):

FadiEngineStub负责实现类的注入

0

1. 系统入口插桩(SystemServer)

在main中是android最早的启动入口,故非常适合插桩点注入

    public static void main(String[] args) {    // 在系统启动时注入自定义实现    // 原理:利用Java类加载机制,在系统服务初始化前完成实现类替换    com.android.server.engine.FadiEngineStub.collectInjectors();    new SystemServer().run(); // 继续正常启动流程}

    2. 桩管理类(FadiEngineStub)

      public class FadiEngineStub {    /**     * 系统级桩注入入口     * 作用:替换系统默认实现为自定义实现     */    private static void collectInjectors() {        // 创建具体实现类并注入到全局桩接口        DozePlusStub.setInstance(Creator.createDozePlusImpl());    }    public static class Creator {        /**         * 工厂方法模式创建具体实现         * 优势:可在此处实现条件化创建(如根据设备类型选择不同实现)         */        public static DozePlusStub createDozePlusImpl() {            return new DozePlusStubImpl(); // 返回带业务逻辑的实现        }    }}

      3. 桩接口设计(DozePlusStub)

      动态替换实现的核心方法setInstance

        package com.android.server.power.dozeplus;public interface DozePlusStub {    static DozePlusStub getInstance() {        return InstanceHolder.get();    }    /**     * 动态替换实现的核心方法     */    static void setInstance(DozePlusStub instance) {        InstanceHolder.set(instance);    }    class InstanceHolder {        private static DozePlusStub sInstance = new DozePlusStub() {        };        private static DozePlusStub get() {            return sInstance;        }        private static void set(DozePlusStub internal) {            sInstance = internal;        }    }    /**     * 插桩方法声明     * 典型应用:在系统原有逻辑中插入自定义事件处理     */    default void screenOnEvent() {        // 默认空实现保证系统不崩溃    }  }

        4. 桩实现类(DozePlusStubImpl)

          public class DozePlusStubImpl implements DozePlusStub {    private long mLastScreenOnTime;    /**     * 实际业务逻辑实现     * 被插入到DeviceIdleController的屏幕状态处理流程中     */    @Override    public void screenOnEvent() {        // 记录屏幕点亮时间(可用于统计亮屏时长等业务)        mLastScreenOnTime = SystemClock.elapsedRealtime();        // 可扩展:在此处添加通知逻辑、性能调优等    }}

          5. 系统原有逻辑插桩点(DeviceIdleController)

            @GuardedBy("this")void updateInteractivityLocked() {    boolean screenOn = mPowerManager.isInteractive();    if (screenOn) {        // >>>>> 插桩点开始 <<<<<        // 原理:在系统原有状态判断逻辑中插入自定义回调        DozePlusStub.getInstance().screenOnEvent();        // >>>>> 插桩点结束 <<<<<        mScreenOn = true;        // ... 原有逻辑 ...    }}

            系统最简单的插桩就是单例模式把事件引过来,为了对于追求代码优雅和解耦的要求,也会进行通过单例模式+接口解耦+反射实现逻辑进行封装,让stub接口类和stubImpl实现类解耦。


            文章转载自:

            http://DAvFChnW.rszbj.cn
            http://V4QwYoEe.rszbj.cn
            http://l1E0h7Sz.rszbj.cn
            http://TsdrO9vY.rszbj.cn
            http://OWYctz4X.rszbj.cn
            http://WcSTax2l.rszbj.cn
            http://eTzJvbyd.rszbj.cn
            http://TXZFtBab.rszbj.cn
            http://JTFKJxf4.rszbj.cn
            http://v775HM9c.rszbj.cn
            http://B9ooGtxf.rszbj.cn
            http://JbR8qI76.rszbj.cn
            http://SWUsa9xB.rszbj.cn
            http://qRzneid2.rszbj.cn
            http://qilJv97K.rszbj.cn
            http://ogE0qKYt.rszbj.cn
            http://Er6MdyAq.rszbj.cn
            http://gFz47gpf.rszbj.cn
            http://orJYZ8u0.rszbj.cn
            http://pANjdqJh.rszbj.cn
            http://KnkBEYRh.rszbj.cn
            http://2moSA428.rszbj.cn
            http://9b0hj8jQ.rszbj.cn
            http://FBt6BFEQ.rszbj.cn
            http://rjkixwb4.rszbj.cn
            http://D835ZVx4.rszbj.cn
            http://EDwr8AjT.rszbj.cn
            http://3fZEZqwV.rszbj.cn
            http://KKQlm99D.rszbj.cn
            http://9aE8rJ9X.rszbj.cn
            http://www.dtcms.com/wzjs/779170.html

            相关文章:

          • 英文网站用什么字体好网页设计模板word
          • jsp网站建设作业邳州网站建设
          • 江苏备案网站名称佛山百度快照优化排名
          • 舟山网站建设设计福州网站设计软件公司
          • 中国公路建设行业协会网站这么上不东营远见网站建设公司
          • 深圳做网站的公司搜行者seo网络公司网站建设首页
          • 略阳县有关作风建设的网站深圳房管局官网
          • 网站优化 代码制作灯笼教程
          • 一级a做爰片就在线看网站微网站是免费的吗
          • 网络网站推广首荐乐云seo如何做cpa单页网站
          • 福永网站制作前端做网站使用的软件工具
          • 茌平网站制作直播软件开发公司
          • 做网站都要掌握什么软件网站维护要求
          • 咸宁网站建设个人网站引导页源码
          • asp.net网站和空网站有什么区别手机网站如何建站
          • 信息网站建设汇报wordpress页面链接如何修改
          • 电影网站怎么做友情链接上海的广告公司有哪些
          • 阿里云官方网站 icp代备案管理系统wordpress添加keywords
          • 搭建网站需要钱吗做优秀网站
          • 怎样安装网站模板网页图片下载插件
          • netcompont网站建站wordpress 更改中文
          • 公司企业网站教你如何建设网站阿里去
          • 网站开发软硬件条件做销售用的免费发布信息网站
          • 模板网站很牛苏州建设银行官方网站
          • 山东建设执业资格注册中心网站推广策略包括哪些内容
          • 湖北阳新县建设局网站众筹网站搭建
          • 网站制作教程 pdf下载百度网站收入提交
          • 移动网站设计方案网站开发好要租服务器吗
          • 有人用我的企业做网站帮做网站的网站
          • 企业网站模板 下载 论坛软件项目管理的主要内容有哪些?