使用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生成随机数的方法
Jan 14 Python
Python最长公共子串算法实例
Mar 07 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
python线程中同步锁详解
Apr 27 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
Python实现带下标索引的遍历操作示例
May 30 Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 Python
django中使用POST方法获取POST数据
Aug 20 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
Python安装tar.gz格式文件方法详解
Jan 19 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
Jan 13 Python
python保存图片的四个常用方法
Feb 28 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/07/17 PHP
php实现用户在线时间统计详解
2011/10/08 PHP
PHP5函数小全(分享)
2013/06/06 PHP
详解php反序列化
2020/06/10 PHP
js获取变量
2006/08/24 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
详解Python中的Descriptor描述符类
2016/06/14 Python
使用python实现生成用户信息
2017/03/20 Python
python基础之入门必看操作
2017/07/26 Python
Python下使用Scrapy爬取网页内容的实例
2018/05/21 Python
通过Pandas读取大文件的实例
2018/06/07 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
MIS软件工程师的面试题
2016/04/22 面试题
动物学专业毕业生求职信
2013/10/11 职场文书
运动会邀请函范文
2014/01/31 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
机动车登记业务委托书
2014/10/08 职场文书
学前班学生评语
2014/12/29 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript