上个月花时间把XAsset这套资源框架的代码看了一遍且写了一遍。XAsset官网:https://xasset.github.io/#/compare-plans。我看的是它的7.0体验版本,所以功能上并不完整,不过尽管如此还是学到了很多的东西。
XAsset框架的代码量很少,架构很清晰,我认为作为一个学习的目的来看这个框架是非常不错的选择(老实说在这之前我去看Addressable的代码,是没能看下去),它也让我对这一部分知识的理解有了提升,并且在此基础上我回头再次看了一遍项目中使用的框架,又有了新的理解。
在看的同时,我画了它的UML图,本想放出来,但是已经找不到扔哪去了。。。另外,我把它与项目中正使用的框架从加载和卸载两个方面进行了仔细的对比,写了份文章,然而项目代码是不能随便放的,所以也只能存在我的有道云笔记里。至于热更部分,由于XAsset我看的只是一个体验版本,不仅是个Demo并且没有经历过实际项目的打磨,没什么好比较的。
在对比过程中,我对我认为不够好的一些地方做了修改:
加载部分
主要是GC问题,在加载流程中所使用到的new对象的操作,我一律做了池化处理,主要是解决框架本身带来的GC问题,这个问题在项目中肯定是很严重的。
另外,我增加了直接加载AssetBu