前言
目前我们工程采用的是Add-to-app的方式接入Flutter,这种方式就是以源码方式集成,对工程有一定侵入性,需要单独托管module工程,如果要实现持续集成还得依赖Flutter环境,进行改造会带来一定成本。但是它也有大大的好处,以module方式管理,开发过程会比较透明,能够使用亚秒级的热重载的能力,提升开发效率。
遇到问题
正常来说在原生工程嵌入Flutter,说明既包含Android相关的代码(Java或者Kotlin)又包含Dart的代码,那这里就会有个问题,怎么同时调试?
目前我们用的IDE是Android Studio,我们在开发的过程中就发现有这个问题,发现IDE引入Flutter插件之后就找不到Attach debugger to Android process:
会变成带Flutter的icon:
这就非常尴尬,没法做到同时调试Android代码和Dart代码。国外的开发者也同样遇到这个问题,我查到相关的issue:https://github.com/flutter/flutter-intellij/issues/4458
看issue大概知道把Attach Debugger这个按钮给隐藏掉了,后面会把它加回来。好家伙,要等到啥时候呢,不能Debug原生代码那就变得很鸡肋了啊。那有没有其他办法能帮助我们实现这个诉求呢,答案肯定是有的,下面就是解决方案。
解决方案
在我Google了一圈没找到好的办法,我在IDE搜了下快捷键,看能不能通过快捷键调出以前Debug的窗口,还真被我找到了解决办法:
漂亮,虽然按钮被隐藏掉了不可用,但可以设置快捷键来调出Debug窗口:
这样我们可以愉快的调试原生代码和Dart代码了。
最后
本篇是一个小技巧,在官方没更新插件解决这个问题之前,我们可以按照这种方式解决问题。本来以为这个问题没办法解决,后面还是多尝试了下,办法总比问题多,快捷键是个好东西,活用快捷键能够帮助我们提升编码效率。下一篇我会分享Flutter构建物分析,让大家更全面认识混编过程中需要注意的问题,怎么解决armeabi架构体系下的问题,可以期待一下。