自动将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 \n$mtklog_dst_path \n$mtktrace_src_path\n"
####初始化设备连接状态
is_device_connect="disconnect"
#### 设置设备的判断条件
deviceMatch="device"
IsDevice="ture"
####设置最大等待时间 一次循环1s
waitTimeout=20
####初始化等待时间 单位s
waitCount=0
##########数字比较方法
#if [ $waitCount -gt $waitTimeout ]
#then
# echo -e "+++\n\n"
#else
# echo -e "---\n\n"
#fi
########判断设备是否链接函数
function is_device_plugin()
{
echo "is device plugin!"
# [[ "$IsDevice" != "" ]]
####一直循环判断 直到匹配道设备或者超时退出
while ((1))
do
deviceInfo=$(adb devices)
####判断是否有设备插入
IsDevice=$(echo $deviceInfo | grep -w "$deviceMatch")
# echo -e "\n$deviceInfo $deviceMatch $IsDevice \n"
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 "\n$isDeviceResult $is_device_connect\n"
####使用函数返回值判断 执行adb root 命令 失败直接结束脚本
if [[ $isDeviceResult = 1 ]]
then
echo "++++adb root"
adb root
else
echo -e "no devices connect!\n"
exit
fi
#####调用函数判断设备是否连接
is_device_plugin
@echo -e "\n$isDeviceResult $is_device_connect\n"
####使用链接状态标记量判断 执行adb remount 命令
if [[ $is_device_connect == connect ]]
then
echo "++++adb remount"
adb remount
else
echo -e "devices connect timeout!\n"
exit
fi
##### 提取对应目录的log
adb pull $mtktrace_src_path $mtktrace_dst_path
adb pull $mtklog_src_path $mtklog_dst_path

##### 脚本结束

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

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

时间: 2024-08-21 23:51:29

自动将mtklog以及trace信息到处到自定的目录文件中的相关文章

用expect实现自动输入SSH的SCP信息,且不需要另外的文件

#!/bin/sh if [ $# != 2 ] ; then echo "USAGE: $0 remote_ip serverXXXXX" echo " e.g.: $0 1.2.3.4 serverxxxx" exit 1; fi host_ip=$1 server_port=$2 user_name="user_name" password="password" server_path="/xx/xxx&quo

(转)linux sudo 重定向,实现只有系统管理员才有权限操作的文件中写入信息

众所周知,使用 echo 并配合命令重定向是实现向文件中写入信息的快捷方式. 本文介绍如何将 echo 命令与 sudo 命令配合使用,实现向那些只有系统管理员才有权限操作的文件中写入信息. 比如要向 test.asc 文件中随便写入点内容,可以: $ echo "信息" > test.asc # 或者 $ echo "信息" >> test.asc 下面,如果将 test.asc 权限设置为只有 root 用户才有权限进行写操作: $ sudo

vs下取得资源文件中的版本信息

转载于:http://www.cnblogs.com/procoder/archive/2009/11/13/windows-mobile-wtl-version.html 在Windows Mobile和Wince(Windows Embedded CE)下开发的产品,有时候需要显示当前产品的版本信息.一般来说,版本信息是保存在资源文件里面的,例如下图: 为了保持一致,所有版本信息应该都从资源文件读取,不应该另外硬编码(Hard code). 下面讲述读取资源文件版本信息的方法: 1.在资源文

将Linux下编译的warning警告信息输出到文件中[整理笔记]

Linux中,脚本语言环境中,即你用make xxx即其他一些普通linux命令,比如ls,find等,不同的数字,代表不同的含义: 数字 含义 标准叫法0 标准输入  stdin = standard input1 标准输出  stdout = standard output2 标准错误输出  stderr = standard error 而系统默认的stdin,stdout,stderr,都是屏幕,所以,当你执行命令,比如make,后,所输出的信息,都是可以在屏幕上看到的.所以,想要将对应

C#三种模拟自动登录和提交POST信息的实现方法

网页自动登录(提交Post内容)的用途很多,如验证身份.程序升级.网络投票等,以下是用C#实现的方法.       网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以用来提取网页HTML的组件比较多,常用的用WebBrowser.WebClient.HttpWebRequest这三个.以下就分别用这三种方法来实现:      1.WebBrowser是个"迷你"浏览器,其特点是Post时不用关心Cookie.内置JS等问题       WebBrows

CLin 和 IDEA创建文件时自动添加作者和时间信息 + 多个.cpp文件在CLion下运行问题

CLin 和 IDEA创建文件时自动添加作者和时间信息 file -> setting -> Editor -> File and Code Templates -> 点击Includes下的"C File Header"或"File Header" 修改成: /*************************************************************************** 功能: Created by

Java到处运行的基础之 Class 文件

Java 实现一次编译到处运行的基础,来源于 Java 虚拟机屏蔽了操作系统的底层细节.使用 class 文件存储编译后的源程序,使得 Java 程序的编译与操作系统解耦.正是因为 Java class 文件的设计与 Java 语言解耦,分别发布了 Java语言规范和 Java 虚拟机规范,使得其他语言如Scala.Groovy.JRuby.JPython 等基于Java 虚拟机的语言按照 class 文件格式要求生成的class 文件也能在虚拟机上运行. class 文件格式 class 文件

关于控制文件转储后的trace文件中'Controlfile Checkpointed at scn'的含义

关于控制文件转储后的trace文件中'Controlfile Checkpointed at scn'的含义 Controlfile Checkpointed at scn: 0x0000.0006c3dc 05/14/2015 05:44:54 这个点从DSI中得到的信息如下: Controlfile Checkpoint at SCN: It is updated after every checkpoint (may it be tablespace, thread, or databas

载入Properties文件中的配置项信息

一.载入工具类 /** * Copyright (c) 2005-2011 springside.org.cn * * $Id: PropertiesLoader.java 1690 2012-02-22 13:42:00Z calvinxiu $ */ package com.thinkgem.jeesite.common.utils; import java.io.IOException; import java.io.InputStream; import java.util.NoSuch