bilibili视频:https://www.bilibili.com/video/BV1SW4y1a7dr/?spm_id_from=autoNext&vd_source=7b7d563864f61c9cee6d3ec1f675d0c0
官方文档:https://focus-creative-games.github.io/
demo:https://github.com/focus-creative-games/hybridclr_trial.git
demo运行的unity版本:2020.3.33f1

打开项目的init_local_il2cpp_data.sh文件,
第一步,将IL2CPP_BRANCH更改为指定的unity版本;
第二步,将IL2CPP_PATH指定为本地unity版本对应的il2cpp目录,这里将会用huatuo的il2cpp替换原unity的il2cpp;
第三步,执行init_local_il2cpp_data.sh脚本。

这样可以将工程导出成android工程,方便我们打debug包调试。



原demo中,默认是从asset目录读取,不方便我们修改,将其替换成cache目录,
对应的cache目录为:/storage/emulated/0/Android/data/com.Dev.HybridCLRTrial/cache

此时,我们会看到如下界面,因为对应的cache目录里面读不到内容

修改HotFix文件下的代码


然后再打出bundle包

生成的bundle在StreamingAssets目录下

将其push到对应的cache目录当中,重启App,可以看到生效了

再更改一下代码,重新push,重启,发现已经生效了。

adb 脚本
import() {
# rootImportPath="tobeimport/"
# cd $rootImportPath
transfer='/data/local/tmp/import/' #中转文件夹
adb shell rm -rf $transfer
adb shell mkdir $transfer
adb push build_info $transfer
adb push common $transfer
adb shell run-as com.Dev.HybridCLRTrial cp -ri $transfer* /storage/emulated/0/Android/data/com.Dev.HybridCLRTrial/cache/
}
import