RN统计相关 ReactMarker.logMarker,统计页面JS页面加载时间

1,488 阅读1分钟

最近在Android端做RN容器提供的方案, 在做RN的页面帧率统计还有页面加载时间的一些统计需求。 搜索关键字没什么好的答案。 然后就沉入源码中研究。记录自己源码思路,获得了一些启发。 和大家交流一下,如果我的方式比较笨拙,欢迎提出建议~

页面加载时间

我是从ReactRootView入手的, 因为这个是RN根View的绘制起点。 按照我们写代码的习惯,都会在定义一堆onXxxx()的名字去写对应代码。 随便看了一下本类方法。 看到了这个 onViewAdded() 的方法。测试了一下,感觉还行。符合我的预期,就打算通过写个子类,继承这个。然后重写onViewAdded()这个方法。

然后我就继续下个方法

JS bundle包下载时间

然后从DevSupportManagerBase.reloadJSFromServer()这个方法看起. 看到了这个方法。

这个方法里面两个interface都挺香的的,我想拿他俩做点什么。可是经过各种尝试,发现从外面传递,都要改很多代码。都没有public的set方法可以直接操作。

没招了~ 咋办,要写狗屎代码了么?

转折

忽然看到了源码到处都有这个 ReactMarker.logMarker. 本着爱学习的精神去看了看。结果发现了新世界的大门。 发几个截图估计懂得自然懂了。

一切搞定了,代码很清爽。哈哈