美文网首页
android 性能分析之 adb命令adb shell am

android 性能分析之 adb命令adb shell am

作者: Journey_lm | 来源:发表于2021-09-09 10:49 被阅读0次

    查看页面启动时间:

    命令行 ,在sdk 路径下(E:\SDK\Sdk\platform-tools\systrace)打开命令窗口 ,输入以下命令

    adb shell am start -W com.mediatek.camera/com.android.camera.CameraActivity
    
    ubuntu@ubuntu:/media/disk/work/core$ adb shell am start -W com.mediatek.camera/com.android.camera.CameraActivity                                                                          
    Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]                         
    cmp=com.mediatek.camera/com.android.camera.CameraActivity }                                                               
    Status: ok                                                                                                                                                        
    Activity: com.mediatek.camera/com.android.camera.CameraActivity                                                            
    ThisTime: 2871                                                                                                                                               
    TotalTime: 2871                                                                                                                                              
    WaitTime: 2949
    Complete
    

    格式为adb shell am start -W 包名/全类名或叫activity名
    打印的结果为
    ThisTime 该activity启动耗时
    TotalTime 应用自身启动耗时=ThisTime+应用application等资源启动时间
    WaitTime 系统启动应用耗时=TotalTime+系统资源启动时间
    在测试该启动时间时需要理解两个概念

    冷启动:应用第一次启动

    热启动:按back按键后再启动或非第一次启动切没有清除该应用后台或缓存数据

    上面的数据为冷启动打印的数据,下面运行热启动的测试结果:

    ubuntu@ubuntu:/media/disk/work/core$ adb shell am start -W com.mediatek.camera/com.android.camera.CameraActivity
    Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.mediatek.camera/com.android.camera.CameraActivity }
    Status: ok
    Activity: com.mediatek.camera/com.android.camera.CameraActivity
    ThisTime: 1848
    TotalTime: 1848
    WaitTime: 1895
    Complete
    

    该命令具体实现在/frameworks/base/cmds/am/src/com/android/commands/am/Am.java,原理是跨Binder调用>ActivityManagerService.startActivityAndWait() 接口,其中返回数据分别调用对应
    startTime: 调用startActivityAndWait()的时间点
    endTime: 调用startActivityAndWait()函数调用返回的时间点
    WaitTime: 调用startActivityAndWait()调用耗时。
    再通过之间的计算得到。

    相关文章

      网友评论

          本文标题:android 性能分析之 adb命令adb shell am

          本文链接:https://www.haomeiwen.com/subject/jdsiwltx.html