走进阿里:Android 开发者沙龙回顾

走进阿里:Android 开发者沙龙回顾_第1张图片

6 月 17 日,阿里巴巴手机淘宝技术团队 MTT 携手华为、安卓绿色联盟,在杭州西溪园区成功举办"走进阿里:Android 开发者沙龙",来自互联网和移动应用开发领域的上百位技术开发者和爱好者欢聚一堂,共同交流探讨了的 Android 未来,以及作为开发者需要做哪些技术储备和转型。

SegmentFault 作为合作社区也参与了本次沙龙,下面就来回顾一下本次沙龙的主要内容吧~

开场

本次沙龙由阿里移动技术资深专家倪生华(花名玄黎)主持。

走进阿里:Android 开发者沙龙回顾_第2张图片

倪生华,花名玄黎,阿里移动技术资深专家,目前负责移动端整个基础架构团队。

MTT 团队负责整个阿里系的组件化,到现在已经基本非常成熟了,在年初也进行了开源。本次沙龙 MTT 将和大家分享这几年的方案,包括每个方案适用的场景、技术等。

嘉宾分享

手淘 Android 容器化框架( Atlas)介绍

走进阿里:Android 开发者沙龙回顾_第3张图片

胡文江,花名白衣,淘宝网高级无线技术专家。2010年加入手机淘宝,主要负责Android 客户端基础架构及性能优化工作。有 10 年的智能手机软件开发经验,目前专注于持续构建适合大型复杂应用的移动应用框架。

Atlas 是手机淘宝 2012 年开始自研的一个运行于 Android 系统上的一个 Native 容器化框架,是目前手机淘宝 Android 端侧最重要的框架之一。2014 年被手机淘宝团队首次对外提出,2017 年初 Atlas 开源回馈社区。本次演讲将从 Atlas 的背景,以及 Atlas 的设计原理入手,深入剖析 Atlas 容器化框架的方方面面,拥抱 Atlas,可以给你的 Android 客户端带来很多意想不到的能力。本次沙龙主要分享内容:

  • Atlas 的前世今生

  • Atlas 的特性

  • Atlas 工程期

  • Atlas 运行期

  • Atlas 周边与开源
    项目地址:https://github.com/alibaba/atlas

Android O 版本变化及详细解析

走进阿里:Android 开发者沙龙回顾_第4张图片

马捷,加入华为近 10 年,华为终端三方兼容性技术专家,有丰富的三方应用兼容性、性能、功耗等方面的研究经验,注重提升应用的用户体验。

谷歌 I/O 2017 开发者大会,谷歌发布了 Android O 操作系统开发者预览版 2,本次演讲将从 Android O 版本变更对 APP 有影响的特性,如后台限制、safetyNet、ART、对权限的使用等方面,深入剖析 Android O 版本的代码改动,以及版本变更对
APP 的影响与开发者注意事项。本次沙龙主要分享内容:

  • Android 大版本升级的关键时间点

  • Android N 版本典型的兼容性问题

  • Android O 版本核心更新点

  • Android O 版本应对策略

  • 如何做 Android O 的适配。

Android O 对国内开发者提出的全新挑战——兼谈《Android绿色应用公约》

走进阿里:Android 开发者沙龙回顾_第5张图片

冯森林,独立开发者,《Android绿色应用公约》发起人

Google 在 Android O 的后台管控上进行了大刀阔斧的顶层设计,这一深刻的方向性变化将对Android应用的开发造成深远的影响,彻底改变原有的诸多普遍但并不最佳的实践。《Android绿色应用公约》顺应这一趋势,为应用开发者提出了一条对接未来生态格局的最佳实践。本次沙龙主要分享内容:

  • Android O 的底层设计

  • 常见用法的新困境

  • 无法条比的抉择

如果我们要拥抱 Android O 的话,其实还有一个最佳的姿势就是加入《Android 绿色应用公约》,你去看公约的条款可以看到它和 Android O 是全面接轨的,零开发成本浪费。在 Android 低版本中也为用户提供近似 Android O 下的体验。牺牲一定的实时性可以换取更高的到达率。以积极的姿态赢得用户信任,争取白名单以提升任务角度的可靠性。

圆桌讨论

走进阿里:Android 开发者沙龙回顾_第6张图片

目前在 Android 开发中最大的困境是什么?对 Android 开发的未来有何思考?

主持人:今天对 Android 的移动工程师来说,未来的发展趋势是怎么样,我们是要走在前端呢?我们的深度怎么继续深入进去?

吴更新:我说一下自己的看法,更多是个人的看法。现在市场上 Android 的技术人比较多,造成生产力过剩的问题。至于说以后会不会全是混合的形式,我觉得不太可能,但是大多数会有一些创业公司不需要去做,因为它有更好的方式更好地到达用户,更小成本地去获取用户。对于技术人员来说,本身可能是不能死守技术,因为本身技术的大潮就是在发展的,对于大家来说,能去接触更多的技术,能去了解更多,本身就是对个人有更多的好处。

伯奎:我是这么想的,其实大前端从我刚做安卓开始,7 年前,一直在讨论 H5 好还是其他好,有很多前端技术出来,其实最主要还是在于自己的技术,刚才冯森林也说了,其实技术就是解决问题的手段,很多需求是来自于业务方,其实什么技术能把业务诉求解决好,一般都会发展的比较顺利一点。所以说,像以前一直讨论 H5 还是其他的什么技术好,只要是深入进去把这个技术做强,就是把业务、产品层面的东西解决好,都是有前途的。

可能很多人还是在业务层面,今天可能接触到 Atlas 的时候,你会发现全是在系统层面,所以说我们的开发人员最主要去做的就是去了解一些底层的技术,可能那时候你会感觉对业务上的帮助,包括一些发展趋势的判断,完全会有自己不同的想法,这是我的感觉。

冯森林:今天用到的所有技术,今天观察到的所有技术趋势,都是业务本身诉求的发展带来的,大家今天看到的很多 google 等做的跨平台的尝试,它们都在解决一个问题,我把能够共享的东西共享,基本上这个观点是开发人员从几十年前计算机刚有编程的时候,追求的一个关键的诉求,把能够共享的东西共享。那么在现在移动互联网时代什么东西是可以共享的,平台制定的规则是不能共享的,google 有 google 的规则,苹果有苹果的google,那么能共享的东西就是那些抽象的东西,比如像业务流程,业务逻辑以及交互里面的那些抽象的东西,比如说这就是个按纽,这个东西就是共享的,无论是设计师,设计师也分两种,一个是交互设计师,一个是视觉设计师,很多程度上我们在开发层面就是为了在整个流程中贯通这个思想。

我们可以看到移动互联网刚开始兴起的时候,我们会喜欢这样去区分开发者的角色,有后端开发和前端开发,我觉得这个划分方式是在那个历史背景下的产物,很有可能未来大家看这个问题的角度会变得要么就是前端开发,要么就是业务开发,业务开发可能是写一段代码,在任何端上就可以用的,那么在这样的背景趋势下,我觉得只要是顺应这个趋势的一些实现策略,那么它们本质上来说都是顺应趋势的,但是竞争和一校高下也就是大家实现的效率,对开发者的友好程度,对于未来变化的适应能力。

主持人:我介绍一下淘系的变化。在阿里目前整个的投入是怎样的?老实讲,我们也一直在招人,但是招人的要求会越来越高,为什么?我们会越来越偏向于专业化,偏向于底层,客户端同学我们在招对底层非常了解的,另外一种就是有些可以共享的东西,比如说图片的渲染、网络这些基础库,是 H5 无法替代的这些东西。

另外一块,最近对于阿里来讲,或者对于整个业界来讲,我们认为媒体的升级是接下来非常大的一块,甚至有人会认为,剩下流媒体会替代 HTML5,会成为新的交互方式。随着设备的升级,媒体的升级,在移动端上对于整个软视频相关人员的储备、投入会越来越多,但是减少的是什么东西?其实是只了解业务,这东西减少不是我们不需要了,而是因为现在效率高了,这些东西是不可避免的,在刚兴起的时候效率比较低,我需要非常多的同学去做这项技术,但是你会发现做到现在,很多东西效率高了,不需要这么多,现在我们只有 10 个人不到,但是在上层做业务的会特别多。

我最近看到一篇文章,大前端,这个东西我觉得其实是技术语言发展的必然趋势,作为技术人员没有必要死守安卓或者 H5。大家会发现,其实现在语言的整个边界性越来越小,我觉得程序员比较难做的是轻技术发展的比较快,但是安卓是比较端上的东西,根子一直在,除非这个媒介被替换掉,可能对它的要求会越来越高。这是我的观点,现在我们目前整个阿里内部,我们所在的部门是阿里无线工程师最多的部门,这是我们发展的趋势,我们也在讨论无限端工程师会越来越少,也不是这样,只是说需要开发的人越来越少了,可能开发端快了,服务端会出现瓶颈,可能很多人又会回去搞服务端了。

刚才几位嘉宾也分享了一些东西,前两天刚好也有一个微信的同学分享了这块的议题,大家也可以听一下,讲到今天我们整个发展趋势,其实和系统厂家 ROM,google、苹果的趋势还是有关系的,同样在安卓,其实今天大家在 google I/O 上,虽然在 google I/O上提安卓系统提的不多,但是也提到了编程语言,提到了Kotlin,大家是怎么看的,是否未来苹果会放弃 JAVA,今天我们到底要做哪些东西?我想听听几位资深嘉宾大家的看法。

冯森林:Kotlin 是一匹黑马,很多组件都是用 Kotlin 开发的,我觉得从 Kotlin 这件事情,你能看到一个趋势,这可能是移动互联网的特殊性造成的结果,我们刚开始做安卓开发的时候,我们用的是 JAVA 6,后来有了一部分 JAVA 系统的支持,但是那大概是在安卓 4.0 还是 2.3 之后才支持的,接下来出现了 Android 8,JAVA 8 的特性大部分要等到 Android 6.0 才能支持。但问题上市面上的很多手机是运行 6.0 以下的系统,这时候你作为一个语言层面,这不可能做向下兼容。JAVA 8 里面有些特性确实能做,但是长期来说,语言的进化和存量市场中现有设备之间是有天然矛盾的,那么在这个矛盾中我们看到一个趋势,这些平台的主导方想方设法让语言和执行环境兼容,因为JAVA 有一个天然的优势,JAVA 和 JAVA 语言本身是公生的关系,之间是有边界的,最早发布的规范里,JAVA 语言规格和JAVA虚拟机规格是两套规格,但是它们两个之间是有耦合的,就是说相当于我在某一个版本的 JAVA 语言规格,它会依赖于一个虚拟机版本,但是从 JAVA7.0 开始发生了一个非常大的变化,JAVA7.0规格里增加了一些JAVA语言规格没有的东西,就是语言里现在还没有支持的,但这个东西就意味着 JAVA 的虚拟机设计已经开始做泛化处理了,就是上面的语言可以更灵活地使用虚拟机,但是 JAVA 这个语言本身走到今天看是有历史包袱的,所以说我们可以看到JAVA的语言规范和 JAVA 的虚拟规范仍然是一个比较强耦合的关系。

但是 Kotlin 的出现其实和之前所有在 JAVA 上语言类似,周边出现过的很多昙花一现的语言,它们都是屏蔽了 JAVA 虚拟机上的一些规范,然后它们的语言可以不断进化,它依赖的虚拟机能力还是在有限中。我记得在当初我刚加入淘宝的时候,在2009年的时候,我们做过一个事情,当时是改造整个大淘宝后台的执行引擎,就是说所有淘宝的语音服务器里的机器,我们希望它切换到一个协成的模式上,很痛苦,因为JAVA语言不支持,但是JAVA虚拟机是支持的,所以当时我们找了 Kotlin 去做这个事情,这就意味着你在一个不是在语言层面直接支持范畴内去做一些虚拟机才能获得的东西,本身就有很大的挑战,里面有各种工具的复杂性。现在随着各种各样的语言得到更官方层面的支持,一旦 Kotlin 得到了 google 官方的支持,那就意味着 Kotlin 的生态语言会有越来越多的厂商加入进来,这使得这个语言背后的兼容性以及操作性得到大幅度的挑战。那么可以预见未来它的情况,Kotlin 会是一个快速演进的语言,语言规范会不断的变化,会出新的能力,而且使用这些新的能力并不依赖于用户的设备升级到新的虚拟机版本,这是非常明显的优势。

但是伴随这个优势我们看到所有动态性的语言,它们在很多设计上的取舍,这些取舍会使得我们语言的本身效率在一定程度上会有牺牲,但这时候你会发现,将来的开发可能会变成一个混合的模式,在追求效率和追求一致性、稳定性的层面上,大量也许还是会使用 JAVA,但是在追求研发的便捷性和追求迭代效率的地方,你会更多使用上层的语言,无论是 Kotlin 还是其他的语言,所以这就是我自己对这个东西的理解和判断。

伯奎:Kotlin 这个东西其实我还没有怎么玩过,最近一年多对 Android 关注不是特别多。我是这样想的,其实 JAVA 和 Kotlin 的发展趋势主导肯定是在 google,但是决定权在开发,最终还是由开发人员,如果绝大部分会去切换到这种语言,那肯定慢慢这个语言会发展起来,最终会不会成功,对开发人员或者对整个产品切换程度有多高,如果google 能够主导好,那么发展还是不错的,但是我现在没有发言权,因为我没有玩过,但是这个语言怎么样也不知道。

吴更新:我觉得对 Android 开发者来说,很少一部分用过 Kotlin,并且用的比较多,在实际的产品开发中。对于绝大多数的开发人员,大家都不知道这个东西,但是实际上这个语言已经存在有五六年了,而且也有一些小团队在实际产品中用了挺长时间。

对于观望者来说,会有学习的成本,另外可能会有一部分人去看 Kotlin 的语法,毕竟有一个转变,没有实际的改进,比如没有实际做虚拟机,或者说他有比较多的关键词东西去记才能提高效率,但是我觉得这些都不是最根本的问题,比如说学习成本肯定比 IX(音译)的成本低的,因为它还涉及到思维的转换。但对于 Kotlin 来说,它实际上和 JAVA 还是非常像的,甚至说现在和 JAVA 100% 兼容。我的看法是应该会有越来越多的开发者去用Kotlin,只是说现在有 google 的推动,速度会变得更快一些。基本上就是这样。

主持人:你觉得对于现在开发者来说,现在的策略是怎么样,是开始用,还是观望,还是做新 APP 的时候用?第二,今天我用 Kotlin,我们可能会碰到的问题是哪些,如果我切换到 Kotlin 的话,据你们所知,成本大概是多少?

冯森林:刚才我提到一些比较宏观的东西,我可以说一下比较微观的观察。对于 Kotlin 语言,我刚开始的感觉是比较中性的东西,但是随着Kotlin的迭代,在最近一年多其实发展很快,我们看到了一些原本在 Kotlin 设计思路里没有出现的新的东西,其实这块东西基本上是在近几年的高级语言发展里面都很强调的东西,因为它能够使得我们接下来在语言层面能够有一些非常使用的东西,比如说在 2009 年我们试图在 JAVA上 做的协成的技术,在 Kotlin 上也支持了,而且也是通过尾端调用的方式来支持的,这对开发者有什么好处?一般写界面的人可能不会体验到这点,但是你如果是在做很多并行的处理,不是说它在执行的时候。我们在面对很多问题的时候,比如说内存的保护以及各种资源的增强等等,如果你采用协成的开发模式,这些东西会变得很轻,很大程度上我觉得可以预见的是将来我们在写框架层面,比如说 Kotlin 代码积累,另外一个是说不能从这里面得到太多明显的好处,而越往抽象上层走的那些开发层面的东西,从 Kotlin 里获得的益处是越大的,因为它抽象带来的性能损失在这个上层里是不太会带来问题,而它带来的对于研发思维的改变、对于研发效率的改善会是一个巨大的收益。因为 Kotlin 和 JAVA 之间的混合开发是非常容易的,它们的接口层面没有任何的障碍。

吴更新:我觉得肯定要先有深入了解,才会逐渐去推这个事,因为一个是说涉及到个人的成本,另外涉及到团队的协作成本,不管是和其他人的协同配合,还是相关的交接,另外就是Kotlin多少肯定也会有一些副作用,比如说加入之后会让方法不做任何限量比较多,还有就是其他人可能会摸不到头脑,还是一个慢慢在个别业务、个别人的尝试下会逐渐推动的事。

主持人:感谢各位的分享。我不知道各位有没有感觉,所有大的厂商都在讲 AI,我想听听几位嘉宾对 AI 整个发展的趋势,大概会发展到什么样子,以及对今天移动端的开发同学,到底怎么参与到 AI 上?甚至于今天我们为了这种新的趋势,我们需要做哪些技术储备,我相信很多开发者都需要,大家是否可以分享一下自己的看法。

吴更新:这其实对 AI 了解比较少,没有自己去主动了解,更多是被动的接受。我简单说一下,之前有人说过,如果在自己看不懂的情况下,但是整个主流在推这个事,就是值得花一点时间去了解,就和早期的移动大潮,最开始很多人也看不懂,但是随着更多人的介入,包括像现在的 AI。

伯奎:AI 比较火是从围棋开始,大家也感觉到,从 AI 出来以后,智能硬件也开始火了,为什么两者会同时起来?这两者是相辅相成的,AI 是通过各种数据帮你做一些判断、决策,那么数据是从哪儿来的?阿里人肯定都知道,阿里现在非常重视智能硬件这块,专门现在还成立了部门。AI 我不是很懂,和我们比较相关的智能硬件这块,我觉得大家可以接触一下,AI 大家如果有兴趣也可以玩,但是和安卓开发比较接近的是智能硬件这块,大家可以去开发一下,你可以认为是AI的触角,因为你以后慢慢会接触到人周边的环境很多都会变成智能硬件,这块对我们来说比较有好处,因为 AI 还是要有一定的基础,智能硬件对我们开发者来说基础会比较低,上手会比较快,这是我的感觉。

冯森林:AI 这块,如果在座是做移动开发为主的同学,都有一个感觉,好象是另外一个世界,好象这个世界里的技术和玩法,大家很难迈过这个边界去理解它,但是AI这件事情会是一个很乐观的局面,使用AI的人并不需要掌握复杂的技术,而构建AI的人,你可能不理解,但是不重要,比如今天我们看AI下围棋,你知道它能战胜他就好了,不需要它是如何战胜的。接下来一两年,我们可以看到在客户端开发里面,今天我们会面对的很多场景来说,最先会点燃的两个方向,一个是视觉,一个是语言,而这两块其实对于 AI 现有的积累已经很成熟了,比如前两天 google 才刚刚发布了一个移动视觉识别的AI模型,因为 AI 本身是通用技术,要你套到一个具体的模型里把它用到一个特定的领域,那么移动视觉是在很多现在应用的场景里用的,还有做识别性的一些东西,比如说国内现在比较火的智能摄象头,google提供的移动的视觉AI的模型库,就是让你能够直接把它套进去,能够用在一些典型的场景。

比如你想做一个物件的识别,你只要拿现有物件的图形去训练它就可以了。所以说这些工具已经准备在手上,大家都不需要去掌握AI内部的技术就可以把它用好了,这是很乐观的,对于在座的很多移动开发者而言,我们就把它作为一个武器用起来就可以,而做AI技术研发的肯定是另外一个技术领域的团队,也不是我们现在马上需要跨界去掌握的东西。

另外就是语言层面的AI,在这块,国内来说,因为现在有像科大讯飞这样做语言识别的一些云端或者云合成,但是很多设备如果纯粹依赖云端,会显得非常低效,我觉得接下来可能出现的局面是这些东西会本地化,而训练本身是在云端完成的,那么训练完之后产生的中间模型是可以被下载到设备上,可以离线做这些事情,那么将来这两块的应用门槛非常低,移动应用会经常遇到这两个场景,而且像伯奎做的智能硬件的东西,你也没有一个触摸屏,很可能依赖的是视觉和语言,而这两个部分的AI技术积累已经非常完善了,到了大家拿起来就能够用的状态。

主持人:现在可以继续关注它,如果有应用场景的话,可以去使用它,密切地关注它。刚才讲到了很多发展的趋势以及像AI新的技术,包括现在大前端,那么三位可能在整个安卓移动端或者移动开发上比较有经验,那么对于工程师来讲,特别很多安卓工程师,很多可能刚入行会面临这样的困境,对于工程师的规划有什么样的建议吗?前几年可能赶上了移动大潮,成为到了资深的同事,但是对于一些新入行的同学,他们接下来应该怎么做,是深入还是都转行?

冯森林:我觉得移动开发领域,将来会变成一个比大家今天想象更流行的一个开发领域,为什么这么讲?如果我们去看过去几年发生的事情,拿阿里的任何一个业务开发团队来看,你就会发现,一开始如果我们还在移动互联网早期的时候,因为我们要做WEB开发,所以大量是服务端的人员,有三分之一是前端人员,这时候客户人员只负责一部分,再往后走,客户人员越来越多,占的比例越来越高,今天来看,在一个典型的业务团队里配比可能是三分之二都是客户开发人员。

你接下来我们提到很多技术共享的领域,我们接下来会有业务的开发,前端的开发,比如说界面的开发、服务端包括AI、大数据的开发,这三个角色一定会长期存在,经典意义上的服务端开发会弱化,因为今天已经分化为数据和接口了,而真正重要的东西是在服务端的数据,那大数据、AI这些东西会逐渐吸收掉现有的服务端开发同学,而客户端的开发同学会把原有的很多东西接过来,因为业务端会下沉到客户端,所以这时候你要去做的很多事情都是在一个大的前端里去完成的,而这里面将来会扩充很多角色。

比如像智能硬件这些东西,我们将来面对的移动设备不仅仅是手机和平板,会有开穿戴设备、家居设备以及放在公共场所的设备,这都需要专项的角色去完成,这是增长非常快的一块领域,这里面有非常多的细分场景,你对哪个领域有兴趣去做就可以了,这个市场绝对可以容纳更多的开发人员进来。

伯奎:我是这么理解的,这边可能都是安卓开发人员,安卓已经开发不止七年了,大家也发现这几年安卓慢慢平稳下来了,可能对我们这种开发有两个方向可以走,一个就是更深入,因为我今天看了Atlas的讲解,我离开是三年时间,现在感觉也做了非常多的东西,虽然到一个平稳期,但是还是可以深处走。还有一个建议是不限制自己,可以往不同方向走,各个方面都可以走。比如说智能硬件,大家也可以接触,因为智能硬件离安卓是非常近的东西。尤其现在的技术人员一定不能限制自己,不光是前端的,像后端以及分布式都可以玩。

吴更新:我觉得现在可能大家都觉得端上能做的东西已经越来越少了,但实际上还是有限制,大家是一个技术人员而不是某个端的技术人员,对于端上来说,虽然能做的东西都差不多,但是很多其实是大家看到的,大家自己并没有亲自做过的事,对这些事可以尝试去做,因为真正做和你看到的还是有很大的差别。另外一个,我觉得大家可以更主动地去学习更多的东西,不管是其他端还是主动地去做一些其他的事,因为技术的发展肯定是会越来越快的,包括说以后各个技术站的边界也会划分的更细,但是同时来说会出现的工种也会更多,大家可以在自己有兴趣的方面做深,另外就是更主动地拓宽自己的边界,以及更主动地去做更多的事。

主持人:今天google在安卓上的整个发展趋势是什么?请冯森林来分享一下他的判断,google在整个安卓系统上,以及在IOT,对安卓的布局是怎样的?

冯森林:关于安卓的趋势,因为毕竟我们要谈趋势就是谈未来,谈未来的东西,本质上是有风险的,说出来可能会被打脸,我讨论这个问题的角度,我们从它现有的趋势里去解读未来的趋势,我们回望安卓最近几年的变化,我们发现从安卓5.0以后出现一个重要的趋势转变,创始人陆陆续续离开安卓团队,安卓的角色更大程度上变成一个开疆辟土的角色,而不是一个激进的拓荒者的角色,那在这个阶段对安卓而言更重要的是需要不断去完善它还欠缺的东西。

我们看安卓的时候,每年我们会发现新发布的东西越来越平淡无奇,甚至越来越像IOS,尤其是今年后台管控这么一搞,觉得和IOS也没有什么区别了,其实作为任何一个产品的发展都是这样的趋势,一开始是打出差异化的东西,等到了足够大的市场份额的时候,它争取的就是普遍受众,就需要去把对方的用户给拉过来,那你要怎么去获得苹果的用户呢?你要让觉得这个系统离苹果的优势越来越近。

安卓本质上做的创新都是上层的应用开发者用户比较少看到的层面,这些层面发生了什么事情?我们可以看到在 Android 6.0 的时候,安卓底层做了很多组件化的努力,在今年发布了一个计划,把Android里原有的接口剥离出来变成一个标准的接口,Android GO(音译)这个项目重启之后,google 有一个非常大的激进努力,是要做到把整个系统拆分成两个部分,一部分是原生部分,一部分是OEM 的部分,甚至分在不同的分区里,那原生的部分google要求是自己升级的,而 OEM 是厂商来做,那这样的策略就意味着要增加它的管控力,要确保它想保持一致的东西真的能够保持一致,因为安卓一开始是开源系统,越来越多厂商在上面做的变化,在安卓每次迭代的时候会带来一些冲击。安卓有一些延伸的系统,这些东西其实从很大意义上来说,google 就是为了使得这个既有的品牌力能够开枝散叶,它要做手表不一定用 Android 系统去做,但是用Android系统去做是因为用户对它的品牌认知是强烈的。本质上 google 是利用现有市场的优势去把Android变得更多元化,所以你会发现在这些边缘努力上,Android变成了一个更复杂的生态,这个复杂生态之上,Android核心的部分越来越乏味了,Android边缘的部分越来越精彩了或者越来越多一些新的吸引力出现了,那么在这样的格局里,就和大的企业一样,有很多团队在做一些很基础的事情,还有一些团队在做新兴的尝试,这样的结果是他们是一个合力,越稳固的一个核心系统会支撑越来越多的外围尝试,接触更多的尝试,作为一个开发者来说,这是一个很好的尝试,因为你未来做的尝试可以沿用你的积累以及对这个东西的理解,不会耗费太多的成本。

技术本身的发展总在不断地改善性能,计算能力不是今天我们面对的主要瓶颈,我们今天面对的核心瓶颈可能是功耗,另外一个就是你的运行内存能力,随着时间的变化,很快会变得不是瓶颈,因为只要足够的投入,这些都会变成历史,作为开发者来说,你可以在里面产生一些什么应用出来,当应用出来,会推动这些技术朝着更有利的方向发展。大家提到 google 一个新的系统,那么为什么 google 要做?其实并不像想象大家说的要用这个系统取代 Android,google 的计划不是这么单纯的,因为对 Android 这么重要的一个系统来说,它不会把它压在一个未来重大的决策上,google 新的决策者是非常谨慎的人,他往往选择几条路走,将来你可以看到 google 做的很多努力都是防御性努力,所以说不要把自己的资源投入寄予到这样一个不确定的东西里,那么你就投入到现在可以延续的更可靠的方向上。对于 google 预期的东西,你不要预期对应用开发会有太大的变化,因为对应用的开发更多是约束,更多是 Android 让你的应用适用更多的场景,这些场景里延伸出来的机制会不断纳入到 Android 里,比如说直接连接 WIFI 的能力、传感器的能力,你会运用到的工具越来越多,但是系统基本上已经定型了。这就是我想和大家分享的关于 Android 未来发展趋势的想法。

你可能感兴趣的:(android-o,android,segmentfault)