使用Python脚本和ADB命令实现卸载App

发布时间 - 2026-01-10 22:58:37    点击率:

前言

本文实现一个 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' 

效果实现

使用方式

  1. 确保你的 AS 能够使用 ADB 命令
  2. 配置 Python 2.7 环境(3+ 应该也没有问题)
  3. 在 AS 提供的 CMD 中找到当前脚本路径 输入: python unistall.py
  4. 根据命令提示输入你想要删除 App 的包的核心关键字,如:com.example.RxCacheDemo ,输入 example 即可(每个人 AS 的这个配置应该都是一样的)
  5. 以上步骤完成之后会有提示 删除成功与否。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# python  # adb命令  # python调用adb命令  # adb  # 命令  # 卸载系统apk  # 通过python调用adb命令对App进行性能测试方式  # Python实现对adb命令封装  # appium+python adb常用命令分享  # python中adb有什么功能  # 机上  # 就会  # 会有  # 有可能  # 每个人  # 我们可以  # 这一切  # 这篇文章  # 自带  # 中就  # 命令行  # 你想要  # 就可以  # 很麻烦  # 器中  # 中找到  # 是一样的  # 有疑问  # def  # delAllapp 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: nodejs redis 发布订阅机制封装实现方法及实例代码  高端智能建站公司优选:品牌定制与SEO优化一站式服务  javascript基于原型链的继承及call和apply函数用法分析  MySQL查询结果复制到新表的方法(更新、插入)  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  轻松掌握MySQL函数中的last_insert_id()  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何做网站制作流程,*游戏网站怎么搭建?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  用yum安装MySQLdb模块的步骤方法  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何用狗爹虚拟主机快速搭建网站?  制作企业网站建设方案,怎样建设一个公司网站?  如何用低价快速搭建高质量网站?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  太平洋网站制作公司,网络用语太平洋是什么意思?  如何在景安服务器上快速搭建个人网站?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  WEB开发之注册页面验证码倒计时代码的实现  高性价比服务器租赁——企业级配置与24小时运维服务  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  如何正确选择百度移动适配建站域名?  如何用已有域名快速搭建网站?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  桂林网站制作公司有哪些,桂林马拉松怎么报名?  大型企业网站制作流程,做网站需要注册公司吗?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel Fortify是什么,和Jetstream有什么关系  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  phpredis提高消息队列的实时性方法(推荐)  Laravel如何实现本地化和多语言支持?(i18n教程)  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel怎么使用Intervention Image库处理图片上传和缩放  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  JavaScript如何实现音频处理_Web Audio API如何工作?  中山网站制作网页,中山新生登记系统登记流程?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址