当前位置: 首页 > 科技观察

Weex:满足万物互联的移动技术解决方案

时间:2023-03-12 03:04:27 科技观察

2016年8月26-27日,由.com主办的【WOT2016移动互联网技术峰会】在北京JW万豪酒店隆重举行。自2012年以来,WOT品牌大会秉承专注技术,服务技术人员的理念,已成功举办了11届。不仅积累了大量的专家资源,更得到了IT从业者和技术爱好者的认可和好评。技术共享和网络扩展的重要平台。在WOT2016移动互联网技术峰会上,淘宝移动平台基础平台部负责人吴志华分享了以《Weex:JS&Web能力拓展万物互联的探索》为主题的演讲,包括Weex项目的介绍、特点和开发经验,以及为什么阿里巴巴做了,Weex怎么做,背后的思考是基于行业趋势。会后,记者采访了吴总,吴总就Weex项目的发展和开源现状、产品的核心竞争力、存在的技术难点以及未来1年的发展目标等进行了阐述-2年。嘉宾简介吴志华(阿里昵称天石),阿里巴巴资深无线技术专家,淘宝移动平台基础平台部负责人,国内较早加入移动浪潮的老司机,参与架构和研发行业内众多超级应用的开发,2014年底加入阿里巴巴,目前负责阿里移动基础技术平台Weex项目、百川移动云的研发和建设。ArchsummitShenzhen2015移动主题优秀制作人,QConShanghai2016移动主题制作人。Weex项目发展现状Weex项目以Web形式开发NativeAPP,遵循Writeonce,runeverywhere的原则。它已经从一个技术项目变成了阿里内部的一个技术生态,由多个部门共同完成。吴总团队负责Weex内核,前端JSFramework,包括工具系统和底层V8引擎。Weex内核研发机制可以类比主流浏览器的内核机制。这是Weex与同类竞品的最大区别。因为同行没有做顶级浏览器的经验,可能无法保证内核的稳定性等等,而这个Weex和UC浏览器有很好的配合。除了前端JS&Web框架,他们团队成员还在做UI库,这是一个基于SUI的Weex版本NEXT,框架轻量级,会为部分商户提供企业级的解决方案。还有在移动端实现交互的能力,游戏、3D、VR的能力。基于这些方面,阿里巴巴初步形成了技术生态。从数据来看,当他们在4月21日宣布开源内测时,大量开发者涌入,两周内就有超过5000名开发者申请。.6月30日正式开源时,Weex登上了当天github热搜榜首,开源hack整周都在热搜榜单上。截至8.26,已达到5500多STAR。另外,从整个项目的外部PR来看,数据中的500个PR,有1/5来自于外部账号。开发者和项目组成员经常在issues中讨论技术需求,有的已经在公司业务中正式使用Weex并上线。这些都表明Weex的开源已经初步形成了一个健康的生态。Weex与开发者使用的同类工具相比的核心竞争力在谈到Weex项目与竞品特点的区别时,吴老师主要谈到了以下五点:***,他们坚持在互联网环境下中国,让相同的代码在三个终端(Android、iOS和H5)上有相同的运行体验,帮助创业者节省成本。第二,真正做到浏览器内核层面的稳定性和研发机制,最终实现收敛。三是实现高性能、持续稳定的运行保障机制。第四是在中文场景,Weex支持灵活的嵌入方式。可以是一个页面,可以构建一个APP,也可以成为内核APP的界面。Weex团队坚信,在国内,如果先完成页面,再完成整个APP,对开发者的工程体系和新框架的影响很大,这也是他们最大的优势。最后一点,阿里巴巴是全球最大的将移动客户端动态技术应用于复杂业务场景的公司。无论是手机淘宝运营商还是团购APP,都处于业务逐渐微化的阶段。今年,移动淘宝和天猫的大促场馆基本都由Weex承办。经过半年的实践,不断尝试和扩大应用范围和复杂度,Weex项目组在大规模、复杂的应用场景中探索并解决了一系列技术难题,发现了很多尚未发现的同类竞品并解决了。问题。阿里淘宝双十一大促,面对瞬时流量、网络拥堵和商家需求,尤其是在发展移动购物行为的过程中,如何更好地满足用户的购物体验?吴总说,双十一是一件大事。从大的角度来看,这两年比较关注的是异地多机房的多活动,即如何从一个机房切换到另一个机房。比如2015年吴老师主持的阿里巴巴统一网络接入ACCS项目,从技术层面分为几个方面:第一个是部署层面的容灾和异地多活。对于事务的单元化和非事务服务的容灾,防止极端情况的发生。二是支持支持亿级设备接入的网络统一接入层,对突发流量设置防刷限流机制,防止流量被转发和恶意请求。三是客户端灵活的请求策略和云端的综合管控能力。在极端情况下,可以控制客户端请求的频率和策略,在尽可能保证高优先级请求的情况下进行灵活处理。还有移动购物。今年他们尝试了很多。目的是通过全新的互动形式让大家有不一样的互动购物体验,拉近人与人之间的距离。可以看到主播展示商品,与大家互动,内部实现了很多技术,保证用户流畅的购物体验。具体涉及的技术有:1.保证购物过程的性能和稳定性。相关指标包括从启动到首页渲染完成的时间分配比例、崩溃率、页面打开耗时、内存和帧率。2、网络传输1秒规则,请求成功率持续优化,确保网络传输可靠。3、H5、Weex秒提供用户体验,提升速度。4、多媒体、直播等内容升级,buy+等创新探索,为用户带来不一样的购物体验。5.***淘宝讲的更多的是社区化和内容化,让消费者在购物的同时可以做出更多元化的购物决策。团队遇到的重要技术更新和技术难点在Weex项目开发过程中,Weex项目遇到的重要技术更新包括:1.性能的迭代优化。一年持续性能迭代,纬度细化到启动、首屏渲染、滚动帧率、内存和增量、CPU峰值/平均/安静,针对Android/iOS低/中/高不同机型端机多次迭代优化性能,确保即使在低端安卓设备上也能获得接近原生的体验。2、前端语法的不断迭代。语法糖和能力更丰富,开发者更方便,新增支持inlineevent、基于WebPack的loader机制、computedproperty、repeat语法扩展等。3.页面级导航方案。通过WeexNavigator组件,支持大型线上活动之间的跳转;通过TabBar,提升了页面切换体验。4、调试工具Devtool:通过ChromeDevtool直接调试WeexAndroid/iOS代码,支持Element(BoxModel/NativeView)、Consolelog、Network、ScreenCast;支持多设备多app同时调试,支持JS代码断点调试。同时,吴老师详细分享了其中一项重要的技术方案:页面级导航方案的初步选择:在单页多视图导航和多页导航之间,项目组选择优先多页面导航,更符合大型应用场景,降低页面间的耦合度,提高整体稳定性。技术方案包括:1.Navigationcontroller(1)NavigationBar:栈式导航,支持push/pop,可自定义NavigationBar样式。(2)TabBar:引入embed组件,支持内嵌多级Weex容器实例(以下简称实例),实现前端可自定义的TabBar组件,实例之间可以相互通信;TabBar高度可定制,多级标签页对应的源文件分离,可按需加载。2.应用生命周期(1)从页面来看,基本可以分为几个关键时间节点:init、ready、viewappear、viewdisappear和destroy。(2)从应用的角度来说,还会集成前后台相关的前后台,以及内存相关的memoryWarning等,需要将上面的注册接口暴露给前端,以供前端使用必要的操作。3.数据通信(1)通过消息分发建立消息监控模式。优点是隔离性更好,不需要关注对象的上下文,更适合多级页面之间的通信。(2)建立实例之间的上下文关系,适用于嵌入式实例场景。Weex项目最大的技术难点在于大规模复杂场景下性能和稳定性的保障,三端体验一致的保障机制,尤其是Weex在双十一场景下的稳定性。这其实是一个复杂的系统工程问题,从V8/JSCore引擎的优化,从native层的性能优化,到上层JSFrm框架的性能和易用性,支持CI和自动化测试机制。项目组希望建立类似Webkit内核的性能稳定性保障机制,一种保证三端体验一致的机制(渲染排版体验一致,提供图形自动比对能力),支持Profile、Lint、内存泄漏前端框架的排错工具,在Weex建立了自动化的平台研发保障机制。只有这样才能保证Weex能够像WebKit一样源源不断地交付稳定可靠的版本。这也是Weex和竞品在理念上的很大区别,可以更稳定。未来1-2年Weex项目的发展目标Weex项目的发展目标分为内部和外部两个方面。一个基本的内部目标是在八月至十二月实现阿里巴巴移动业务的Weexization。希望Weex的能力不局限于手机端,也可以扩展到万物互联的多种设备。从外部来看,Weex能否成为业界开发者认可的真正值得信赖的移动跨平台解决方案,也是一个不小的挑战。实现过程是将以往前端优秀的基础能力和工程体系全面继承到移动端,将整套解决方案开源给行业,与行业开发者一起搭建,跟踪过渡到行业,最终将Weex打造成每个人万物互联设备的可信技术解决方案。