SysTrace ?

62 阅读4分钟

        大家好,我是一个android 的老菜鸡。


        最近隔壁组的7个人被通知,卷铺盖了!

        所以我慌的一P , 赶紧学点儿东西,压压惊;  


        目前在一家外包公司,经常听到另外一个隔壁组里讨论什么 ,老化,刷系统,解bug 之类的词语,讨论的热火朝天,而且领导经常光顾他们;

然后偷偷的喵了一眼!

类似这样的,这是啥,赶紧偷学去,如果被毕业了也多个技能树;

​编辑

最后找到这玩意叫 “锤死”!

噗!你认真的吗(这菜鸡是名副其实,不是谦虚!)

没错,就叫trace ,全名应该叫 SysTrace

问问 豆包!

​编辑

面试官:

你做过性能优化吗?

答:看内存抖动xxx,通过“金丝雀”分析内存回收,也用过 ‘锤死”处理过卡顿。

那你用 trace 处理过场景举个例子?(现在一般都会问这个)

答:例子?!啪,一个链接扔过去,自己看【中文字幕】Troubleshooting app performance issues with System Trace in Android Studio_哔哩哔哩_bilibili


那么看过了视频,然后让我来回顾一下;

接到这个bug后,手机链接设备后,就开始用SysTrace 抓获了卡顿的时间段。

1.开启SysTrace ,

2.点击跳转,发现问题,停止抓去

3.找到自己的【点击】(一般都是从这种节点开始找,比如Activity 的启动,事件)

​编辑

4.卡顿就要找UIThread,视频中是找自己app的线程,然后查看红帧(也就是trace 会把超过阀值的标红,而阀值就是16.7ms​编辑)

5.通过查看自己的应用是什么导致的;​编辑

最后通过“trace” 定位到卡顿的场景,是因为图片背景是随机的,而在加载的图片过大时会导致的卡顿;


课外知识:

1.视频里面说到,每一个线程是有两部分组成

​编辑

红色部分:

是表示线程当前的状态,放大来看看

​编辑

这尼玛,眼神不好怎么看?

别急,下图红色圈圈点一下,就看到了"Runnable",选中任意一个,然后键盘 "<"   ,">" 可以控制调整;
​编辑

​编辑

(来自:了解 Systrace  |  Android 开源项目  |  Android Open Source Project (google.cn))

这有什么用?

​编辑

红色:上面视频中讲的例子是,演员是那个大图片导致的,但是有的时候不是图片导致的;

那还有什么导致的呢?

答:啪,一个链接丢过来,自己看;

​编辑

Systrace 基础知识 -- 分析 Systrace 预备知识 - 知乎 (zhihu.com)

备注:此处500字,留到后面啃

蓝色部分:

表示调用的方法?

​编辑

答案:不是。

回答是的同学重新看视频最后一端,这玩意叫做 “插桩”;

视频上自己插的可以用来分析流程!

不知道各位老哥有没有遇到面试 

activity启动流程的,zygote 进程启动流程;

这玩意就可以分析;

啪,一个链接丢给你(这玩意要梯子!aosp 源码的地址)

cs.android.com/android/pla…

里面就可以通过代码和这个分析启动流程;

备注:此处5000字,留到后面啃

回来填坑了 trace - 看点击桌面发生了什么 - 掘金 (juejin.cn)


#同学你好,我的怎么和视频里面长的不一样?

答:版本不同
界面卡顿检测  |  Android Studio  |  Android Developers (google.cn)

#同学你讲的不好,看不懂!

答:

啪!一个链接丢给你,自己看!

界面卡顿检测  |  Android Studio  |  Android Developers (google.cn)

​编辑

流下悔恨的老泪,我自己TM都不懂,我怎么给你讲,我后面学会了再慢慢补。

如果有大牛光临,希望指点下我!我感激不尽,希望有老哥带我入门!

拜个师傅,一天一杯瑞幸的咖啡,不成敬意!