1)在Android上启用热插拔调试是否需要特殊的设置/配置?
示例案例:
2)只有模拟器支持热插拔吗?是否还有支持它的手机?
答案 0 :(得分:21)
每次构建Android项目时,它都是dexed并放入调试签名的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
答案 1 :(得分:8)
Android Studio 2.0预览版推出了热插拔功能。您可以通过升级到:
来获得它 classpath group: 'com.android.tools.build', name: 'gradle', version: '2.0.0-alpha1'
然后从菜单中设置:
答案 2 :(得分:5)
模拟器本身不支持代码热插拔,但使用InstaReloader等其他工具可以实现所需的操作。您可以免费使用此Android hotswapping tool
答案 3 :(得分:2)
并非真正热插拔,但Github上有一个模拟它的库。您可以在此处找到它:https://github.com/mmin18/LayoutCast
它有一些问题,但在撰写本答案时仍处于活跃状态。
此外,ZeroTurnaround似乎正在解决JRebel for Android的问题。您可以在此处请求访问权限:http://zeroturnaround.com/software/jrebel-for-android/