安卓手機測試中幾個批處理小腳本

摘要: 在做android測試的時候,有時候寫幾個簡單的批處理,能夠對工作有事半功倍之效。 下面列舉部分工作過程中遇到的命令,供有需要的朋友們參考。 增加一個新的常用腳本: @echo off echo ********************************** echo ***** 測試...

在做android測試的時候,有時候寫幾個簡單的批處理,能夠對工作有事半功倍之效。

下面列舉部分工作過程中遇到的命令,供有需要的朋友們參考。

增加一個新的常用腳本:

複製代碼
@echo off
echo **********************************
echo ***** 測試小工具---Not*****
echo **********************************
pause

adb wait-for-device
adb devices
:start
echo "根據需要輸入對應ID(1:安裝;2:卸載;3:截圖;4:導出日誌;0:退出)"

set /p str=請選擇輸入數字:
if %str% == 1 goto install_app else (
if %str% == 2 goto uninstall_app else (
if %str% == 3 goto screenshot else (
if %str% == 4 goto export_log else (
if %str% == 0 goto exit )))) else (
(echo "你的輸入有誤!" && (goto start))
rem pause

set DIR=C:\Users\Haochuang\Desktop
cd /d %DIR%

:install_app
adb install -r %DIR%\hao*.apk
echo "1.貨主端App已安裝!"
adb install -r %DIR%\truck*.apk
echo "1.司機端App已安裝!"

:uninstall_app
adb uninstall com.haochuang.test1;
echo "1.XXX pp卸載完成!"
adb uninstall com.haochuang.app2;
echo "1.XXX App卸載完成!"

:screenshot
adb shell /system/bin/screencap -p /sdcard/screenshot.png
echo "1.截圖完成!"

adb pull /sdcard/screenshot.png %DIR%
echo "將截圖複製到電腦盤中"

:export_log
adb logcat -v time > %DIR%\test.log

:exit
pause & exit

rem ping 123.45.67.89 -n 1 -w 10000 > nul 
rem echo "沒有找到devices,請檢查設備是否連接成功"
rem pause & exit

rem 截圖
rem adb shell /system/bin/screencap -p /sdcard/screenshot.png
rem 將截圖複製到電腦盤中
rem adb pull /sdcard/screenshot.png E:\download 
複製代碼

 

1.安裝:

複製代碼
@echo off
echo 等待設備連接
adb wait-for-device
echo **********************************
set input=%1
echo 已連接
if "%input%" neq "" (
echo 安裝 %input%
adb install -r %input%
echo %1% 安裝完畢
) else (
for /r %%i in (*.apk) do (
echo 安裝 %%i
adb install -r %%i
echo  %%i 安裝完畢
)
)
pause
複製代碼

2.卸載:

複製代碼
@echo off
echo **********************************
echo current path: %cd%

set HAO01=co.truckno1.cargo
set HAO02=com.yihaohuoche.truck

adb wait-for-device
adb uninstall %HAO01%
echo "uninstall Success!"
adb uninstall %HAO02%
echo "uninstall Success!"

pause
複製代碼

3.抓日誌

複製代碼
@echo off
echo **********************************
echo *****  Test Log---Notordinary*****
echo **********************************

echo current path: %cd%
%cd%\bin\adb.exe wait-for-device
%cd%\bin\adb.exe logcat -v time > %cd%\files\test.log
echo log export succ,path:
echo %cd%\files
pause & exit
複製代碼

 

4.截圖

複製代碼
@echo off
echo **********************************
echo *****  ScreenShot---NotOrdinary***
echo **********************************

echo current path: %cd%
%cd%\bin\adb.exe wait-for-device
%cd%\bin\adb.exe shell /system/bin/screencap -p /sdcard/cargo_screenshot.png
%cd%\bin\adb.exe pull /sdcard/cargo_screenshot.png %cd%\files
echo "picture export succ,path:"
echo %cd%\files
複製代碼

 

 

 

用adb獲得手機裏面某個apk的應用信息、版本信息

 

adb shell dumpsys package com.examle.xx
adb shell dumpsys 列出所有

用adb啓動apk

adb shell am start -n NotOrdinary.test/haochuang.test.TestActivity

 

 

點火熄火等:

複製代碼
@echo off
adb wait-for-device
adb devices
:start
echo "根據需要輸入對應ID(1:點火;2:熄火;3:喚醒;4:初始化;0:退出)"

set /p str=請選擇輸入數字:
if %str% == 1 goto acc_on else (
if %str% == 2 goto acc_off else (
if %str% == 3 goto wake_up else (
if %str% == 4 goto init else (
if %str% == 0 goto exit )))) else (
(echo "你的輸入有誤!" && (goto start))
rem pause

:acc_on
adb shell am broadcast -a tsd.event.system.acc_on
rem pause
rem & exit
goto start

:acc_off
adb shell am broadcast -a tsd.event.system.acc_off
rem pause
rem & exit
goto start

:wake_up
adb shell am broadcast -a tsd.command.WAKE_UP
rem pause
rem & exit
goto start

:init
adb shell am broadcast -a tsd.init.COMPLETE
rem pause
rem & exit
goto start

:exit
pause & exit
exit 0
複製代碼

 

安裝所有應用:

複製代碼
@echo off
echo 等待設備連接
adb wait-for-device
set input=%1
echo 已連接
if "%input%" neq "" (
echo 安裝 %input%
adb install -r %input%
echo %1% 安裝完畢
) else (
for /r %%i in (*.apk) do (
echo 安裝 %%i
adb install -r %%i
echo  %%i 安裝完畢
)
)

pause
複製代碼

 

啓動系統設置:

@echo off
adb wait-for-device
adb shell am start com.android.settings/.Settings

 

啓動桌面應用:

@echo off
adb wait-for-device
adb shell am start -a android.intent.action.MAIN  -c android.intent.category.HOME

 

啓動服務:

@echo off
:loop
adb wait-for-device
adb shell am startservice -a com.tuyou.tsd.cardvr.service.VideoRec
::ping 127.0.0.1 -n 10 > nul
::goto loop

 

開始錄製視頻:

@echo off
adb wait-for-device
adb shell am broadcast -a tsd.event.cardvr.start_record

停止錄製視頻:

@echo off
adb wait-for-device
adb shell am broadcast -a tsd.event.cardvr.stop_record

 

auto test monkey:

複製代碼
@set %repeat=0
:BEGIN
@set /a repeat=repeat+1
@adb shell monkey --ignore-crashes --monitor-native-crashes -v 320000 > monkey_%repeat%.txt
@ping -n 8 127.0>nul
@adb reboot
@ping -n 40 127.0>nul
@goto BEGIN
複製代碼

 

 

安裝應用:

複製代碼
@echo off
echo ***********************************************
echo ***** 設備端App安裝工具---Notordinary *****
echo ***********************************************
pause

adb devices
set DIR=E:\AutoBuild\Version_20150817
cd /d %DIR%
G:

adb install -r %DIR%\TSD-Launcher*.apk
echo "1.Launcher 已安裝!"

adb install -r  %DIR%\TSD-SystemSetting*.apk
echo "2.設置 已安裝!"

adb install  -r %DIR%\TSD-VoiceAssistant*.apk
echo "3.語音助手 已安裝!"

adb install  -r %DIR%\TSD-Update*.apk
echo "4.更新 已安裝!"

adb install  -r %DIR%\TSD-CarDVR*.apk
echo "5.行車記錄 已安裝!"

adb install %DIR%\TSD-Nav*.apk
echo "6.導航 已安裝!"

adb install  -r %DIR%\TSD-MUSIC*.apk
echo "7.音頻 已安裝!"

adb install  -r %DIR%\TSD-Podcast*.apk
echo "8.播客 已安裝!"

adb install -r  %DIR%\TSD-News*.apk
echo "9.新聞 已安裝!"

rem ping 123.45.67.89 -n 1 -w 10000 > nul 
rem echo "沒有找到devices,請檢查設備是否連接成功"
pause & exit
複製代碼

 

卸載應用:

複製代碼
@echo off
echo ***********************************************
echo ***** XXX設備端App卸載工具---Notordinary *****
echo ***********************************************
pause

adb uninstall com.test.hao;
echo "1.Launcher 已卸載!"

adb uninstall com.test.hao.settings;
echo "2.設置 已卸載!"

adb uninstall com.test.hao.voice;
echo "3.語音助手 已卸載!"

adb uninstall com.test.hao.updatesoft;
echo "4.更新 已卸載!"

adb uninstall com.test.hao.cardvr;
echo "5.行車記錄 已卸載!"

adb uninstall com.test.hao.navigation;
echo "6.導航 已卸載!"

adb uninstall com.test.hao.audio;
echo "7.音頻 已卸載!"

adb uninstall com.test.hao.podcast;
echo "7.播客 已卸載!"

adb uninstall com.test.hao.news;
echo "7.新聞 已卸載!"

rem ping 123.45.67.89 -n 1 -w 10000 > nul
rem echo "沒有找到devices,請檢查設備是否連接成功"
pause & exit
複製代碼

 

在使用過程中,遇到可能需要點火熄火等操作,需要重複去敲adb shell命令,不如寫成批處理,如下;

複製代碼
@echo off
adb wait-for-device
adb devices
:start
echo # "根據需要輸入對應ID(1:點火;2:熄火;3:喚醒;4:初始化;)"

set /p str=請選擇輸入數字:
if %str% == "1" goto acc_on
if %str% == "2" goto acc_off
if %str% == "3" goto wake_up
if %str% == "4" goto init

:acc_on
echo "開始點火"
adb shell am broadcast -a tsd.event.system.acc_on
echo "點火完成"
pause & exit

:acc_off
adb shell am broadcast -a tsd.command.WAKE_UP
pause & exit

:wake_up
adb shell am broadcast -a tsd.command.WAKE_UP
pause & exit

:init
adb shell am broadcast -a tsd.init.COMPLETE
pause & exit

exit 0
複製代碼

 

截圖:

複製代碼
@echo off
rem ok----------------
adb shell /system/bin/screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png C:\Users\HaoChuang\Desktop\
rem ok----------------

rem ================================
rem adb shell /system/bin/screencap -p /sdcard/screenshot.png
rem -------------1--------------
rem 方法一:設置變量
rem adb shell aa = date '+%m%d%H%M%S'
rem adb shell mv /sdcard/screenshot.png /sdcard/screenshot_$aa.png
rem -------------1--------------

rem -------------2--------------
rem 方法一:直接修改
rem adb shell /system/bin/screencap -p /sdcard/screenshot.png
rem adb shell mv /sdcard/screenshot.png /sdcard/screenshot_`date '+%m%d%H%M%S'`.png
rem remn adb pull /sdcard/screenshot_`date '+%m%d%H%M'`*.png C:\Users\HaoChuang\Desktop\
rem -------------2--------------
rem ================================
複製代碼

 

如上,測試可用。

 

附錄:

路徑相關:參考:http://blog.csdn.net/mangmang2012/article/details/7048945

複製代碼
1. .bat文件中獲取bat文件所在目錄的參數爲 %~dp0

%~dp0 “d”爲Drive的縮寫,即爲驅動器,磁盤、“p”爲Path縮寫,即爲路徑,目錄

cd是轉到這個目錄,不過我覺得cd /d %~dp0還好些

選項語法:

~0 -刪除任何引號("),擴充%0

%~f0 -將%0擴充到一個完全合格的路徑名(“f”是file,即文件)

%~d0 -僅將%0擴充到一個驅動器號

%~p0 -僅將%0擴充到一個路徑

%~n0 -僅將%0擴充到一個文件名(“n”是name文件名)

%~x0 -僅將%0擴充到一個文件擴展名

%~s0 -擴充的路徑只含有短名(“s”爲Short,短的)

%~a0 -將%0擴充到文件的文件屬性(“a”爲attribute,即屬性)

%~t0 -將%0擴充到文件的日期/時間(“t”time)

%~z0 -將%0擴充到文件的大小(Size大小)

%~$PATH:0 -查找列在路徑環境變量的目錄,並將%0擴充

到找到的第一個完全合格的名稱。如果環境變量名

未被定義,或者沒有找到文件,此組合鍵會擴充到

空字符串

可以組合修飾符來得到多重結果:

%~dp0 -僅將%0擴充到一個驅動器號和路徑

%~nx0 -僅將%0擴充到一個文件名和擴展名

%~fs0 -僅將%0擴充到一個帶有短名的完整路徑名

%~dp$PATH:0 -查找列在路徑環境變量的目錄,並將%I擴充

到找到的第一個驅動器號和路徑。

%~ftza0 -將%0擴充到類似輸出線路的DIR

%0爲當前批處理文件

如果0換成1爲第一個文件,2爲第2個

****************************************************

%0代指批處理文件自身

%~d0是指批處理所在的盤符

%~dp0是盤符加路徑

cd %~dp0就是進入批處理所在目錄


2.添加永久環境變量

用reg add 向HKLM\system\controlset001\control\session manager\environment添加變量即可

如:添加添加值爲hedalixin變量NAME

reg add "HKLM\system\controlset\control\session manager\environment" /v NAME /t REG_SZ /d hedalixin
複製代碼

 

 ×××××××××××××××××××××××

 殺進程類:

#!/bin/bash
PROID=`ps -fe|grep 包名|awk '{print $2}' | head -n 1`
kill -9 $PROID

兩步操作:

adb shell ps -fe|grep uiautomator
獲取到PID之後
adb shell kill $PID$

 

×××××××××××××××××××××××××

在控制檯輸入命令$adb shell pm

可以看到adb shell pm的相關用法,詳細信息請自己看輸出

要看一個apk文件的相關信息最簡單實用的方法是:

aapt dump badging [yourapp.apk]

如果只是想查看手機上應用的packageName,則輸入命令:

adb shell pm list packages

如果想知道應用對應的apk文件在手機上的安裝位置則可以在上面的命令後加-f參數

adb shell pm list packages -f

×××××××××××××××××××××××××

其他常見adb命令:http://www.cnblogs.com/SharkBin/p/3993231.html

 

更多,待繼續補充。

轉載自:http://www.cnblogs.com/haochuang/ 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章