是否可以在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上的文件。
实际产品说明:
好吧,这是很多话。以下是您可以遵循的步骤和提示:
- 关闭Android Studio并将项目复制到PC上的另一个文件夹
- 转到你的第二个副本并删除所有源代码文件,因为我们将对它们进行符号链接。(这些是我通常做符号链接而不是复制的文件:
- 所有构建。gradle文件
- 整个app/src文件夹
- 如果您有任何其他松散的源代码或资源文件或其他非IDE文件,您可能会编辑,为它们创建符号链接
-
将所有非IDE文件从第一个项目文件夹链接到第二个项目文件夹。
- 为文件创建符号链接窗户在,使用
mklink pathtosymboliclink pathtooriginalfile
- 创建文件夹的符号链接窗户在,使用
mklink /j "pathtosymboliclink" "pathtooriginalfolder"
- 为文件创建符号链接文件夹或Linux在,使用
ln -s "path/to/original/file_or_folder" "path/to/link"
- 为文件创建符号链接窗户在,使用
-
重新打开Android Studio。它可能会打开项目的原始副本,如果这是您在AS中打开的最后一个项目。
-
进入文件>打开,在PC上打开第二个项目副本。
你现在将有2个副本的项目运行,你将能够在2个设备上调试你的应用程序在同一时间!(请记住,断点不会在两个副本之间共享)
如果您正在谈论将调试器连接到几个电话,我将说不。该端口将被来自一个电话的流量阻塞。
除非有人想出一个黑客的方法来做到这一点,但是,据我所知,这是不可能的。
Android studio有它的虚拟机设备,但它需要安装英特尔加速器,因为它太慢了,直到它显示。另外,我推荐使用"Genymotion"来运行多个实例和不同的设备。我正在使用它,它工作得很好。
它可能需要一段时间来设置和安装,但一旦安装,它将是轻量级的,我保证你会很高兴,而工作=)
链接如下:Genymotion安装用户指南;genymotion网站