Android中Activity設計思想個人理解

山有木xi發表於2020-05-23

android四大元件基本上是入門android所必須要學的,在入門階段或許只需要真的這麼執行,知道生命週期,當我們再深入時就會發現四大元件設計的精妙之處

Activity被android設計成一個獨立的部件,並且因此淡化了程式的概念

android希望為使用者提供這樣的功能:由多個 Activity共同配合完成比較複雜的功能,這些 Activity可以來自不同的App

假設說一個功能需要四個Activity,第一個是來自你自己的APP第二個來自系統自帶的APP中的 Activity,第三個是其他APP的 Activity,第四個是你自己的APP,而他們可以無縫使用

因為 Activity要被別人使用,所以在設計頁面時,就不能只考慮僅僅滿足展開的APP中的需求,而要把 Activity封裝的很獨立。這一點可以從 Activity的啟動方式和資料傳遞來體現,按照Java程式設計的思路,假設我們要從一個 Activity傳遞資料到另外一個 Activity 應該用new一個例項,這樣就可以在建構函式中傳遞引數,但是Android中並不被允許這樣做,必須透過intent來啟動,本質上是由系統來建立例項物件

再舉個例子,傳遞資料如果不能使用構造方法,也可以使用靜態變數來直接傳遞啊,但是在APP中 Activity也可以執行在不同的程式

android要求 Activity封裝獨立,除了滿足這種重用性,還有一個原因就是節省記憶體,既然 Activity是功能封閉的,那額android系統就可以隨時殺死看不到的 Activity來釋放記憶體,等到需要哪些 Activity時,重新建立就行,比如說當我們從A到B再到C再到D時發現記憶體不足,系統就可以殺死ABC三個 Activity,等我們需要回到C時,再建立C,這樣對使用者來說其實沒有區別,而對於android系統來說則可以節省很大的記憶體

但是這樣就沒有缺點了嗎?

其實也是有的,比如說

為了功能封閉需要更多的邏輯和程式碼

使 android的 Activity程式碼臃腫佔用更多的記憶體和cpu

切換時每次只要被殺死程式,重新建立就要執行大量的程式碼,尤其是恢復資料時,容易造成介面反應慢、卡

現在的android手機其實效能和記憶體算是有過剩的,但是相比於iOS和windowphone,android手機還是相對較慢的

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2693888/,如需轉載,請註明出處,否則將追究法律責任。

相關文章