Shell脚本 | 一键卸载安卓App

时间:2022-11-03 09:23:39

在平时工作的过程中,很多重复性内容可以通过运行脚本文件来代替。一次编写,就能带来很大的效率提升。

今天跟大家分享一个简单的 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”,更多原创文章第一时间发布!

Shell脚本 | 一键卸载安卓App的更多相关文章

  1. Shell脚本 | 一键获取安卓应用活动名

    上篇文章提到,启动时间的计算需要用到应用启动页的活动名(Activity_Name). 如何获取活动名呢?通常有如下几种方式: 1.询问 Dev 同事 2.adb logcat ActivityMan ...

  2. 安装完Ubuntu后通过shell脚本一键安装软件

    安装完Ubuntu后通过shell脚本一键安装软件 以下代码中#是单行注释 :<<! ! 是多行注释. 运行的时候需要把多行注释去掉. 比如把以下代码保存为install.sh, 那么在终 ...

  3. Centos 6&period;4上面用Shell脚本一键安装vsftpd

    Centos 6.4上面用Shell脚本一键安装vsftpd install.sh #!/bin/bash if [ `uname -m` == "x86_64" ];then m ...

  4. Centos 6&period;4上面用Shell脚本一键安装mysql 5&period;6&period;15

    Centos 6.4上面用Shell脚本一键安装mysql 5.6.15  #!/bin/bash if [ `uname -m` == "x86_64" ];then machi ...

  5. shell脚本一键同步集群时间

    shell脚本一键同步集群时间 弋嘤捕大 椿澄辄 ψ壤 茇徜燕 ㄢ交涔沔 阚龇棚绍 テ趼蜱棣 灵打了个寒颤也没有去甩脱愣是拖着 喇吉辔 秋北酏崖 琮淄脸酷 茇呶剑 莲夤罱 陕遇骸淫  ...

  6. Shell脚本一键部署——源码编译安装MySQL及自动补全工具

    Shell脚本一键部署--源码编译安装MySQL及自动补全工具 编译安装MySQL 1.软件包 Mysql安装包 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者 ...

  7. Shell脚本一键安装LNMP环境

    https://sourceforge.net/projects/opensourcefile/files/ Nginx是一款高性能的HTTP和反向代理服务器.Nginx在反向代理,Rewrite规则 ...

  8. 该死的端口占用!教你用 Shell 脚本一键干掉它!

    1. 前言 大家好,我是安果! 在 Web 开发中,经常会遇到「端口被占用」的场景 常规解决方案是: 使用 lsof -i 命令查询占用端口的进程 PID 利用 kill -9 PID 干掉目标进程 ...

  9. shell脚本一键安装mysql5&period;7&period;x

    使用脚本一键安装mysql5.7.x,初始化数据库.启动数据库---- mysql版本号:源代码mysql5.7.10 linux版本号:centos6.5 x86_64 #!/bin/bash GR ...

随机推荐

  1. hgrjhgkjh

    #include<stdio.h> int step[5]={13,5,1,4,11}; int sum; int min=999; void ji() {  int i;  int j; ...

  2. 96、facebook Fresco框架库源使用基础

    开源项目链接 facebook Fresco仓库:git clone https://github.com/facebook/fresco facebook Fresco主页:“>http:// ...

  3. BZOJ 2751&colon; &lbrack;HAOI2012&rsqb;容易题&lpar;easy&rpar; 数学

    2751: [HAOI2012]容易题(easy) 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2751 Description 为了使 ...

  4. 急缺【jQuery】人才&comma;要求熟悉jQuery,熟悉Js,熟悉前端开发

    是一份兼职 是与jQuery相关的写作任务,有写作兴趣的欢迎站短(有blog者优先). 要求就是熟悉js和jquery,项目经验丰富(项目经验一定要丰富). 钱不多,不到1W,如果月薪超过1W的,我想 ...

  5. 可扩展多线程异步Socket服务器框架EMTASS 2&period;0 续

    转载自Csdn:http://blog.csdn.net/hulihui/article/details/3158613 (原创文章,转载请注明来源:http://blog.csdn.net/huli ...

  6. Ajax 调用方式

    function wds_generatecss() { var txt = $.trim($("#TxtText").val()); if (txt == "&quot ...

  7. CentOS 7安装Tomcat8

    一.安装环境 tomcat的安装依赖于Java JDK,需要先安装配置正确的JDK http://www.cnblogs.com/VoiceOfDreams/p/8376978.html 二.安装包准 ...

  8. windows下注册表的操作

    原博:https://blog.csdn.net/denghubu/article/details/5765921 1.       注册表简介 注册表是为Windows NT和Windows95中所 ...

  9. 畅通工程续 -- HDU 1874 floyd

    题目大意: 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离. 思路: floyd算法模板题,这是一个牺牲空间换取时间的算法,本质是动态规划. AC代码: #include &lt ...

  10. eclipse 没有web项目和server

    New项目中没有web Window菜单的preference没有server 解决方法:打开help->Install new software… 在work with中找到http://do ...