Shell指令碼 | 一鍵解除安裝安卓App

Shengjie發表於2019-02-22

在平時工作的過程中,很多重複性內容可以通過執行指令碼檔案來代替。一次編寫,就能帶來很大的效率提升。

今天跟大家分享一個簡單的 Shell 指令碼,只有區區 20 行左右的程式碼。

因為有時候我們測試某個應用程式需要先保證測試環境的乾淨,所以會手動解除安裝所有不必要的 App。而這個指令碼的功能就是在知道包名的前提下,通過迴圈執行 adb uninstall 命令一次性解除安裝完指定的應用程式。

指令碼的編寫思路是這樣的:

1、先將需要解除安裝的應用的包名(Package_Name)寫入到一個 all_list 檔案中;

2、通過 adb shell pm list packages -3 命令取出測試機中已安裝的所有第三方應用的包名並將其輸出到 list 檔案;

3、通過 for line in list 語句遍歷 list 檔案,取出每行字串並擷取出包名;

4、將擷取出的包名和 all_list 檔案中的內容進行對比,如果有相同或者包含的關係,則通過 adb uninstall 命令進行解除安裝;

5、被解除安裝的應用包名將輸出在終端。

以下為編寫好的指令碼:

#!/bin/bash
# 第三方應用包名輸出到list檔案
adb shell pm list packages -3 > list.txt
# 等待3秒
sleep 3s
# 遍歷手機裡的第三方app的包名
for line in $(cat list.txt); do
    # 將packagename擷取出來
    name=${line:8}
    # 遍歷要解除安裝的包名
    for line2 in $(cat all_list.txt); do
        # 判斷是否包含
        if [[ $name =~ $line2 ]]; then
        # 刪除包名結尾的\r
        package_name=$(echo $name | tr '\r' ' ')
        # 執行adb解除安裝命令
        adb uninstall $package_name
        # 列印已解除安裝的包名
        echo $package_name"已解除安裝"
        fi  
    done
done

執行示例:

-> sh +x uninstall.sh 
Success
com.tencent.qqpimsecure已解除安裝

歡迎關注微信公眾號“測試開發Stack”,更多原創文章第一時間釋出!

相關文章