浅谈Android发展趋势分析

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述浅谈Android发展趋势分析相关的知识,希望能为你提供帮助。
去年11月16、17日,我有幸参加了北京2017安卓技术大会,做了关于车载android系统的演讲,并主持了诸多大咖参与的圆桌讨论,对Android未来几年的发展趋势进行了一番讨论。来自小米、百度、高通等多家公司的各位专家也都发表各自的演讲,从AI、AR、IOT等各个角度分别说明了Android近来的一些进展和对Android未来的一些猜想。此外,还有众多Android开发领域的高手们分享了他们在Android开发中的一些心得和技巧,让参会者包括我收获匪浅。

两天的会议中,我最大的感触就是Android在经历了这么多年的飞速发展后,进入了一个瓶颈期,正在等着下一个风口的来临。从过去几年开始,Google就一直在把Android应用到更多的设备上,比如平板电脑、TV和可穿戴设备。可以说,Android是准备攻占我们生活中的每一块屏幕了。但是在这个过程中,有几个例外,一个是桌面系统,也就是PC机的市场,目前还是Windows占绝对主导地位,Mac OSX依靠Apple的封闭环境紧随其后;一个是物联网系统,很多低端设备依然使用的是简单的RTOS或者Linux;还有一个是企业级市场,目前在企业级产品中,用户多数时候还是首选商业软件(安全稳定性敏感)或者Linux(成本或者可控性高),Android用得并不是很多。

继手机、平板电脑后,汽车成Android下一重点开拓领域

其实我们来回顾一下Android的发展趋势,它从一个智能手机的OS为基础,一边学习和借鉴Apple的产品,一边吸纳合作手机厂商的贡献,不断地增加了各种各样的功能,提升用户体验。实际上Android的发展跟移动互联网的发展基本上是同步的,其最大优势主要还是为消费电子产品提供了良好的交互体验、强大的连接能力,以及java VM和稳定发展的Android API提供的开放而又一致的开发环境带来的生态环境。所以我们可以看到,总体而言,Android在中等屏幕上的表现更好,比如手机和平板电脑。在移动和网络连接需求不那么迫切的桌面系统和TV等大屏设备上,Android的表现并不抢眼。而在更小的屏幕,比如腕表、手环,以及一些只需要LED屏幕的设备上,Android的表现也同样乏善可陈。

那么下一个适合Android的屏幕是什么呢?就是汽车。天生的移动特性加上越来越多的互联网服务需求,使得车载系统跟Android有天然的契合点。Google这两年也确实在汽车领域发力了。从2016年开始,我们就看到Android Nougat、Oreo的代码分支上也都有Car相关的代码在不断更新。CES 2017和Google I/O 2017上也有Audi、Volvo、FCA这样的车企展示了他们新的基于Android的车载信息娱乐系统的概念产品。

如我之前所提到的,Android系统的优势是交互体验、连接能力和拥有强大的开发者支持的生态环境。这一点对于车载的信息娱乐系统(IVI)来说是很重要的。但是车载系统并不仅仅是信息娱乐系统,还有其他很多子系统,也就是说车载系统不同于手机,会运行在一个更复杂的系统之中,而且对于系统的稳定性、实时性也有新的要求。这就要求Android作出很多改变,比如Android O的Automotive版本中就把Audio和Camera的处理从Java层移到了Native层,来实现快速启动的要求。此外,Android在汽车上还面临来自于Linux、QNX,甚至Windows等既有系统的挑战,作为一个后来者,怎么说服保守的车厂接受一个新的操作系统,比如如何解决安全性和稳定性的问题,也是Google需要解决的问题。作为一个Android的忠实用户和拥趸,我相信Android在汽车领域一定能够争得一席之地,但是我也觉得Android不可能做到像手机行业一样一枝独秀的地位,百花齐放还是最可能看到的情况。

增强VR/AR和AI领域研发投入,搭建更强大Android技术平台

除了开辟新的领域,Android最近还有哪些新的动态呢?一个是去年很火,今年似乎有点销声匿迹的话题——VR和AR,一个是今年的热门话题——AI。关于这两点,其实都有很多共同点。一是两者都是还在继续演进的技术,未来的技术发展方向还不是特别清晰;二是需要更多的应用场景来支持技术的推广;三是两者都还需要其它的技术(比如5G)突破,才能获得更大的发展。

Android引入了DayDream来支持VR,在新的版本中又引入了ARCore来支持AR应用,给AR提供了一个事实标准,这使得以前各个厂家自己做自己的AR/VR/MR,相互之间的内容无法兼容的情况得到了改善。更重要的是,对于高通、MTK这样的芯片厂商,有了AR的标准,它们就可以针对新的标准进行优化,跟应用开发者一起为用户提供更好的体验效果。而对于AI,即将发布的Android NN会集成TensorFlow Lite,为AI的开发者提供基本的AI框架,实现移动设备端的AI计算平台。而芯片厂商也会根据这个架构,利用DSP、GPU来优化AI计算效率。也就是说,未来的Android中高端手机应该都能集成AI计算的能力,使得诸如图像处理识别等算法的效率大大提高。而且随着AI的应用逐渐推广,还会有更多的应用享受到嵌入式AI的好处。现在,Android已经准备就绪了,接下来就看芯片厂商、应用开发者和内容提供商们怎么利用这个技术平台来构建AR和AI的生态环境了。

5G时代万物互联,Android如何突破重围?

说到AR和AI的生态环境,就不得不提到另一个技术热点,那就是5G。5G相对于4G,不仅仅是带宽提高了,更重要的是可接入的设备类型大大增加了。5G的高可靠性、低延时和低功耗正是为了物联网真正核心需求而演进的。目前市场上的AR应用不广泛,主要的一个原因就是技术达不到应用场景需求,不论是4G和Wi-Fi,都达不到高清实时视频的传输带宽和延迟指标。而5G就可以解决这个问题。因此,5G对于Android来说是一个机遇,但同时更是一个挑战。因为5G会带来一个万物互联的时代,这个时代中Android该如何找到自己的位置呢?
Task:
java.io.IOException: Filesystem closed
atorg.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:765)
atorg.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:783)
atorg.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:844)
atjava.io.DataInputStream.read(DataInputStream.java:100)
atorg.apache.hadoop.util.LineReader.fillBuffer(LineReader.java:180)
atorg.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:216)
atorg.apache.hadoop.util.LineReader.readLine(LineReader.java:174)
atorg.apache.hadoop.mapred.LineRecordReader.next(LineRecordReader.java:246)
atorg.apache.hadoop.mapred.LineRecordReader.next(LineRecordReader.java:47)
atorg.apache.spark.rdd.HadoopRDD$$anon$1.getNext(HadoopRDD.scala:244)
atorg.apache.spark.rdd.HadoopRDD$$anon$1.getNext(HadoopRDD.scala:210)
atorg.apache.spark.util.NextIterator.hasNext(NextIterator.scala:71)
atorg.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:39)
atscala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327)
atscala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327)
atorg.apache.spark.sql.execution.Aggregate
anonfun$execute$1
anonfun$execute$1
anonfun$7.apply(Aggregate.scala:156)
atorg.apache.spark.sql.execution.Aggregate
anonfun$execute$1
anonfun$execute$1
anonfun$7.apply(Aggregate.scala:151)
atorg.apache.spark.rdd.RDD$$anonfun$13.dashuju178.com apply(RDD.scala:601)
atorg.apache.spark.rdd.RDD$$anonfun$13.www.dongfan178.com apply(RDD.scala:601)
atorg.apache.spark.rdd.MapPartitionsRDD.www.furggw.com/ compute(MapPartitionsRDD.scala:35)
atorg.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:263)
atorg.apache.spark.rdd.RDD.iterator(RDD.scala:230)
【浅谈Android发展趋势分析】atorg.apache.spark.rdd.MapPartitionsRDD.compute(MapPart
物联网时代,会有无数新的可穿戴设备、智能家电接入互联网,会有很多路面、街边的微型设备接入互联网。这些设备的特点是,体积小、计算能力弱、交互场景少,我们前面说过Android在这样的系统上其实表现并不好,究其根本原因,主要是Android的架构太重,面向手机的Linux Kernel和虚拟机对性能和功耗的要求太高。即使是Android IOT做了一定程度的优化,仍然满足不了绝大多数应用场景。而Google推出的更轻量级的OS——Fuchsia,采用了RTOS微内核Magenta和更简洁的UI引擎Flutter,让人不禁猜测这个会不会是Google为IOT准备的后手。当然由于并没有看到Fuchsia的实际应用,所以不太好预测它的前景如何。目前为止,Google所开发的系统有Android、ChromeOS、Fuchsia,一个如日中天,一个差强人意,一个神秘兮兮。未来这三个系统是彼此融合还是互相取代,我们还需要继续等待,不过ChromeOS上可以运行Android APK,至少我们已经看到一些迹象了。

不过,除了在IOT设备上跑Android系统,Android其实还有另外一种选择,就是作为IOT设备的网关而存在,类似于当前智能手表、手环跟手机之间的连接。只是未来可接入的设备种类和数量都可能大大增加,采集的数据量以及需要的计算量也会大大增加。有了数据,手机上就可以进行更多的AI计算,或者利用这些数据和AR技术,都可以帮助用户进一步提升用户体验。比如,我在公园跑步,监测身体信息的设备通知手机,我累了。手机中的智能助手自动规划一条更近更省力的路径,通过AR眼镜展示在我的眼前,或者是通过语音交互的方式,通知我前方岔路左转。这就是我前面提到的,AR和AI本质上只是技术,单独并不能起到什么作用,但是如果它们跟其他的技术在一起起了化学反应,就可能会爆发出一系列的爆炸性的突破。当然,要做到这一点,Android也还是有很多不足的,比如功耗问题等,相信Google会在这些方面继续优化的。

今年是Android开源项目成立10周年,10年来Android经历了追赶和超越,已经统治了智能手机领域,但是同时它也开始遭遇了瓶颈,在汽车等领域中遇到挑战。希望Android能够抓住机遇,战胜困难,突破瓶颈,真正成为大众生活中随处可见、不可或缺的一部分吧。

































    推荐阅读