magicbaby810 / HotfixFlutter

使用Tinker或Sophix实现Flutter热更新,兼容flutterboost
400 stars 51 forks source link

大佬好,插桩库是否有开源地址? #2

Closed timelove closed 4 years ago

timelove commented 4 years ago

项目内部 gradle 不兼容

magicbaby810 commented 4 years ago

暂时不打算把插桩库开源。其实很简单啊,就是扫描到flutterboost这个类在createEngine();里插代码就行了。你们有同事会的话,自己实现下,两三下就搞定了

timelove commented 4 years ago

好的,没开源就算了,我自己再研究,研究,第一次在这种方式下接触插桩方式,感觉很棒,项目中很多理念我可以具体实现。热更新的话其实,我也可以通过给 Flutterboost 加接口类实现。感谢大佬分享!

magicbaby810 commented 4 years ago

好的,没开源就算了,我自己再研究,研究,第一次在这种方式下接触插桩方式,感觉很棒,项目中很多理念我可以具体实现。热更新的话其实,我也可以通过给 Flutterboost 加接口类实现。感谢大佬分享!

不兼容的gradle版本是多少?

timelove commented 4 years ago

classpath 'com.android.tools.build:gradle:3.1.0' distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip 项目是老项目,然后 flutter 混合,比较老的版本

magicbaby810 commented 4 years ago

classpath 'com.android.tools.build:gradle:3.1.0' distributionUrl=https://services.gradle.org/distributions/gradle-4.5-all.zip 项目是老项目,然后 flutter 混合,比较老的版本

不兼容是因为你flutter sdk里flutter.gradle的版本就高啊,不能降flutter版本,只能升级你的老版本啊

timelove commented 4 years ago

老项目还是比较复杂,升级需要做一堆兼容,所以暂时无法升级。 请教下一个插桩问题: 网上教程很多都是插入插桩库里面编译好的方法,怎么可以像你这种方式,插入插桩库外部代码。 在 flutterPatch 中定义好 hook,然后插桩库自动去找到这个方法,并插入 FlutterBoost下的 createEngine 中?

magicbaby810 commented 4 years ago

老项目还是比较复杂,升级需要做一堆兼容,所以暂时无法升级。 请教下一个插桩问题: 网上教程很多都是插入插桩库里面编译好的方法,怎么可以像你这种方式,插入插桩库外部代码。 在 flutterPatch 中定义好 hook,然后插桩库自动去找到这个方法,并插入 FlutterBoost下的 createEngine 中?

对,就是用MethodVisitor找到createengine方法里的FlutterMain.startInitialization(mPlatform.getApplication());这行,在这行之后把hook方法插进去就行了

javaerwjy commented 4 years ago

你好,我想在生产环境使用,方便加个微信咨询一下吗?我的微信是wjy5564

timelove commented 4 years ago

你可以问下作者,生成环境和你测试环境一样的啊。