加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

Android 整体设计及背后意义

发布时间:2019-03-25 13:36:21 所属栏目:评测 来源:所为
导读:副标题#e# 现实工作中经常可以听到这样的说法:框架的升级带来协议性能的提升、编程模式的变革带来业务的飞跃...... 姑且不论这些表述是否有问题,实际上如果系统地看待事物整体,可能会有不一样的发现。以LINUX为例,尽管其内核大获成功,但如果不是遵循PO

当然,历史上其他公司面临这类挑战时也有不一样的想法,例如Windows Phone 8.0选择了另外一条路,无论是提供媲美JAVA的C#及VB.NET框架、还是基于Sliverlight Dependency Property + XAML的UI系统、甚至是为了支持C++研发出来的C++/CX及一套运行时,都仿佛无时无刻标榜着其系统技术的多样化与复杂性,算得上是一场技术盛宴。

Meego则是另外一个例子,被期待救Nokia于危难,并由Intel联袂推出,通过各种开源能力的组合来完成系统的建设,如Linux内核+QEMU模拟器+QT+QML界面,但实际上昙花一现。

1.3 应用的基础-接口层

系统能力基本就绪,如何迎来更多开发者对Android长远发展至关重要。选择JAVA作为上层语言,既需要勇气又足够彰显其野心;为迎合资源受限这一移动领域过去、现在也是未来的最大客观事实,其设计了基于寄存器架构、可执行文件更小的Dalvik虚拟机,并通过净室工程来高质量实现,同时结合诸多工具对外提供了流畅的JAVA编程方式,摆脱类似MTK feature phone只能用KJava写些小游戏的局限,使得Android研发兼具JAVA的便利和不错的性能。

天有不测风云,SUN在09年4月被Oracle收购,距离Android 1.0发布还不到一年。虽然最初选择Apache Harmony来提供JAVA API十分明智,但却遭遇到技术上不支持JAVA 7/8、版权上Oracle诉讼纷至沓来等诸多挑战。为应对这一切,Google从Android N开始,将JAVA的支持变更为OpenJDK。另外,Kotlin因为特性相近、又可被编译为class或者dx字节码,也获得了Google青睐和收编(图6)。

Android 整体设计及背后意义

图6. Android接口层的过去和未来

实际上,之所以Android敢这么做,还是因为有其设计基础的支撑,根据个人的一点粗鄙了解,从Android API的调用链路(图7)上能发现端倪:无论底层依赖、实现和流程如何变化,上层的使用形式并不会改变。

Android 整体设计及背后意义

图7. Android内部对调用链路的3种实现

这意味着几乎所有系统能力的核心,已在native library被实现殆尽,并结合上层提供良好屏蔽。这为其他语言实现Framework提供了可能,尤其是一门特性与JAVA相近的语言。所以是什么语言、是不是kotlin都只事先设计规范下的一种合适的选择。

Android 整体设计及背后意义

图8. 一种未来用kotlin代替java的极端可能

2. 对于我们的象征意义和实践

综上所述,Android从三个方面来解决其发展的关键问题:

  • 硬件驱动:形成厂商的合作基础,并反过来对整个产业施加影响。
  • 组件化:高效组织各种内部能力,寻求自身的更快发展。
  • 接口层:满足上层对系统和硬件能力的各种使用诉求。

移动互联网产业巨头发展因为起点以及执行理念不同而有所不同,Apple围绕着其App Store构建其整个体系并精心维护,而且在现代化API编程、整机体验、垂直领域技术如网络/算法等各纵深领域走在前列;Google则用Android带路,需要在各个层面维护和团结不同力量来形成自己的发展特色。所以,Android为系统如何发展提供了另外一种答案:除关注系统自身能力的发展,如何维护好系统不断发展的基础和前提、如何更好地暴露和让外界使用系统能力也至关重要(见图九)。

Android 整体设计及背后意义

图9. Android设计对解决问题的启示

回到我们自身,在重用户、重交互、手机即人的今天,我们的产品有理由也有必要用其内涵延展并放大服务的价值。要做到这一点并非易事。首先,业务迭代越来越快,各种应用层出不穷对中间件意味着广泛的需求;其次,环境在改变,无论是运行硬件和设备的五花八门、还是对接集群的复杂多样,都对阿里原有端侧中间件带来巨大冲击;再次,在基础技术发展变缓的今天,技术的价值需要被持续放大,我们希望基于自身能力来构建服务和业务的泛连接基础,并将其作为发展愿景。这要求我们基于集团背景以及核心APP发展的主要目标下,来综合思考这个发展问题(图10)。

Android 整体设计及背后意义

图10. 对泛连接能力建设的思考

通过Android的启发,结合环境和现状,在满足业务目标的同时我们从三个层面不断演进网络能力(图11)。

  • 首先,通过覆盖线上线下、各类场景、形态各异的设备,不断打造高效私有、支持通用标准的协议,并提供部分其他端侧网络不能或者及其难以提供的特殊能力,,来帮助我们构建设备和服务、用户与业务的泛连接基础。
  • 其次,自底向上地抽象,将非阻塞的IO复用、用户态网络栈支持、通道能力扩展以及可支持混合集群的多实例架构进行高效组织,从而保障了数据在不通层面的流转和管理诉求。
  • 最后,基于SDK矩阵和接入能力的建设,我们实现了服务接入到业务、业务透出给用户的目的,并通过提供丰富的数据带来更多价值。
Android 整体设计及背后意义

图11. 泛连接能力的系统性建设

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读