06 | App 如何通过注入动态库的方式实现极速编译调试?

2020-07-06  本文已影响0人  X先生_未知数的X

https://juejin.im/post/5e3c3096518825495b298778

1.Swift Playground
可以实现所见即所得的效果
2.Flutter Hot Reload
Flutter 会在点击 reload 时去查看自上次编译以后改动过的代码,重新编译涉及到的代码库,还包括主库,以及主库的相关联库。所有这些重新编译过的库都会转换成内核文件发到 Dart VM 里,Dart VM 会重新加载新的内核文件,加载后会让 Flutter framework 触发所有的Widgets 和 Render Objects 进行重建、重布局、重绘。
Flutter 为了能够支持跨平台开发,使用了自研的 Dart 语言配合在 App 内集成 Dart VM 的方式运行 Flutter 程序。目前 Flutter 还没有达到 Cocoa 框架那样的普及程度,所以如果你不是使用 Flutter 来开发 iOS 程序的话,想要达到极速调试应该要怎么做呢?

3.Injection for Xcode
Injection 会监听源代码文件的变化,如果文件被改动了,Injection Server 就会执行 rebuildClass 重新进行编译、打包成动态库,也就是 .dylib 文件。编译、打包成动态库后使用 writeSting 方法通过 Socket 通知运行的 App。
我把Injection的工作原理用一张图表示了出来,如下所示:

image.png
上一篇下一篇

猜你喜欢

热点阅读