Android-camera-Memory bash脚本自用

关于common.sh:
    此脚本实现两个函数
    函数1:检测上一级目录有没有对应的目录生成,如果没有则创建对应的目录
    函数2:dump内存相关的信息

关于capture.sh:
    此脚本功能是拍照50次,每次间隔为10s,dump每次拍照后的内存信息
    步骤如下:
    0.手机进入相机界面
    1.在终端执行命令 ./capture.sh
    2.终端输出provider_pid,每次拍照会输出相应的次数,脚本执行完以后输出done
    3.脚本结束以后返回上一级目录,将capture打包发送给开发

关于open.sh:
    此脚本功能是dump打开相机前和打开相机后的内存信息,间隔为5+5=10s,总共50次
    步骤如下:
    0.手机开机,进入桌面
    1.在终端执行./open.sh
    2.终端输出provider_pid,每次打开相机会输出相应的次数,脚本执行完以后会输出done
    3.脚本结束以后返回上一级目录,将open打包发送给开发
    
关于switch.sh:
    此脚本功能是dump相机切换video后的内存信息,间隔为5+5=10s,脚本执行完以后输出done
    步骤如下:
    0.手机进入相机界面
    1.在终端执行命令./switch.sh
    2.终端输出provider_pid,每次切换会输出相应的次数,脚本执行完以后输出done
    3.脚本结束以后返回上一级目录,将switch打包发送给开发
    
关于video.sh:
    此脚本功能是dump预览/录像时的内存信息,间隔为3s一次,总共dump50次
    步骤如下:
    0.手机进入预览/录像场景
    1.在终端执行命令./video.sh
    2.终端输出provider_pid,每次开始dump信息输出相应的次数,脚本执行完以后输出done
    3.脚本结束以后返回上一级目录,将video打包发送给开发
#common.sh
#! /bin/bash
provider_pid=$(adb shell pgrep -f provider@2)

function file_check ()
{                                                                                                                                                                                                           
    file_stats=0
    for file in `ls ..`
    do
        if test $file = $1
        then
            file_stats=1;
            break;
        fi
    done

    if test $file_stats -eq 0
    then
        mkdir ../$1
    fi
}

function dump_memory_info ()
{
    echo "----------------------------------begin dumpsys meminfo -----------------------" >> $1
    adb shell dumpsys meminfo $provider_pid >> $1
    echo " " >> $1
    echo "----------------------------------begin cat meminfo----------------------------" >> $1
    adb shell cat proc/meminfo >> $1
    echo " " >> $1
    echo "----------------------------------begin procrank-------------------------------" >> $1
    adb shell procrank | grep -E "PID|provider@2|ZRAM|RAM" >> $1
    echo " " >> $1
    echo "----------------------------------begin cat maps-------------------------------" >> $1
    adb shell cat proc/$provider_pid/maps >> $1
}
#capture.sh
#! /bin/bash
source common.sh
provider_pid=$(adb shell pgrep -f provider@2)
echo "provider_pid is $provider_pid" 
data_dir="capture"
data_path="../$data_dir/"

file_check $data_dir
for((i=0;i<50;i++))
do
    echo "the $i time"
    echo "the $i time" > $data_path$i
    adb shell input keyevent 27                                                 
    sleep 10 #sleep 10s
    dump_memory_info $data_path$i
done
echo "done"
#open.sh
#! /bin/bash
source common.sh
provider_pid=$(adb shell pgrep -f provider@2)
echo "provider_pid is $provider_pid" 
data_dir="open"
data_path_befor="../$data_dir/befor_"
data_path_after="../$data_dir/after_"

file_check $data_dir

for((i=0;i<50;i++))
do
    echo "the $i time"
    echo "the $i time" > $data_path_befor$i
    dump_memory_info $data_path_befor$i

    #open camera
    adb shell am start -a android.media.action.STILL_IMAGE_CAMERA 
    sleep 2

    # -n1 表示接收一个字符 -p 后边接 "xxx"表示提示
    #read -n1 -p "等待完全进入camera后,按任意键继续... "
    
    echo "the $i time" > $data_path_after$i
    dump_memory_info $data_path_after$i

    #KEYCODE_BACK
    adb shell input keyevent 4 
    sleep 2
done
echo "done"
#switch.sh
#! /bin/bash
source common.sh
provider_pid=$(adb shell pgrep -f provider@2)
echo "provider_pid is $provider_pid" 
data_dir="switch"
data_path="../$data_dir/"

file_check $data_dir

for((i=0;i<50;i++))
do
    echo "the $i time"
    echo "the $i time" > $data_path$i
    adb shell input swipe 700 1000 900 1000
    sleep 5
    dump_memory_info $data_path$i
    adb shell input swipe 900 1000 700 1000 
    sleep 5
done
echo "done"
#video.sh
#! /bin/bash
source common.sh
provider_pid=$(adb shell pgrep -f provider@2)
echo "provider_pid is $provider_pid" 
data_dir="video"
data_path="../$data_dir/"

file_check $data_dir

#adb shell input keyevent 27
for((i=0;i<50;i++))
do
    echo "the $i time"
    echo "the $i time" > $data_path$i
    sleep 3 #sleep 3s
    dump_memory_info $data_path$i
done
#adb shell input keyevent 27
echo "done"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值