亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【學習打卡】第6天 App 卡頓優化

標簽:
Android

课程名称:Top团队大牛带你玩转Android性能分析与优化
课程章节:App性能概览与平台化实践
主讲老师:随风绽放

课程内容

1.卡顿介绍及优化工具选择

App 卡顿是非常容易被用户直观感受到的,也是非常影响用户体验的。但是对于开发者来说,卡顿问题有非常难定位,那么卡顿问题有哪些难点呢?

  • 首先产生卡顿问题的原因错从复杂,跟设备(比如内存大小)、跟代码质量都有关系;
  • 其次用户反馈的卡顿问题不容易复现,这跟用户当时的使用状态有很大的关系(比如磁盘空间不足导致 IO 的性能下降),所有最理想的情况是能记录发生卡顿时用户的使用场景。

常用的卡顿优化工具又有哪些呢?
1. CPU Profiler,可以用图形化的形式展示执行时间、调用栈等信息。展示的信息非常全面,甚至可以包括所有的线程信息。缺点是运行时开销严重,导致 App 整体都会变慢。

CPU Profiler 的使用方式是:

Debug.startMethodTracing("");
Debug.stopMethodTracing("");

生成的文件保存在目录:Android/data/packagename/files

2.Systrace,通过 systrace 命令调用 Systrace 工具,可以监控和跟踪 API 的调用、线程的运行情况,生成 Html 报告。要求在 API 18 以上,为了获得更好的兼容性可以使用 TraceCompat。

Systrace 的使用方式是:

python systrace.py -t 10 [other-options] [categories]

Systrace 的特点是轻量级、开销小,能直观反应 CPU 的利用率。

3.StrictMode,是 Android2.3 引入的工具类,是 Android 提供的一种运行时检测机制,能够帮助开发者检测代码中的一些不规范的问题。这些问题包含线程策略和虚拟机策略等。其中线程策略包括:自定义的耗时调用,磁盘的读取操作和网络操作等。虚拟机策略包括:Activity 的泄露,Sqlite 对象泄露和检测实例数量等。

2.自动化卡顿检测方案及优化

前面介绍的三个工具只适合线下实际问题的分析,在线上和测试环节需要自动化检测方案来帮助开发者定位卡顿,记录发生卡顿时的场景。

自动化卡顿检测方案的原理,Android 的消息处理机制是,一个线程不管有多少Handler 都只会有一个 Looper 对象存在,主线程中执行的任何代码都会通过Looper.loop() 方法执行,loop() 函数中有一个 mLogging 对象,
mLogging 对象在每个 message 处理前后都会被调用。
主线程如果发生卡顿,则一定是在 dispatchMessage 方法中执行了耗时操作,然后我们可以通过 mLogging 对象对 dispatchMessage 执行的时间进行监控。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
移動開發工程師
手記
粉絲
12
獲贊與收藏
17

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消