zoukankan      html  css  js  c++  java
  • 自动将mtklog以及trace信息到处到自定的目录文件中

     未经允许,请勿转载!!! 

     在指定的目录中以日期为目录记录,可以在运行的时候在后面添加对用的name,生成的文件目录会加上对用的name。

    #!/bin/bash
    #@ echo ***
    ####按格式获取时间信息
    date_ymd=$(date +%Y%m%d)
    date_hm=$(date +%Y%m%d_%H_%M)
    #######设置需要获取的地址
    mtklog_src_path="/storage/emulated/0/mtklog"
    mtklog_dst_path="/home/putao/virtualbox/mtklog/$date_ymd/$date_hm"
    mtktrace_src_path="/data/anr/"
    mtktrace_dst_path=$mtklog_dst_path
    #echo -e "$mtklog_src_path $mtklog_dst_path $mtktrace_src_path "
    ####初始化设备连接状态
    is_device_connect="disconnect"
    #### 设置设备的判断条件
    deviceMatch="device"
    IsDevice="ture"
    ####设置最大等待时间 一次循环1s
    waitTimeout=20
    ####初始化等待时间 单位s
    waitCount=0
    ##########数字比较方法
    #if [ $waitCount -gt $waitTimeout ]
    #then
    # echo -e "+++ "
    #else
    # echo -e "--- "
    #fi
    ########判断设备是否链接函数
    function is_device_plugin()
    {
    echo "is device plugin!"
    # [[ "$IsDevice" != "" ]]
    ####一直循环判断 直到匹配道设备或者超时退出
    while ((1))
    do
    deviceInfo=$(adb devices)
    ####判断是否有设备插入
    IsDevice=$(echo $deviceInfo | grep -w "$deviceMatch")
    # echo -e " $deviceInfo $deviceMatch $IsDevice "
    if [[ "$IsDevice" != "" ]]
    then
    echo "ok"
    ####当有设备插入时设置标记量 并返回 shell函数只能返回数字
    is_device_connect="connect"
    return 1
    else
    ####匹配失败 休眠1s
    sleep 1s
    ####对计数时间进行累加1
    let waitCount++
    ####打印匹配失败信息 给出提示
    echo "device connect fail $waitCount $waitTimeout"
    ####如果超时直接退出循环
    if [ $waitCount -gt $waitTimeout ]
    then
    break
    fi
    fi
    done
    #####匹配失败退出循环后 打印信息 并设置标记量 同时返回
    echo "wait timeout " $waitCount "s"
    is_device_connect="disconnect"
    return 0

    }
    #######判断设备是否链接函数 结束
    #####
    #####
    #####调用函数判断设备是否链接(函数会自行循环查询waitTimeout S )
    is_device_plugin
    #####获取函数返回值
    isDeviceResult=$?
    @echo -e " $isDeviceResult $is_device_connect "
    ####使用函数返回值判断 执行adb root 命令 失败直接结束脚本
    if [[ $isDeviceResult = 1 ]]
    then
    echo "++++adb root"
    adb root
    else
    echo -e "no devices connect! "
    exit
    fi
    #####调用函数判断设备是否连接
    is_device_plugin
    @echo -e " $isDeviceResult $is_device_connect "
    ####使用链接状态标记量判断 执行adb remount 命令
    if [[ $is_device_connect == connect ]]
    then
    echo "++++adb remount"
    adb remount
    else
    echo -e "devices connect timeout! "
    exit
    fi
    ##### 提取对应目录的log
    adb pull $mtktrace_src_path $mtktrace_dst_path
    adb pull $mtklog_src_path $mtklog_dst_path


    ##### 脚本结束

      注:这里的等待是否有adb设备插入采用的是轮询的方式,超时及返回,时间可以设置。

        也可以调用adb wait-for-device 操作,相当于阻塞函数,只有有设备插入才会返回进行下面的步骤。

  • 相关阅读:
    BZOJ1187 [HNOI2007]神奇游乐园(插头dp)
    BZOJ4926 皮皮妖的递推
    BZOJ3684 大朋友和多叉树(多项式相关计算)
    BZOJ4574 [Zjoi2016]线段树
    杜教筛进阶+洲阁筛讲解+SPOJ divcnt3
    从几场模拟考试看一类分块算法
    bzoj3142 luogu3228 HNOI2013 数列
    luogu3244 bzoj4011 HNOI2015 落忆枫音
    codeforces 286E Ladies' Shop
    BZOJ4825 单旋
  • 原文地址:https://www.cnblogs.com/atlas2016/p/7572035.html
Copyright © 2011-2022 走看看