使用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实现Kmeans聚类算法
Jun 10 Python
python2.7安装图文教程
Mar 13 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
Django框架组成结构、基本概念与文件功能分析
Jul 30 Python
python验证码图片处理(二值化)
Nov 01 Python
numpy:找到指定元素的索引示例
Nov 26 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
python编写俄罗斯方块
Mar 13 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
python实现按日期归档文件
Jan 30 Python
Pytorch 图像变换函数集合小结
Feb 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
视图的作用
2014/12/19 面试题
学期自我评价
2014/01/27 职场文书
给小学生的新年寄语
2014/04/04 职场文书
计算机系本科生求职信
2014/05/31 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
MySQL数据库表约束讲解
2022/06/21 MySQL