stetho
在手机端(debug模式下)起轻量级web服务器,以http请求(含jsonrpc访问ChromeDevtool服务)的方式,提供手机端数据采集或定制作业业务(主要是dump和ChromDevtool两个方面)。此外还需要深入安卓系统dump以及CEF。
stecho
Stetho上下文
init启动http服务器
plugin&handler配置
RealSocketHandlerFactory,提供三种服务基于localsocket的http连接的服务LightHttpServer:
当手机端服务接受到请求完成手机端信息采集,输出到请求方。
DumpappHttpSocketLikeHandler(@Deprecated)
DumpappLegacyHttpHandler
DumpappSocketLikeHandler
DumpappSocketLikeHandler支持#DumperPlugin(多种扩展,DefaultDumperPlugins,也支持自定义如demo中的APODDumperPlugin、HelloWorldDumperPlugin)
DevtoolsSocketHandler支持#ChromeDevtoolsDomain(多种扩展)
ChromeDiscoveryHandler(PATH_VERSION,PATH_PAGE_LIST,PATH_ACTIVATE)
WebSocketHandler&#ChromeDevtoolsServer
#WebSocketSession
#ChromeDevtoolsServer实现了jsonrpc,json收发,反射执行
Implements a limited version of the Chrome Debugger WebSocket protocol (using JSON-RPC 2.0).
MethodDispatcher注册查找到ChromeDevtoolsDomain对于的模块反射执行提供的jsonrpc方法,调用ChromeDevtool提供的服务。
ChromeDevtoolsDomain
MethodDispatchHelper
Method
#DumperPlugin
DefaultDumperPluginsBuilder提供:
HprofDumperPlugin
**Debug.dumpHprofData(file)**然后输出到网络请求
SharedPreferencesDumperPlugin
sharepreference遍历输出到网络
CrashDumperPlugin
FilesDumperPlugin
#ChromeDevtoolsDomain
DefaultInspectorModulesBuilder提供如下ChromeDevtool相关业务模块数据交互:
待补(需要结合ChromeDevtool继续跟进)
Console
Debugger
DocumentProviderFactory
Document
DOM
CSS
DOMStorage
HeapProfiler
Inspector
Network
Page
Profiler
Runtime
Worker
Database
#WebSocketSession发送文本或二进制数据的实现
stecho-js-rhino
提供java版js引擎实例smozilla.rhino。在stetho模块runtime有使用。
stecho-okhttp|okhttp3
StethoInterceptor 拦截上报request\respose\ResponseBody
stecho-uilconnection
HttpURLConnection 拦截上报request\respose\ResponseBody。在demo的APOD的请求中有用到
stecho.sample
#main
SettingsActivity extends PreferenceActivity。偏好设置读写。
APODActivity展示图片文字列表。 网络请求,解析xml,继续多次下载大图,CountDownLatch等待,批量(ContentResolver.applyBatch)插入数据库。
IRCConnectActivity&IRCChatActivity ip端口配置,irc聊天。socket(聊天数据)&websocket(上报)。
#debug
DebugApplication,初始化stecho,定义数据库表信息ContentProviderSchema,dump插件输出命令消息
stecho-timber
日志适配