2017 年 Android 領(lǐng)域大事件回顧

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)用。

Android 架構(gòu)組件

談話視頻:

探索 Android 架構(gòu)組件

免責(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

盡管 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ā)者。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末易阳,一起剝皮案震驚了整個(gè)濱河市附较,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌潦俺,老刑警劉巖翅睛,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異黑竞,居然都是意外死亡捕发,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門很魂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扎酷,“玉大人,你說我怎么就攤上這事遏匆》òぃ” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵幅聘,是天一觀的道長(zhǎng)凡纳。 經(jīng)常有香客問我,道長(zhǎng)帝蒿,這世上最難降的妖魔是什么荐糜? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上暴氏,老公的妹妹穿的比我還像新娘延塑。我一直安慰自己,他們只是感情好答渔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布关带。 她就那樣靜靜地躺著,像睡著了一般沼撕。 火紅的嫁衣襯著肌膚如雪宋雏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天务豺,我揣著相機(jī)與錄音好芭,去河邊找鬼。 笑死冲呢,一個(gè)胖子當(dāng)著我的面吹牛舍败,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播敬拓,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邻薯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了乘凸?” 一聲冷哼從身側(cè)響起厕诡,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎营勤,沒想到半個(gè)月后灵嫌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葛作,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年寿羞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赂蠢。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绪穆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出虱岂,到底是詐尸還是另有隱情玖院,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布第岖,位于F島的核電站难菌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蔑滓。R本人自食惡果不足惜郊酒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一遇绞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猎塞,春花似錦试读、人聲如沸杠纵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽比藻。三九已至铝量,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間银亲,已是汗流浹背慢叨。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留务蝠,地道東北人拍谐。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像馏段,于是被迫代替她去往敵國和親轩拨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評(píng)論 25 707
  • afinalAfinal是一個(gè)android的ioc院喜,orm框架 https://github.com/yangf...
    wgl0419閱讀 6,281評(píng)論 1 9
  • afinalAfinal是一個(gè)android的ioc亡蓉,orm框架 https://github.com/yangf...
    passiontim閱讀 15,429評(píng)論 2 45
  • 今天晚上9點(diǎn)左右我出現(xiàn)了很多幻覺:大致就是別人要害我引導(dǎo)我的思想進(jìn)入困境。 不過還好我了解了這不過是我的想法喷舀,并沒...
    簡(jiǎn)潔一方閱讀 171評(píng)論 0 0
  • 我這個(gè)暑假話說到現(xiàn)在為止好像就只看過一部電影砍濒,那算了,就寫這一篇吧硫麻。 《黑客帝國》爸邢,想必很多人都看...
    洵張閱讀 395評(píng)論 0 1