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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章