Android Fragment和Activity比較

一 前言
雖然Fragment這個東西在android3.0版本的時候已經出來了,但是自己一直用的比較少。最近自己做了一些應用程序,越來越發現Fragment這個東西是個不錯的東東,也越來越喜歡它了。
so.. 這裏就我對Fragment的理解發出來,和大家探討探討..

二 Fragment和Activity的對比
這個標題的意思程序使用Fragment和使用Activity進行頁面切換時的對比。

1. 程序性能
由於Activity進行頁面跳轉的時候要通過系統進程Ams的調度,包括activity記錄緩存,暫停舊的activity,拉起新的activity。而且由於是和系統進程發生交互,所以要涉及到進程
間通信。所以,不可避免的會耗費一些系統資源,以及花費一些時間。
雖然這種資源消耗不會產生什麼問題,但是能節省爲什麼不節省呢...
但是Fragment不同,它不涉及到Activity的跳轉,所以Activity跳轉所帶來的那些消耗它都不會有。

2. 安全性
由於Activity跳轉在系統中有記錄信息,所以,別人就可以把這些記錄信息打印出來,比如敲入下面命令:
adb shell dumpsys activity 
就可以看到你整個程序的Activity跳轉信息,雖然不知道別人看到這些信息之後會給自己帶來什麼問題,但是,畢竟已經泄露自己程序的運行軌跡。
but! Fragment就不同了,由於它沒有activity跳轉,甚至一個程序裏面就只有一個Activity,那麼別人用上述命令就只能看到一個activity的記錄。自然不知道你那麼頁面是怎麼跳出來的...


3. 界面美化和用戶體驗
由於Activity是頁面跳轉,所以,一般而言,它會刷新整個界面;用新的界面替換舊的界面。
但是,實際的情況是我們往往只要刷新頁面的一部分,如果整個頁面替換的話,不僅浪費資源,而且用戶體驗不好。
這個和web開發裏面使用ajax代替jsp頁面跳轉,實現局部刷新是一個道理。
所以,使用Fragment之後可以開發出許多界面非常好看,操作非常便捷,用戶體驗非常優秀的應用。

三 總結
其實,說這麼多不是說Fragment要代替Activity,相反,正如我們所知,Fragment是必須依附Activity而存在的。它的生命週期完全受它所依附的Activity的管理。
而且,Activity還是android裏面最重要的組件,也是整個android系統裏面一個非常重要的概念。
只不過,Activity加上Fragment之後,界面會變得更加流暢,用戶體驗會變得更加優秀。從這裏,我們也可以看出google一直在努力... 
當然,我也相信,以後的應用程序使用activity跳轉會越來越少,也許一個程序裏面只有1個或者兩個Activity了吧...
發佈了1 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章