facebook.stetho

105 阅读2分钟

stetho

在手机端(debug模式下)起轻量级web服务器,以http请求(含jsonrpc访问ChromeDevtool服务)的方式,提供手机端数据采集或定制作业业务(主要是dump和ChromDevtool两个方面)。此外还需要深入安卓系统dump以及CEF。

stecho

Stetho上下文
	init启动http服务器
	plugin&handler配置
RealSocketHandlerFactory,提供三种服务基于localsockethttp连接的服务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实现了jsonrpcjson收发,反射执行
    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

日志适配

Debug.dump 待补

CEF之devtool 待补