一篇文章帶你看遍Google I/O 2019大會

本文同步發表於我的微信公衆號,掃一掃文章底部的二維碼或在微信搜索 郭霖 即可關注,每個工作日都有文章更新。

爲期三天的Google I/O 2019大會終於在上週落下了帷幕,每年的Google I/O大會都可以說是一場全球的開發者盛宴。不過可惜的是,由於和美國存在時差,I/O大會的直播時間正好是我們這邊的深夜,因此對於大多數的人來說可能都只能通過回放的方式來觀看I/O大會。另外由於會議全程都是使用的英文,因此對於一些英文不太好的朋友觀看起來可能也會比較吃力。

因此今天我特意寫了這樣一篇文章來覆蓋Google I/O 2019大會的全程重要內容,希望能給大家帶來幫助。另外或許我也可能會將這類文章做成一個系列,每年都給大家帶來Google I/O大會的完整回顧。

今年的Google I/O大會於美國時間5月7號-5月9號在Google總部的加州山景城海岸線圓形劇場舉辦,自2008年舉辦第一屆Google I/O大會以來,這已經是Google舉辦的第12屆I/O大會了,規模也是一年比一年更宏大。

不過需要說明的是,這種大型的開發者會議並不是Google獨創,美國有一定規模的大公司都喜歡搞這種一年一度,甚至是一年幾度的大型會議。比如說蘋果有WWDC大會,微軟有Build大會,Facebook有F8大會,甚至連Airbnb都有自己的房東大會。

而Google基本上每年都會舉辦好幾場這種大型開發者會議,我自己參加過的有Google Developer Days(GDD)大會,Play Time大會。另外每年的11月份左右還會舉辦Android Dev Summit大會。而在這所有的開發者會議當中,Google I/O大會可以說是最盛大的。

可能大多數的朋友對於Google I/O大會的會議流程還不是很瞭解,所以我先來解釋一下。這是一場長達三天之久的會議,內容覆蓋了Google的各種核心業務領域,包括Android系統、雲端服務、人工智能、語音識別、增強現實、前端技術等等等等。並且很多的會議主題還都是在同一時間進行的,因此沒有人可以將所有的會議內容全部都聽完。

在大會開始的第一天上午,會有兩個固定主題環節,Google Keynote和Developer Keynote。其中Google Keynote是向全球所有Google用戶介紹的,讓每一位用戶都知道Google在這一年裏取得了什麼新的成績與突破,做出了什麼新產品,以及未來的發展規劃是什麼樣的。而Developer Keynote則是向全球所有Google開發者介紹的,與開發者相關的最新重要信息都在這裏。

Google Keynote和Developer Keynote都是在主會場進行的,持續時間大概是三小時左右。在這兩個最主要的環節結束之後,接下來就是各個不同的技術主題會議在諸多分會場同時進行了,每個時間段都差不多會有多達10個左右的技術主題會議在不同的分會場展開,開發者們可以根據自己的喜好選擇去聽哪一場會議。這次的I/O大會三天下來一共進行了175場不同技術主題會議的演講,應該也是創下了歷史之最。

當然本篇文章是不可能將這175場技術主題會議全部涵蓋的,我主要向大家介紹的還是Google Keynote和Developer Keynote中所提到的重點內容。另外我會在本文最後附上一些我認爲比較重要的且與Android主題相關的分會場會議視頻鏈接地址,有興趣的朋友可以到這些鏈接中學習更多內容。

Google Keynote

I/O大會一開始最先登場的肯定是Google的CEO桑達爾·皮查伊,他那印度式口音的英語已經成爲了每年I/O大會的標誌。

皮查伊一開始介紹了Google一直以來所肩負的任務,就是組織和整理世界上所有的信息,並讓它們變得有用以及人人觸手可及。

而今天Google仍然會肩負着這個任務一直走下去,並且要從一家幫你找到信息的公司,變成一家幫你解決問題的公司。

接下來的Keynote分成了幾塊不同的主題,來闡述Google在這一年裏取得的技術進展和突破,分別是由Google在各個塊面的負責人上臺介紹的。

首先是AR方面(增強現實),經過幾年在AR領域的投入,現在越來越多的Google產品中已經融入了AR技術。比如Google搜索中就集成了AR功能,現在當你在Google上搜索一些內容時,如果該內容有相應的AR擴展,就可以直接通過點擊鏈接來體驗AR效果。舉個例子,學習人體解剖學的學生可以直接通過Google搜索將器官模型放到你的書桌上。

另外Google還增強了Google Lens功能,現在它可以通過攝像頭識別現實中的物體。掃描飯店菜單它可以幫你推薦該飯店的熱門菜,掃描雜誌中的美食它可以向你演示該美食的製作過程,掃描一段外文它可以幫你自動翻譯,並且直接朗讀出來,這對於經常出國旅行的朋友以及一些有文字閱讀障礙的人羣來講是一項非常有幫助的功能。

接下來Keynote的下一個主題是Google Assistant,Google Assistant是一個語音助手,它可以準確識別你說的話,並執行相應的動作。但由於語音識別技術非常複雜,語音數據模型大小差不多有100G,是存儲在Google雲端的,因此你所說的每一句話都要上傳到雲端,然後由Google的服務器計算並進行識別,這樣就導致了識別速度會比較慢。

而現在,Google取得了一個里程碑式的突破,將語音數據模型大小壓縮到了0.5G,直接存儲在了手機本地,因此現在Google Assistant的語音識別速度比之前快了10倍。

除此之外,Google Assistant還很聰明,不同於國產的一些智能音箱類的產品,它可不是機械式地識別你所講的話,而是能夠理解你們之間對話的上下文,甚至還可以瞭解你。

演講人舉了一個例子,他向Google Assistant詢問去Mom’s House的交通狀況現在怎麼樣?但是Mom’s House到底是指哪裏呢?在他的觀念裏Mom’s House指的就是他母親的家,但是在別的地方,Mom’s House可能是一家福利院的名字,或者是一家飯店的名字。

爲了解決這個問題,Google Assistant使用了一套叫做Personal References的技術,它會以你的世界爲核心,站在你的角度上來理解你所說的話,這樣當你說Mom’s House時它就可以準確理解你指的到底是哪裏了。

當然這些功能之所以能夠實現,全都要依賴Google強大的人工智能技術,可見Google在十幾年前就開始在人工智能領域進行佈局是多麼明智的抉擇。

接下來Google CEO桑達爾·皮查伊又重新登臺,向大家介紹了Google在人工智能領域發展到了什麼程度,以及爲什麼Google的人工智能技術會這麼領先。篇幅不大,但是由於涉及的知識比較專業,我其實沒太聽懂。緊接着皮查伊反而花了更長的篇幅介紹Google在隱私和安全方面的新功能,向大家解釋了Google是多麼重視用戶的隱私和數據安全,並且將新的隱私和安全功能應用到了諸如Chrome、搜索、Google Assistant、Youtube、Google News、Google Map等全系Google產品當中。這種對隱私的重視程度我在國內是從來沒有見過的。

果不其然,介紹完了隱私與安全之後,皮查伊又回到了人工智能方面,講述了Google的人工智能技術在現實生活中已經幫人們解決了多少問題。其中讓我印象比較深刻的一點是,皮查伊提到了全球大約有5億人羣存在聽力障礙的疾病,這讓他們在與人溝通的時候非常吃力。而Google藉助人工智能技術提供了一個Cloud Speech API功能,它可以將對方所說的話實時翻譯到屏幕上,使得聽力有障礙的人士能夠大大降低與人溝通的成本。

另外這一功能還可以進一步延伸,想象一下我們平時都遇到過想打開一個視頻,但是又擔心會吵到別人的場景,這個時候只能靜音打開,比如微信就提供了靜音播放的功能。可是靜音播放只能看到畫面,卻不知道視頻裏面說什麼,而Google就提供了這樣一個功能,它可以實時識別視頻中所說的內容,並用字幕的形式顯示出來,我覺得在這一點上,微信可以嘗試學習一下。

在結束了漫長的演講之後,皮查伊終於離場了,接下來登臺的是Android團隊的美女負責人Stephanie Cuthbertson,來向大家介紹Android系統的第10個版本Android Q。

Stephanie Cuthbertson一開始就宣佈了一個里程碑,目前全球激活的Android設備已經達到了25億臺。

然後Stephanie Cuthbertson開始介紹Android Q版本中比較重要的一些新特性,主要有以下幾點吧。

首先是可摺疊屏,據我所知目前三星已經推出了全球第一款可摺疊屏手機,而隨着這個功能加入到Android Q系統之後,以後應該會有越來越多的廠商推出可摺疊屏手機,這或許會成爲一個未來的新趨勢。

下一個重要功能就是5G,5G的重要性,以及是未來必然的趨勢相信大家都是清楚的,而Android Q系統正式支持了5G功能,並且已經和超過20家運營商進行了5G合作。Stephanie Cuthbertson說今年與Google合作的OEM廠商將會推出10多款5G手機,我們可以期待一下。

接下來Stephanie Cuthbertson又介紹了一些人工智能相關的功能,比如Live Caption、Smart Reply等,雖然這些功能一定會很有用,但是我感覺這和Android Q系統關係不大,這些功能可以應用到Android之前的所有系統當中。

如果說上面的功能現場引起的反響並不強烈的話,那麼接下來的功能絕對引起了現場雷鳴般的掌聲,就是Android Q系統終於支持夜間模式了。看上去並不複雜的功能,結果一直到了Android的第10個版本才支持,Google這一做風讓我想起了蘋果。

然後Stephanie Cuthbertson又用很長的篇幅介紹了一下Android Q系統的隱私與安全性,看來美國人真的是很在乎這個。她說在Gartner 2019年的安全性測試報告中,Android系統取得了最高安全等級的評級,當然這裏指的是原生Android系統。

最後她又介紹了一些Android Q系統中新增的小功能。比如爲了讓你能夠專心工作而不被不重要的事情打擾,新增了Focus Mode模式。爲了防止小孩子過度沉迷手機,新增了家長鎖模式。都屬於一些挺有用的功能,但是也並不算是什麼革命性的創新。

目前Android Q Beta版已經可以安裝在13家手機廠商的21款手機當中了,我看到這裏的時候真的感覺中國的手機廠商已經走在了世界的前列,因爲這13家手機廠商中有5家都是來自中國大陸的。

介紹完了Android之後,接下來的Google Keynote就進入賣硬件的環節了。今年Google主要推出了兩款硬件產品,分別是Nest Hub Max和Pixel 3a。

Nest Hub Max我感覺實際上就是一個帶屏幕的智能音箱,當然它的智能程度要遠比國產的那些智能音箱要高得多,得益於Google強大的人工智能技術。

演講人Rick Osterloh在臺上演示了Nest Hub Max的很多功能,這裏我就不給大家一一介紹了,貼出一張圖讓大家直觀地看看Nest Hub Max長什麼樣吧。

看上去很醜有沒有,不過它還是能幫助我們做很多事情的,而且售價並不貴,只賣229美元,相信一定會有不少人願意買賬。

接下來介紹的就是萬衆期望的Pixel 3a手機了,作爲Google自主研發的親兒子手機,這次的Pixel 3a最爲突出的一個特點就是廉價。Google設計這款手機的理念就是,我們不需要花大筆的錢像友商那樣堆硬件,而是通過軟件和人工智能的方式來讓手機在廉價的硬件上跑出高端機的效果。爲了舉例說明,還在大屏幕上給出了一張黑暗光線環境下iPhone X和Pixel 3a的拍照效果對比。

當然大會上還介紹了許多Pixel 3a的其他特性,這裏我就不再進行一一介紹了,這款手機的售價是399美元,差不多是之前Pixel手機售價的一半,公佈售價之後現場也是掌聲不斷。

Google Keynote的最後一個主題又開始介紹人工智能,主要向我們解釋了一些人工智能的工作原理,以及人工智能可以在哪些方向進行應用。比如目前Google已經與一些醫療機構進行合作,使用人工智能技術能夠提前一年診斷出病人是否有潛在肺癌的風險,並提升40%左右的治癒機率。

由於整個人工智能主題的介紹涉及專業內容比較多,而且又都是用英語介紹的,我也沒能完全聽得明白,從現場觀衆給出的反應我能感受出來,其實大多數人也都沒聽明白,所以這裏就給大家簡單介紹到這裏。

那麼Google Keynote的主要內容差不多就是這些,接下來我們開始看一下Developer Keynote中的內容。

Developer Keynote

衆所周知,Google是一家技術驅動的公司,因此開發者對於Google的重要性不用說也知道,所以每年的Developer Keynote都是一個重磅環節。今年Developer Keynote的開場是由一個叫Thomas Kurian的印度大佬來主持的。

當他說到這是他參加的首次Google I/O時,我就知道這肯定不是一般人。Developer Keynote的開場環節是不可能讓一個剛加入Google一年的普通人來主持的。所以我就隨手Google了一下他的來歷,原來他之前是Oracle產品開發的總負責人,在Oracle工作了22年,去年纔剛剛被Google挖了過來,現在負責Google Cloud的業務。

當然這位大佬並沒有介紹什麼具體的技術,而是給全球開發者灌了五分鐘的雞湯。反正就是講了講他是如何走上程序員這條路的,以及現在開發者的環境相比於他的年代是如此之美好,現在是成爲一名程序員的最好時機等等之類的。

雞湯灌完了之後,接下來就進入到正式的技術環節了。首先介紹的第一個主題就是Android。Google工程師Chet Haase上來就重提了一下Google對於隱私與安全有多麼重視,在Android Q中更是加入了諸多能夠幫助用戶更好地管理自己隱私的功能,並提倡大家多多使用Android Q Beta版,並多多向Google反饋問題。

接下來宣佈的就是一個重磅消息了,Google在2017年的I/O大會上宣佈支持使用Kotlin語言來開發Android應用程序,和Java同爲一級開發語言。而今天Google正式宣佈,Kotlin將由一級開發語言轉爲第一開發語言,未來Google提供的API都會優先以Kotlin爲準。當然Java和C++開發也會繼續支持下去,暫時還沒有放棄Java的時間表。

Chet Haase說到,目前已有超過50%的專業Android開發者選擇使用Kotlin,並且Kotlin目前是Github中上升最快的編程語言。

另外Chet Haase還開玩笑說道,由於Kotlin的代碼實在是太簡潔了,許多人使用Kotlin編程之後,爲了能多練練指法甚至都開始寫註釋了。

其實看到了Google官方的態度之後,我也更加堅定了寫《第一行代碼 第3版》這本書的決心。Kotlin必然是未來大勢所趨,但是在國內的推進過程中也必然會遇到很多的阻力,那麼我也希望通過我寫的這本書,能夠爲國內Kotlin語言的普及貢獻一份力。

介紹完了Kotlin,Chet Haase開始介紹開發者需要關注的一些其他重要信息。其中去年在Google I/O大會上推出的Jetpack開發組件今年又有新成員了,加入了諸如CameraX、SavedState for ViewModel、Jetpack Compose等新組件。不過在Keynote上面並沒有非常詳細地介紹這些組件的作用是什麼,等有機會的話我可能會專門寫一篇文章來分析分析這些新組件。

然後Chet Haase又開始介紹Android Studio,之前的Android Studio 3.x版本雖然增加了許多功能,但是也存在着許多bug。在收到全球開發者的各種反饋之後,Android Studio團隊花了6個月的時間沒有開發任何新功能,而是專門處理之前版本中的崩潰、性能問題、界面卡死、內存泄漏等等之類的bug。另外之前的Instant Run功能也不夠可靠,現在Android Studio團隊進行了全新的重寫,並改名叫Apply Changes功能。所有的這些改進都會在Android Studio 3.5版本中體現,這將會是一個非常穩定的版本。

在Android主題的最後,Chet Haase竟然提到了一個In-app updates功能,還找了另外一位工程師上臺演示。什麼!!這難道是Google官方的熱更新功能嗎?我滿心期待地看下去,結果,帥哥你確定不是過來搞笑的嗎?所謂的In-app updates其實就是在App裏彈出一個對話框提醒你有更新了,然後由用戶手動去點擊下載而已,和我們所理解的熱更新完全不是同一回事。

不過這個In-app updates功能並不需要跳轉到Google Play商店,也不需要彈出安裝界面,這一點上還是不錯的。看來Google對於國內的這些熱更新黑科技還是沒啥興趣,短時間內沒有官方支持的可能。

Developer Keynote中Android主題相關的內容差不多就是這些,接下來是一些其他技術主題的內容,我就稍微介紹得簡略一點了。

緊接着Android的是Google Assistant主題,演講人向大家介紹,開發者們可以通過一些配置文件,來讓自己的網站更加適配Google搜索,或者讓自己的App更加適配Android系統。

舉個例子,只要開發者按照Google Assistant規定的格式來配置屬性,在Google搜索相關的內容時就可以顯示諸如下圖中的步驟過程,讓用戶可以一目瞭然。

類似地,如果開發者在App中按照Google Assistant規定的格式來配置屬性,那麼用戶就可以通過語音來操控App,完成諸如運動健身、照片分享、甚至是點外賣的功能。

Google Assistant主題結束之後,接下來又看到這位斷臂美女工程師上臺介紹Web開發的新技術了,我印象中上一屆的Google I/O大會上也有她的身影。Google爲了表示自己全球無界限無歧視完全平等的態度,會讓不同性別,不同膚色,不同種族,甚至是殘障人士來參與到每一屆的I/O大會當中。

Web開發方面的技術我不是特別熟,所以就簡單幫大家總結幾點內容吧。

第一點就是快,由Google開源的V8引擎現在解析JavaScript的速度比之前快了一倍,並且少佔用了20%的內存。也就是我們使用新版的Chrome瀏覽器之後,網頁加載速度會比之前更快,佔用的內存會更少。

第二點就更加有用了,Chrome瀏覽器增加了一個Image Lazing Loading功能。這個功能是什麼意思呢?我們都知道,當使用瀏覽器打開一個網頁的時候,瀏覽器會自動加載並解析這個網頁上的所有內容,包括所有的圖片。而有些圖片可能在網頁的最底部,我們或許根本就看不到它們,但卻要付出加載這些圖片的帶寬和時間。爲此,Chrome增加了這樣一個Image Lazy Loading的功能,允許我們指定只有當圖片顯示在界面上的時候才進行加載。

指定這樣一個功能極其簡單,只需要在img標籤上加入一個loading屬性就行了,如下所示:

<img src="io2019ftw.png" loading="lazy" />

剩下的事情Chrome瀏覽器都會幫我們自動搞定,這個功能對於開發者和用戶而言都是一個極大的利好。

第三點,介紹了幾個Web開發相關的新工具,比如向Lighthouse中添加了一個新的Performance budgets功能,還有使用WebAssembly開發類似於本地App體驗的網頁程序等。

第四點,Chrome OS變得更加強大了。Chrome OS是Google開發的一個桌面操作系統,我之前也使用過這個操作系統,但是它的功能十分有限,基本只能用來上上網而已。而現在Chrome OS除了可以用來上網,還可以用來開發程序了,最新的Chrome OS中集成了Linux系統虛擬機,不僅可以用來開發網頁程序,還可以用來開發Android程序。不過這仍然是一個高度依賴於網絡和Google服務的操作系統,對於國內用戶來說可能還是很難使用。

Web開發主題的內容結束之後,接下來不可或缺的,又進入到了人工智能主題當中。

相比於前幾年Google的人工智能技術雖然很牛,但是也很難讓人理解,開發者也不知道該如何使用,今年Google將人工智能技術體系進行了歸類,讓所有開發者都能明白,我可以怎樣使用Google的人工智能技術。

可以看到,Google將人工智能技術歸爲了三大類體系,ML Kit、Google Cloud和TensorFlow。

其中,ML Kit是你快速上手人工智能技術的最佳工具。這是一個常用AI技術的工具集,包括許多Google自己都在用的AI功能都集成在了ML Kit裏面,直接使用這個工具集可以讓你立即就能實現出來一些非常棒的AI功能。

Google Cloud是一個雲端訓練平臺,做過人工智能模型訓練的開發者應該都知道,訓練一個模型對於硬件的要求極高,而且CPU的效率太低,基本都要使用GPU來訓練才行,高端顯卡有多貴大家都清楚的吧?而藉助Google Cloud,所有的訓練工作都可以在雲端完成,Google的雲端那可都是最頂級的硬件,既省時又省事。

TensorFlow這個很多人就非常熟悉了,這是Google開源的一個機器學習訓練框架。爲什麼要開源這個框架呢?當Google提供的默認人工智能服務不能滿足你的需求時,你就可以使用TensorFlow框架來開發適合你自己的人工智能功能,當然這個技術難度就很深了,Keynote當中也不可能展開討論。

通過這樣的體系分類,我們就能一下子明白Google在人工智能方面到底給開發者提供了哪些服務,開發者們也就可以自主去選擇相應服務來實現自己人工智能相關的需求了。

人工智能主題持續的時間非常長,上面我也只是簡單地總結了一下而已。本來就在我以爲Developer Keynote的所有內容都要結束的時候,接下來還有一個主題沒有被忘記,那就是Flutter。

當然主講人並沒有介紹多少Flutter的具體內容,而是主要宣佈了一件事情,那就是Flutter除了支持開發Android和iOS程序之外,現在還支持開發Web程序了。

Flutter是使用Dart語言來進行開發的,部署到Android平臺之後會自動將相應的Dart代碼轉換成Java代碼。類似地,部署到iOS平臺之後會自動轉換成OC代碼。而現在Flutter又增加了將Dart代碼轉換成JavaScript代碼的功能,從而支持了Web程序開發。

之前有過不少朋友在公衆號裏問我,是學習Flutter開發還是學習Android開發?這個問題在我看來其實並不完整,因爲同樣你還可以問是學習Flutter開發還是學習iOS開發?是學習Flutter開發還是學習Web開發?

通過這次的Developer Keynote我們可以看出,Flutter是一種跨平臺技術,而不屬於Android技術,Google的Android團隊對於Flutter隻字未提,而是建議使用Kotlin語言來進行開發。那麼Google爲什麼還要開發Flutter技術呢?因爲跨平臺開發市場即使Google不做也會有其他公司去做,比如FaceBook的RN,阿里的Weex。因此Flutter實際上是在和這些公司的產品搶市場,而不是在和自己的Android團隊搶市場。

所以這種問題其實沒有什麼標準的答案,你喜歡哪個技術就可以去學哪個技術,Flutter和Android並不是那種二選一的關係,而是一種共生的關係。Flutter團隊會繼續完善這個跨平臺開發的框架,Android團隊也會繼續發展自己的原生開發環境,它們都有着各自的優勢,相信未來也都會變得更加美好。

好了,關於這次Google I/O 2019大會的所有重要內容我都彙集在這一篇文章當中了。文章比我預想的要長一些,爲了寫這篇文章花了我大約四天的時間。但是把將近三個小時的會議內容壓縮到這樣一篇文章裏我認爲還是相當值得的,至少幫大家節省了一大部分時間。

最後再附上一些我認爲比較重要的Android主題會議的Youtube觀看地址,感興趣的朋友可以自行去學習(需科學上網)。

What’s New in Android
https://www.youtube.com/watch?v=td3Kd7fOROw

What’s New in Architecture Components
https://www.youtube.com/watch?v=Qxj2eBmXLHg

What’s New in Kotlin on Android
https://www.youtube.com/watch?v=8rYLFD1ZfnM

Android Jetpack: Understand the CameraX Camera-Support Library
https://www.youtube.com/watch?v=kuv8uK-5CLY

Build a Modular Android App Architecture
https://www.youtube.com/watch?v=PZBg5DIzNww

Build Apps for Foldable, Multi-Display, and Large-Screen Devices
https://www.youtube.com/watch?v=8uQEzv3upy8

Understand Kotlin Coroutines on Android
https://www.youtube.com/watch?v=BOHK_w09pVA

Android Studio: Tips and Tricks
https://www.youtube.com/watch?v=ihF-PwDfRZ4


關注我的技術公衆號,每個工作日都有優質技術文章推送。

微信掃一掃下方二維碼即可關注:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章