Android開發(fā)的過去郁季、現(xiàn)在和將來

現(xiàn)如今年柠,擁有著 80% 的市場份額的 Android 是最主流的手機操作系統(tǒng)掀抹。它運行在無數(shù)的智能手機蓉驹、平板以及其他各種各樣的設備上城榛。僅憑這一點,我們是否可以認為 ?Android 編程是簡單而輕松的呢戒幔?

幾年前吠谢,Miley Cyrus 還在唱著鄉(xiāng)村音樂土童,Justin Bieber 還梳著他那著名的“Bieber”發(fā)型诗茎,Malcolm 還在 AC/DC 樂隊,而同時 Android 開發(fā)還相當復雜献汗。Android 開發(fā)者對于Android 系統(tǒng)開發(fā)最簡單的應用都有一大堆問題敢订。

為什么?嗯罢吃,親愛的讀者楚午,問題出在各種地方:

漏洞層出的IDE:你有沒有試過用一把鏟子去修理你的汽車?或者你開著你爺爺?shù)?0年前的 Yugo 汽車去把妹尿招?在Android世界中矾柜,對于 Android 開發(fā),我們有一個官方 IDE——Eclipse,它有一大堆問題,在10分鐘之內(nèi)保證讓你抓狂害碾。Eclipse ADT 插件對于更多的復雜工程來說也是充滿漏洞氢妈、緩慢而不友好的。我們對此非常惡心匪补,祈禱能發(fā)生奇跡來改善這一切。

系統(tǒng)分裂:Gingerbread (2.3.7)在 Android 系統(tǒng)版本中占據(jù)著相當大的市場份額(至少15-20%)。正如你已知道的弓坞,Android 正通過4.0版本(Ice Cream Sandwich)經(jīng)歷著復雜的翻修過程。系統(tǒng)有了新的用戶界面元素车荔、新的設備硬件API渡冻、新的屏幕密度等等,這就導致了我們必須小心地優(yōu)化和編寫我們的應用來使得在新版本Android和舊版本 Android 都能運行良好忧便。所有的這一切都極大地影響了我們的開發(fā)進程和導致了更多的 bug 和 crash族吻,以至于延長了開發(fā)時間。

緩慢的仿真器:我們需要在不同的 Android 系統(tǒng)版本和屏幕尺寸測試我們的應用茬腿,所以我們必須買至少20種 Android 設備呼奢。聽起來是不是很瘋狂?好吧切平,我們能使用仿真器來解決握础。但是你曾有沒有試過用默認的 Android 仿真器?它的緩慢讓人痛不欲生悴品,當你的應用正在被部署到你的仿真器的時候禀综,你會讓你自己去數(shù)辦公樓前面停的車的數(shù)量來打發(fā)時間简烘。

用戶界面(UI):Android 應用無聊死了。如果你褻瀆看一眼 iOS 應用定枷,你會看到這些應用充滿了生活氣息而且色彩繽紛孤澎。所有的事物都是活生生的,動作轉換欠窒,從左到右覆旭、從右到左……而我們的應用是死的,如果我們想要提高我們的用戶體驗岖妄,老舊的Gingerbread 會很快抹殺我們的希望和憧憬型将。

但是這些都是2013的事了。

一個新開始

所有者一起都在去年發(fā)生了改變荐虐,改變發(fā)生的如此之快七兜,以至于你很容易地失去對它們的追隨腳步,然后問自己“這都是什么時候發(fā)生的福扬?”更重要的是整個 Android 生態(tài)系統(tǒng)提高了很多——我們有了新的硬件(智能手表)腕铸,新的軟件(Gradle,Android Studio)铛碑,新的系統(tǒng)(Android 5.0 Lollipop)狠裹。

每個人都對此有著貢獻——Google、設備制造商亚茬、開發(fā)者酪耳。每個人都有相同的目標。問他們相同的這個問題:“OK∩卜欤現(xiàn)在我們有穩(wěn)定的系統(tǒng)碗暗,十億計的應用和十億計的用戶——我們怎么才能進一步簡化和提高 Android?我們怎么才能使得開發(fā)進程更好梢夯?”這就是 open access和 open source 原則展現(xiàn)的他們的潛力——每個人都可以做出改變言疗、產(chǎn)生提高、創(chuàng)造新的事物的所在颂砸。

很難列出全部的變化噪奄,但我做了一個列表來列出其中(在我看來)最重要的變化:

1.ANDROID STUDIO

我們最喜歡的Andorid 開發(fā)的 IDE 終于變成了穩(wěn)定的1.0版本了。我不會談論太多關于 AS 為什么對于開發(fā)進程來說是最好的相關細節(jié)人乓,因為我們已經(jīng)有兩篇登出的博客覆蓋了這一主題勤篮。我會說 Eclipse ADT 插件已經(jīng)不被官方贊成使用,我也強烈建議你把所有的應用遷移到 ?Android Studio色罚。向 Google 致敬碰缔!

?新Android Studio Logo

2.GRADLE

Gradle 是工程自動化工具,它已經(jīng)替代 Apche Ant 成為 Android 應用主要的構建系統(tǒng)戳护。它在 Android 開發(fā)者中非常流行金抡。因為我們通過它幾乎可以自動化所有事情——從將我們的應用區(qū)分成不同風格瀑焦、正確配置簽名等等

因此,他變成了一系列的“管理”工具梗肝,我們用來定義和維持我們的工程設置榛瓮。Gradle 也是測試自動化庫和自動構建服務器大量增長的主要原因。測試自動化庫和自動構建服務器又給 ?Android 系統(tǒng)帶來了持續(xù)集成(CI)開發(fā)過程巫击。但是不是一切都是那么令人樂觀——Gradle也在執(zhí)行速度上飽受批評禀晓。在復雜工程上面 Gradle 也真的很慢,但我們希望這個問題會在接下來的版本和發(fā)行中解決喘鸟。

3.LOLLIPOP

Google 說 Lollipop 是自人類誕生以來 Android 系統(tǒng)最大的提升匆绣,Google 說的沒錯驻右。 Android 的每個部分都有相應的修改和提升什黑,但是我們也尚未見到開發(fā)者對這些改變有怎樣的反應。雖然將舊設備升級到 Lollipop 還有很多問題堪夭,但是我們期望這會在接下來的版本中解決愕把。

4.LOLLIPOP 的外在—— MATERIAL DESIGN

對于這個叫作 Material Design 的金光閃閃的新 Android UI 有很多要寫。這是最近幾年Android 系統(tǒng)最重要創(chuàng)新點之一森爽,它完全改變了我們應用的觀感恨豁。我最喜歡 Material Design 的是它徹底改變了用戶體驗原則——一切都重要。即使是細小的細節(jié)也不能被忽略爬迟。我們必須對每個用戶交互橘蜜、點擊、觸摸等做出響應付呕。因為计福,這正如 Google 所說的,這些動作都是有意義的徽职。我們必須使用黑體象颖、擁抱新的生動的色彩、每一步使用動畫姆钉、大字體说订,簡單地說,我們要給我們的應用以生命潮瓶。Material Design 同樣也完全符合 Android 生態(tài)系統(tǒng)陶冷,適應各種不同的屏幕尺寸。這也就是為什么我們的應用是相似的毯辅,但是在不同的平臺有著不一樣的外觀埂伦。

?Material Design 動畫

5.LOLLIPOP 的內(nèi)在—— ART

每個人都在談論設計、UI悉罕、UI 元素赤屋、動畫立镶、色彩······,但是我們是開發(fā)者,我們感興趣的是外表之下的東西类早。而且媚媒,哇!IА!這引擎真是美極了:ART逆日,新的運行系統(tǒng)嵌巷。為了記錄,ART 并不是什么新東西—它被介紹為 Kitkat 上次要的運行系統(tǒng)。通過引入 Lollipop漓概,它完全代替了 Dalvik觅彰,成為主系統(tǒng)读拆。由于很多原因 ART 是偉大的,但我只提及其中兩點:

一鸵闪、它使用 AOT(ahead-of-time)編譯檐晕,這意味著它把中間語言(Dalvik字節(jié)碼)編譯成系統(tǒng)二進制碼。這就導致我們應用更短的執(zhí)行時間、更少的 CPU 占用辟灰、更少的電池消耗个榕。在另一方面,安裝過程也就更長芥喇。

二西采、他提供 multidex 支持。Dalvik dex 文件有個重大缺陷—它們只能包含65继控,356種方法械馆。我們必須組織好我們的 Android 應用以使方法不要超過這個限制。盡管這個數(shù)字可能看上去很大武通,但是如果你把 Google Play 服務(幾乎每個應用都需要)算在內(nèi)霹崎,再加上一些外部函數(shù)庫,你就能輕易超過這個限制冶忱。ART 以一種突破了字節(jié)碼以眾多 dex 文件打包到一個單獨的 APK 的方式組織你的應用尾菇。

6.ANDROID 無處不在

我們開始給智能手表、電視朗和、汽車開發(fā)應用错沽,為什么要在此打住呢?如果你坐在你的房間眶拉,喝著了一杯熱咖啡,花一兩分鐘看看你的周圍憔儿。在接下去的這幾年你也許會看到至少五樣運行著 Android 系統(tǒng)的設備—電視忆植、筆記本、平板谒臼、相機朝刊、自行車、廚房電器蜈缤、恒溫器拾氓、汽車等等。Android 開始作為一種試驗底哥,它被證明能夠運行在任何一個擁有小型微處理器的事物上面咙鞍。

7.智能手機質(zhì)量的提高

智能手機還是Android 系統(tǒng)的核心設備。長期以來趾徽,智能手機的整體質(zhì)量有問題续滋。老舊的Android 設備比老舊的 iPhone 更丑更慢——iOS 通常感覺更流暢。對于那些被眾多中國制造商們生產(chǎn)的廉價設備來說孵奶,這種感受尤其如此疲酌。

幸運地是,Android 智能手機的質(zhì)量和速度穩(wěn)步提升,所以今天我們有過多適合每個人的預算和需要的新設備朗恳。如果你想擁有一臺手機湿颅,它有著很高的相機分辨率、優(yōu)秀的設計粥诫、強大的處理器和電量肖爵,這不是個問題——我們都有。

我個人最喜歡的品牌是摩托羅拉臀脏,它的手機—Moto X劝堪、Moto G和Moto E 都有著優(yōu)美的線條,同時也的確有著很好的性價比揉稚。而在同時秒啦,Google 的一個團隊正力于模塊化手機的開發(fā)。Project Ara 目標在于徹底動搖 Android 世界搀玖,如果一切進行順利余境,它有可能會來到人們面前。

Project Ara 部分

下一步何去何從灌诅?

遠離JAVA

我們已經(jīng)解決了 IDE 和系統(tǒng)版本的大多數(shù)問題芳来,我們就可以關注 Android 其他方面的問題。

恕我直言猜拾,在 Android 開發(fā)最核心的問題中最重要的問題是 Java即舌。對不起,Java Harmony挎袜,基于 Java 7 或 Java6顽聂,但它不是 Java。不要讓我放錯——我堅信Java是一門好的編程語言盯仪,但是我也認為我們是時候打破常規(guī)了紊搪。我們需要開始尋找另外一門編程語言來代替 Java 成為 Android 開發(fā)的基本語言。

看看我們最重要的競爭者—Apple全景。他們已經(jīng)介紹了一門全新的語言耀石,叫做 Swift,它結合了數(shù)個其他語言(如 Python爸黄、Ruby 或 C#)的最優(yōu)特征滞伟。我們已經(jīng)比 iOS 開發(fā)者開發(fā)同一應用需要更多的時間,而這會使我們更慢馆纳。

這就是為什么我們需要新事物的加入了诗良。我們已經(jīng)有了關于哪個語言能夠代替Java的一些想法。我認為是 Groovy鲁驶。它的語法與 Java 非常相似(實際上鉴裹,它是基于 Java 的),我們也有一些工作原型了。同時径荔,也不要忘了它是 Gradle 的主語言——所以督禽,為什么不把它用于Android 開發(fā)呢?或者也許是 Scala(它可以很快獲得新用戶)总处,又或者是 Kotlin(Jake Wharton 最近寫了一篇很好的關于用于 Android 的 Kotlin 的概論)狈惫?

數(shù)據(jù)庫管理變得更好

我要指出另一個問題—數(shù)據(jù)庫管理 API。如果你再一次褻瀆 Andoird鹦马,看一眼我們的競爭對手—iOS(核心數(shù)據(jù)胧谈,將更加精確)——你會看到他們確實有著優(yōu)秀的方法和創(chuàng)建數(shù)據(jù)庫對象的GUI 和 CRUD 方法,數(shù)據(jù)庫變化監(jiān)聽器荸频。但是如果你回頭看下默認的 Android API ——我們還沒有遠離寫那些極大地影響我們開發(fā)進程的 SQL 命令菱肖。

調(diào)試 SQL 錯誤不是一件容易的事—它非常消耗時間,我們也沒有查看數(shù)據(jù)庫數(shù)據(jù)的GUI旭从。盡管也有一些不錯的 ORM 庫(如 GreenDAO稳强、ActiveAndroid 或 SugarORM),但是它們都有自己的問題和悦。我從沒有對它們完全滿意—他們要不是使用很復雜退疫,要不就是丟失一些東西(如數(shù)據(jù)庫改變監(jiān)聽器)。我注意到了 Realm for Android 和 DBFlow鸽素,我希望他們會解決我所有的問題并且減少執(zhí)行時間褒繁。

結論

Android 在過去的幾年發(fā)生了巨大的改變。它已經(jīng)從一個簡單的智能手機系統(tǒng)進化為一個支持各種設備的強大系統(tǒng)付鹿。時間會告訴我們 Android 將會變成怎樣澜汤。誰知道哪天我們會不會甚至可以用它來給核聚變反應堆編程,或者給”終結者“編程舵匾。PS. 顯然終結者更有趣。


這是本人課余時間的翻譯谁不,錯誤很多坐梯,還請耐心指出,謝謝刹帕!

原文鏈接:https://www.infinum.co/the-capsized-eight/articles/the-past-present-and-future-of-android-development

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吵血,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子偷溺,更是在濱河造成了極大的恐慌蹋辅,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挫掏,死亡現(xiàn)場離奇詭異侦另,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門褒傅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弃锐,“玉大人,你說我怎么就攤上這事殿托∨眨” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵支竹,是天一觀的道長旋廷。 經(jīng)常有香客問我,道長礼搁,這世上最難降的妖魔是什么饶碘? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任叹坦,我火速辦了婚禮,結果婚禮上募书,老公的妹妹穿的比我還像新娘。我一直安慰自己莹捡,他們只是感情好鬼吵,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著齿椅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涣脚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天寥茫,我揣著相機與錄音遣蚀,去河邊找鬼。 笑死纱耻,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的弄喘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼累奈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了费尽?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤查描,失蹤者是張志新(化名)和其女友劉穎柏卤,沒想到半個月后冬三,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缘缚,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡桥滨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了齐媒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡邀杏,死狀恐怖唬血,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拷恨,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布腕侄,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏眯分。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一噪舀、第九天 我趴在偏房一處隱蔽的房頂上張望魁淳。 院中可真熱鬧,春花似錦与倡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至馋贤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仿滔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工崎页, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留羽莺,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓荒给,卻偏偏與公主長得像刁卜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蛔趴,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,099評論 25 707
  • afinalAfinal是一個android的ioc孝情,orm框架 https://github.com/yangf...
    passiontim閱讀 15,429評論 2 45
  • 詞 宴息 曲 周杰倫 《手寫的從前》 舊時光被裁成老相片 日子曝光了幾張從前 我捧回遺失掉的容顏 就像多年前我捧起...
    宴息閱讀 662評論 2 3
  • 學習筆記 內(nèi)聯(lián)元素不能包含塊元素箫荡,它只能包含其它的內(nèi)聯(lián)元素「岬玻可以實驗在chrome中內(nèi)聯(lián)元素嵌套快元素间唉,內(nèi)聯(lián)元素都...
    清水蘆葦閱讀 945評論 0 0
  • 一利术、常用函數(shù): 1、清洗處理類 Trim:清楚掉字符串兩邊的空格 Concatenate:合并單元格的內(nèi)容被冒,適用于...
    踏雁尋花閱讀 426評論 0 1