應用程式的啟動時間也是衡量應用效能好壞的重要指標之一,所以我們來看一下如何擷取一個程式啟動所需的時間。
擷取程式啟動的時間有幾種方法,詳情見下文分析:
方法一:通過log擷取。
思路:通過記錄開始時間與結束時間,計算時間差來擷取啟動時間。
在onCreate()方法最後一行加入log.e("TAG",""finish),通過查看logcat中的log輸出來計算程式啟動時間。
此種方法需要有原始碼,並且比較原始,不推薦。
方法二:通過ActivityManager輪訓來實現擷取啟動時間。
思路:通過輪訓未出現時間與出現時間,計算時間差來擷取啟動時間。
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ActivityManager am = (ActivityManager) getSystemService(this.ACTIVITY_SERVICE);List appinfo = am.getRunningAppProcesses();for (RunningAppProcessInfo runningAppProcessInfo : appinfo) {if (runningAppProcessInfo.processName.equals("yourpakagename")) {Log.e("TAG", System.currentTimeMillis() + "");}}}
此方法較第一種方法,不需要原始碼,較精準。
方法三:通過外部調起應用(shell am)的方法來擷取啟動時間。
思路:通過Android shell 命令來調起應用擷取啟動時間。
adb shell am start -W -n yourpakagename/MainActivity
此法擷取的啟動時間非常精準,可精確到毫秒。
綜上三種方法,方法一比較原始但是操作簡單,適用於初學者用於要求不高的黑箱測試;方法二技術要求較高,適合於在手機上開發的應用對其他應用來檢測啟動時間;方法三適用於批量查看應用啟動時間,缺點在於必須擷取所有應用的LanuchActivity。