iphone/ipad/Android 玩家-App遊戲推薦下載/App程式開發/網站製作設計

關於部落格
iphone/ipad玩家/網站設計/App程式分享/遊戲介紹/Apple / Android程式開發/網站建置/黃暉珽Sky0935-000832
  • 277145

    累積人氣

  • 2

    今日人氣

    0

    訂閱人氣

波瀾不驚的Andr​​oid KitKat,可能會讓iOS不寒而栗?

也許人們在得知Google新發布的Android系統版本名稱為4.4時都不以為然,認為這個升級十分微不足道,只升級了0.1的版本號,啟用了KitKat的新代號而已。就算是Google官方,對待此次升級也是頗為低調。可是如果了解了Android 4.4所暗示的變化時,我覺得所有Android開發者和其他利益相關者都必須打起十二分精神對看待Android 4.4了。
 
當官方發布Android KitKat 4.4時,我簡單瀏覽了一下Google+上官方賬戶發布的對該系統的簡介,覺得值得關注的只有兩點:1)對內存的需求降低了,2)支持更多的Sensor。綜合起來,就是為可穿戴設備開路。確實沒有更多的亮點可言,只是順應了大的發展方向而已。隨後我圖個性價比,預定了Nexus 5,到手試用後第一感覺是“物美價廉”,對系統本身沒有太大的感覺。
 
後來為了進行開發測試,我打開了“開發者模式”,其中有一個選項引起了我的注意,叫“ 選擇運行時環境 ”,這是之前版本都沒有的選項,可選項有Dalvik和ART(默認是Dalvik),Dalvik即Android一直以來使用的運行方式。為了弄明白這到底是個什麼東西,我試著在Google上搜了一下,直接改變了我對4.4版本存在意義的看法。
 
簡單地說,就是Android程序運行的根本機制改變了,程序會啟動地更快,而且會更省資源。表現在用戶體驗上,就是Android更流暢了,同時續航能力顯著增加。這種變化不是小打小鬧,而是非常可觀的大變化,根據AndroidPolicy上專項文章的說法,這個改變可以讓部分Android程序的啟動加速50%,理論上待機時間也會顯著增加。
 
根據該文後一些“小白鼠”們的評論,他們在試用了ART 運行模式後,都體會到了其帶來的速度提升和續航提升,而且效果非常明顯。這說明這個尚處在實驗階段的ART 模式已經能夠帶來明顯的好處,唯一不足的是,作為Beta 版,穩定性欠佳。
 
眾所周知,Android 是基於Java 語言的,iOS 是基於Obejctive-C。表現在手機和應用程序運行機制上,Java 的代碼實際上需要兩次“轉換”才能最終以用戶可看的程序跑起來,一次發生在開發者發布安裝包前,使用開發者自己機器的CPU,另一次在用戶啟動APP 前,使用手機的CPU。而基於Objective-C 的代碼只需要一次這種“轉換”,在開發者發布安裝包前,所以只佔用開發者機器的CPU 時間。
 
我們假設同樣代碼量的程序,需要同樣多的CPU 時間,進行從代碼到最終能跑的“轉換”。那麼把這種工作全部放在了開發者的機器上進行的iOS 顯然就更具優勢,因為用戶在打開APP 之前不需要再浪費時間進行“轉換”,這部分時間由開發者“忍受”了。而Android 程序啟動相對較慢就是因為第二次“轉化”需要在打開程序時進行引起的。這兩種機制是歷史的產物,總體上不能說誰好誰壞,只有適用範圍的問題。考慮到手機屬於體驗要求比較高的設備,顯然iOS 這種機制更合適。所以這兩種機制帶來的後果就是,iOS 總是比Android 快,而且是天生的。
 
現在ART 的出現代表了什麼?代表了Android 在啟動程序時將像iOS 一樣,無須進行第二次“轉換”工作了。ART 把第二次“轉換”所要使用的時間放在“程序安裝時”進行,而不再是“程序啟動時”進行。這樣做雖然安裝程序時要慢一點,但是在使用時就會明顯快起來。按我的淺薄理解,就是把以前每次啟動程序都要做的工作改成“一次性”的工作,放在用戶不那麼在乎的安裝時完成。這從長期來看也降低了總體的“轉換”時間。
 
試想一個程序,安裝後你使用了N 次。按原先Dalvik 的方法(術語叫Just-in-time compilation),N 次啟動就需要進行N 次這樣的“轉換”。但是按照ART 的方法(術語叫Ahead-of-time compilation),不管這個程序你使用幾次,都只發生一次“轉換”。這也解釋了為什麼使用ART 會降低CPU 的使用頻率,進而降低電量的使用。
 
當然,ART 也會帶來其他的負面影響。其一是增加程序安裝所需的時間,只是目前還不知道具體會是多少。考慮到其他技術因素,這個時長的增加可能比我為了講解方便所舉的“第二次轉換”所需的時長要長一點,但是肯定不會長到無法忍受的地步。據我查到的資料,這個變化對小程序幾乎可以忽略不計,受影響的應該是以遊戲為主的程序,因為他們本身代碼量就更大。不過這跟你獲得的收益也是成正比的,因為ART 可以讓你在打開遊戲時省更多的時間。如果將來都是“後台安裝”的話,對用戶體驗更是微乎其微,你去看幾個新聞這時間就過去了。
 
第二個缺點是會使安裝後的文件佔用更多的空間,據稱是10%-20% 的增長。不過不要緊,這個增長指的是對“代碼”部分文件的增加,比如一個100M 的遊戲,可能代碼只有20M,剩下80M 是圖片和音樂等文件,所以即便增加20% 的安裝所需空間,也只不過多了4M 而已,在動輒16G,32G,甚至128G 容量的智能手機面前,影響更是微乎其微。
 
據我了解,ART 這個項目其實在2 年前就已經開始了,只不過之前一直不受關注,只有零星的報導,畢竟“計劃不等於現實”嘛。可是現在Android 4.4 版本以“開發者預覽”的形式將其呈現出來,目的就是讓手機廠商、應用開發者等進行測試,從而幫助該項目進行改進。從我得到的信息來看,ART 的穩定性並不差,完全可以勝任日常使用。
 
這也是為什麼我會說,Android 4.4的ART選項可能預示著Android 5.0系統會出現重大改變—— 徹底從Dalvik轉換到ART。如果真的是這樣的話,iOS開發人員和其用戶所引以為傲的流暢體驗將不再是一個值得炫耀的東西,因為這種體驗將隨著登陸Android平台變得“大眾化”,再加上Android市場佔有率的巨大優勢、Google Play商店的崛起,iOS設備還能靠什麼支撐自己的高價策略?

你的支持是我發文的動力,請不吝給我們的文章隨時按個「讚」並分享到FB或Plurk或是留言給我們鼓勵,謝謝.
 
相簿設定
標籤設定
相簿狀態