TTFD

官方地址:
https://developer.android.com/topic/performance/vitals/launch-time?hl=zh-cn
TTID說點(diǎn)人能聽懂的話,就是我們用Displayed過濾顯示的是應(yīng)用界面顯示的第一幀所用的時(shí)間,所以這個(gè)時(shí)間的話其它用戶正常是沒辦法交互的。

image.png

image.png

為什么使用TTFD
場(chǎng)景是這樣的:你的設(shè)備是智慧屏,通過語音喚起設(shè)備通過App的launcherActivity跳轉(zhuǎn)到指頁面,比如語音: xxx管家,我要想中央電視臺(tái)
這個(gè)時(shí)間設(shè)備會(huì)跳轉(zhuǎn)到直播頁面,我想要知道從語音喚起到直播播放用了多長(zhǎng)時(shí)間,
這個(gè)時(shí)間我們可以在 視頻第一幀渲染完成基本上就可以調(diào)用下面代碼了 reportFullyDrawn()

//示例代碼:
player.setOnRenderListener{
fistRenderCallBack->{
    actInstance.reportFullyDrawn()
  }
}
image.png

上面這張圖是什么意思,說點(diǎn)人話能聽懂的:
兩種情況:
1、如果你能確定在哪個(gè)耗時(shí)任務(wù)完成時(shí),來統(tǒng)計(jì) TTFD的話,那你在任任務(wù)完成回調(diào)里直接調(diào)用方法

//示例代碼:
 actInstance.reportFullyDrawn()

2、如果多個(gè)任務(wù),下面是示例代碼

onCreate(savedInstanceState: Bundle?){
       setContentView(R.layout.xx)
       fullyDrawnReporter.addOnReportDrawnListener {
          //耗時(shí)任務(wù)完可以更新ui了
         // 因?yàn)槭遣l(fā)異步所以耗時(shí)應(yīng)該是 4000多ms
        }
        //任務(wù)1
        lifecycleScope.launch {
            fullyDrawnReporter.addReporter()
            delay(3000)//模擬耗時(shí)任務(wù)
            fullyDrawnReporter.removeReporter()
        }

        //任務(wù)2
        lifecycleScope.launch {
            fullyDrawnReporter.addReporter()
            delay(4000)//模擬耗時(shí)任務(wù)
            fullyDrawnReporter.removeReporter()
        }



}

過濾:


image.png
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容