使用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
0
投稿
猜你喜欢
- 新上的一台服务器出现了一个现象:ASP程序中,调用函数Now(),显示的时间总是形如“2009-07-12 上午 08:12:56”这样的,
- 对于什么是好设计,一万个人那里至少有一万零一个答案。每个人都有自己的答案,有的人还不止一个答案。老师说,一定要在设计里灌注自己的思想,有了自
- 理解新概念Python V2.2 中引入了迭代器的思想。唔,这并不十分正确;这种思想的“苗头”早已出现在较老的函数 xrange() 以及文
- 前言如果你搜一圈 "Fabric "关键字,你会发现 90% 的资料都是过时的,因为现在 Fabric 支持 Pytho
- 1、返回json响应结果在struct的字段后面加入json:"key"可以进行json格式输出,其中key为json的
- 本章所讲内容: 1、钉钉报警设置
- JS在firefox中的兼容性问题,自己也经常遇到.此文是网上资料,不过时间较久不记得原址了...1. document.form.item
- 题目: 一个环形单链表,从头结点开始向后,指针每移动一个结点,就计数加1,当数到第m个节点时,就把该结点删除,然后继续从下一个节点开始从1计
- Brendan Eich于1995年在Netscape发明了JavaScript语言,这个语言在过去的一些年里曾是一个最被误解的语言,随着A
- 简介memory_profiler是第三方模块,用于监视进程的内存消耗以及python程序内存消耗的逐行分析。它是一个纯python模块,依
- 本文整理了一部分我们平时在项目中经常遇到的关于go语言JSON数据与结构体之间相互转换的问题及解决办法。基本的序列化首先我们来看一下Go语言
- 前言服务器的相关知识曾经让我非常困惑。我相信还有很多的Python开发者和我有着类似的遭遇。本文主要介绍了python下如何查询CS * 精英
- 本文介绍了随机提取N条记录的例子,通过Sql server与access数据库的代码比较让你更快的掌握。随机提取10条记录的例子:Sql s
- 这段时间常给来面试的同学用《 你是一个职业的页面重构工作者吗? 》中三个部分的不同阶段去做自测,发现很多人都自我感觉良好,给我的回答基本都是
- 小整数/* interpreter state */#define _PY_NSMALLPOSINTS &nbs
- 由于计算机软件的非法复制,通信的泄密、数据安全受到威胁。一般为了安全,会要求将数据库名称、密码等信息进行加密。所以加密在开发过程中是经常使用
- 使用 types 增强vscode中javascript代码提示功能微软的vscode编辑器是开发typescript项目的不二首选,其本身
- 一旦被黑客获取到webshell,黑客就知道了你的sqlserver管理员密码,如果sqlserver再没有经过安全设置那么黑客很容易就提权
- 前言这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方
- 这篇文章主要介绍了简单了解Python3 bytes和str类型的区别和联系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的