instruments命令行监控

周日的时候去听了一段小分享, 内容还算精彩, 把Android在性能监控方面,自动化方面,设备独立运行自动化都能讲解的很棒. adb这个原生的轮子确实很棒.(也是要root权限)

遗憾的是ios方面的在我当前涉及的圈子,发现能去这样子做, 并且开源出来的很少(我知道你们会说越狱就能解决一切问题, 那我沉默). ios性能, 手动可以通过instrument来监控, 想做的就是全面的性能自动化监控, 提取出instrument的数据来完成性能的监控,完成对app某迭代阶段, 或者整个app周期的性能走势.

<!---------------我是内容分割线--------------------------------------->

what’s instruments

instruments是instrument命令行的工具, 在执行自动化的我们需要它来监控程序拿到数据.

如何启动:

  • -w “UUID” 这里是真机的uuid
  • -t “template” 后缀是.tracetemplace , 是想要录制的模板,整个在下面详解
  • -D “save_trace” 完成录制后存储的位置, 为.trace文件, 与普通录制一致
  • App的bunldeID
  • -v 看help, 是说记录日志的,实际也没看到打印日志

现在我们如何拿到.tracetemplace录制模板 和 录制能保存的.trace文件呢?

其实很简单~ 可惜我踩了一些坑才过来.
首先启动instrument app -> 空模板 -> 右上角新增想要的录制的模板(想说的是, 理论上是全部都可以录制, 自己挖坑跳跳才知道) .

左上角File -> SaveAsTemplate , 存储, 拿到录制模板.tracetemplace :

Command+S, 存储, 拿到录制结束后, 会存储的.trace;

这里为什么要这样子执行, 因为要保证.trace 和 .tracetemplace 一致,才能保存录制结果

拿到设备的UUID

instruments -s可以拿到, 或者xcrun simctl list (是活动的设备会在后面提示(Booted))

如果你连bundleID都不知道~

ios-deploy -B可以拿到连接设备的全部bundleID , 如果你的电脑没有ios-deploy, brew install ios-deplo, 大多情况下我这一步是啰嗦了.

其他部分instruments 参数参考

遗留问题?

我尚未在模拟器上运行成功, 希望有运行成功的联系交流.

拿到以上的数据后, 就可以按照我最上面的参数拼接启动了, Xcode8 完美运行

后序呢? 怎么实现title上的想法

有接触一篇github, 作者似乎是逆向实现了,但代码也好久没更新了, 但是我本地暂未成功解析
TraceUtility
博文地址

序已经开始了,目前的OC还没接触逆向, 现在这一枪打响了~~

© 2020 In 'flight of thought' All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero