2017?對(duì)于 Android?來說是了不起的一年炕贵。在這一年中,Android?發(fā)布了很多重大的公告愿阐,包括支持?Kotlin?這一領(lǐng)人振奮的新語言竹挡,以及使用?Neural?網(wǎng)絡(luò)?API?和?ARCore?構(gòu)建智能交互式應(yīng)用等。
讓我們以?Android?開發(fā)者的視角來快速回顧一下 2017?年中所有值得注意的?Android?公告奖蔓。
Kotlin ?—? 有趣的新語言
Android 開發(fā)者早就已經(jīng)對(duì) Java 語言樣板化的代碼厭倦了赞草,而幾年之前,少有公司和開發(fā)者會(huì)去尋找其它可供構(gòu)建 Android 應(yīng)用的選擇吆鹤,直到他們遇上了?Kotlin厨疙。
自此這種富有魅力的語言就不斷地開疆?dāng)U土,很快在5月17日?Google 就宣布了?Kotlin 為 Android 開發(fā)的官方語言疑务。
至于后面發(fā)生了什么沾凄,地球人都知道 ;) Kotlin 萬歲!
有趣的事實(shí): Android Studio 3.0 中有超過 17% 的項(xiàng)目使用的是 Kotlin
Kotlin 語言風(fēng)格指南
隨著 Kotlin 的發(fā)展?jié)u成燎原之勢(shì),JetBrains 的 Google 和 Kotlin 團(tuán)隊(duì)發(fā)布了包含了在使用 Kotlin 構(gòu)建 Android 應(yīng)用時(shí)可以遵循的一系列規(guī)則知允。
在 Android 上開發(fā) Kotlin 代碼的官方指南
Android 架構(gòu)組件
之前撒蟀,Google 從來都沒有就哪種架構(gòu)適合用來構(gòu)建 Android 應(yīng)用發(fā)表觀點(diǎn),或者給出推薦做法温鸽。
不過在 2017 年他們終于決定用《架構(gòu)組件與指南》來告訴大家他們推薦使用什么架構(gòu)保屯。
?架構(gòu)指南
《架構(gòu)指南》是一系列的指導(dǎo)意見,定義可以來構(gòu)建穩(wěn)定涤垫,可維護(hù)和測(cè)試的 Android 應(yīng)用的實(shí)際架構(gòu)和最佳實(shí)踐姑尺。
架構(gòu)組件
架構(gòu)組件是一堆被設(shè)計(jì)用來幫助我們遵循架構(gòu)指南構(gòu)建應(yīng)用的庫。這些庫是模塊化的雹姊,因此并沒有必要把它們都使用起來股缸。
它們是在 17 年的?Google I/O 大會(huì)上推出的衡楞,已經(jīng)趨于穩(wěn)定吱雏,因此如果你已經(jīng)沒有入手,現(xiàn)在就是入手的好時(shí)機(jī)了瘾境。
我已經(jīng)纂寫了一個(gè)系列的文章來解釋架構(gòu)組件歧杏,還有一個(gè)使用了它們的示例應(yīng)用。
談話視頻:
免責(zé)聲明: 這一個(gè)視頻是由我來錄的迷守。Google 的那個(gè)你如果想要的話犬绒,可以自己找找。
示例應(yīng)用:
AkshayChordiya/android-arch-news-sample
有趣的事實(shí): 還有更多的庫 (它們都將會(huì)稱為架構(gòu)組件的一部分) 很快就會(huì)有了兑凿。
Android Oreo? —? 最甜的 Android
2017 年我們可以從 Android Oreo 獲得許多的功能特性凯力。Oreo 設(shè)置了一個(gè)持續(xù)運(yùn)行并消耗內(nèi)存后臺(tái)服務(wù)茵瘾。
那有什么新東西呢?
后臺(tái)限制(Background Limit)
通知頻道(Notification Channel)
自動(dòng)填充 API(Auto-fill API)
畫中畫(Picture-in-picture)
自適應(yīng)圖標(biāo)(Adaptive icons)
字體(Fonts)和可下載字體(downloadable fonts)
自動(dòng)調(diào)整大小的 TextView(Auto-sizing TextView)
你可以從如下地址了解到更多有關(guān)的 API 變化:
Android 8.0 功能特性和 API | Android Developers
Android Studio?3.0
Android Studio 3.0 發(fā)布了許多新功能,像是對(duì) Kotlin 的支持, 新的應(yīng)用模擬工具套件對(duì)開發(fā)者更加友好咐鹤,而且可以幫助快速地修復(fù)性能問題拗秘。
重要的提升:
更加快速
支持 Kotlin
新的應(yīng)用模擬工具
APK 分析器(APK Analyzer)
支持開發(fā)中應(yīng)用實(shí)時(shí)運(yùn)行(Instant app)
支持 Android things
自適應(yīng)圖標(biāo),可下載字體已經(jīng)更多新功能
從下面的地址你還可以了解到更多:
盡管 Android Studio 3.0 已趨于穩(wěn)定祈惶,不過此外的 Android Studio 3.1 已經(jīng)在試用頻道發(fā)布了雕旨,而它帶來了更多的像是新的 DEX 編譯器這樣的魔性技術(shù)。
實(shí)時(shí)運(yùn)行應(yīng)用(Instant App)?— 無需安裝即可運(yùn)行
Android 實(shí)時(shí)運(yùn)行應(yīng)用是一種無需安裝就能運(yùn)行 Android 應(yīng)用的新方法捧请。它是一種讓用戶使用 Android 應(yīng)用的全新方式凡涩。
Instant apps 是借助一個(gè) URL 來觸發(fā)的,無需安裝就會(huì)打開一個(gè)應(yīng)用疹蛉。這像技術(shù)是通過將應(yīng)用分解成功能然后讓每一項(xiàng)功能映射到 URL 來實(shí)現(xiàn)的活箕,當(dāng) Google Play 接收到對(duì)特定 URL 的請(qǐng)求時(shí),就會(huì)去獲取到應(yīng)用的那個(gè)功能的代碼可款,再去運(yùn)行這個(gè)應(yīng)用讹蘑。
對(duì)一個(gè)實(shí)時(shí)運(yùn)行應(yīng)用進(jìn)行解析
實(shí)時(shí)運(yùn)行應(yīng)用是由多個(gè)基于一個(gè)基礎(chǔ)功能的功能組合而成的 —— ?基礎(chǔ)功能包含了所有功能的通用邏輯。
開發(fā)實(shí)時(shí)運(yùn)行應(yīng)用可以幫助我們依據(jù)應(yīng)用的功能特性讓項(xiàng)目模塊化(如果不是已經(jīng)模塊化的話)筑舅,也能幫助我們裁減 APK 的大小座慰。
開始構(gòu)建你的實(shí)時(shí)運(yùn)行應(yīng)用的不錯(cuò)的方法:
Android Instant Apps | Android Developers
Project Treble
Android 版本的碎片化是 Android 生態(tài)系統(tǒng)最大的問題之一。終端收到最新的 Android 更新要等上好多個(gè)月翠拣,而大多數(shù)終端甚至都不會(huì)收到更新版仔。
有了 Project Treble,Android OS 架構(gòu)被重新設(shè)計(jì)误墓,制造商可以更輕松且更快速地將終端更新上新版本的 Android蛮粮,而且代價(jià)也更少。
現(xiàn)在有了 Treble谜慌,終端制造商只需要將 Android OS 框架更新到最新就可以了然想,而無需擔(dān)憂供應(yīng)商的實(shí)現(xiàn)會(huì)導(dǎo)致延遲更新。
Project Treble 要展現(xiàn)其神力尚需時(shí)日欣范。我真心希望它能發(fā)揚(yáng)光大变泄,然后徹底解決調(diào) Android 碎片化的問題。
Treble 來了: 為 Android 準(zhǔn)備的模塊化基礎(chǔ)
有趣的事實(shí): Google Pixel 2 在推出時(shí)承諾將持續(xù)更新 Android OS?三年恼琼。這其實(shí)是 Project Treble 將會(huì)給 Android 碎片化問題帶來轉(zhuǎn)機(jī)的很好證明妨蛹。
Android Go?—為入門級(jí)終端提供強(qiáng)大體驗(yàn)
Android Go是 Google 推出的一項(xiàng)舉措,旨在為全球數(shù)十億的在線用戶優(yōu)化 Android 的使用體驗(yàn)晴竞。
它是 Android 的一個(gè)優(yōu)化版本蛙卤,被設(shè)置用來在入門級(jí)也能很好的運(yùn)行。
Android Go 起步于 Android 8.1 也就是 Android Oreo (Go 版) ,而它進(jìn)行了如下配置:
內(nèi)存優(yōu)化:?根據(jù)平臺(tái)來提升內(nèi)存的使用颤难,以確保應(yīng)用能在只有 1GB 或者更小 RAM 的終端上高效運(yùn)行神年。
Google Play:?Google Play 商店將會(huì)對(duì)那些使用《為數(shù)十億用戶構(gòu)建應(yīng)用指南》進(jìn)行了優(yōu)化,以為數(shù)十億人提供良好體驗(yàn)的應(yīng)用進(jìn)行推薦并且給予更多的可見性行嗤。也就是說其它的應(yīng)用將可以從商店看到并且進(jìn)行安裝瘤袖。
功能特性
Android Go 設(shè)備將可以有兩倍甚至更多存儲(chǔ)應(yīng)用;
它們會(huì)與 Google 應(yīng)用的?“Go 版”一起運(yùn)行昂验。
應(yīng)用平均會(huì)快上 15%
Android Go 是?Solve for India 小組于十二月份發(fā)布的捂敌,而部署了?Android Go 的設(shè)備將會(huì)在 2018 到來:
介紹跟隨 Android 8.1 一起發(fā)布的的 Android Oreo (Go 版)
ARCore
2017 年增強(qiáng)現(xiàn)實(shí)技術(shù)(AR)隨著 ARCore 來到 Android 中,ARCore 已成為在 Android 上構(gòu)建增強(qiáng)現(xiàn)實(shí)應(yīng)用程序的平臺(tái)既琴。
它被設(shè)計(jì)工作于運(yùn)行 Android 7.1 (Nougat)及以上版本的 Android 設(shè)備中占婉,但現(xiàn)在因?yàn)樗幱陂_發(fā)者預(yù)覽階段,所以只支持 Pixel 和一些三星的設(shè)備甫恩。
它支持三種開發(fā)環(huán)境:
JAVA
Unity
Unreal
而且可能還有更多的渠道(指開發(fā)環(huán)境)逆济,你可以使用它們中的任一個(gè)(環(huán)境)構(gòu)建你的 ARCore 應(yīng)用。
它仍然在開發(fā)者預(yù)覽版中磺箕,現(xiàn)在是折騰它的好時(shí)機(jī)奖慌。
去吧,開始折騰 AR 玩吧松靡。
ARCore - Google Developer | ARCore | Google Developers
谷歌 Pixel 2 的 AR Stickers 就是 Android ARCore 的一個(gè)例子简僧。
Neural Net?API
Android 神經(jīng)網(wǎng)絡(luò) API 是一種 Android C API ,旨在運(yùn)行計(jì)算密集型操作的設(shè)備級(jí)的機(jī)器學(xué)習(xí)雕欺。
它為像 TensorFlow Lite 等更高級(jí)別的機(jī)器學(xué)習(xí)框架提供了一個(gè)基礎(chǔ)抽象層岛马。可在支持的設(shè)備上進(jìn)行硬件加速推理操作屠列,以快速執(zhí)行先前訓(xùn)練過的機(jī)器學(xué)習(xí)模型啦逆。
它將主要輔助:
降低網(wǎng)絡(luò)成本和延遲
提供隱私
它在 Android 8.1(奧利奧)及以上版本上可用。
閱讀更多:
Neural Networks API | Android Developers
TensorFlow Lite
機(jī)器學(xué)習(xí)正在興起笛洛,TensorFlow是 GitHub 上機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的頂級(jí)開源框架之一夏志。
TensorFlow Lite 是 TensorFlow 專門針對(duì)移動(dòng)設(shè)備的優(yōu)化版本
這是為移動(dòng)和嵌入式設(shè)備提供的輕量級(jí)解決方案。它能夠?qū)崿F(xiàn)具有低延遲和小二進(jìn)制大小的設(shè)備上的機(jī)器學(xué)習(xí)推理苛让。它還支持 Android 8.1 中引入的新的Android Neural Networks API的硬件加速沟蔑。
特性
輕量級(jí):?能夠?qū)崿F(xiàn)具有小二進(jìn)制大小和快速初始化/啟動(dòng)的設(shè)備上機(jī)器學(xué)習(xí)模型。
跨平臺(tái):?被設(shè)計(jì)成可在 Android 和 iOS 上運(yùn)行蝌诡。
快速:?有多個(gè)針對(duì)移動(dòng)設(shè)備的優(yōu)化溉贿,包括顯著改善的模型加載時(shí)間枫吧,并支持硬件加速浦旱。
更多閱讀:
TensorFlow Lite 簡(jiǎn)介 | TensorFlow
總結(jié)
我覺得有那么多令人驚異的公告的 ?2017 年,是 Android 最激動(dòng)人心的一年九杂。使用 Kotlin 和架構(gòu)組件—指南颁湖,谷歌正讓 Android 開發(fā)者的生活變得輕松宣蠕。
Android Oreo 的發(fā)布使 Android 更快,更安全甥捺,更貼心抢蚀。并且試圖用 Project Treble 來解決碎片的問題和推出 Android Go 用于入門級(jí)的設(shè)備。
在新的神經(jīng)網(wǎng)絡(luò) API 和 ARCore 的幫助下镰禾,通過將機(jī)器學(xué)習(xí)和增強(qiáng)現(xiàn)實(shí)技術(shù)引入 Android 皿曲,使設(shè)備更加智能和有趣。
簡(jiǎn)而言之吴侦,我看到了 Android屋休、Kotlin 和 Android 開發(fā)者們的一個(gè)非常明亮的未來,我覺得將會(huì)有更多讓人興奮的事情出現(xiàn)在 2018 年备韧。
關(guān)于作者:
Akshay Chordiya -- Android 愛好者劫樟,caster.io(一個(gè)教育網(wǎng)站)的老師≈茫《Kotlin Blueprints book》的合著者叠艳,谷歌認(rèn)證的 Android 開發(fā)者。