Shell腳本 | 一鍵卸載安卓App


在平時工作的過程中,很多重復性內容可以通過運行腳本文件來代替。一次編寫,就能帶來很大的效率提升。

今天跟大家分享一個簡單的 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”,更多原創文章第一時間發布!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM