使用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中处理XML的教程
Apr 29 Python
python实现文件快照加密保护的方法
Jun 30 Python
Python卸载模块的方法汇总
Jun 07 Python
带你了解python装饰器
Jun 15 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
Jul 11 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
Python实现替换文件中指定内容的方法
Mar 19 Python
pandas进行数据的交集与并集方式的数据合并方法
Jun 27 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
Python企业编码生成系统之系统主要函数设计详解
Jul 26 Python
Python实现播放和录制声音的功能
Aug 12 Python
10款最佳Python开发工具推荐,每一款都是神器
Oct 15 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初学者头疼问题总结
2006/10/09 PHP
建立文件交换功能的脚本(三)
2006/10/09 PHP
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
php编写一个简单的路由类
2011/04/13 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
vuex存储token示例
2019/11/11 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
python实现删除文件与目录的方法
2014/11/10 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
python制作图片缩略图
2019/04/30 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
在django中自定义字段Field详解
2019/12/03 Python
资产经营总监岗位职责范文
2013/12/01 职场文书
内勤主管岗位职责
2014/04/03 职场文书
园林技术专业求职信
2014/07/28 职场文书
创先争优承诺书
2015/01/20 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python