去年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. Vue视图

    1. 基本模板语法 1.1 插值 文本 数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值 v-text 指令也可以用于数据绑定,如果要更新部分的 textContent ...

  2. vbox虚拟机扩容(CentOS 7.2)

    Preface   My virtual machine was simply created by vagrant in default mode without anything about th ...

  3. 常用SQL语句大全(SQL Server)

    一.基础       查看数据库状态 select state_desc from sys.databases where name='dbname'  -- dbname数据库名 1.说明:创建数据 ...

  4. javascript 强制转换规则 boolean 布尔值类型

    摘自 <你不知道的Javascript(中卷)> p55 一句话简述, 假值表以外的值均可以认为是真值,部分浏览器可能自定义了假值表以外的假值,并不符合W3C规范,需要特殊对待. 首先也是 ...

  5. 修改Linux系统下的最大文件描述符限制

    通常我们通过终端连接到linux系统后执行ulimit -n 命令可以看到本次登录的session其文件描述符的限制,如下: $ulimit -n1024 当然可以通过ulimit -SHn 1024 ...

  6. vscode中安装使用markdown 插件

    linux中好用的IDE    vscode是微软推出的一款好用免费的IDE,可以快速部署开发环境,所说配置有些繁琐,但是瑕不掩瑜.它同时支持很多种拓展的编辑器,MarkDown只是其中的一种. 安装 ...

  7. 【ANSIBLE】ansible控制windows插件安装及运行error与解决方法

    一. 问:因pip版本问题无法安装kerberos 答:安装提示需要先安装pip升级包 下载pip9.0.1升级包: https://pypi.python.org/packages/b6/ac/70 ...

  8. 如何隐藏掉SQL Server中自带系统数据库,数据表,存储过程等显示文件,只显示用户的数据库,数据表等文件

    企业管理器了,---->   编辑该数据库的注册属性--->“常规”属性页下面-->“显示系统数据库和系统对象”的选项去掉

  9. Python 内置函数介绍

    作者博文地址:http://www.cnblogs.com/spiritman/ Python Built-in Functions

  10. ES6的新特性(1)——ES6 的概述

    ES6 的概述 首先,感谢马伦老师的ES6新特性的教程. ECMAScript 和 JavaScript 的关系是 ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前 ...