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


Posted in Python onFebruary 10, 2017

前言

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

效果实现

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

使用方式

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

总结

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

Python 相关文章推荐
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
python 设置文件编码格式的实现方法
Dec 21 Python
获取python的list中含有重复值的index方法
Jun 27 Python
实时获取Python的print输出流方法
Jan 07 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
Python模块的制作方法实例分析
Dec 21 Python
python如何设置静态变量
Sep 07 Python
如何使用Pytorch搭建模型
Oct 26 Python
简单介绍Python的第三方库yaml
Jun 18 Python
python常见的占位符总结及用法
Jul 02 Python
Python中str is not callable问题详解及解决办法
Feb 10 #Python
python用Pygal如何生成漂亮的SVG图像详解
Feb 10 #Python
Ubuntu下创建虚拟独立的Python环境全过程
Feb 10 #Python
简单谈谈Python中的几种常见的数据类型
Feb 10 #Python
Python使用QQ邮箱发送Email的方法实例
Feb 09 #Python
python3中bytes和string之间的互相转换
Feb 09 #Python
python实现下载文件的三种方法
Feb 09 #Python
You might like
用PHP和ACCESS写聊天室(五)
2006/10/09 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
node使用request请求的方法
2019/12/20 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
Python3.5文件修改操作实例分析
2019/05/01 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
Python 如何实现访问者模式
2020/07/28 Python
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
专科毕业生就业推荐信
2013/11/01 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
西门豹教学反思
2014/02/04 职场文书
会计人员演讲稿
2014/09/11 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
Pillow图像处理库安装及使用
2022/04/12 Python
Redis高并发缓存架构性能优化
2022/05/15 Redis