使用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 相关文章推荐
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
python交互式图形编程实例(一)
Nov 17 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
python集合比较(交集,并集,差集)方法详解
Sep 13 Python
python设置环境变量的原因和方法
Jun 24 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
解决python 读取excel时 日期变成数字并加.0的问题
Oct 08 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
详解Anaconda安装tensorflow报错问题解决方法
Nov 01 Python
python 制作本地应用搜索工具
Feb 27 Python
python绘制汉诺塔
Mar 01 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 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
点图片上一页下一页翻页效果
2008/07/09 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
js 获取、清空input type="file"的值示例代码
2014/02/19 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
js实现表格数据搜索
2020/08/09 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python中文竖排显示的方法
2015/07/28 Python
Python list操作用法总结
2015/11/10 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
Django Celery异步任务队列的实现
2019/07/24 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
高一家长会邀请函
2014/01/12 职场文书
职称评定自我鉴定
2014/03/18 职场文书
廉洁校园实施方案
2014/05/25 职场文书
安全先进班组材料
2014/12/26 职场文书