1. 程式人生 > >淺談Android發展趨勢分析

淺談Android發展趨勢分析

相互 ces rec scl reg AC sed pen 可能

  去年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發展趨勢分析