來自:開源中國
連結:oschina.net/translate/2017-year-in-a-review-android
原文:https://proandroiddev.com/2017-year-in-a-review-android-5f2cd8738790
2017 對於 Android 來說是了不起的一年。在這一年中,Android 釋出了很多重大的公告,包括支援 Kotlin 這一領人振奮的新語言,以及使用 Neural 網路 API 和 ARCore 構建智慧互動式應用等。
讓我們以 Android 開發者的視角來快速回顧一下 2017 年中所有值得註意的 Android 公告。
Kotlin — 有趣的新語言
Android 開發者早就已經對 Java 語言樣板化的程式碼厭倦了,而幾年之前,少有公司和開發者會去尋找其它可供構建 Android 應用的選擇,直到他們遇上了 Kotlin。
自此這種富有魅力的語言就不斷地開疆擴土,很快在5月17日 Google 就宣佈了 Kotlin 為 Android 開發的官方語言。
至於後面發生了什麼,地球人都知道 😉 Kotlin 萬歲!
有趣的事實: Android Studio 3.0 中有超過 17% 的專案使用的是 Kotlin
Kotlin 語言風格指南
隨著 Kotlin 的發展漸成燎原之勢,JetBrains 的 Google 和 Kotlin 團隊釋出了包含了在使用 Kotlin 構建 Android 應用時可以遵循的一系列規則。
-
在 Android 上開發 Kotlin 程式碼的官方指南
Android 架構元件
之前,Google 從來都沒有就哪種架構適合用來構建 Android 應用發表觀點,或者給出推薦做法。
不過在 2017 年他們終於決定用《架構元件與指南》來告訴大家他們推薦使用什麼架構。
架構指南
《架構指南》是一系列的指導意見,定義可以來構建穩定,可維護和測試的 Android 應用的實際架構和最佳實踐。
架構元件
架構元件是一堆被設計用來幫助我們遵循架構指南構建應用的庫。這些庫是模組化的,因此並沒有必要把它們都使用起來。
它們是在 17 年的 Google I/O 大會上推出的,已經趨於穩定,因此如果你已經沒有入手,現在就是入手的好時機了。
我已經纂寫了一個系列的文章來解釋架構元件,還有一個使用了它們的示例應用。
-
Android 架構元件
談話影片:
-
探索 Android 架構元件
免責宣告: 這一個影片是由我來錄的。Google 的那個你如果想要的話,可以自己找找。
示例應用:
-
AkshayChordiya/android-arch-news-sample
有趣的事實: 還有更多的庫 (它們都將會稱為架構元件的一部分) 很快就會有了。
Android Oreo — 最甜的 Android
2017 年我們可以從 Android Oreo 獲得許多的功能特性。Oreo 設定了一個持續執行並消耗記憶體後臺服務。
那有什麼新東西呢?
-
後臺限制(Background Limit)
-
通知頻道(Notification Channel)
-
自動填充 API(Auto-fill API)
-
畫中畫(Picture-in-picture)
-
自適應圖示(Adaptive icons)
-
字型(Fonts)和可下載字型(downloadable fonts)
-
自動調整大小的 TextView(Auto-sizing TextView)
你可以從如下地址瞭解到更多有關的 API 變化:
-
Android 8.0 功能特性和 API | Android Developers
Android Studio 3.0
Android Studio 3.0 釋出了許多新功能,像是對 Kotlin 的支援, 新的應用模擬工具套件對開發者更加友好,而且可以幫助快速地修複效能問題。
重要的提升:
-
更加快速
-
支援 Kotlin
-
新的應用模擬工具
-
APK 分析器(APK Analyzer)
-
支援開發中應用實時執行(Instant app)
-
支援 Android things
-
自適應圖示,可下載字型已經更多新功能
從下麵的地址你還可以瞭解到更多:
-
Android Studio 3.0
儘管 Android Studio 3.0 已趨於穩定,不過此外的 Android Studio 3.1 已經在試用頻道釋出了,而它帶來了更多的像是新的 DEX 編譯器這樣的魔性技術。
實時執行應用(Instant App) — 無需安裝即可執行
Android 實時執行應用是一種無需安裝就能執行 Android 應用的新方法。它是一種讓使用者使用 Android 應用的全新方式。
Instant apps 是藉助一個 URL 來觸發的,無需安裝就會開啟一個應用。這像技術是透過將應用分解成功能然後讓每一項功能對映到 URL 來實現的,當 Google Play 接收到對特定 URL 的請求時,就會去獲取到應用的那個功能的程式碼,再去執行這個應用。
對一個實時執行應用進行解析
實時執行應用是由多個基於一個基礎功能的功能組合而成的 —— 基礎功能包含了所有功能的通用邏輯。
開發實時執行應用可以幫助我們依據應用的功能特性讓專案模組化(如果不是已經模組化的話),也能幫助我們裁減 APK 的大小。
開始構建你的實時執行應用的不錯的方法:
-
Android Instant Apps | Android Developers
Project Treble
Android 版本的碎片化是 Android 生態系統最大的問題之一。終端收到最新的 Android 更新要等上好多個月,而大多數終端甚至都不會收到更新。
有了 Project Treble,Android OS 架構被重新設計,製造商可以更輕鬆且更快速地將終端更新上新版本的 Android,而且代價也更少。
現在有了 Treble,終端製造商只需要將 Android OS 框架更新到最新就可以了,而無需擔憂供應商的實現會導致延遲更新。
Project Treble 要展現其神力尚需時日。我真心希望它能發揚光大,然後徹底解決調 Android 碎片化的問題。
-
Treble 來了: 為 Android 準備的模組化基礎
有趣的事實: Google Pixel 2 在推出時承諾將持續更新 Android OS 三年。這其實是 Project Treble 將會給 Android 碎片化問題帶來轉機的很好證明。
Android Go —為入門級終端提供強大體驗
Android Go 是 Google 推出的一項舉措,旨在為全球數十億的線上使用者最佳化 Android 的使用體驗。
它是 Android 的一個最佳化版本,被設定用來在入門級也能很好的執行。
Android Go 起步於 Android 8.1 也就是 Android Oreo (Go 版) ,而它進行瞭如下配置:
-
記憶體最佳化: 根據平臺來提升記憶體的使用,以確保應用能在只有 1GB 或者更小 RAM 的終端上高效執行。
-
Google Play: Google Play 商店將會對那些使用《為數十億使用者構建應用指南》進行了最佳化,以為數十億人提供良好體驗的應用進行推薦並且給予更多的可見性。也就是說其它的應用將可以從商店看到並且進行安裝。
功能特性
-
Android Go 裝置將可以有兩倍甚至更多儲存應用;
-
它們會與 Google 應用的 “Go 版”一起執行。
-
應用平均會快上 15%
Android Go 是 Solve for India 小組於十二月份釋出的,而部署了 Android Go 的裝置將會在 2018 到來:
-
介紹跟隨 Android 8.1 一起釋出的的 Android Oreo (Go 版)
ARCore
2017 年增強現實技術(AR)隨著 ARCore 來到 Android 中,ARCore 已成為在 Android 上構建增強現實應用程式的平臺。
它被設計工作於執行 Android 7.1 (Nougat)及以上版本的 Android 裝置中,但現在因為它處於開發者預覽階段,所以只支援 Pixel 和一些三星的裝置。
它支援三種開發環境:
1、JAVA
2、Unity
3、Unreal
而且可能還有更多的渠道(指開發環境),你可以使用它們中的任一個(環境)構建你的 ARCore 應用。
它仍然在開發者預覽版中,現在是折騰它的好時機。
去吧,開始折騰 AR 玩吧。
-
ARCore – Google Developer | ARCore | Google Developers
谷歌 Pixel 2 的 AR Stickers 就是 Android ARCore 的一個例子。
Neural Net API
Android 神經網路 API 是一種 Android C API ,旨在執行計算密集型操作的裝置級的機器學習。
它為像 TensorFlow Lite 等更高階別的機器學習框架提供了一個基礎抽象層。可在支援的裝置上進行硬體加速推理操作,以快速執行先前訓練過的機器學習模型。
它將主要輔助:
-
降低網路成本和延遲
-
提供隱私
它在 Android 8.1(奧利奧)及以上版本上可用。
閱讀更多:
-
Neural Networks API | Android Developers
TensorFlow Lite
機器學習正在興起,TensorFlow 是 GitHub 上機器學習和深度學習的頂級開源框架之一。
TensorFlow Lite 是 TensorFlow 專門針對移動裝置的最佳化版本
這是為移動和嵌入式裝置提供的輕量級解決方案。它能夠實現具有低延遲和小二進位制大小的裝置上的機器學習推理。它還支援 Android 8.1 中引入的新的 Android Neural Networks API 的硬體加速。
特性
-
輕量級: 能夠實現具有小二進位制大小和快速初始化/啟動的裝置上機器學習模型。
-
跨平臺: 被設計成可在 Android 和 iOS 上執行。
-
快速: 有多個針對移動裝置的最佳化,包括顯著改善的模型載入時間,並支援硬體加速。
更多閱讀:
-
TensorFlow Lite 簡介 | TensorFlow
總結
我覺得有那麼多令人驚異的公告的 2017 年,是 Android 最激動人心的一年。使用 Kotlin 和架構元件—指南,谷歌正讓 Android 開發者的生活變得輕鬆。
Android Oreo 的釋出使 Android 更快,更安全,更貼心。並且試圖用 Project Treble 來解決碎片的問題和推出 Android Go 用於入門級的裝置。
在新的神經網路 API 和 ARCore 的幫助下,透過將機器學習和增強現實技術引入 Android ,使裝置更加智慧和有趣。
簡而言之,我看到了 Android、Kotlin 和 Android 開發者們的一個非常明亮的未來,我覺得將會有更多讓人興奮的事情出現在 2018 年。
關於作者:
Akshay Chordiya — Android 愛好者,caster.io(一個教育網站)的老師。《Kotlin Blueprints book》的合著者,谷歌認證的 Android 開發者。
●本文編號280,以後想閱讀這篇文章直接輸入280即可
●輸入m獲取文章目錄
Java程式設計
更多推薦《18個技術類微信公眾號》
涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。