hakunamatata

hakunamatata

アプリ起動#

Android 公式ドキュメント:

アプリ起動時間 | アプリ品質 | Android Developers (google.cn)

起動時間統計#

1. perfetto を使用#

2 コマンドを使用#

>adb shell am start -S -W com.xiaopeng.musicradio/com.xiaopeng.musicradio.home.view.HomeActivity
停止中: com.xiaopeng.musicradio
開始中: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xiaopeng.musicradio/.home.view.HomeActivity }
ステータス: ok
LaunchState: COLD
アクティビティ: com.xiaopeng.musicradio/.home.view.HomeActivity
合計時間: 2602
待機時間: 2609
完了
C:\Users\Xpeng>adb shell am start -S -W com.xiaopeng.musicradio/com.xiaopeng.musicradio.home.view.HomeActivity
停止中: com.xiaopeng.musicradio
開始中: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xiaopeng.musicradio/.home.view.HomeActivity }
ステータス: ok
LaunchState: COLD
アクティビティ: com.xiaopeng.musicradio/.home.view.HomeActivity
合計時間: 2642
待機時間: 2657
完了
adb shell am start -S -W com.xiaopeng.musicradio/com.xiaopeng.musicradio.home.view.HomeActivity
停止中: com.xiaopeng.musicradio
開始中: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xiaopeng.musicradio/.home.view.HomeActivity }
ステータス: ok
LaunchState: COLD
アクティビティ: com.xiaopeng.musicradio/.home.view.HomeActivity
合計時間: 2634
待機時間: 2649
完了
package com.xiaopeng.utils;

import android.os.Debug;
import android.text.TextUtils;

/**
 * 本番環境でこのクラスの使用は禁止されています
 */
public class TraceMethodUtils {
    /**
     * 特定の関数の時間分析を非常に正確に記録するのに適しています
     *
     * profiler cpu のinstrumentモードでは、開始からずっとメソッド/cpuの使用状況を記録し、性能に大きな影響を与えます。
     */
    @Deprecated
    public static void  startTrack(String tracFileName){
        Debug.startMethodTracing(fixTraceFileName(tracFileName));
    }

    /**
     * Android 5.0以降で使用し、間隔時間はミリ秒単位です
     *
     * profiler cpu のsampleモードでは、システムがus間隔で周期的に呼び出しスタックを記録し、性能への影響は小さいです
     * @param tracFileName
     */
    @Deprecated
    public static void startSampleTrack(String tracFileName){
        //1000us=1ms 周期的に1回記録
        Debug.startMethodTracingSampling(fixTraceFileName(tracFileName),50,1000);
    }
    @Deprecated
    private static String fixTraceFileName(String tracFileName){
        if (!TextUtils.isEmpty(tracFileName)){
            tracFileName=tracFileName.endsWith(".trace")?tracFileName:tracFileName+".trace";
            tracFileName=new StringBuilder().append(System.currentTimeMillis()).append("_").append(tracFileName).toString();
        }else{
            tracFileName=new StringBuilder().append(System.currentTimeMillis()).append(".trace").toString();
        }
        return tracFileName;
    }
    /**
     * トラッキングを終了する
     */
    @Deprecated
    public static void stopTrack(){
        Debug.stopMethodTracing();
    }
}
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。