不要通过终止进程的方式清理内存
通過終止進程來清理內存的方案是不合適的,理由如下:
1、?android?有自身的進程和內存管理機制,其設計規范是要保證程序盡可能快地啟動,這就要求程序退出后仍然占用內存保存數據;
2、?android?的內存管理策略保證在新程序載入時有足夠的內存,當內存不足時會自行關閉優先級低的進程來釋放內存;
3、?進程數據長期緩存在內存,對于?android?來說不是缺陷,而是優勢,它盡可能地確保程序的啟動質量以提升用戶體驗,人們長期被強迫癥困擾,一直誤以為大量占用內存是低效的表現,這與人們長期使用桌面系統不無關系;
4、?我們的另一個誤區是,占用內存耗電,其實不然!真正耗電的幕后推手是?CPU,反復清理內存需要CPU反復地工作,所以清理內存反而耗電;
?
網上一個形象的比喻:你在圖書館查資料,一種方案是把可能需要的資料全部從書架上取下來放到桌上,可能會有冗余,但不必經常去書架取書;另一種方案,書桌上只放當前正在查閱的資料,查完馬上放回書架,這樣雖然書桌上很干凈,但你需要反復從書架上取書放書。這里書就好比內存,取書放書的動作好比?CPU?的工作。顯然第一種方案更加高效和輕松。
?
一些靠譜的資料:
闡述為什么不需要終止進程來釋放內存的原因http://android.nextapp.com/site/fx/doc/exit
?
兩位谷歌工程師的建議:
Romain Guy?:用戶不要去做終止進程來釋放內存的事,這與?android?的應用設計框架相悖,應該交由系統去做(這里的用戶既是指使用?APP的用戶,也是指APP本身或APP開發人員)https://groups.google.com/forum/#!topic/android-developers/G_D3pKnGLt0????http://stackoverflow.com/questions/2042222/close-application-and-launch-home-screen-on-android
?
Dianne Hackborn :?強烈反對使用?System.exit()?來終止程序,請不要如此設計你的?Android?應用?https://groups.google.com/forum/#!topic/android-developers/Y96KnN_6RqM
總結
以上是生活随笔為你收集整理的不要通过终止进程的方式清理内存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]div里table居中的问题 Di
- 下一篇: 开发测试中bugfree的安装和应用