微信小程序蓝牙开发教程带你探索物联网的便捷与魅力
192
2023-10-20
移动互联网爆发式增长到今天,社会整体数字化水平已经发生巨变。五年前大多数企业用小程序替代了运营成本高企的App,以“社交平台+小程序+营销展业+私域流量+服务客户”为基本策略;五年后的今天,多数企业也发展到需要“社交平台+小程序+营销展业+私域流量+存量用户+自营App服务客户”的阶段。
任何人、任何企业都追求以最低成本拥有自己的App、运行自己的小程序、经营自己的小程序中心。市场的需求催生着技术不断更新迭代,简单便捷的FinClip应运而生。
FinClip是与“微信小程序”、“百度小应用”等其他小程序开放平台具有类似属性的技术平台。它由能渲染与执行小程序的客户端引擎、统一管理小程序上下架的中心、支撑小程序服务做器端运行的云端设施、以及合规监管工具共同组成。
FinClip的技术核心是小程序安全运行沙箱,一个能嵌入至任何App中赋能其运行小程序的“容器”管理组件。以SDK的方式供App开发者嵌入,让自己的App秒变能运行小程序的超级App,然后开始按小程序的方式实现App里的功能,或者把已经开发好上架到互联网公共平台的小程序拿回来App中直接运行。
当前FinClip官方支持的自定义接口扩展方式,需要用所在宿主环境的原生技术实现,例如在iOS上需要用Objective-C或Swift开发,在Android上则是采用Java/Kotlin等。这个做法就需要起码两个平台的工程师分别开发 - 当然过去以来这也不是问题,任何手机端App都不得不维持两队人马搞两个版本。但是当你有更多类型的终端要支持的时候,就很麻烦了。
对于纯逻辑类、算法类的功能例如音视频编码的处理、加解密等等,完全没有人机交互的部分,采用一个跨平台的通用语言来实现,更加便利。但是我们又都不想去折腾C的代码,Rust是一个很好的选择。作为一种新兴的、内存安全、线程安全的语言,Rust可跨平台编译,高性能、体积小,尤其适合于设备端的编程,包括在低算力、低功耗、低内存的IoT设备上开发Heapless代码;并且,Rust已经是Android官方支持的系统语言。
FinClip支持开发者用Rust提供对其安全运行沙箱的自定义扩展。FinClip小程序的开发者无需懂得任何iOS/ObjC/Swift、Android/Java/Kotlin的技能知识,仅凭对HTML/JavaScript的掌握即可开发出有用的应用一样;FinClip SDK Extension的开发者,也无需了解太多操作系统平台的编程知识,甚至无需跟ObjC、Java打交道,即可开发出自己的扩展。
实际上是非常高效和简单的,没有什么特殊库或者协议需要去继承实现,用Rust开发一个FinClip SDK扩展的步骤便捷如下:
准备提供给FinClip小程序调用的函数,以JSON字符串为入参和出参。函数遵循fn(&String)->String的签名。这些函数多少个都行,叫什么名字也无妨,自由选择;
给上面这些函数造一个“花名册”,花名册的数据结构必须是以HashMap去存储“名字”->“函数指针”的映射关系,其中“名字”是你打算让外面的世界知道和使用的函数名(字符串),函数指针则是指向上述函数签名的类型;
产生“花名册”的函数,需要使用Rust FFI,也就是标记no_mangle,以及声明为unsafe。“花名册”的数据结构(HashMap),包在一个不透明指针(opaque pointer)里,丢出去给异构语言代码(也就是准备使用这个plugin的宿主)持有备用。这个返回“花名册”的函数,名称随意,你只需要在自己的说明文档里注明。
提供一个释放“花名册”数据结构内存的函数(函数名字随意),告诉宿主开发者是什么即可。
多语言混合编程的时代已经来临。现如今的开发语言多不胜数,不同的语言在端到端技术链路上适合于解决不同环节的问题,但也因集成、融合过程的繁琐与复杂,给企业和开发者带来不少的挑战。FinClip小程序技术和 Rust 语言的结合,为开发者提供了一个高效组合方案的示范,可以作为项目模板参照,把工具、环境快速配置好,更便利顺畅的进入应用功能开发。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。