使用Python脚本和ADB命令实现卸载App

yipeiwu_com5年前Python基础

前言

本文实现一个 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' 

效果实现

使用方式

  1. 确保你的 AS 能够使用 ADB 命令
  2. 配置 Python 2.7 环境(3+ 应该也没有问题)
  3. 在 AS 提供的 CMD 中找到当前脚本路径 输入: python unistall.py
  4. 根据命令提示输入你想要删除 App 的包的核心关键字,如:com.example.RxCacheDemo ,输入 example 即可(每个人 AS 的这个配置应该都是一样的)
  5. 以上步骤完成之后会有提示 删除成功与否。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

Python和GO语言实现的消息摘要算法示例

Python和GO语言实现的消息摘要算法示例

常用的消息摘要算法有MD5和SHA,这些算法在python和go的库中都有,需要时候调用下就OK了,这里总结下python和go的实现。 一、python消息摘要示例 代码如下: 复制代...

Python中常用的8种字符串操作方法

Python中常用的8种字符串操作方法

拼接字符串 使用“+”可以对多个字符串进行拼接 语法格式: str1 + str2 >>> str1 = "aaa" >>> str2 = "b...

python模块之StringIO使用示例

StringIO经常被用来作为字符串的缓存,应为StringIO有个好处,他的有些接口和文件操作是一致的,也就是说用同样的代码,可以同时当成文件操作或者StringIO操作。比如: 复制...

利用Python的Flask框架来构建一个简单的数字商品支付解决方案

利用Python的Flask框架来构建一个简单的数字商品支付解决方案

作为一个程序员,我有时候忘了自己所具有的能力。当事情没有按照你想要的方式发展时,却很容易忘记你有能力去改变它。昨天,我意识到,我已经对我所出售的书的付款处理方式感到忍无可忍了。我的书完成...

python虚拟环境virualenv的安装与使用

前言 在安装完python及pip,setuptools等工具后,即可以创建virualenv虚拟环境了,这个类似于虚拟机的工具,可以让同一台电脑中运行多个不同版本的python程序,互...