指纹验证时间统计比较麻烦,通过shell 实时监听log,提取出其中重要的log对应的时间。
#! /bin/bash
echo "begin"
#test config
LOG_1="fingerprintd"
LOG_2="PowerManagerService"
LOG_3="DisplayPowerController"
LOG_4="mdss_dsi_panel_bklt_dcs"
time_0=""
time_1=""
time_2=""
time_3=""
time_4=""
#test config end
function get_test_config()
{
echo LOG_1_is: $LOG_1
echo LOG_2_is: $LOG_2
echo LOG_3_is: $LOG_3
echo LOG_4_is: $LOG_4
}
function get_time_1(){
#echo $var | grep --line-buffer fingerprintd | grep -v --line-buffer goodix | grep -v --line-buffer result | grep --line-buffer authenticate
#echo $var | grep "fingerprintd,authenticate" | grep -v result
echo $var | grep --line-buffer "fingerprintd: onAuthenticated" | grep -v --line-buffer "goodix"
if [ $? -eq 0 ];then
echo target_string_found++++++++++++++++++++++
#echo var:$var
time_1=$(echo $var | awk '{print $2}')
#echo time_1:$time_1
# break;
# else
# echo target_string_not_found
fi
}
function get_time_2(){
echo get_time_2_begin
#echo $var | grep --line-buffer fingerprintd | grep -v-line-buffer goodix | grep -q --line-buffer authenticate
echo $var | grep --line-buffer "Waking up from sleep"
if [ $? -eq 0 ];then
echo target_string_found++++++++++++++++++++++
#echo var:$var
time_2=$(echo $var | awk '{print $2}')
#echo time_2:$time_2
# break;
#else
#echo target_string_not_found
fi
}
function get_time_3(){
echo get_time_3_begin
#echo $var | grep --line-buffer fingerprintd | grep -v-line-buffer goodix | grep -q --line-buffer authenticate
echo $var | grep --line-buffer "Unblocked screen on after"
if [ $? -eq 0 ];then
echo target_string_found++++++++++++++++++++++
#echo var:$var
time_3=$(echo $var | awk '{print $2}')
#echo time_3:$time_3
# break;
#else
#echo target_string_not_found
fi
}
function get_time_4(){
echo get_time_4_begin
#echo $var | grep --line-buffer fingerprintd | grep -v-line-buffer goodix | grep -q --line-buffer authenticate
echo $var | grep --line-buffer "mdss_dsi_panel_bklt_dcs" | grep -v --line-buffer "level=0"
if [ $? -eq 0 ];then
echo target_string_found++++++++++++++++++++++
#echo var:$var
time_4=$(echo $var | awk '{print $2}')
#echo time_4:$time_4
# break;
#else
#echo target_string_not_found
fi
}
function get_time_diff () {
time1=`echo $1 | cut -d \. -f 2`
time2=`echo $2 | cut -d \. -f 2`
#echo $time1
#echo $time2
let time_diff=$time2-$time1
if(( time_diff < 0 )) ; then
let time_diff=$time_diff+1000
fi
echo $time_diff
#end_s=`echo $2 | cut -d \. -f 1`
}
get_test_config
adb shell logcat -c
LOG=$LOG_1
adb shell logcat | grep -E --line-buffer "fingerprintd|PowerManagerService|DisplayPowerController|mdss_dsi_panel_bklt_dcs" | while read var
do
#echo var: $var
if [ -z "$time_1" ] ; then # (-n 为非空)
echo $var | grep fingerprintd
echo time_1_is_empty
get_time_1 $var
continue
fi
if [ -z "$time_2" ] ; then # (-n 为非空)
echo time_2_is_empty
get_time_2 $var
continue
fi
if [ -z "$time_3" ] ; then # (-n 为非空)
echo time_3_is_empty
get_time_3 $var
continue
fi
if [ -z "$time_4" ] ; then # (-n 为非空)
echo time_4_is_empty
get_time_4 $var
continue
fi
echo "test"
echo $time_0
echo $time_1
echo $time_2
echo $time_3
echo $time_4
echo time1_is:$(get_time_diff $time_1 $time_2)
echo time2_is:$(get_time_diff $time_2 $time_3)
echo time3_is:$(get_time_diff $time_3 $time_4)
break ##???
# case "$var" in
# $LOG_1)
# echo "fingerprintd"
# ;;
# *)
# echo "default_case"
# ;;
# esac
done
echo $time_0
echo $time_1
echo $time_2
echo $time_3
echo $time_4
问题: 过滤过程很慢