Android shell脚本运用

执行sh脚本

chmod +x filename

./filename或者source filename

自动运行monkey

monkey.sh

#!/bin/bash
. ~/.env
logdir=~/monkeyreport
mkdir -p $logdir

echo "monkey test" >> $logdir/log.txt
date >> $logdir/log.txt
which adb >> $logdir/log.txt
echo ""

seed=`date +%s`
count=18000
cmd="adb shell"
pkg=com.xx.app.phone
output=""

let i=1
for arg in $@
do
	let i=$i+1
	case $arg in
		--s)
			eval device=\$$i
			cmd="adb -s $device shell"
			;;
		--d) 
			pkg=com.xx.app.phone	
			;;
		--o)
			output="$logdir/`date +%H:%M:%S`"
			;;
		--pos)
			pkg=com.xx.app.pos
			;;
		--pad)
			pkg=com.xx.app.pad
			;;
	esac
done
$cmd am force-stop $pkg
if [ $output ]; then
	$cmd monkey -p $pkg -v --throttle 25 -s $seed $count > $output 
	grep -q Exception $output
	if [ $? -eq 1 ];then
		rm $output
	fi
else 
	$cmd monkey -p $pkg -v --throttle 25 -s $seed $count
fi

自动进入调试设备某应用数据库目录

adb_enter_db.sh

#!/bin/bash 
dev=device_name
pkg=com.xx.app.xx
if [ $1 ]; then
    pkg=$1;
fi
if [ $2 ]; then
    dev=$2;
fi
echo $dev $pkg
adb -s $dev pull data/data/$pkg/databases/

执行时输入:./adb_enter_db.sh pkg_name dev_name

将bdb格式文件转换成sqlite

#!/bin/bash 
src=xx.bdb
dst=xx.sqlite
if [ $1 ]; then
    src=$1;
fi

if [ $2 ]; then
    dst=$2;
fi

if [ -f $dst ]; then
    rm $dst;
fi
# sqlite3 xx.bdb .dump | sqlite3 xx.sqlite
sqlite3 $src .dump | sqlite3 $dst

你可能感兴趣的:(shell,命令)