在Android Studio中调试许多手机



是否可以在Android Studio中同时调试多部手机上的应用程序?我的意思是启动多个调试实例,每个实例在不同的手机上,就像在Eclipse中一样。

在发布这个问题的时候,可能唯一的解决方案是George V.M.发布的。现在,经过Android Studio的几次更新,这可以很容易地通过创建N个相同的调试配置副本并在单独的手机上启动每个副本来完成。

更新

你可能想看看弗拉德的回答。对于较新版本的Android Studio来说,这一点毫无意义。如果有人仍然好奇,这是我解决问题的真正的hack方法


如果有人还在寻找解决方案,这是我发现的。

我正在研究一个项目,需要在2部手机上运行的同一应用程序的2个实例之间进行无线通信(实际上,2个或更多)。有很多时候,我希望我能一次调试2个设备。直到最近我才知道怎么做。

这实际上很简单:有2个Android Studio实例打开,你可以一次调试多个设备,(一个设备在每个Android Studio实例)与断点和一切!

Catch 1:你不能打开同一个项目的两个实例

我无法运行Android Studio的两个实例,其中两个实例都有相同的项目打开。它只会把你重定向到已经打开的项目。

解决方案:解决这个问题的方法就是在你电脑的某个地方复制一个项目,然后打开这个项目,这样你就可以同时打开两个相同项目的副本。

Catch 2:必须手动更改每个副本

现在有一个新问题。如果在调试时,您发现代码中的错误并进行了修改,该怎么办?现在你必须确保你在你的第二个项目副本中做了完全相同的修改,这样第二个设备在碰到这些行时就不会有同样的错误。这是很烦人的,必须记住做两次更改;

解决方案:我对这个问题的解决办法是制作一个项目的"符号链接",而不是一个物理副本。

(符号链接是文件的"昵称"或"引用"。如果您创建一个指向fila的符号链接filb,尽管它们在操作系统中看起来像是两个不同的文件,但实际上它们指向完全相同的物理文件。在文件a上所做的任何更改都将反映在文件b中,因为它们指向磁盘上相同的物理文件/数据。关于如何创建符号链接的说明如下)

现在等一下!!制作整个项目的符号链接可能不是一个明智的主意,因为你将有两个Android studio试图编辑相同的文件。这可能会导致问题,特别是在构建文件和IDE文件的情况下。

所以我所做的是做一个符号链接只有源文件,或者任何我直接编辑的文件,而AS通常不会碰,并对每个其他文件做一个物理副本。

您唯一需要做的就是记住在一个AS实例中更改代码后点击Ctrl+S,以便更改将反映在第二个AS实例中。这些更改可能需要几秒钟才能反映在第二个实例中,但是您可以在第二个AS上单击"同步"按钮(左上角,"打开"one_answers"保存"旁边),这将导致所有外部更改的文件,即您刚刚在第一个实例中编辑的文件,从磁盘重新加载。

你仍然需要小心。每次在一个AS中进行更改时,请确保在尝试在第二个AS中进行任何编辑之前保存所有这些更改,并确保这些更改反映在第二个AS中。否则,冲突可能会导致您丢失在一个副本中所做的更改。解决这个问题的一种方法是强迫自己只在一个AS上更改文件,而不更改另一个AS上的文件。

实际产品说明:

好吧,这是很多话。以下是您可以遵循的步骤和提示:

  1. 关闭Android Studio并将项目复制到PC上的另一个文件夹
  2. 转到你的第二个副本并删除所有源代码文件,因为我们将对它们进行符号链接。(这些是我通常做符号链接而不是复制的文件:
    • 所有构建。gradle文件
    • 整个app/src文件夹
    • 如果您有任何其他松散的源代码或资源文件或其他非IDE文件,您可能会编辑,为它们创建符号链接
  3. 将所有非IDE文件从第一个项目文件夹链接到第二个项目文件夹。

    • 文件创建符号链接窗户在,使用

      mklink pathtosymboliclink pathtooriginalfile

    • 创建文件夹的符号链接窗户在,使用

      mklink /j "pathtosymboliclink" "pathtooriginalfolder"

    • 文件创建符号链接文件夹或Linux在,使用

      ln -s "path/to/original/file_or_folder" "path/to/link"

  4. 重新打开Android Studio。它可能会打开项目的原始副本,如果这是您在AS中打开的最后一个项目。

  5. 进入文件>打开,在PC上打开第二个项目副本。

你现在将有2个副本的项目运行,你将能够在2个设备上调试你的应用程序在同一时间!(请记住,断点不会在两个副本之间共享)

如果您正在谈论将调试器连接到几个电话,我将说不。该端口将被来自一个电话的流量阻塞。

除非有人想出一个黑客的方法来做到这一点,但是,据我所知,这是不可能的。

Android studio有它的虚拟机设备,但它需要安装英特尔加速器,因为它太慢了,直到它显示。另外,我推荐使用"Genymotion"来运行多个实例和不同的设备。我正在使用它,它工作得很好。

它可能需要一段时间来设置和安装,但一旦安装,它将是轻量级的,我保证你会很高兴,而工作=)

链接如下:Genymotion安装用户指南;genymotion网站

最新更新