没有合适的资源?快使用搜索试试~ 我知道了~
首页Android activity原理分析
资源详情
资源评论
资源推荐
Tech
Android Activity原理分析
Revision History
Date Issue Description Author
目录
1. ABSTRACT 3
2. INTRODUCTION 3
3. ACTIVITY的简单介绍 3
4. ACTIVITY的生命周期介绍 3
5. ACTIVITY的各个状态的切换细节 5
的启动过程
5.1.1
客户端执行逻辑
......................................................................................................................................................................5
5.1.2 ActivityManagerService
的执行逻辑
.......................................................................................................................................9
5.1.3
新的
activity
的进程逻辑
........................................................................................................................................................15
5.1.4 OnCreate
函数的调用
............................................................................................................................................................19
5.1.5 OnStart
的调用
.......................................................................................................................................................................19
5.1.6 OnResume
的调用
...................................................................................................................................................................21
从暂停到继续的过程分析
5.2.1
暂停操作的原由
....................................................................................................................................................................22
5.2.2 onPause
的调用
......................................................................................................................................................................24
5.2.3 onStop
的调用
.........................................................................................................................................................................26
5.2.4 OnResume
的调用
...................................................................................................................................................................33
6. 总结 36
7. 未分析 37
8. 附录 37
!"#$
1. Abstract
主要是分析一下
android
的
Activity
的架构;
2. Introduction
这是一个比较大的题目,所以我不太可能涉及太多的细节,多数是蜻蜓点水,浅尝辄止;
此文档分为以下几个部分:
%的简单介绍
%的生命周期的介绍
%的各个状态的切换细节
3. Activity的简单介绍
什么是Activity?这个问题很难回答,直译为活动;&''提供的解释是:
An activity is a single, focused thing that the user can do;
简单翻译一下就是, %是用户可与之交互的独立的可以聚焦的东西;
它可以为用户提供的是一个简单的(&',用户可用于堆放自己想要的)效果;
Activity是一个线程或者进程吗?
%肯定会存在于某个进程,但是并不是每一个 %都对应于一个新的进程,多个
%可以在同一个进程里面,甚至多个应用还可以在同一个进程里面;当然可以设置不同的
* +&,'让一个 %起来的时候创建一个进程,但它本身肯定不是线程或者进程,但它通常是
这个进程的主角;
Activity本身的执行逻辑是怎么样的?
这个就涉及 %最重要的生命周期的问题,后面会详细的解释,简单说从& 开始,到
&-结束,但如果你通过打印信息来看的话,经常会发现&-似乎没被执行,更确切的说,
你并不知道它什么时候一定会执行;
总结一下:
Activity是Android提供的应用程序架构,它规定了一个应用运行的框架,它的生老病死;负责
它的基础设施的创建和销毁,以及各个activity之间的切换,状态管理等;
有了这些规定,每个应用开发者,不需要关心进程的创建,不需关心主循环,比如你不会在
./包里面看到0 &函数,你也不会在 ./包里面看到有关主循环的东西,你也不需要关心你的程序如
何被暂停,如何被关闭等等,只需要按照它规定的接口写,就万事俱备;这些接口也很简单,也就是
& ,&1 ,&2+0& +,&2+0&2 &1.&-,这些接口也不是都需要
实现的,后面会再讲;
4. Activity的生命周期介绍
上面提到过,一个%有以下这些状态:
3& &1 &2+0& +&2+0&2 &1.&-这些状态的切换,如下
!#"#$
图所示:
3& 4表示这个 %已经被创建了,在这创建的当口,你需要做点什么,才不致浪费生命
呢?比如这里就可以放置你直接设置好的)通过&&56,放入到显示框架里面,
它和&-相对;
&1 4表示 %已经启动了,如果没什么特别要做的,可以不实现,它和&1.相对;
!7"#$
&2 4表示在1.以后,但是没有被',这个 %再次被激活,那么将会走这个
&2 路线;
onResume完全是为了实现在&2 的时候而引入的,但是在第一次启动的时候也被执行;
它是和& +相对的;
onPause4它表示暂停,比如一个新的 %弹出来覆盖在旧的 %上,那么旧的 %将会
先进入. +状态;
onStop4如果新的 %弹出来后完全覆盖了旧的 %,那么旧的那个 %将会进入到
&1.状态;
onDestory4进入1.状态的 %会被定期清理,比如为了节省内存,比如是用户故意的配置,
比如是用户通过"&系统调用, %都会被-,释放掉所有的资源;
如果我们从 +&里面随便点击一个应用的图标将会走这些流程:
onCreate——>onStart——>onResume
当一个新的 %8弹出来的时候,那么 %将会走下面的逻辑:
& +&1.或者就是& +,视新出来的 %是否完全遮住 %;
如果 %8被关闭,那么如果这时候处于. +状态,那么它就简单的执行&2+09如果它
处于&1.,那么它会执行onRestart,onStart,onResume;
也就是说,一个 %的启动,肯定会走&1 或&2+0;
当这个 %资源已经释放了,要重新启动,那么才会执行& ;
从上面的结论来说,一个 %的& 函数需要负责资源的申请,变量的初始化等;
当暂停的时候需要做一些数据,状态的保存等;
在1.的时候该关闭的就关闭了,该释放的就释放,不能留到&-9
&''的文档上说,在杀掉一个%之前,唯一一个一定会被保证执行的函数是& +也
就是说连&1.也不一定是可靠的,而&-就更不可靠了,你甚至都无法知道它什么时候
将会被执行;
好,有了这些整体的认识,下面就是一个详细的介绍,以一个 %启动过程为线索,介绍上
面的七个状态的调用逻辑;
当然,纯属分析,并没有多少实际的用处;
5. Activity的各个状态的切换细节
5.1 Activity的启动过程
5.1.1
客户端执行逻辑
接下来的过程涉及比较多的代码,不太可能关注到每一个细节,我主要是以上面的七个状态函
数的执行为线索;
那是很久很久以前,
我们需要回到* +&的代码,当用户点击了一个应用的图标的时候,会触发&/函数逻辑
!"#$
剩余37页未读,继续阅读
wylhistory
- 粉丝: 54
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0