/* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.loganalysis.parser; import com.android.loganalysis.item.IItem; import com.android.loganalysis.item.BootEventItem; import com.android.loganalysis.item.LatencyItem; import com.android.loganalysis.item.TransitionDelayItem; import java.io.BufferedReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Parse the events logs.

*/ public class EventsLogParser implements IParser { private static final String DATE = "date"; private static final String TIME = "time"; private static final String TRANSITION_INFO = "transitioninfo"; private static final String PACKAGE_KEY = "806"; private static final String ACTIVITY_KEY = "871"; private static final String TRANSITION_DELAY_KEY = "319"; private static final String STARTING_WINDOW_DELAY_KEY = "321"; private static final String COLD_LAUNCH_KEY = "945"; private static final String WINDOWS_DRAWN_DELAY_KEY = "322"; private static final String BOOT_PROGRESS = "boot_progress_"; private static final String STOP_ANIM = "sf_stop_bootanim"; // 09-18 23:56:19.376 1140 1221 I sysui_multi_action: // [319,51,321,50,322,190,325,670,757,761,758,7,759,1,806,com.google.android.calculator,871, // com.android.calculator2.Calculator,905,0,945,41] private static final Pattern SYSUI_TRANSITION_INFO_PATTERN = Pattern.compile( "^(?[0-9-]*)\\s+(?