Android Studio:如何在运行或调试之前自动卸载APK(或执行adb命令)?

Jag*_*ger 97 android android-studio

现在我需要每次Run\Debug在Android Studio中卸载App .因为我需要在运行\ debug app之前重新创建数据库.我知道我可以运行命令

adb uninstall [package_name]
Run Code Online (Sandbox Code Playgroud)

在终端中清除文件/data/data/[package_name].但是如果我每次都必须执行命令,那就不方便了.我希望

adb uninstall
Run Code Online (Sandbox Code Playgroud)

单击Run\Debug按钮时,命令可以自动执行.

ara*_*gar 177

adb uninstall <package_name>
Run Code Online (Sandbox Code Playgroud)

可用于通过PC卸载应用程序.如果您希望每次通过Android Studio启动应用时都自动执行此操作,则可以执行以下操作:

  1. 在Android Studio中,单击"运行"按钮左侧的下拉列表,然后选择"编辑配置..."
  2. 单击Android应用程序下的应用程序,然后在常规选项卡中,找到标题'发布前'
  3. 单击+按钮,选择Run external tool,单击弹出窗口中的+按钮.
  4. 给出一些名称(例如adb uninstall)和描述,然后输入adbProgram:和uninstall <your-package-name>参数:.在弹出窗口中单击"确定"时,确保选中了新项目.

注意:如果您的PATH环境变量中没有adb,请在Program:字段中提供adb的完整路径(例如/ home/user/android/sdk/platform-tools/adb).

  • 一些提示/注意事项:如果您运行的是多个模拟器或设备,则需要包含adb -s <devicename>.Android Studio中的宏无法正常运行(v1.50.x),因此您必须为adb或环境路径添加完整路径. (2认同)

Joo*_*lah 84

adb uninstall com.my.firstapp
Run Code Online (Sandbox Code Playgroud)

  • 如果不知道pakage名称,但有apk,可以得到它与http://stackoverflow.com/a/37324607/812915 (4认同)

小智 13

列出包裹:

adb shell su 0 pm list packages
Run Code Online (Sandbox Code Playgroud)

查看要卸载的软件包,并从那里复制软件包名称.例如:

com.android.calculator2
Run Code Online (Sandbox Code Playgroud)

最后输入:

adb uninstall com.android.calculator2 
Run Code Online (Sandbox Code Playgroud)

你完成了

  • 对于非root用户,请从list packages命令中省略`su 0`. (3认同)
  • 如果您安装了很多应用程序,请添加`| 上述命令末尾的 grep -i &lt;部分包名称&gt;` 可以帮助缩小列表范围。例如,要查找 Google 地图包,您可以使用 `adb shell pm list packages | grep -i 地图`。 (2认同)

Jim*_*mmy 12

我在用Android Studio 2.1.2.我有与OP相同的要求.虽然以上两个答案似乎对每个人都有帮助,但它对我来说并不起作用.我正在分享对我有用的东西.

去吧main menu/Run/Edit Configuration.选择appAndroid Application的left.This应打开多标签窗格.选择General选项卡(默认),单击+底部的绿色单击(文本下方Before launch: Gradle -awake ...).

将出现一个下拉菜单,选择Gradle-aware-make选项.将弹出另一个文本框.:app:uninstallAll在此文本框中输入.(您可以使用ctrl+ space来使用自动完成功能来确定正确的目标,而无需键入所有内容.还可以帮助您选择适合您的正确应用程序名称).并设定apply/ok.重新启动您的应用.

注意:每次启动应用时,此新目标都会尝试从您的模拟器或设备中卸载您的应用.因此,如果您的测试设备不可用,您的launc可能会在卸载时失败,但会继续启动您的模拟器.所以要么先启动你的模拟器,要么在第一次失败之后重新启动(因为首次启动会在卸载失败时启动模拟器).


小智 11

使用此 cmd 显示设备中的软件包(适用于 Windows 用户)

adb shell pm list packages

然后你可以使用以下cmd完全删除该包

adb uninstall com.example.myapp


Rod*_*ira 9

这个带有 --user 0 的命令可以完成这项工作:

adb uninstall --user 0 <package_name>
Run Code Online (Sandbox Code Playgroud)


den*_*nyc 9

要添加到上面,如果您可以通过以下方式列出和 grep:

$ adb shell pm list packages | grep -i <some_idea>
Run Code Online (Sandbox Code Playgroud)

如果您知道包的名称可能是什么,它会给您应用程序的名称。

例如,

$ adb shell pm list packages | grep -i cal
Run Code Online (Sandbox Code Playgroud)

包:com.android.providers.calendar

包:com.google.android.calendar

然后您可以继续:

$ adb uninstall <package_name>
Run Code Online (Sandbox Code Playgroud)


小智 7

如果要在连接到单个设备/模拟器时卸载,请使用以下命令

adb uninstall <package name>
Run Code Online (Sandbox Code Playgroud)

否则使用多个设备然后使用下面的命令

adb -s <device ID> uninstall <package name>
Run Code Online (Sandbox Code Playgroud)


Joe*_*ler 6

我使用了一个名为“adb idea”的 Android Studio 插件——有一个下拉菜单,用于各种功能(卸载、终止、启动等),您可以将这些功能定位到任何连接或模拟的设备上。有人可能会争辩说,这让我距离对 adb 命令的功能有更深入的了解还差一步,我可能会同意......尽管我的理解水平确实较低,所以对我来说,拥有一个帮手。亚行理念 在此处输入图片说明