Android性能监控(二):调试工具集的开发

背景

每一个稍微有点规模的 App,总会自带一些线下的测试功能代码。最开始看到滴滴的哆啦A梦项目,觉得很棒。就接入到项目中用了一段时间。
终究是人家东西,用起来有几个毛病,最后为了开发体验还是去掉了。

  • 太重了,看了下源码,模块很多,很多类库跟我们项目中已有库重复,需要解决依赖库冲突
  • 工具面板太大了,占用整个屏幕,遮挡了app界面
  • 很多功能与我们已有的功能重复,如crash查看、app基本信息、leakCanary
  • 很多功能冗余,我们并不需要,如weex、取色器

还有,为了最大地提高开发体验,能不能把这些数据放在后台,在pc上打开看?
那就按自己的需求开发一个咯。

效果图

工具面板:


IMG20201126_152452.png

采集设置:


IMG20201126_194537.png

性能报警:
IMG20201126_194543.png

和同事一起搭了个后台做数据可视化,后台做得很漂亮:各种性能数据看版,还能看本地数据和实时抓包。工具栏悬窗搭配后台一起使用,当然也可以单独使用。后台的图牛掰的同事做得很屌炸...


实时调测-抓包

性能数据

实践中的反思

我做的这个调试工具集给谁用的? QA也用,开发也用,反正没上线阶段一起用呀。功能不断地往上堆,居然比滴滴哆啦A梦做得还要复杂,大概是DoraemonKit和matrix的混合物。(题外话,可能当时疫情在家上班,业务性需求没有太多,沟通反馈又不是很及时)
最后成品做出来(包括客户端sdk和网站主页、控制台),捋了一下包含两大块功能,一是性能监控,二是实时调测。

app性能监控.png
实时调测.png

为了推进这个工具,某天我直接在项目中接入了,反正想着只是开发测试阶段用,不影响线上。但是遇到很多问题:

  • “怎么把你这个工具关了啊,报bug”, 开发同事小A正在焦急找他手头上一个业务需求bug。
  • "怎么把你这个工具关了啊,好卡哟",开发同事小B正在弄视频编辑功能,本来功能就够烦够够重哟,你还在不断地搞监控传数据?....
  • “网络抓包怎么只能抓到这么点数据啊,我操作了这么多”, 来自QA弟弟小C,他听说这个工具实时抓包,还能实时截图,方便他建单。
  • “远程调试数据库这台手机怎么不行啊”QA弟弟又来找。

有点焦头烂额。

先配个gradle开关,默认为关,需要时才打开,应付一下开发同事。

对QA同事,我把开关配在jekins打包了,他们想用可以自取,后面为了他们更好用,我把性能监控那块给停了。因为他们不怎么关心性能监控那里,只对实时调测感兴趣,特别是可视化查看数据库表、shareprefence抓包和屏幕截图功能,因为做功能设计时一开始合作的同事就是QA那边的...

我的工具如何能不死

当一大波业务需求袭来,它被新的事情淹没,被遗忘。如果我的工具没有持续落地使用,那么就凉凉吧
不太甘心,做事情要形成闭环,要有头有尾。
我先把工具分离为两个,一个命名为“xx眼”,一个命名为“xx针”,"眼"主攻QA的实时调测功能,给他们做一个调测工具,维护迭代看他们的使用需求。“针”主攻性能监控和性能优化,专为我们开发使用。以后我的精力也主要维护这个“针”。
另外,目前侵入性和开销有点大,影响了正常的开发,我先改掉这个,这是来自DoraemonKit和matrix的毛病。我要做成一个开发无感知的,无交互的,仅仅想起来要查一下代码质量的时候到后台上看一看是否有上报就OK

你可能感兴趣的:(Android性能监控(二):调试工具集的开发)