大家好,我是一个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 源码的地址)
里面就可以通过代码和这个分析启动流程;
备注:此处5000字,留到后面啃
#同学你好,我的怎么和视频里面长的不一样?
答:版本不同
界面卡顿检测 | Android Studio | Android Developers (google.cn)
#同学你讲的不好,看不懂!
答:
啪!一个链接丢给你,自己看!
界面卡顿检测 | Android Studio | Android Developers (google.cn)
编辑
流下悔恨的老泪,我自己TM都不懂,我怎么给你讲,我后面学会了再慢慢补。
如果有大牛光临,希望指点下我!我感激不尽,希望有老哥带我入门!
拜个师傅,一天一杯瑞幸的咖啡,不成敬意!