作者gpc (gpc)
看板Android
標題Re: [請益] 為何Android不讓使用者自行關程式
時間Sun Apr 17 17:18:23 2011
※ 引述《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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.10.183
1F:→ cloud2211s:我比較好奇LMK的值設高 到底是有效率還是無效率 04/17 17:24
2F:→ cloud2211s:因為一下子就達到kill的值 結果一直反覆的kill 04/17 17:24
3F:→ cloud2211s:以及載入...這樣好像更耗資源 囧 04/17 17:24
4F:→ cloud2211s:印象中原生的Android那個值是32MB 04/17 17:25
5F:→ htalent:milestone淚目… 04/17 17:26
7F:→ cloud2211s:以前就是64MB嗎@@? 我之前去XDA那邊看到是32MB 囧 04/17 17:30
8F:→ gpc:感覺是沒實際作用 只是數字多寡而已XD 04/17 17:31
9F:→ gpc:可能之後的kernel有改了 google目前的kernel是設64 04/17 17:31
10F:→ gpc:很多教學文章會叫你設96的樣子 然後就會剩下很多記憶體? 04/17 17:32
11F:→ cloud2211s:64MB對於RAM只有256的應該很淚目... 04/17 17:32
12F:→ cloud2211s:96我自己覺得太高了...除了HTC有RAM768MB以外的機種 04/17 17:33
13F:→ cloud2211s:應該用起來會偶爾小卡吧..三不五時就在清RAM 04/17 17:33
14F:推 freetempo:有解惑有推XD 04/17 17:33
15F:推 diecorroder:說的讓我這白痴都看得懂~大堆^^ 所以..還是存錢換手機 04/17 17:34
16F:推 cloud2211s:不過這問題應該快被淡忘了 RAM 1GB機種快出阿~~ 04/17 17:37
17F:推 rexagi1988:看到最後一句還以為 台大有出記憶體歐...囧 04/17 17:41
18F:推 ninjaxin:請問可以讓我保存到個版嗎 04/17 17:55
19F:推 asklove:請問現在記憶體最大的HTC機種是哪台呢? 04/17 17:56
20F:→ gpc:回樓上的樓上 可以,目前DHD就很大了 04/17 18:03
21F:推 llwopp:DHD,IS跟DS都是768mb RAM 04/17 18:08
22F:推 MilchFlasche:是「閾值」,不是「閥值」= = 04/17 18:16
23F:→ gpc:XD 04/17 18:22
24F:推 LIONDODO:喔喔,是GPC大耶 04/17 18:26
25F:→ newline:簡單講 你砍了 它還是會跑出來 到不如不要砍 還能省電 04/17 19:05
26F:推 c3129:大推阿!! 可以請版主m了啦!! 感謝解惑... 04/17 19:45
27F:推 kniaz:推 知識plus! 這篇該m了 04/17 19:56
28F:推 isyaya:下一次要換就是1g的機種了= = 04/17 19:57
29F:推 derson:gpc大是我們HD2用戶的神 m(_ _)m 04/17 20:36
30F:推 ICQ5920:下一次要換就是1G的機種了! 04/17 20:39
31F:推 alextsai:GPC大大耶,久仰久仰! 04/17 20:52
32F:推 cow:這麼好的說明,一定要推的! 04/17 21:36
33F:推 rushcat:好文推!!! 04/17 22:25
34F:推 yinalgae:推薦這篇文章~ 04/17 22:52
35F:推 Knightaco:推一個! 04/17 23:04
36F:推 erttyy8821:謝謝 解惑了 04/18 00:13
37F:推 bigcookiepan:HD2的神 GPC大大太屌了 04/18 00:35
38F:推 Coldfengzi:有神快拜 m(_ _)m 04/18 09:32
39F:推 Grashof:感恩推 04/18 19:10
40F:推 ilovejoke:賺業推!! 04/20 20:30