使用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常规方法实现数组的全排列
Mar 17 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
基于python的字节编译详解
Sep 20 Python
浅谈Python traceback的优雅处理
Aug 31 Python
Python 3.8 新功能全解
Jul 25 Python
django项目中使用手机号登录的实例代码
Aug 15 Python
django重新生成数据库中的某张表方法
Aug 28 Python
python yield关键词案例测试
Oct 15 Python
对Tensorflow中tensorboard日志的生成与显示详解
Feb 04 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
python如何求圆的面积
Jul 01 Python
python 下划线的不同用法
Oct 24 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读取xml方法介绍
2013/01/12 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
Python help()函数用法详解
2014/03/11 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
pandas实现将dataframe满足某一条件的值选出
2019/06/12 Python
flask应用部署到服务器的方法
2019/07/12 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
Python如何安装第三方模块
2020/05/28 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
美国在线健康和美容市场:Pharmapacks
2018/12/05 全球购物
大学生活动策划方案
2014/02/10 职场文书
家长对老师的评语
2014/04/18 职场文书
保安2014年终工作总结
2014/12/06 职场文书
务虚会发言材料
2014/12/25 职场文书
怎样写观后感
2015/06/19 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
Python开发五子棋小游戏
2022/05/02 Python