分析帖:Android應用程序需不需要讓用戶手動退出_第1頁
分析帖:Android應用程序需不需要讓用戶手動退出_第2頁
分析帖:Android應用程序需不需要讓用戶手動退出_第3頁
分析帖:Android應用程序需不需要讓用戶手動退出_第4頁
分析帖:Android應用程序需不需要讓用戶手動退出_第5頁
全文預覽已結束

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

分析帖:Android應用程序需不需要讓用戶手動退出?日期:2011-08-26

為了解釋這個問題,我們先來了解這個系統對于應用程序管理的一些內部機制。

對于Android系統而言,包含“進程”和“服務”?!斑M程”有正在運行的,也有剛剛離開在后臺緩存的?!胺铡笔且粋€無界面、長時間運行的應用功能,并且不會輕易被終止。

我們知道,在Android中可以快速通過主頁鍵(home)或者使用返回鍵(←)逐步離開應用程序。

第一:“主頁鍵”

在當前運行的應用程序的任意界面,按下主頁鍵會快速回到手機主屏幕。同時這個應用程序的進程將在后臺被暫停并建立緩存,再次啟動應用程序時可以方便地返回剛才的界面。(現場被保留)

當然,在你按下主頁鍵回到手機主屏幕時,因設計需要,也有可能會在后臺運行一個甚至多個進程和服務,以保證這個應用程序在后臺是“活的”。

盡管我們知道了后臺會產生各種各樣的“進程”與“服務”,但你并不用擔心它們會把你的手機拖累。當運行新的應用程序發(fā)現內存可能不夠用時,系統會自動在后臺釋放部分緩存在后臺的進程,以保障可運行新的應用程序。這是一個智能的、良性的供給體系。

第二:“返回鍵”

Android系統使用返回鍵來進行屏幕后退,以及關閉對話框/菜單/屏幕鍵盤。

對于傳統的本地客戶端應用程序,每個屏幕可以理解為一個活動(Activity)。通過返回鍵可以快速回退到當前應用程序的上一個活動,也可以離開當前應用程序打開的新的應用程序的某個活動。

所有的活動呈堆棧結構(一種串行形式的數據結構),正在運行的活動處在最頂端。當你按下返回鍵,會清除當前活動并恢復上一個活動。如下圖示例:

如果你連續(xù)按返回鍵,活動一個個被抽離,就像剝洋蔥一樣。

在Android的應用程序里,可以通過“意圖(Intent)”功能,在當前應用程序(任務)的某個活動來啟動另一個應用程序(任務)的某個活動。

比如下圖的示例,在“有道詞典”主界面單擊超鏈接“意見反饋”打開瀏覽器訪問目標網頁:

在目標網頁界面,你可以使用返回鍵快速返回剛才的“有道詞典”主界面。

而接下來這個例子,體驗則是非常糟糕的:

如上圖,在目標網頁想要返回上一個任務需要歷經幾番周折。

一遍又一遍地回退瀏覽器的瀏覽歷史,甚至還要回到瀏覽器的起始頁,然后彈出一個對話框詢問是否要退出。

天哪!我快要瘋掉了。

Android官方對于多個任務間的活動堆棧處理機制,可以看下面這張圖來解釋:

從圖中我們可以看到,一開始在后臺的“任務B”的“活動Y”經由“任務A”的“活動2”的一個按鈕抽調到了前臺,而隨著“任務B”的活動一個個被剝離,最終整個“任務B”被結束了,并且使用返回鍵又回到了“任務A”的“活動2”。

返回鍵實現了調用新任務之后快速返回的便利,而不是只能迂回地回到應用程序列表并找到上一個使用的應用程序再次啟動。

當所有活動從堆棧中清除,任務結束。也就是說,在應用程序的主界面按下返回鍵時,應用程序就已經退出了。

除非,這個應用程序設計了后臺運行的進程和服務。比如"新浪微博",即使你在應用程序主界面按下返回鍵退出了,在“程序管理”>“正在運行”界面上仍然可以看到正在運行的進程和服務。(需通過菜單鍵切換至“顯示當前運行的服務”視圖)

正如上面提到的,后臺服務是一個無界面、長時間運行的應用功能,并且不會輕易被終止,即便你使用“任務管理器”。(其實可以在“服務”界面找到它并且手動

停止服務,只不過沒有這個必要性,交給系統自動處理即可。長時間不使用某個任務時,系統會認為你已經不再需要了并且會自動幫你結束。)至此,我們已經知道為什么Android應用程序不需要手動退出了。因為聰明的系統已經幫助用戶做了許多事情,包括退出應用程序以及恢復可用內存。

受限于Android官方對設計規(guī)范的態(tài)度,Android并沒有像iOS那樣明文告訴設計者不需要這個不需要那個。Android應用程序的設計模式也

因此而“百花齊放”,很難形成較為統一的體驗。比如本文提到的需不需要手動退出Android應用程序的話題,如果在iOS中看到屏幕上有退出應用程序的

按鈕,是一件搞笑的事情。

無論如何,Android也好iOS也罷,用戶本來就不需要關注“進程”或“內存管理”、“任務管理”這些東西。用完,離開界面即可,就這么簡單!把用戶不需要關注的問題拋給用戶,無異于“不想讓小孩玩火,但是又給他一個打火機?!?/p>

而設計師們,該做些什么了。改變吧!

看到這里,也許你會問:既然Android應用程序在后臺被掛起暫停了,但是為何開多了應用程序手機還是會變慢呢?

一方面:新運行的應用程序如果需要較大的內存,自然會比較慢。另外,如果手機本身的內存過小且CPU不給力,系統自然會因較頻繁地自動結束進程釋放緩存而導致手機在某些時候運行比較慢的感覺。

也正因為這樣,我們知道了為什么“任務管理器”會如此流行,甚至成了“裝機必備”。人們用它來快速提前釋放緩存以保證運行新應用程序時有足夠的內存。當然,隨著CPU頻率越來越高,內存越來越大的發(fā)展趨勢,手動清除緩存已經慢慢變得不再需要。

另一方面:臨時啟動的后臺服務可能會導致手機變慢。有些應用程序在后臺監(jiān)聽到指定的事件會自動啟動,比如操作系統本身的“Google服務”,又比如連接

USB并且在PC上啟動“豌豆莢手機精靈”,手機上的“豌豆莢守護精靈”會自動啟動。為了避免這種情況,只能建議你有選擇性的安裝應用程序了。聰明的軟件

需要先進的硬件來支持。

也許你又會問:既然在應用程序主界面用返回鍵可以直接退出應用程序,可是為什么某Android應用程序(尤其是國內的)要彈出退出確認對話框呢?

這其實更多的是產品人出于不希望自己的應用程序太容易被用戶“退出”,或是擔心“誤操作”的原因,為此給用戶增加一道障礙墻。

瞧瞧我們眼前的PC軟件吧!單擊窗口右上角的

X

圖標后,也有不少軟件在做同樣的事情呢。

毫不客氣地說,這是典型的把責任推卸給用戶的做法。似乎在警告用戶:“真的要退出了?確定的話我就不管你了!”

我們應該盡可能少使用對話框,提供必要的容錯支持。允許用戶犯錯,并給予恢復的機會。比如你可以允許用戶在按下返回鍵離開應用程序后還能再次返回現場。這在很多優(yōu)秀的第三方應用程序上均有體現,比如Twitter、米聊……

當然,沉浸式的應用程序除外。比如視頻正在播放或者游戲正在進行的畫面,應盡可能地不要讓

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論