為何Android不讓使用者自行關程式 - Android

Table of Contents

※ 引述《dadabo (lego)》之銘言:
: 我的疑問是,為何不做個X讓使用者關就好
: 我都是用回上一步來離開程式,可是這種方法還是會關不掉某些App...
: 導致有些app一直占記憶體...
: 一般人在電腦上都會按X關視窗,沒道理在手機上會忘了做吧?
: 還是有哪些我沒考慮到的點?

因為下雨天 所以稍微分享一下

Q1. 為什不做X 讓人關?
A1. 因為關了之後,下次要再開,就會變慢.
你應該有這樣的使用經驗吧!第一次開了之後,第二次在開同樣的程式
速度會比較快,這就是沒有把程式關掉,你總不想叫個電話程式出來,都得等個幾秒

Q2. 我按BACK來離開程式,為什會關不掉APP呢?
A2. 因為ANDROID的設計是:你按BACK,不會關掉,只會把該APP的閒置等級提高,
之後"如果"記憶體不足要砍程式的時候,他會先砍閒置等級高的.
但如果你記憶體很充足,他就會一直放在裡面,直到你下次點程式出來的時候,
就會快速的從記憶體中恢復過來


Q3. 我用的這個程式很小耶,為什還要保留在記憶體呢?
A3. 因為ANDROID的程式都是JAVA,靠著JAVA VM來跑,所以就算你的程式是個hello world
他只要跑起來還是得佔個10MB左右的記憶體,所以快點算算你的記憶體可以跑幾個
程式.複雜一點的程式我想應該也是20~30MB跑不掉.


-------------- 那為什麼android不 "設計" 用X來關程式呢?

其實android自己會幫你清記憶體,所以不用太過擔心,電腦上不會幫你清,
跑到最後就跟你說記憶體不足,你得要自己清,但android不會....

因為在kernel中有一個神祕的模組(?)叫做lowmemorykiller,

看名字就知道是個低記憶體殺手!

他會在你記憶體低於每個值之後,開始砍不重要的程式.

這個值是多少呢? http://0rz.tw/msjTC 看一下kernel的原始碼你可以看到 (55行附近)

大概是64MB他才會開始清理,也就是說 你的手機 要一直"存放"那些沒再用的程式

直到你的記憶體 低於64MB之後,他才可能會開始清理

仿間有許多 MinFreeManager 之類的 軟體 他就可以幫你調那些"閥值"

使得android的linux kernel 幫你三不五時就清一下記憶體 讓你保有"空曠"的記憶體空間

------------------------------------------------

但我是覺得 不管怎麼清都沒什作用...買台大記憶體的,比較實在啦 QQ

--

All Comments

Dora avatarDora2011-04-19
我比較好奇LMK的值設高 到底是有效率還是無效率
因為一下子就達到kill的值 結果一直反覆的kill
以及載入...這樣好像更耗資源 囧
Ula avatarUla2011-04-23
印象中原生的Android那個值是32MB
Madame avatarMadame2011-04-26
milestone淚目…
Puput avatarPuput2011-04-28
看起來是64M http://0rz.tw/j7aky
Doris avatarDoris2011-04-30
以前就是64MB嗎@@? 我之前去XDA那邊看到是32MB 囧
Tracy avatarTracy2011-05-05
感覺是沒實際作用 只是數字多寡而已XD
可能之後的kernel有改了 google目前的kernel是設64
Emma avatarEmma2011-05-08
很多教學文章會叫你設96的樣子 然後就會剩下很多記憶體?
Vanessa avatarVanessa2011-05-11
64MB對於RAM只有256的應該很淚目...
Elma avatarElma2011-05-16
96我自己覺得太高了...除了HTC有RAM768MB以外的機種
應該用起來會偶爾小卡吧..三不五時就在清RAM
Agnes avatarAgnes2011-05-18
有解惑有推XD
Ursula avatarUrsula2011-05-19
說的讓我這白痴都看得懂~大堆^^ 所以..還是存錢換手機
Adele avatarAdele2011-05-20
不過這問題應該快被淡忘了 RAM 1GB機種快出阿~~
Skylar DavisLinda avatarSkylar DavisLinda2011-05-21
看到最後一句還以為 台大有出記憶體歐...囧
Ula avatarUla2011-05-21
請問可以讓我保存到個版嗎
Zenobia avatarZenobia2011-05-25
請問現在記憶體最大的HTC機種是哪台呢?
Elizabeth avatarElizabeth2011-05-30
回樓上的樓上 可以,目前DHD就很大了
Delia avatarDelia2011-06-01
DHD,IS跟DS都是768mb RAM
Odelette avatarOdelette2011-06-02
是「閾值」,不是「閥值」= =
Brianna avatarBrianna2011-06-05
XD
Vanessa avatarVanessa2011-06-10
喔喔,是GPC大耶
Hardy avatarHardy2011-06-11
簡單講 你砍了 它還是會跑出來 到不如不要砍 還能省電
Poppy avatarPoppy2011-06-14
大推阿!! 可以請版主m了啦!! 感謝解惑...
Ingrid avatarIngrid2011-06-14
推 知識plus! 這篇該m了
Tristan Cohan avatarTristan Cohan2011-06-15
下一次要換就是1g的機種了= =
Agnes avatarAgnes2011-06-15
gpc大是我們HD2用戶的神 m(_ _)m
Emily avatarEmily2011-06-18
下一次要換就是1G的機種了!
William avatarWilliam2011-06-20
GPC大大耶,久仰久仰!
Joseph avatarJoseph2011-06-24
這麼好的說明,一定要推的!
Ingrid avatarIngrid2011-06-25
好文推!!!
Carol avatarCarol2011-06-26
推薦這篇文章~
Hamiltion avatarHamiltion2011-06-29
推一個!
Caitlin avatarCaitlin2011-07-01
謝謝 解惑了
Kyle avatarKyle2011-07-01
HD2的神 GPC大大太屌了
Ursula avatarUrsula2011-07-02
有神快拜 m(_ _)m
Skylar DavisLinda avatarSkylar DavisLinda2011-07-03
感恩推
Quanna avatarQuanna2011-07-07
賺業推!!