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

作者:daisy 时间:2023-04-11 03:59:39 

前言

本文实现一个 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. 以上步骤完成之后会有提示 删除成功与否。

来源:http://allenwu.itscoder.com/uninstall-app-with-adb

标签:python,adb,App
0
投稿

猜你喜欢

  • Linux下mysql源码安装笔记

    2024-01-19 23:45:08
  • python+os根据文件名自动生成文本

    2022-06-12 00:50:48
  • sql模式设置引起的问题解决办法

    2024-01-17 03:38:16
  • django rest framework使用django-filter用法

    2023-03-06 01:56:06
  • pandas的resample重采样的使用

    2023-04-07 10:33:29
  • Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】

    2022-12-08 10:14:45
  • MySQL中where 1=1方法的使用及改进

    2024-01-17 22:00:59
  • 显卡驱动CUDA 和 pytorch CUDA 之间的区别

    2021-12-29 04:35:31
  • js前端实现登录拼图验证功能

    2024-04-19 10:45:29
  • Golang 中的 条件变量(sync.Cond)详解

    2024-04-25 15:28:32
  • MySQL中or、in、union与索引优化详析

    2024-01-18 08:21:55
  • Anaconda+Pycharm环境下的PyTorch配置方法

    2023-05-20 16:38:22
  • SQL 中主标识列IDENTITY使用技巧

    2011-06-02 08:47:00
  • Visual Studio 2017使用EF选择MySQL数据源

    2024-01-25 04:13:23
  • asp.net连接数据库读取数据示例分享

    2024-01-23 11:45:19
  • PHP 中文简繁互转代码 完美支持大陆、香港、台湾及新加坡

    2023-11-15 11:46:16
  • 深入讨论Python函数的参数的默认值所引发的问题的原因

    2022-08-03 00:54:31
  • OpenCV-Python实现通用形态学函数

    2022-02-13 18:10:33
  • Oracle复合索引与空值的索引使用问题小结

    2024-01-21 17:35:38
  • 在Go语言程序中使用gojson来解析JSON格式文件

    2023-07-02 14:19:52
  • asp之家 网络编程 m.aspxhome.com