Activity的onCreate和onStart哪个开销大? 顶级程序员心得

来源:互联网 发布:数据结构与算法怎么学 编辑:程序博客网 时间:2024/04/29 13:06

a:

开销的大小取决于添加了多少代码到这两个函数里

 

b:

onCreate只有一次,onStart会有多次
Create->Start->Resume:启动
Pause->Stop->Destroy->Create->Start->Resume:(横竖屏切换)
Pause->Stop->Destroy:退出

一般onStart中都是做资源的启动或恢复。

 

c:

onCreate默认需要setContentView什么的,默认是比较大,但是你onStart里面放点network i/o啥的处理也是不好计算的,你看下jvm的内存和cpu执行过程好了,给你个方法参考 http://www.android123.com.cn/androidkaifa/621.html

 

d:

就单独论onCreate和onStart的时候,里面不存在其他冗余代码。
是onCreate的开销大,因为他包含了setContentView()这个方法,xml文件只是个引导,
实质上图还是由java画出来的,凡是new 一个Activity,即new Intent过去的,Activity会按顺序调用
onCreate>onStart>onResume。而onStart和onResume的开销只是在代码上面,其实画图布局开销很大,当然你要说布局就几个组件,而onStart里面有个几万行代码那就另当别论了...


在代码量相当的情况下是onCreate的开销大,而经常调用的onStart会从缓存里调用。这个和内存机制有关了,用的少的放内存或者其他存储器,用的多的从缓存调用,这样速度和效率都很高

 

from:http://topic.csdn.net/u/20100902/08/47fac4fe-b951-408f-b888-f1fcf0dbfae7.html

 

ps:::

long int就是long

int就是int

都是4个字节,那是因为你的程序是32位的,编译为64位就不一样了
在64位环境下,通常long是8字节

 

顶级程序员心得~~~

http://blog.csdn.net/SoftwareTeacher/archive/2010/11/27/6039901.aspx

原创粉丝点击