当前位置: 首页 > news >正文

网站首页布局设计原理重庆建设工程信息网网站

网站首页布局设计原理,重庆建设工程信息网网站,深圳网站建设费用多少钱,如何制作网页链接目录 1. Android设计的现实意义 1.1 发展的前提#xff1a;硬件抽象 1.2 能力的枢纽#xff1a;组件化 1.3 应用的基础-接口层 2. 对于我们的象征意义和实践 3. 小结 阿里妹导读#xff1a;现实工作中经常可以听到这样的说法#xff1a;框架的升级带来协议性能的提升…目录 1. Android设计的现实意义 1.1 发展的前提硬件抽象 1.2 能力的枢纽组件化 1.3 应用的基础-接口层 2. 对于我们的象征意义和实践 3. 小结 阿里妹导读现实工作中经常可以听到这样的说法框架的升级带来协议性能的提升、编程模式的变革带来业务的飞跃...... 姑且不论这些表述是否有问题实际上如果系统地看待事物整体可能会有不一样的发现。以LINUX为例尽管其内核大获成功但如果不是遵循POSIX、并成为一个开源、精简的UNIX实现很难想象其最终会有何种发展。因此对事物进行全局和一定深入的探究有时会有更多启发。 今天阿里高级无线开发专家所为将结合自己多年的经验为你深入阐述整个 Android 技术域及移动研发生态期待与大家共同探讨。 1. Android设计的现实意义 架构的工程意义在于定义并解决一类问题为需求到实现的平稳过渡提供保障。传统意义的Android架构图1已被人熟知但不同角色的视角不同例如认为Runtime和框架是其核心、或者将Android看做是一种特异性JVM平台、还有从嵌入式出发将其看做是Linux…… 实际上Android是极少数几个用设计来解决自身发展问题的系统其核心在于通过硬件抽象、组件化、接口层三种能力来为发展提供基础并为诸多变数预留大量可操作、斡旋的空间。 图1. Android传统架构 1.1 发展的前提硬件抽象 2008年我国迈入3G时代前夜基础设施的变革让移动领域充满变数无论设备、硬件还是软件都均未定型。擅长架构和软件的Google在这一领域要获得生存和长足发展需要团结一切可能的、甚至是未知的力量取得移动运营商、芯片供应商、手机制造商的支持则是生存的第一步。 硬件抽象层HAL在一定程度上起到这样的目的它为移动领域五花八门、标准不统一的硬件驱动定义标准接口避免Android过分依赖Linux让后续的扩展和整机集成更加高效满足了手机制造商的重要诉求同时还起到隔离Linux内核的作用避免厂商充满硬件秘密的驱动源码受GPL协议影响而开源保障了芯片等硬件制造商的核心利益。传统手机OS的定制和集成流程需要修改大量代码负担不少从这个角度来看Android HAL其设计是领先的。结合AOSP优良的代码分支、模块管理加上基于GNU automake巨集形成的Android build system厂商享受到超越以往的便捷。 然而HAL并无固定做法如图2所示Android 8.0之前最初大量采用HAL旧版方式表现为framework直接加载*.so并依赖主要集中在网络、蓝牙等模块旧版方式导致framework与具体驱动接口耦合过紧后来形成HAL传统方式即提供一定规范和接口进行改进从而减少直接耦合但每次厂商支持新版Android依旧有大量改动和适配为更有效地解决这一问题Android 8.0开启Treble项目从此芯片厂商能通过基于Binder的HIDL提供稳定接口制造商则可不受芯片厂商影响而直接更新Framework甚至获得无需重新编译HAL即可OTA的能力。 图2. Android对硬件驱动的设计 受益于HAL这一设计Google在全球获得更广泛的支撑尤其是Android 8.0在国内厂商的迅速适配可见一斑。HAL为Android设备量的持续增长提供了基础并促进有实力的厂商向设备上层及基础设施两个领域纵深发展图3体现在掌握核心技术的厂商如高通、华为、MTK通过不断建设系统能力来强化竞争力支持5G标准、硬件能力、软硬结合以及系统能力的深度定制等而具备渠道和资源整合优势的手机制造商华为、OPPO、小米、VIVO等则立足OS持续构建更高效的应用来拓展版图UI、推送、商店、轻应用等这都体现出Android HAL对整个产业的凝聚和影响间接弥补Android自身的诸多不足。 图3. 具备核心竞争力的厂商的发展趋势 1.2 能力的枢纽组件化 对能力进行如何组织和复用是架构的最大挑战借鉴现有能力是发展的捷径。无论是Mircosoft的COM还是OMG的CORBA或是从EJB到Spring、从SOA到Serverless随着基础设施如网络、终端设备的能力提升这些技术的发展呈现出从重量到轻量、从对中心(总线)的重度依赖到轻量级依赖的趋势。Android充分结合各领域先进技术并基于移动端资源受限这一最大特色形成了自身的技术特色AIDL衍生自复杂的CORBA IDL组件由SOA精简而来各独立生老病死的System Service类似一个个微服务Binder可以看做是对一种弱化总线、性能更好、可点对点通信的DBUSUI布局系统则极大程度受到SWING的影响、manifest实际上就是APP与系统通信所必须的组件接口描述文件...... 上面提到的领域技术的确有利于Android发展但远远不够。回想之前谈到的HAL以及整体架构我们看到Android实际上就是个大杂烩使用的是诸多技术的混合。过去除Palm等Web OS外无论是基于Linux/Unix构建的系统如Meego还是Symbian、MTK、UCOS、WindowsCE无论是实时系统还是非实时系统这些移动端系统都以C/C为主且小巧精悍对内存使用和要求极为考究虽然满足了资源受限设备的使用诉求但带来了门槛虚拟机类的平台如KJava、.NET on Windows Phone虽然内存使用和能耗方面比较大方却胜在研发效率和容错性因而受到不少开发者欢迎。 所以选择混合架构对于缺乏完整移动领域产业链支撑的Google既符合其自身技术理念、又胜算最大于是量身定制的组件化能力便肩负起这一使命使得各组件得到有机组合、应用之间以及应用和系统的沟通更为明确和有约束最终帮助整个系统灵活运转能力被迅速放大。 观察Android系统的启动运行流程图4以及APP对系统能力的使用图5可以发现其各类能力已按照组件化标准和粒度进行组织能力的注册发现、接口和通信的标准化、运行空间的隔离等让快速迭代的手机硬件和持续升级的系统能力以最小代价透出将复用的价值在移动设备系统上具体化并最大化从而具备更高的灵活性和兼容性其背后软件工程的意义在于为软件需求、设计之间架起一座桥梁解决了系统结构和研发需求向实现平坦过渡的问题。 图4. Android系统进程架构概要 图5. 使用设备能力的典型调用路径 当然历史上其他公司面临这类挑战时也有不一样的想法例如Windows Phone 8.0选择了另外一条路无论是提供媲美JAVA的C#及VB.NET框架、还是基于Sliverlight Dependency Property XAML的UI系统、甚至是为了支持C研发出来的C/CX及一套运行时都仿佛无时无刻标榜着其系统技术的多样化与复杂性算得上是一场技术盛宴。 Meego则是另外一个例子被期待救Nokia于危难并由Intel联袂推出通过各种开源能力的组合来完成系统的建设如Linux内核QEMU模拟器QTQML界面但实际上昙花一现。 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。 图6. Android接口层的过去和未来 实际上之所以Android敢这么做还是因为有其设计基础的支撑根据个人的一点粗鄙了解从Android API的调用链路图7上能发现端倪无论底层依赖、实现和流程如何变化上层的使用形式并不会改变。 图7. Android内部对调用链路的3种实现 这意味着几乎所有系统能力的核心已在native library被实现殆尽并结合上层提供良好屏蔽。这为其他语言实现Framework提供了可能尤其是一门特性与JAVA相近的语言。所以是什么语言、是不是kotlin都只事先设计规范下的一种合适的选择。 图8. 一种未来用kotlin代替java的极端可能 2. 对于我们的象征意义和实践 综上所述Android从三个方面来解决其发展的关键问题 硬件驱动形成厂商的合作基础并反过来对整个产业施加影响。 组件化高效组织各种内部能力寻求自身的更快发展。 接口层满足上层对系统和硬件能力的各种使用诉求。 移动互联网产业巨头发展因为起点以及执行理念不同而有所不同Apple围绕着其App Store构建其整个体系并精心维护而且在现代化API编程、整机体验、垂直领域技术如网络/算法等各纵深领域走在前列Google则用Android带路需要在各个层面维护和团结不同力量来形成自己的发展特色。所以Android为系统如何发展提供了另外一种答案除关注系统自身能力的发展如何维护好系统不断发展的基础和前提、如何更好地暴露和让外界使用系统能力也至关重要见图九。 图9. Android设计对解决问题的启示 回到我们自身在重用户、重交互、手机即人的今天我们的产品有理由也有必要用其内涵延展并放大服务的价值。要做到这一点并非易事。首先业务迭代越来越快各种应用层出不穷对中间件意味着广泛的需求其次环境在改变无论是运行硬件和设备的五花八门、还是对接集群的复杂多样都对阿里原有端侧中间件带来巨大冲击再次在基础技术发展变缓的今天技术的价值需要被持续放大我们希望基于自身能力来构建服务和业务的泛连接基础,并将其作为发展愿景。这要求我们基于集团背景以及核心APP发展的主要目标下来综合思考这个发展问题图10。 图10. 对泛连接能力建设的思考 通过Android的启发结合环境和现状在满足业务目标的同时我们从三个层面不断演进网络能力图11。 首先通过覆盖线上线下、各类场景、形态各异的设备不断打造高效私有、支持通用标准的协议并提供部分其他端侧网络不能或者及其难以提供的特殊能力来帮助我们构建设备和服务、用户与业务的泛连接基础。 其次自底向上地抽象将非阻塞的IO复用、用户态网络栈支持、通道能力扩展以及可支持混合集群的多实例架构进行高效组织从而保障了数据在不通层面的流转和管理诉求。 最后基于SDK矩阵和接入能力的建设我们实现了服务接入到业务、业务透出给用户的目的并通过提供丰富的数据带来更多价值。   图11. 泛连接能力的系统性建设 基于以上的不断沉淀目前我们已能触达海量设备和用户成为接入阿里内外各服务和平台的接口并为终端和服务分别屏蔽集群的多元化及设备的多样性实现新零售系统能力与用户的泛连接图12。 图12.团队能力在集团中所处的位置 3. 小结 结合传统的C/S观念服务端获取的信息来源于各网络终端网络协议屏蔽或规范了外界对服务输入的多样性使得服务端过去关注的是集群和高并发但现在无论是上云还是利用率背后都是业务、成本规模和边际效应在驱动这里面发展的代际主旨鲜明。但回到客户端由于受到环境和交互等多样性直接影响即便是动态性的技术也难以代表端侧的全部甚至是主流。所以在某种局部技术比拼武功成为过去客户端的一种行业“潮流”。   在局部技术和单点深入的确有其意义笔者也曾有过一些班门弄斧如非轮询方式获取手机栈顶Activity、面向阿里特有复杂集群的SDK多实例设计、Sophix热修复及云上产品等。但结合过往经验及Android设计可以更系统性地看待这一现象即除了满足业务核心诉求因为投入大量资源必须、肯定要成至少小成更应该关注技术如何更好地服务业务以及如何持续挖掘能力护城河这两头的问题。所以要打造和发展好一个系统除构建系统各中坚能力外还需维护好系统发展的前提、组织好各系统能力的内聚、满足好外部对系统的诉求。   以上是个人从Android系统设计到技术支撑系统发展的一点浅薄看法期待和业界同仁共同探讨。 作者 所为 转自 阿里技术
http://www.sadfv.cn/news/310958/

相关文章:

  • 华为官方网站手机商城软件开发工具是什么意思
  • 服务好的网站建设联系人建行网址多少
  • 上海新站专家网络公司免费下载直播软件
  • 南昌网站seo公司什么专业可以做网站编辑
  • 怎么用div布局做网站网站建设构想
  • 银川网站建设实习生wordpress电商主题数据
  • 数据库查询网站建设宁波网站制作优化服务公司
  • 电商网站前端制作分工应用中心软件
  • 做app还是做微网站好seo软件开发
  • 网站如何减少404跳转建设什么网站挣钱
  • 谁有那种手机网站免费建站资源
  • 过年做那些网站致富佛山公共交易资源平台
  • 网站开发制作流程国家品牌网
  • 济南市建设招标中心网站南山商城网站建设多少钱
  • 嘉兴网站建设搭建电商网站界面设计流程
  • 闵行区网站设计百度荤seo公司
  • 符合三网标准的网站建设相关文章 wordpress
  • 公司网站开发有哪些长春朝阳网站建设
  • 匿名聊天网站怎么做网站大数据怎么做的
  • 用户浏览网站的习惯wordpress 标题跳外链
  • 做网站会员金字塔系统视频剪辑软件app
  • 西安 网站 制作手机移动端网站建设
  • 最简单的网站建设语音软件开发公司文案
  • 做减肥餐的网站佛山网站建设企业报价
  • 国内炫酷的网站首页网站推广新手入门
  • 怎么编辑自己的网站wordpress 存储视频教程
  • 南京网站制作案例爱墙 网站怎么做
  • 网站seo策划商机互联做网站怎么样
  • 社交信息共享网站开发外包网站怎么做修改
  • 忻府网站建设自建网站做电商