本周二在小伙伴们高涨的热情下,我们的主播 panda 继续带来 Cocos Creator 原生开发的续篇,揭开原生开发中的各种小秘密。在 panda 和子龙山人精彩讲解两小时(并拖堂半小时)后,终于把大家期待已久的内容全部讲完了!
如此丰富的直播内容,错过岂不可惜?下面咱们回顾一下这次直播的精彩内容。
热更新范例和技术解读
由于热更新技术的需求异常火热,广大用户非常依赖这个功能,并且有很多人给引擎团队提出了各种疑问反馈和建议。所以直播中 panda 首先给大家讲解了热更新范例的正确使用姿势,并且详细解读了热更新技术的内部细节和适用场景。
有了热更新,再也不担心更新迭代问题了。
其中需要重点和大家强调的是 Cocos Creator 中内置的热更新技术与传统的增量包更新技术并不同,我们的热更新更类似 Web 页面的更新策略,将本地资源和服务端资源进行完整对比,在运行时动态生成需要更新的资源列表并进行更新。由于文件更新的顺序是不保障的,所以这种更新策略并不适合使用增量包。
Cocos Creator 的原生框架
紧接着进入了当晚直播的正题,Cocos Creator 的原生框架与绑定技术。panda 首次披露了 Cocos Creator 原生框架,如何依赖绑定技术达成 JS 应用跨平台的能力,还详细讲解了 Cocos Creator 原生框架扩展的几种可能性及其兼容性。小伙伴们纷纷在评论区索要 ppt 想要收藏起来慢慢研习,不用担心,把这文章看完就会有链接啦。
JSB 绑定技术
接下来主播更加深入主题,给大家讲解 JSB 绑定技术的原理,让直播的深度爆表。手把手教大家搭建自动绑定工具环境的过程中,听众纷纷感叹实在太复杂。听到大家的心声,我们也下定决心在未来简化自动绑定工具的使用。
环境搭建完成后,panda 还详细讲解了自动绑定和手动绑定的关系,表示绝大多数 C++ API 都可以通过自动绑定工具完成绑定,仅有少数复杂 API 的绑定需要用户手动完成,不过本质上,两者是一致的,都是创建桥接函数将 C++ API 暴露到 JS 层。
panda 主播更深入得讲解绑定函数的实现本质,C++ 和 JS 对象的互相转换,类对象的映射关系等概念,虽然时间略显仓促,不过相信认真的听众已经对 JSB 绑定有了初步的概念。
C++ 调用 JS 方法实例
最后阶段又掀起本场直播的高潮!!panda 现场实现了一段通过 C++ 调用 JS 的代码,并成功在 C++ 层改变了一个 JS 组件的属性。据主播介绍,这段代码的原理涉及 JS 引擎 Spidermonkey 和引擎 ScriptingCore 所提供的 API,大家可以在课后自己尝试更深入的了解。
相关资源
直播精华PPT:
https://github.com/pandamicro/CocosLiveKeynotes/blob/master/2016_11_15_Creator_Native_Architecture.pdf
Cocos2d 的绑定技术:
https://zhuanlan.zhihu.com/p/20525026
Cocos Creator 的自动绑定:
https://zhuanlan.zhihu.com/p/20525109
Spidermonkey API:
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/JSAPI_reference
ScriptingCore API:
http://cocos2d-x.org/docs/api-ref/cplusplus/v3x/dc/da6/class_scripting_core.html
你可能还喜欢的文章 点击图片即可阅读