使用Android进行热插拔调试

pil*_*ipe 20 debugging android hotswap

1)在Android上启用热插拔调试是否需要特殊设置/配置?

示例案例:

  • 刚进入activity的onCreate方法后添加断点.
  • 在断点之后动态添加新行(虚拟"if(1 == 1)return;"代码)
  • 跳到下一条指令 - >问题:我的调试器没有在这一行中断,而是跳到下一步,让我相信新线路没有热交换到VM.

2)只有模拟器支持热插拔吗?是否还有支持它的手机?

hni*_*sen 21

每次构建Android项目时,它都会被定义并放入调试签名的apk中,该apk将发送到您的手机/模拟器.因此,hotswapping不是很容易做到的.

Hotswap是精心设计的JVM的产物,它可以交换类.在Android上,你有Dalvik VM,它目前不支持热交换.

我猜这个ADT团队在他们的名单上有这个高分.

编辑:尽管这个答案已经有2.5年了,但并没有太大变化.然而,ZeroTurnaround已经填补了空白,而JRebel for Android应该为我们提供了一个非常需要的热交换方法. http://zeroturnaround.com/software/jrebel-for-android/

EDIT2:随着Android Studio 2.0的发布,Instant Run可让您进行热插拔.热插拔即将在您的应用运行时更改课程.

他们还支持热插拔,这比使用应用程序搞乱时热插拔更多.热插拔仍会使您的应用运行.资源变化将触发热交换.

观看2015年Android Dev Summit的演讲,了解更多信息:https://www.youtube.com/watch?v = fs0eira2pRY


Gab*_*bor 8

Android Studio 2.0预览版引入了热插拔功能.你通过升级到:

        classpath group: 'com.android.tools.build', name: 'gradle', version: '2.0.0-alpha1'
Run Code Online (Sandbox Code Playgroud)

然后从菜单中进行设置:

在此输入图像描述


小智 5

模拟器本身不支持代码热插拔,但使用InstaReloader等额外工具可以实现所需的操作.您可以免费使用此Android热门工具

  • 那个项目怎么了? (3认同)