阿里开源了14个核心技术,你了解哪些?- http://www.sohu.com/a/213256821_629652
阿里公开Weex技术架构,还开源了一大波组件- http://www.sohu.com/a/219059803_629652
客户端的容器化架构、移动网络管道架构、云服务架构和数据架构.
在业界,移动容器化解决方案Atlas和高效的跨平台移动开发模式Weex、移动网络接入服务ACCS一起,并称阿里移动技术三驾马车。
> 跨平台移动开发模式Weex- http://alibaba.github.io/weex/
是针对动态编程和发布项目的一个可扩展、跨平台的解决方案。对于移动开发者来说,Weex主要解决了频繁发版和多端研发两大痛点,同时解决了前端语言性能差和显示效果受限的问题。支持iOS、安卓、YunOS及Web等多端部署.与现有的开源跨平台移动开放项目如Facebook的React Native和微软的Cordova相比,Weex更加轻量,体积小巧。
https://github.com/cyforever123/weex-hongkong
H5的同学肯定会被它的简单高效、发布即更新、一条URL可适配多端等这些快所吸引;
Native 的富交互、性能体验、可调用原生能力、可管理内存等特性给我们的业务带来更好的体验。
Weex Ui 的开源地址- https://github.com/alibaba/weex-ui
业界也有Cordova、Ionic、Meteor这些成熟的方案。我们在Weex的上下层和手淘、天猫一起设计出一套统一的Api设计,包括接口请求、数据埋点、路由跳转、网络状态、支付功能、导航栏定制等这一系列的通用服务,在 Weex 上面我们封装了Weex Ui组件库、业务组件库、UPX搭建营销模块、还有抹平多端差异的
Util 函数库,这样在我们上层可以长出我们众多的业务。
移动开发的复杂度=应用数量×平台数量×要适配的各种各样的机型。
> 移动容器化解决方案atlas- https://github.com/alibaba/atlas
Atlas是一个Android客户端容器化框架,主要提供了组件化、动态性、解耦化的支持。
阿里Atlas组件框架的AtlasDemo使用- https://github.com/eatdefecat/AtlasDemo
Atlas 由阿里巴巴移动团队自研,以容器化思路解决大规模团队协作问题,实现并行开发、快速迭代和动态部署,适用于 Android 4.x 以上系统版本的大小型 App 开发。
Atlas 特别适用于大规模团队的协同开发。通过提供组件化、动态性、解耦化的支持,Atlas 能够实现每个业务在开发阶段独立编译、独立调试、独立运行,最后再以一个组件的形式集成到客户端中,每个业务之间并行开发互不影响。此外,还具备客户端动态发版和快速修复的能力。
与业内的一些组件化框架方案对比,Atlas 的优势是遵循安卓系统的设计规范,保持 Android 开发人员的开发习惯,通过反射和轻量的 hook 方案来实现模块的组件化,从而减少适配成本,并将大量的工作放到了编译期,提高稳定性。
Atlas只是在Android和Java的基础之上设计了两层的Classloader,通过自己定义的Classloader的加载规则来实现对于整个宿主的隔离,从这个意义上讲是比较简单的。
Atlas开源,阿里成为中国开源关键先生- https://baijiahao.baidu.com/s?id=1561837834680340&wfr=spider&for=pc
教你接入阿里的Atlas组件化框架- https://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA%3D%3D&mid=2247489389&idx=1&sn=61d8d3e51b3395b777491fe36fe5bfe6
Beehive是一个运行时框架,主要解决依赖耦合和工程耦合 iOS框架- https://github.com/alibaba/BeeHive
云栖大会上宣布即将开源的手淘Atlas什么来头?- http://www.cnblogs.com/alibaichuan/p/5977305.html
atlas容器化框架,我们也叫动态组件化(Dynamic Bundle)框架。它主要提供了解耦化、组件化、动态性的支持.与外界某些插件框架不同的是,atlas是一个组件框架,atlas不是一个多进程的框架,他主要完成的就是在运行环境中按需地去完成各个bundle的安装,加载类和资源。Atlas首先要解决的问题是大规模团队的协作问题,诉求包括并行开发、快速迭代、工程解耦,然后解决的问题是客户端动态更新的问题。手淘内部思考的解决方案就是组件化。
对于解决组件依赖问题,定义了两种新的组件格式Awb(业务Bundle)和solib(so库),前者与AAR一致,不过不添加本地lib,在构建的时候做依赖仲裁区分,后者是Native so库的依赖。Awb其实就是AAR,只是后缀修改了,如果你的包放在宿主Bundle就用AAR,如果是组件Bundle就用Awb。
Atlas的设计思路和手淘对容器化、组件化和动态化上的思考.Atlas是一个Android客户端容器化框架,主要提供了组件化、动态性、解耦化的支持。支持工程师在工程编码期、Apk运行期以及后续运维修复期的各种问题。
1.在工程期,实现工程独立开发,调试的功能,工程模块独立。
2.在运行期,实现完整的组件生命周期的映射,类隔离等机制。
3.在运维期,提供快速增量的更新修复能力,快速升级。
一方面代码量快速上升导致方法过多,限制打包的正常输出;另一个方面各业务线的开发和集成都需要到一个 apk上,业务间相互耦合严重,集成开发工作效率低下,这个大背景下,急需要做一次从构建,集成,交付的技术改造, 于是Atlas作为手淘运行的容器诞生了,它灵活的解决了各个业务开发期间的相互独立解耦,而且提供了各个模块线上独立动态能力。
-- Atlas的整体设计,分为五层:
第一层我们称之为Hack层,包括OS Hack toolkit & verifier,这里我们对系统能力做一些扩展,然后做一些安全校验。
第二层是Bundle Framework,就是我们的容器基础框架,提供Bundle管理、加载、生命周期、安全等一些最基本的能力。
第三层是运行期管理层,包括清单,我们会把所有的Bundle和它们的能力列在一个清单上,在调用时方便查找;另外是版本管理,会对所有Bundle的版本进行管理;再就是代理,这里就是和业界一些插件化框架机制类似的地方,我们会代理系统的运行环境,让Bundle运行在我们的容器框架上;然后还有调试和监控工具,是为了方便工程期开发调试。
第四层是业务层了,这里我们向业务方暴露了一些接口,如框架生命周期、配置文件、工具库等等。
第五层,最上面一层是应用接入层,就是我们的业务代码了。
> 移动网络接入服务ACCS(阿里云通道服务)
阿里无线11.11:手机淘宝移动端接入网关基础架构演进之路- http://www.infoq.com/cn/articles/taobao-mobile-terminal-access-gateway-infrastructure/
“ 双工、低延时、安全、开放”。
移动网络优化是超级App永恒的话题,对于无线电商来说更为重要,网络请求体验跟用户的购买行为息息相关.
异地多活是一个多机房的整体方案,在多个地区同时存在对等的多个机房,以用户维度划分,多机房共同承担全量用户的流量;在单个机房发生故障时,故障机房的流量可以快速的被迁引到可用机房,减少故障的恢复时间。
想做一个通用的网络库,这个网络库包含策略、httpDNS、SPDY协议等一切系统网络优化需要的方方面面。上层api网关请求逻辑、推送逻辑、上传下载逻辑对于这样一个通用网络库来说都是业务。在分层上将通用网络库和上层应用逻辑分开、彻底解耦,对长期持续优化网络是很有必要。
ACCS、网关架构优化、异地多活、弱网优化和抗抖动、加密传输1S钟法则.
-- 在GitHub上拥有超过一万Star、在阿里内部落地超过400个项目的React 组件库 antd在蚂蚁金服的实践;MariaDB基金会唯一的中国成员详解AliSQL功能特性;已在天猫、喵师傅,天猫家装等App中应用大型iOS项目解耦方法——BeeHive;Android平台页面路由框架ARouter的一手开发经验;开源的 Android 平台上的秒级编译方案、阿里巴巴 Github 下排行前十的开源项目Freeline背后的奥秘;Jstorm在阿里内部的使用场景、版本/功能演进,以及一些开发、部署、运维上的最佳实践;Apache RocketMQ背后的设计思路、典型场景、最佳实践以及社区运营与商业化之路;以及如何发展和探索像WeeX这样的开源项目。