iOS 為什麼不開發一鍵關閉所有應用的功能?
一個個關太麻煩了!
其實下面的那個 HOME 鍵就是一鍵關閉的功能。。。好吧,你也許說那不是。
如果要探究為什麼大多數國人喜歡把程序完全關閉掉,這其實會揭露一個令人不太安心的事實:就是我們生活在一個流氓軟體,不安全軟體橫行的世界裡。
在這樣一個世界裡,雖然我們有時不得不用這些流氓軟體,用這些自己也不信任的軟體,但是下意識里還是覺得,當自己沒有看見他們的時候,只有把他們完全關掉,心裡才會覺得安全。——必須承認:這是一種完全可以理解的心態!而且這個問題與節省內存並沒有任何關係。只因為你認為:「當我關閉了這個軟體的時候,它就無法再作惡了」
很不幸的是,這個來自 Windows 的經驗,並不能用於 iOS 和 android 之類的手機系統。(手機系統中,被關閉的惡意軟體仍然可以作惡)
手機系統大多數被設計為程序無法在後台保持運行。也就是說,如果他沒有界面了,那麼它就沒有工作了。為了測試這一點,你可以嘗試用手機瀏覽器打開一個比較大圖片比較多的網頁,在這個網頁沒有完全載入的時候就直接按 HOME 鍵,跟蹤手機流量可以表明,此時瀏覽器的下載行為停止了,不再繼續下載頁面。這跟 Windows/OSX/Linux 的情況不同,在桌面系統中,如果你打開一個瀏覽器下載一個頁面沒完成之前立即最小化瀏覽器然後切回桌面,這個瀏覽器在後台會繼續下載,也就是說,它繼續佔用CPU,繼續跑流量。因此,為了避免這些程序繼續佔用CPU和網路,關掉他們常常是必要的。
在手機系統中,你只要HOME了之後,程序正常情況下就無法再獲取到CPU和網路,因此手機系統提供了其他的機制讓這些程序在需要的時候響應。
1。當系統發生某些事件的時候,如果你的程序註冊了某個事件,則會啟動你的程序響應某個事件(例如,開屏鎖屏,網路接入點改變,各種感測器的動作,等等,都可以是事件) 。——無論你是否關閉了這個程序,這些事件都能獲得響應,相反如果你關閉了,程序響應事件時需要重新載入,消耗更多的CPU與電量。
2。當系統產生推送通知的時候,可以通過推送通知給用戶推送消息,並且其實響應的,也可能可以觸發某個程序的啟動。
這,簡單的來說,就是:在手機系統中,即使你完全關閉了一個應用程序,也無法阻止他的流氓行為,因為在他想幹活的時候,他永遠會被系統啟動,然後做他想做的事情。——在手機上,關閉一個應用程序變得幾乎沒有價值,除了釋放內存以外。
但是為了釋放手機內存而關閉應用程序是否就有好處呢?我對此看法仍然持否定態度,因為如前面所說的,即便關閉了,那些程序隨時可能響應某個觸發器而啟動,因此你將陷入無限的殺程序,程序啟動,殺程序,程序啟動的循環中,這樣的循環將極大的消耗手機電量。
如果你的手機RAM配備得不足,殺程序並不能使你的手機更流暢,完全刪除掉那些程序才成。
如果你不信任一個程序,關掉它並不能使你的手機更安全,完全刪除掉它才成。
所以回到最初樓主的問題上來,iOS 為什麼不開發一鍵關閉功能呢?因為:
1。iOS 認為 iOS 系統中並沒有那麼多流氓軟體。
2。iOS 認為一般而言你沒有必要安裝那些流氓軟體。
3。所以 HOME 鍵就足夠了。
在 iOS 里,回到桌面或切換到別的 app 就是離開了那個 app。至於它在後台到底有怎樣的行為,那不是用戶該關心的。事實上,iOS 希望你認為它們永遠在運行。
連按 Home 鍵出現的那個列表本質上是 app 的歷史記錄,你不需要挨個清除它們。
Windows 用戶和 Android 用戶試圖無限控制系統的一舉一動,這種執著的精神很偉大,可以理解,因為操作系統的資源管理能力太弱了,而且從來沒能在用戶身上培養出專註於正事的習慣(看看 Windows Aero 的礙眼窗體設計、十年如一的卸載移動磁碟菜單和窗口[「大容量存儲設備」!?這個說法很華麗嗎?!還有那些莫名其妙的項目是怎麼回事?對不起,我不是 USB 工程師,我不需要看到那些]、眼花繚亂的系統文件夾、自帶六七套音效和牆紙和窗體顏色的主題……然後你就知道我說的是什麼了)。
但是,當你來到 iOS,請把自己的精力花到正道去。系統會把該它做的事情盡量做好。
當然,如果你就是想把 iOS 用成 Android 那樣來消磨時間,那就破解之後放開玩吧。沒人管得著了,但那樣出了任何問題都不要怪蘋果。
關閉本身就是是一個存在在物理世界,但是在程序的角度並不太合理的現象。就像電燈開關是用來控制電燈的通電與斷電一樣。來源是一直存在的,我們沒有切斷電的來源。也像人的生命一樣,人是不會關機關機的,只有待機,生命一直在繼續。關閉程序的概念某種程度是因為我們(人)認為計算(手機)無法合理分配必要的資源來控制程序(變慢)。但實際上計算機的目的就是為了合理利用資源來計算。所以系統(軟體)本身的機制對於資源的分配不好造成的變慢現象讓我們有了需要關閉的概念,就像一個人不知道合理休息就無法正常工作一樣。所以軟體(包括系統)設計中,可以適當考慮是否能避免出現應用這種「開/關」的概念,對於軟體「休眠」應該就已經足夠。
一鍵關閉是給有強迫症人用的
0. iOS的設計原則是把複雜留給系統,把簡單留給用戶。
1. iOS系統點擊HOME以後,當前APP退出,只佔用內存資源,但是不再佔用CPU資源,對系統的運行速度幾乎不會有影響。
2. 如果切換到內存尚未被釋放的APP,目前的許多(還不是全部)APP可以瞬間切換,看起來就像沒有被關閉,用戶體驗更好。
3. 開啟新的APP時如果發現內存不夠了,iOS有調度演算法來清除那些不再需要的軟體的內存,因此用戶通常不用擔心內存不夠用、無法啟動新APP的問題。
4. 如果用戶把「後台進程」關閉了,相應的內存資源會被釋放,但是再次使用這個APP的時候需要耗費更多的CPU(和電源)來啟動,對於用戶而言基本上沒有好處只有壞處。
5. 有一些例外。我注意到有些APP在申請不到內存時會崩潰退出,常見於一些遊戲,以及ipod touch 3/4 這種小RAM的機器,這時清理後台是有幫助的。對於iphone4+、ipad2+則不需要。另外,Chrome for iOS打開新頁面時若申請不到更多的內存,不會讓系統關閉後台程序,而是關閉一些已打開的頁面,因此再切換回那些頁面時會發現需要重新載入,因此我會主動清理一些後台進程。
p.s. 一鍵清理內存還會把本該後台運行的程序(如音樂播放類)給清了。請放心,除了 VoIP,GPS,後臺音樂播放這幾種類型的應用以外,其它所有應用至多只能在後臺使用你的網路、運算資源、電力幾分鐘,之後它被凍結掛起,不耗費任何資源,而且隨時可能被系統從內存中清理出去。
相信我,蘋果比我們絕大多數人都要聰明。而且這個機制沒有適用差別,國產開發商的應用再流氓也不能犯規使用不對應的 Multitasking API.
所以當你按下 Home / Sleep 鍵之後,整個世界清淨了。(至少幾分鐘之後必定如此)_____
閱讀更多 https://www.instapaper.com/text?u=http%3A%2F%2Fcharlesesmith.net%2Fpost%2F11244398163%2Fios-multitasking
沒辦法啊,人就是賤。本來人家是一個強制關閉程序的一個功能,不知道為啥被好多人翻出來了,然後沒事的時候就把它點出來把所有程序關掉。就跟小圓點一樣,沒事找事。
用戶都是很賤的,你給他一個關閉程序的功能,他就喜歡一頓狂點把所有程序都關了,然後很有快感。然後你讓應用需要讀取一下什麼信息時給出提示,無論是微信讀通訊錄,還是地圖讀GPS數據,還是所有程序彈出通知,用戶都會給你點否的,他覺得侵犯了隱私。然後,手機拿來的第一件事一定是把GPRS關掉,因為聽說GPRS是要錢的。
想要求用戶怎麼怎麼做,只要別給他選擇權就好了。在這個問題上,喬布斯和周鴻禕都深知這一點。你是說後台程序嗎?其實只是最近使用的程序列表
放在那裡又不礙事,只是留在內存中又不會佔用cpu,耗電也很少
在這個答案下,必須部分反對@梁海 的答案。
自由,有限制下的自由才叫自由。蘋果不是僅僅給你一個平台,讓你隨心所欲,而是做好用戶需求,設計一套最高效的操作模式,然後在這個框架下為你提供自由。在 iOS 里,回到桌面或切換到別的 app 就是離開了那個 app。至於它在後台到底有怎樣的行為,那不是用戶該關心的。事實上,iOS 希望你認為它們永遠在運行。
連按 Home 鍵出現的那個列表本質上是 app 的歷史記錄,你不需要挨個清除它們。
梁海的答案中這個結論
連按 Home 鍵出現的那個列表本質上是 app 的歷史記錄,你不需要挨個清除它們。
我認為是不嚴謹的,雙擊Home鍵按出來的那個列表,實際上並不完全代表App的歷史紀錄。
他是個列表,他也是按照用戶的使用順序來排序的,但一旦用戶通過雙擊Home鍵再關閉掉再後台的程序,下一次此程序載入時,就必須重新讀入所有載入數據。
實際上蘋果不希望用戶雙擊關閉掉雙擊Home的程序是因為這不是一個好習慣。就像沒事清除系統內存一樣,這不是一個好習慣,這是一個強迫症,是病。
但當你的App越來越多的時候,你很容易遇到一種想立馬切換到某個程序,但是由於後台列表裡面App太多,桌面上App也太多,而且你也記不住那個App是個什麼名字的時候,你就會找不到那個App。
這個時候,清除後台列表就是有用的了,一方面可以釋放一部分內存,另一方面可以重置你的後台App列表。可以讓用戶重新又有一個最近的App使用記錄。
但是如果蘋果只是提供一個清除所有後台的快捷鍵?那不行,很多用戶都會不自覺的去清除後台,這又是有違蘋果為用戶設計好的使用方式的,所以蘋果在很大程度上是不會提供這個功能的。
所以目前還沒想到一個好的交互解決方案來解決這個問題。威鋒網的這篇文章可以作為參考
http://bbs.weiphone.com/m/read-htm-tid-3745152.html
摘抄其中比較直觀的一段話:
"一般說來,所有程式進入背景後都還有5 秒的執行緩衝時間,有些程序可以要求延長到10 分鐘(這些當然是由開發人員在設計與提交程式時決定和聲明);
因此,在你按下Home 鍵後,本來的程式就會退到背景,如果它有額外的背景執行作業,超過10 分鐘還是會被iOS 中止;所以,還是別擔心了!"
蘋果的設計哲學是鼓勵用戶去使用它的產品,去關注應用,而不是分散過多精力在操作系統上面,一鍵清理內存是有意義的,但是加多這樣一個按鈕會帶來一個學習成本,一般的用戶是不會理解內存,後台,進程這些概念的,犧牲了一些控制,帶來了方便和快捷,這也是傻瓜相機的設計哲學
當你按了home,程序就像被凍起來了,除了占內存不佔用別的,因為不會運行,所以關閉一詞沒有意義,你之所以那樣認為是因為你把home當成Windows里的最小化了,但二者本質不同,最小化是把程序放到後台運行,home是吧程序凍結了,ios也允許後台運行,但是會非常耗電,所以蘋果對軟體審核時對後台嚴格控制,可以用後台的幾種軟體是:音樂,導航(還有幾種我忘了)越越獄後的手機耗電快也有一部分原因是因為沒有審核,大量利用後台的程序出現,所以耗電快了,iOS上用長按home清除程序列表的行為,只是釋放掉了被「凍」起來的程序的內存,和關閉後台程序一點關係都沒有,所以結論是:長按home清理內存的行為毫無意義,用戶不必糾結,這就是apple主張的體驗至上,而上述行為實際上是多此一舉
除了個別設定在關閉後運行的app和一些系統內置的服務,ios系統一般只運行一個app。所以按home鍵就意味著所有的程序都關閉了,回到了一個重新選擇app的界面。
ios本來就沒有後台,你說的那個是最近使用過的程序
上面的都是胡說,這得問jobs是怎麼想的,jobs的想法,從來不是其他人能猜的出來的。。
推薦閱讀:
※iOS 和 Android,哪一個可以走得更遠?
※為什麼iOS開發比Android開發需求少這麼多?
※如何禁止 iPhone Safari 視頻自動全屏?
※如何評價蘋果公司要求開發者在 2017 年前全部採用「HTTPS」?
※在微軟 (Microsoft) 公司從事 iOS / OS X 開發是怎樣一番工作體驗?