如何了解一个源码(或者第三方插件)的运行机制
Posted 3H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何了解一个源码(或者第三方插件)的运行机制相关的知识,希望对你有一定的参考价值。
- 首先得知道那个插件“如何运行”
- 因为不知道怎么运行,就根本不知道怎么“启动”,怎么“结束”
- 举个例子:android-Ultra-Pull-To-Refresh
- 要求必须要传入回调---ptrFrame.setPtrHandler(new PtrHandler() )
- 启动要执行“ptrFrame.autoRefresh();”
- 从“启动的代码”出发找你的“回调方法”(不过这个只是针对一些结构比较简单的插件)
- 找到就知道,
- 回调前会执行些什么,
- 功能触发条件
- 例子:
- AsyncTask
- 从“启动的代码”出发“类创建”再到 “你的处理方法”(对于一些结构类似“消息队列”)
- 例子:Handler的消息机制(或者线程间通信)
- 启动的代码
childHandler.post(new Runnable() {
@Override
public void run() {
}
}); - 创建时
Handler.Callback callback = new Handler.Callback(){
@Override
public boolean handleMessage(Message msg) {
return false;
}
};
Looper.prepare();
Handler childHandler = new Handler(callback);
Looper.loop(); - 你的处理方法,
mCallback.handleMessage(msg); 或者
handleMessage(msg);
- 因为有looper一直在遍历内部的MessageQuese,
- 解决:
- 所以从“启动代码”去到某个位置就断开了。
- 不知名就去到处理方法
以上是关于如何了解一个源码(或者第三方插件)的运行机制的主要内容,如果未能解决你的问题,请参考以下文章
Android 插件化VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(代码片
Android 插件化VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(代码片