經(jīng)過Google的努力,我們剛買到安卓手機(jī)的時(shí)候,終于可以不屑一顧的對蘋果手機(jī)說,切,我的手機(jī)也很流暢!一點(diǎn)也不卡!可是不管多好的安卓手機(jī),在用過一年半載之后,都不得不面對這個(gè)問題——卡!而且越用越卡! 為啥蘋果手機(jī)一直保持流暢這點(diǎn)目前安卓手機(jī)沒法做到?我們安卓機(jī)友們該如何讓手機(jī)變得不卡呢?教授今天就和大家聊聊這個(gè)話題。 內(nèi)存回收機(jī)制的缺陷 眾所周知,內(nèi)存不夠了,手機(jī)就會(huì)卡。在內(nèi)存處理機(jī)制上,蘋果手機(jī)的IOS系統(tǒng)能夠自行控制內(nèi)存釋放,所以不會(huì)卡。 而安卓手機(jī)的系統(tǒng)只能通過系統(tǒng)的內(nèi)存回收機(jī)制進(jìn)行管理,內(nèi)存回收是把雙刃劍,在回收時(shí)所有線程都于要暫停,于是就會(huì)導(dǎo)致卡頓。 安卓機(jī)卡的主謀:系統(tǒng)的開放性 內(nèi)存回收機(jī)制缺陷,在2012年Google接手解決安卓卡頓的問題之后,有了突破性的進(jìn)展。采用ART虛擬機(jī),降低了每次內(nèi)存回收的時(shí)間,一些額外的優(yōu)化也可以避免內(nèi)存回收頻繁發(fā)生。在這么強(qiáng)大的硬件支持下,安卓為啥還是越用越卡呢? 歸根到底,是安卓系統(tǒng)的開放性,而APP開發(fā)商利用這個(gè)開放性使得APP可以輕易自啟和關(guān)聯(lián)喚醒。 在說APP的自啟之前,要先和大家說說一個(gè)叫做廣播接收器的玩意。廣播接收器就像一個(gè)監(jiān)聽器,可以接收系統(tǒng)和應(yīng)用中的廣播。打個(gè)比方,當(dāng)網(wǎng)絡(luò)狀態(tài)改變時(shí),系統(tǒng)會(huì)產(chǎn)生一條廣播,接收到這條廣播就能及時(shí)地做出提示和保存數(shù)據(jù)等操作。 安卓系統(tǒng)的開放性使得應(yīng)用程序可以注冊任意一個(gè)廣播接收器,一些開發(fā)商利用了這個(gè)缺陷,向系統(tǒng)注冊多個(gè)廣播接收器,用來接收各種通知,然后進(jìn)行自動(dòng)啟動(dòng)。有的APP甚至是電量低也可能會(huì)導(dǎo)致自啟,因?yàn)樗缘膹V播接收器,接受到電量低的廣播時(shí),可以讓它自啟。 因此大量的應(yīng)用在我們不知道的情況下,悄悄的在后臺(tái)運(yùn)行。哪天閑著沒事,可以打開【設(shè)置】-【應(yīng)用管理】-【正在運(yùn)行】看看到底有多少個(gè)你沒有打開的應(yīng)用正在運(yùn)行著??梢渣c(diǎn)擊應(yīng)用的圖標(biāo)進(jìn)去關(guān)掉,但是你不知道的時(shí)候,它收到各種各樣的廣播接收器通知,又會(huì)自己悄悄啟動(dòng)了,無法清除。想想都覺得APP自啟太流氓了!這樣想讓手機(jī)不卡都難。 所謂了關(guān)聯(lián)喚醒,就是打開一個(gè)APP的時(shí)候,另外一個(gè)APP會(huì)在后臺(tái)偷偷運(yùn)行。一般這些應(yīng)用之間都有利益關(guān)系。做個(gè)比方,當(dāng)手機(jī)淘寶運(yùn)營的時(shí)候,支付寶也會(huì)同時(shí)在后臺(tái)開啟。手機(jī)中的APP越多,關(guān)聯(lián)喚醒的APP就會(huì)越多,甚至有可能手機(jī)中的十幾個(gè)APP互相關(guān)聯(lián)喚醒,如此一來,手機(jī)不卡才怪。 教授花了這么大的篇幅來講述原因,只是因?yàn)?,要根治,就得知道因。因我們已?jīng)摸索清楚了,如何根治呢?且往下看。 1借助第三方管理工具在第三方軟件方面,目前好評率較高的是360衛(wèi)士極客版,能主動(dòng)禁止掉每個(gè)APP的自啟動(dòng)行為和切斷喚醒,不過有一個(gè)缺點(diǎn),就是耗電比較多,對于續(xù)航能力不佳的手機(jī),慎用。若是主觀上不喜歡360的,也可以試試LBE,效果也不錯(cuò)。 2使用綠色守護(hù)配合Xposed框架在科技圈玩兒得比較熟的,或者是十分痛恨手機(jī)卡的深度手機(jī)玩家,看到綠色守護(hù)應(yīng)該都會(huì)歡呼一下:這簡直是安卓手機(jī)必備的神器好么! 是的,若把自啟動(dòng)比作垃圾,那么綠色守護(hù)可以比喻為不停揮舞的掃把,啟動(dòng)多少應(yīng)用綠色守護(hù)就清理多少。當(dāng)然,只會(huì)清理你已經(jīng)選定好的應(yīng)用。這對于改善系統(tǒng)的流暢性非常有效。 不過綠色守護(hù)需要配合Xposde框架來使用才能出更好的效果,而Xposed 框架需要Android 4.0.3及更高版本,并要有ROOT授權(quán)才能安裝,而且得具備一定的動(dòng)手能力。 3盡量不要安裝存在關(guān)聯(lián)喚醒關(guān)系的APP同一個(gè)系列的產(chǎn)品,一般情況都會(huì)存在關(guān)聯(lián)喚醒關(guān)系,像百度系、阿里系、騰訊系的APP,我們盡量選用可替換的應(yīng)用。打個(gè)比方,如果你安裝了“百度瀏覽器”,那么可以放棄安裝“百度視頻”,選擇安裝騰訊視頻。這樣就不會(huì)因?yàn)榇蜷_百度瀏覽器而關(guān)聯(lián)啟動(dòng)騰訊視頻了。 其實(shí)讓安卓系統(tǒng)用久會(huì)卡的原因,遠(yuǎn)不止這些。開放性導(dǎo)致的后果,也不只是因?yàn)锳PP自啟和和關(guān)聯(lián)喚醒。 安卓系統(tǒng)的開放性,說的好了是包容,說得直接點(diǎn)其實(shí)是良莠不齊。因?yàn)椴糠謶?yīng)用為了可以在比較低的系統(tǒng)的機(jī)型上也可以使用,利用安卓系統(tǒng)的開放性,會(huì)使用更低的level的API?!癆PI level”在這里教授就不詳細(xì)解說了,簡單的說一下就是每一個(gè)安卓版本都對應(yīng)有一個(gè)API leve,比如安卓最早的版本Android 1.0對應(yīng)的就是 API level 1。 微信目前還是使用的API level 9,為的就是爭取能夠在Android 2.3系統(tǒng)的機(jī)型上使用。暫且不提還未出世的Android“N”,Android 5.1支持的API level都已經(jīng)已達(dá)到22了,肯定會(huì)影響運(yùn)行的效率。這就好比想從一個(gè)杯子倒水到另外一個(gè)杯子里更快,只有接收水的杯子杯口大是沒有用的,倒水的杯子,杯口也要夠大,才能夠一下子倒出的水夠多,也才能夠更快。 當(dāng)然,目前這個(gè)問題是暫時(shí)沒有辦法解決的,我們可以期待一下未來的安卓市場能夠給我們帶來更流暢的體驗(yàn) |
|