編輯:Android資訊
昨天,一位認證信息為小米員工的網友在微博上發言,“iPhone 6 用戶都不在意 1G 內存不夠,紅米 2 的 1G 內存夠用了,保持流暢的秘訣就是少裝 App.”後來的事情大家知道了。
要保持安卓手機流暢,少裝 App 確實有用,不過 iPhone 6 是否流暢和少裝 App 卻沒有半個F碼的關系。
iOS 8 讓人們第一次發現原來蘋果也會卡頓,而與之相比,Android 卡 Sh1t 卻早已名聲在外。
Google 在推出 4.4 時發明了 ART (Android runtime)來解決卡慢, 5.0 時又用 ART 徹底取代 Dalvik,號稱實現高效、省電、流暢的 Android 系統目標已經實現。
安卓機真的能不再卡頓了嗎?一切還得從根源說起!
第一、基因使然。
iOS 只需要保證在蘋果僅限的幾款移動設備上的運行體驗,而 Android 則需要保證能兼容盡量多的已存在和未存在的不同硬件組合。
iOS 老祖,UNIX 之父 Ken Thompson
Android 老祖,Linux 之父 Linus Torvalds
iOS 基於 Apple 的 OSX,而 OSX 基於 FreeBSD ,FreeBSD 又是在 UNIX 上衍生的,其根源可以追溯到 1969 年 AT
Android 基於 Linux,起源於 1991 年 Linus Torvalds 的一個簡單需求。
其實從起源之處就能看出未來命運的注定不同:
UNIX 是與硬件配套的商業軟件,而 Linux 則是可運行在多種硬件上免費自由的開源系統。
一個為指定硬件定制優化的系統與一個要在上萬種奇葩配置上跑起來的系統相比,結果會如何?
第二、響應機制。
iOS 最先響應屏幕反應,而 Android 響應屏幕排在應用與框架之後。
iOS 響應順序依次為 Touch——Media——Service——Core 架構,當用戶只要觸摸接觸了屏幕之後,系統就會最優先去處理屏幕顯示也就是 Touch 這個層級,然後才是媒體(Media),服務(Service)以及 Core 架構。
Android 的優先級響應級別則是 Application——Framework——Library——Kernal 架構,和顯示相關的圖形圖像處理這一部分屬於 Library,當你對屏幕操作之後,Android 系統首先會激活應用、框架,然後才是屏幕最後是核心架構。
第三、開發語言。
iOS 采用執行效率極高的 Objective-C 語言,而 Android 采用的 Java 語言因為虛擬機的存在,二次轉化再執行效率很低。
Android 開發是基於 Java“Write once, run anywhere”理念,正因為這個理念,引入了虛擬機,也就是說編碼實際上需要“轉換”才能最終以用戶可看的程序跑起來。
第四、後台管理方式。
iOS 中的後台程序並不是指當前後台運行程序,其實是你最近使用過的程序使用記錄,比如浏覽器的網頁浏覽記錄。
Android 的後台則是一直在內存中運行,程序在進程活動停止後都會保留在內存中,直到系統需要更多內存再釋放這部分資源。
這個後台管理機制造成用戶感知的差異化放大,Android 旗艦已進入 8 核 CPU、3G RAM 的級別,而 iOS 卻只需要雙核 1G 就能保持穩定流暢的頭銜不動搖。
其實 Android 與 iOS 相比,除了四大先天不同所造成的差距外,還有三大後天因素讓 Android 的體驗越來越不盡如人意。
1、無序的開發者;
Android 的開放與自由帶來了大量的開發者,也讓一部分不遵守規范的開發者進入 Android 的世界,於是應用開始肆意揮霍硬件資源,不少程序都開始自動啟動。
當你安裝了不少的應用之後就會發現,這些應用都開始駐留後台。殺掉這些應用的進程無助於解決問題(因為他們會自動重新啟動,不斷地殺進程會造成他們不斷重啟,最終耗光你的電池),最後你只能徹底刪除他們。
因為這個刪除的用戶需求,一款叫做 Clean Master 的應用還帶動了獵豹移動的上市。
2、無奈的 Android Market;
由於一些讓人無奈的原因,各種水平不齊、魚龍混炸的第三方市場充斥於市。而即使在官方的 Google Play 也經常爆出惡意軟件或者仿冒軟件。混亂的市場和不守序的開發者讓 Android 的應用環境進入一個越來越差的死循環。
3、無解的碎片化。
100 個 Android 手機制造商從 Google 那拿到 Android 代碼之後,就可以制造出 100 種搭載不同硬件平台、界面的 Android 手機,即使是搭載完全相同的硬件,不同品牌的機器,運行速度,軟件兼容性都會有區別,這就是 Android 開放帶來的碎片化。
就這樣,無論在先天還是後天上 Android 都注定著一些越來越卡,曾經的 4.4 沒能解決,5.0 也不會解決。
1、改變了運行環境,卻沒改變運行秩序。
ART 帶來的體驗明顯提升,告別了虛擬機的 Android 更快更省電,不過對於一些不遵守規則的應用而言什麼都沒變,還是想怎麼折騰就怎麼折騰。
2、加劇了本已嚴重的碎片化。
Lollipop 的推出讓很多 Android 用戶歡呼了一陣,幾個月過去後他們發現真相,自己的手機連 4.4 的官方更新都還沒收到。於是大家就都明白了將希望寄托在新版系統身上,還真不如刷個 CM 或者 MIUI 包。
所以 Android 的卡頓其實從根源上就注定了沒有辦法解決,除非 Google 願意放棄現有市場全部推倒重來,不過那樣的系統和 Android 已經沒有任何關系了吧?
其實 Android 粉絲們不必過分擔憂卡頓,iOS 粉絲也不必慶幸流暢,畢竟庫克的 iOS 8 已經開始砸金字招牌,說不定到了 iOS 10 與 Android 7.0 發布,大家都會變得一樣,沒個十核 CPU 加上 8G 內存大家都會變得一樣卡了呢?
Button,就是按鈕,是android中應用最多的組件之一,Button有兩種用法,一種是XML中配置,另一種是在程序中直接使用 在XML布局文件裡,會遇到如下
簡介 Dagger2是Dagger1的分支,早期有square開發,現在由谷歌公司接手。 他要解決問題和核心是:利用生成和寫的代碼混合達到看似所有的產生和提供依賴
本文由碼農網 – 蘇耀東原創,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃! 本文介紹利用ObjectAnimator簡單地實現ArcMenu,直
本篇文章小編為大家介紹,Android 軟件自動更新功能實現的方法。需要的朋友參考下。 相信所有的用戶都遇到過軟件提醒更新的情況,下面就將實現此功能 首先看一下程