如何了解一个源码(或者第三方插件)的运行机制

Posted 3H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何了解一个源码(或者第三方插件)的运行机制相关的知识,希望对你有一定的参考价值。

  1. 首先得知道那个插件“如何运行”
    1. 因为不知道怎么运行,就根本不知道怎么“启动”,怎么“结束”
    2. 举个例子:android-Ultra-Pull-To-Refresh
      1. 要求必须要传入回调---ptrFrame.setPtrHandler(new PtrHandler() )
      2. 启动要执行“ptrFrame.autoRefresh();”
  2. 从“启动的代码”出发找你的“回调方法”(不过这个只是针对一些结构比较简单的插件)
    1. 找到就知道,
      1. 回调前会执行些什么,
      2. 功能触发条件
    2. 例子:
      1. AsyncTask
  3. 从“启动的代码”出发“类创建”再到 “你的处理方法”(对于一些结构类似“消息队列”)
    1. 例子:Handler的消息机制(或者线程间通信)
      1. 启动的代码
        childHandler.post(new Runnable() {
        @Override
        public void run() {

        }
        });
      2. 创建时
        Handler.Callback callback =  new Handler.Callback(){

        @Override
        public boolean handleMessage(Message msg) {
        return false;
        }
        };

        Looper.prepare();
        Handler childHandler = new Handler(callback);
        Looper.loop();


      3. 你的处理方法,
        mCallback.handleMessage(msg);
        或者
        handleMessage(msg);
    2. 因为有looper一直在遍历内部的MessageQuese,
      1. 解决:
        1. 所以从“启动代码”去到某个位置就断开了。
        2. 不知名就去到处理方法

以上是关于如何了解一个源码(或者第三方插件)的运行机制的主要内容,如果未能解决你的问题,请参考以下文章

Android 插件化VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(代码片

Android 插件化VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(代码片

vue - 音乐播放器示例源码开箱即用(无任何第三方插件依赖,代码注释详细)

源码角度了解Skywalking之告警机制是怎么实现的

跟着辛星用PHP的反射机制来实现插件

JDK源码解析之Java的SPI机制