去年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)

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能够抓住机遇,战胜困难,突破瓶颈,真正成为大众生活中随处可见、不可或缺的一部分吧。

浅谈Android发展趋势分析的更多相关文章

  1. 浅谈Android应用保护(一):Android应用逆向的基本方法

    对于未进行保护的Android应用,有很多方法和思路对其进行逆向分析和攻击.使用一些基本的方法,就可以打破对应用安全非常重要的机密性和完整性,实现获取其内部代码.数据,修改其代码逻辑和机制等操作.这篇 ...

  2. 安卓开发_浅谈Android动画(四)

    Property动画 概念:属性动画,即通过改变对象属性的动画. 特点:属性动画真正改变了一个UI控件,包括其事件触发焦点的位置 一.重要的动画类及属性值: 1.  ValueAnimator 基本属 ...

  3. 浅谈Android应用性能之内存

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 文/ jaunty [博主导读]在Android开发中,不免会遇到许多OOM现象,一方面可能是由于开 ...

  4. 浅谈Android五大布局

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLay ...

  5. [转]浅谈Android五大布局(二)——RelativeLayout和TableLayout

    在浅谈Android五大布局(一)中已经描述了LinearLayout(线性布局).FrameLayout(单帧布局)和AbsoulteLayout(绝对布局)三种布局结构,剩下的两种布局Relati ...

  6. [转]浅谈Android五大布局(一)——LinearLayout、FrameLayout和AbsoulteLayout

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLay ...

  7. 浅谈Android Studio3.0更新之路(遇坑必入)

    >可以参考官网设置-> 1 2 >> Fantasy_Lin_网友评论原文地址是:简书24K纯帅豆写的我也更新一下出处[删除]Fa 转自脚本之家 浅谈Android Studi ...

  8. 浅谈android代码保护技术_ 加固

    浅谈android代码保护技术_加固 导语 我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服.虽然我们混淆,做到native层,但 ...

  9. 浅谈Android保护技术__代码混淆

    浅谈Android保护技术__代码混淆   代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为.将代码中的各种元 ...

随机推荐

  1. Yii 2.0 Gridview源码分析

    GridView yii\grid\GridView 作用:GridView是Yii中的一个Widget,用来展示数据表格.有排序,分页和过滤功能. GridView默认界面如下.这是用Gii生成的. ...

  2. idea里绝对不要直接复制文件到项目中的另一处

    否则那样会将使用被复制文件的那些地方 文件名会变成复制后的那个 而路径是原来的 所以会导致找不到文件 所以绝对不要直接复制文件或者包或者目录到项目中的另一处 需要时应该新建文件 把代码复制进去 这种事 ...

  3. Cocoa Touch提供了哪几种Core Animation过渡类型?

    过渡动画通过 type 设置不同的动画效果, CATransition 有多种过渡效果, 但其实 Apple 官方的SDK只提供了四种: fade 淡出 默认 moveIn 覆盖原图 push 推出 ...

  4. Ubuntu 16.04 主题美化及常用软件安装

    一.主题美化 系统清理 系统更新: 安装完系统之后,需要更新一些补丁.Ctrl+Alt+T调出终端,执行一下代码: sudo apt-get update sudo apt-get upgrade 卸 ...

  5. 教程:将应用迁移到 DirectX* 12 – 第 1 部分

    原文地址 简介 随着微软* 新版操作系统 Windows 10* 的发布,核心图形技术将升级到最新的 DirectX* 12.要帮助拥有 DirectX* 开发经验的程序员熟悉 DirectX* 12 ...

  6. sqli-labs学习笔记 DAY2

    DAY2 sqli-labs lesson 2 手工注入 URL:http://localhost/sqli-labs-master/Less-2/ Parameter:id 注入点检测:id=2;– ...

  7. zabbix监控历史数据清理

    2018/12/24 14:00:57  zabbix监控运行一段时间以后,会留下大量的历史监控数据,zabbix数据库一直在增大:可能会造成系统性能下降,查看历史数据室查询速度缓慢. zabbix里 ...

  8. apply新用法,最大值查找

    要找到数组中的最大或最小值,可以像下面这样使用apply() var values=[1,2,3,4,5,6,7,8]; var max = Math.max.apply(Math,values); ...

  9. 第五次作业psp

    psp 进度条 代码累积折线图 博文累积折线图 psp饼状图 团体合作体会:经过这几天的团队,我感受良多.发现团队协作是一件非常让人兴奋的事情.团队成员们互相帮助,互相协作,让我感受最深的就是当自己为 ...

  10. Thunder--Beta发布--美工+文案

    作业:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/1366 内容: 美工:原有功能展示.新增功能展示 程序图标 欢迎页面 我的书架 ...