电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

獲取Android界面性能數據的快捷方法

瀏覽:2日期:2022-09-19 10:50:50
探測 界面繪制性能

獲取界面的繪制性能有很多種方法,比如說 Systrace 但是這種方法 有一個不太好的地方就是使用起來較為復雜, 有沒有一種 谷歌官方推薦 的方便一點的方法 ,其實是有的,只需要一個函數 就可以獲得layout的時間 非常適合于 我們平時開發中 測試頁面性能。

//調試界面性能時使用,可打印關鍵的layout耗時,使用完畢需刪除fun Activity.printPerformanceForLayout(tag: String = 'performance') { val handlerThread = HandlerThread('FrameMetrics') handlerThread.start() val handler = Handler(handlerThread.looper) if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {window.addOnFrameMetricsAvailableListener({ _, frameMetrics, _ -> val frameMetricsCopy = FrameMetrics(frameMetrics) //返回的是納秒 val layoutMeasureDurationNs = frameMetricsCopy.getMetric(FrameMetrics.LAYOUT_MEASURE_DURATION) //多數情況下更習慣于ms val layoutMeasureDurationMs = layoutMeasureDurationNs.toDouble() / 1000000.toDouble() //如果有超過16ms的輸出 那就要考慮你的界面是否需要進行優化了 Log.v('wuyue', 'layoutMeasureDurationMs:' + layoutMeasureDurationMs)}, handler) }}

看下運行結果:

獲取Android界面性能數據的快捷方法

可以根據log的結果 來 估算頁面的渲染性能。類似于這種》=16ms 才layoutMeasure一次的,顯然是界面有了卡頓

谷歌原文

界面首次繪制完成時間

通常而言,我們有時候還希望獲取到界面啟動 到“界面繪制完成” 的時間 為什么要加引號? 因為 往往 ActivityTaskManager: Displayed 展示出來的結果 僅僅是

表示了從啟動應用到系統認為其 '已啟動' 所花費的時間,其中包括繪制第一幀 (所以是 '已顯示' 的狀態)

但大部分的情況是我們界面啟動以后 還會做一些業務上的操作 比如去io獲取一些重要的信息 然后刷新ui 怎么獲取到 界面啟動 到這個時間點的耗時?

大部分人都是在在onCreate里面 獲取一個時間戳 然后在業務操作完成的時間點 再獲取一個時間戳 然后算一下 差額,

其實現在就有更簡便的寫法

reportFullyDrawn

在你認為合適的地方 調用這個函數 然后觀測如下日志:

獲取Android界面性能數據的快捷方法

這是一種更為簡便的觀測方法

更快捷的獲取activity的啟動時間

有時候我們喜歡觀察如下日志:

獲取Android界面性能數據的快捷方法

來獲取activity的啟動時間

但其實有時候 這樣也挺不方便的,尤其是需要頻繁測試一個頁面的啟動性能

老是靠手點 很不方便,其實可以用 shell 命令來完成:

adb shell am start-activity -W -n 包名/activity名稱

獲取Android界面性能數據的快捷方法

也可以對腳本的執行結果 進行grep 只抽取你關鍵的total time 進行展示

adb shell am start-activity -W -n 包名/activity名稱 | grep 'TotalTime' | cut -d ’ ’ -f 2

adb shell am start-activity -S -W -R 100 -n 包名/activity名稱獲取應用冷啟動 性能

有時候我們需要統計app的冷啟動性能,單次結果往往不準確 還需要多次統計以后 做平均值

也可以用如下腳本來實現, 注意不是單引號 而是 `

for i in `seq 1 100`do adb shell am force-stop com.vivo.space sleep 2 adb shell am start-activity -W -n 包名/activity名稱 | grep 'TotalTime' | cut -d ’ ’ -f 2done

效果如下:

獲取Android界面性能數據的快捷方法

以上就是獲取Android界面性能數據的快捷方法的詳細內容,更多關于獲取Android界面性能數據的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
主站蜘蛛池模板: 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 广东泵阀展|阀门展-广东国际泵管阀展览会 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 烟气在线监测系统_烟气在线监测仪_扬尘检测仪_空气质量监测站「山东风途物联网」 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | DNA亲子鉴定_DNA基因检测中心官方预约平台-严选好基因网 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 软启动器-上海能曼电气有限公司 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 二手回收公司_销毁处理公司_设备回收公司-找回收信息网 | 仪器仪表网 - 永久免费的b2b电子商务平台 | 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 执业药师报名条件,考试时间,考试真题,报名入口—首页 | 广东泵阀展|阀门展-广东国际泵管阀展览会 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 北京网站建设-企业网站建设-建站公司-做网站-北京良言多米网络公司 | 九州网址_专注于提供网址大全分享推广中文网站导航服务 | 万家财经_财经新闻_在线财经资讯网 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 湖南成人高考报名-湖南成考网 | 瓶盖扭矩仪(扭力值检测)-百科 |