高手进阶必看|Cocos原生框架大揭秘

本周二在小伙伴们高涨的热情下,我们的主播 panda 继续带来 Cocos Creator 原生开发的续篇,揭开原生开发中的各种小秘密。在 panda 和子龙山人精彩讲解两小时(并拖堂半小时)后,终于把大家期待已久的内容全部讲完了!

c98a2ae44d844939f985fec0cbaabea8.jpeg

如此丰富的直播内容,错过岂不可惜?下面咱们回顾一下这次直播的精彩内容。

热更新范例和技术解读

由于热更新技术的需求异常火热,广大用户非常依赖这个功能,并且有很多人给引擎团队提出了各种疑问反馈和建议。所以直播中 panda 首先给大家讲解了热更新范例的正确使用姿势,并且详细解读了热更新技术的内部细节和适用场景。

1c74c1e560c4a11da6bdbd3ae2077e7e.jpeg
有了热更新,再也不担心更新迭代问题了。

其中需要重点和大家强调的是 Cocos Creator 中内置的热更新技术与传统的增量包更新技术并不同,我们的热更新更类似 Web 页面的更新策略,将本地资源和服务端资源进行完整对比,在运行时动态生成需要更新的资源列表并进行更新。由于文件更新的顺序是不保障的,所以这种更新策略并不适合使用增量包。

f8b0f070a0007258acdf0fd9e14ed1fa.gif

Cocos Creator 的原生框架

紧接着进入了当晚直播的正题,Cocos Creator 的原生框架与绑定技术。panda 首次披露了 Cocos Creator 原生框架,如何依赖绑定技术达成 JS 应用跨平台的能力,还详细讲解了 Cocos Creator 原生框架扩展的几种可能性及其兼容性。小伙伴们纷纷在评论区索要 ppt 想要收藏起来慢慢研习,不用担心,把这文章看完就会有链接啦。

edb446ed2bd41cb6e4246c09561321d7.jpeg

JSB 绑定技术

接下来主播更加深入主题,给大家讲解 JSB 绑定技术的原理,让直播的深度爆表。手把手教大家搭建自动绑定工具环境的过程中,听众纷纷感叹实在太复杂。听到大家的心声,我们也下定决心在未来简化自动绑定工具的使用。

3f88ca905fb0a1a2614f63e7caeb7bbd.gif

环境搭建完成后,panda 还详细讲解了自动绑定和手动绑定的关系,表示绝大多数 C++ API 都可以通过自动绑定工具完成绑定,仅有少数复杂 API 的绑定需要用户手动完成,不过本质上,两者是一致的,都是创建桥接函数将 C++ API 暴露到 JS 层。

2e20afdd47b92a2b041830acf0bce50a.jpeg

panda 主播更深入得讲解绑定函数的实现本质,C++ 和 JS 对象的互相转换,类对象的映射关系等概念,虽然时间略显仓促,不过相信认真的听众已经对 JSB 绑定有了初步的概念。

C++ 调用 JS 方法实例

最后阶段又掀起本场直播的高潮!!panda 现场实现了一段通过 C++ 调用 JS 的代码,并成功在 C++ 层改变了一个 JS 组件的属性。据主播介绍,这段代码的原理涉及 JS 引擎 Spidermonkey 和引擎 ScriptingCore 所提供的 API,大家可以在课后自己尝试更深入的了解。

ccdbba5b9b694f71c742c0bcc8dad7b8.jpeg

相关资源

直播精华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

你可能还喜欢的文章 点击图片即可阅读

8f4ba742321eb2088cb895b3294870a3.jpeg

为什么你的代码老是那么臃肿?

31645a7b52e8acb04571cfdade47987a.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值