使用Python脚本和ADB命令实现卸载App
作者:daisy 发布时间:2023-04-11 03:59:39
标签:python,adb,App
前言
本文实现一个 Python 脚本,用来批量卸载模拟器或者实体机上面的 App 以及清除 LogCat 缓存。
开发 Android 的朋友,模拟器或者手机里面常常有大量调试的 Demo,对于手机来说还好,可是对于模拟器,有可能就会造成调试速度以及启动速度的下降。而且模拟器中 App 一个一个删除也是很麻烦。利用 ADB 命令,我们可以做很多事,其中就包括批量操作模拟器或者手机上的 App。当然包括删除操作啦。利用 Python 脚本和 ADB shell 命令以及 AS 自带的 CMD 窗口,我们就可以将这一切浓缩成一个命令行啦。
核心代码
# 删除所有你指定包名的 APP
def delAllapp( ):
print 'start delete all your app in your Phone or Simulator '
os.popen('adb wait-for-device');
corename = raw_input("input your app package corename:")
oriPackages = os.popen('adb shell pm list packages {name}'.format(name=corename));
# list all PackageName
for oriPackage in oriPackages:
deletePackage = oriPackage.split(':')[1]
os.popen('adb uninstall ' + deletePackage );
print deletePackage + "is deleted"
# 删除所有你指定包名的特定 APP
def listAllpackage( ):
i = 0
os.popen('adb wait-for-device');
corename = raw_input("input your app package corename:")
oriPackages = os.popen('adb shell pm list packages {name}'.format(name=corename));
for oriPackage in oriPackages:
deletePackage = oriPackage.split(':')[1]
print str(i) + ":" + deletePackage
deleteList.append(deletePackage)
i += 1
# 删除指定 App
def deleteApp(number):
os.popen('adb uninstall ' + deleteList[number] );
print 'delete '+ deleteList[number] + "success"
# 清除 LogCat 缓存
def clearLogcat( ):
print 'start clear logcat buffer in your Phone or Simulator'
os.popen('adb wait-for-device');
os.popen('adb logcat -c');
print 'logcat is cleared success'
效果实现
使用方式
确保你的 AS 能够使用 ADB 命令
配置 Python 2.7 环境(3+ 应该也没有问题)
在 AS 提供的 CMD 中找到当前脚本路径 输入:
python unistall.py
根据命令提示输入你想要删除 App 的包的核心关键字,如:
com.example.RxCacheDemo
,输入 example 即可(每个人 AS 的这个配置应该都是一样的)以上步骤完成之后会有提示 删除成功与否。
来源:http://allenwu.itscoder.com/uninstall-app-with-adb


猜你喜欢
- 创建python文件fling.py,代码如下:#!/usr/bin/env monkeyrunnerimport timefrom com
- Pygame的mixer 模块可以依据命令播放一个或多个声音,并且也可以将这些声音混合在一起。而获得声音需要四个步骤:一、启动mixer进程
- Python-apply(lambda x: )使用def instant_order_deal(plat, special_product
- 404错误,很多人都知道,如果要访问的url不存在的时候就读取显示这个页面.以往在处理404方面我们通常的做法是要麽简单写几行字,而有心人士
- 一、概念1、模块化代码可以使代码易于维护和调试,并且提高代码的重用性;2、函数可以用来减少冗余的代码并提高代码的可重用性。函数也可以用来模块
- 游戏玩法根据神庙逃亡,实现一个人躲避僵尸的小游戏,主要的是精灵、精灵组之间相撞、相交的处理。游戏开始随机出现一定的僵尸,随机移动,玩家在一位
- js代码:window.alert = function(msg, callback) {var div = document.create
- 引言微信小程序为了优化用户体验,取消了在进入小程序时立马出现授权窗口。需要用户主动点击按钮,触发授权窗口。那么,在我实践过程中,出现了以下问
- 本文实例讲述了PHP中使用addslashes函数转义的安全性原理分析。分享给大家供大家参考。具体分析如下:先来看一下ECshop中adds
- 前言数学建模的介绍与作用全国大学生数学建模竞赛:全国大学生数学建模竞赛创办于1992年,每年一届,已成为全国高校规模最大的基础性学科竞赛,也
- 最近一直在研究python+selenium+beautifulsoup的爬虫,但是存入数据库还有写入txt文件里面的时候一直都是unico
- 这篇文章主要介绍了Python pygame绘制文字制作滚动文字过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- Ubuntu Server下启动/停止/重启MySQL数据库的三种方式系统环境:ubuntu server 12.10 x64(mysql为
- 数据库镜像是将数据库事务处理从一个数据库移动到不同环境中的另一个数据库中。镜像的拷贝是一个备用的拷贝,不能直接访问,它只用在错误恢复的情况下
- 1.首先肯定是要安装Node.JSwindows cmd依次输入如下命令:cd C:\Program Files\nodejs\npm in
- 一. 开发工具1)sql2go用于将 sql 语句转换为 golang 的 struct. 使用 ddl 语句即可。例如对于创建表的语句:
- Scrapy是一个用Python实现的为了爬取网站数据、提取数据的应用框架。我们对于爬取到的数据存储到本地或数据库是经常要用到的操作。主要讲
- 1、打开mysql.exe(MySQL Command Line Client),输入密码2、输入:use mysql;3、查询host输入
- 最近在做文章页盖楼显示的项目,数据来源是跟贴系统生成的UTF8格式的JSON数据。文章页的HTML编码格式是GB2312,在javascri
- python中使用requests模块http请求时,发现中文参数不会自动的URL编码,并且没有找到类似urllib (python3)模块