您的位置:首页 > 移动开发 > Android开发

(20120722)(笔记003)android开发起步

2012-07-23 00:54 211 查看
1.创建第一个android程序
2.android程序结构的分析
在eclipse集成开发环境中“包资源管理器”展开一个项目:从中可以看出,一个典型的android应用程序包括如下几部分:
① Src目录:源文件文件夹
② Gen目录:保存自动生成的R资源索引类文件夹
③ Android2.3.3目录:androidsdk jar 文件
④ Assets目录:保存原始资源类文件的文件夹
⑤ Res目录:资源文件夹
⑥ Androidmanifest.xml:android应用程序的配置清单文件。

3.Android生命周期
应用程序生命周期是指进程在android系统中从启动到终止的所有阶段;也就是android程序启动到停止的全过程。程序的生命周期由android系统进行调度和控制。
(1)进程的优先级
在android系统中,进程分为高优先级,中优先级,低优先级三类。
Ø 高优先级:前台进程
Ø 中优先级:可见进程,服务进程
Ø 低优先级:后台进程,空进程
① 前台进程
前台进程是与用户正在交互的进程。也是android系统中最重要的进程。处于前台的进程一般包括以下四种情况:
Ø 进程中的activity正在与用户进行交互
Ø 进程服务被activity调用,而且这个activity正在与用户进行交互
Ø 进程服务正在执行生命周期中的回调函数,如Oncreate(),Onstart(),onDestory(),
Ø 进程的brodacastReceiver正在执行onReceiver()函数
Android系统为多任务操作系统,当系统中的多个前台进程同时运行,如果出现资源不足的情况,此时android内核将自动清除部分前台进程,保证最主要的用户界面能够及时的响应操作。
② 可见进程
可见进程是指程序界面一部分能够被用户看到,但不在前台与用户交互,不响应界面事件的进程。如果一个进程包含了service服务,且这个服务正在被用户可见的activity调用,那么该进程就被视为可见进程。
Android 系统中一般有少量的可见进程,当系统资源不足时,系统会清理少量的可见进程,从而保证前台进程有足够的资源可用。
③ 服务进程
服务进程是指包含已启动service服务的进程。这类进程的特点是没有用户界面,且能够长时间的在后台运行。
Android系统只有在不能够保证前台进程或可视进程具有足够的可用资源时,才会强行清除服务进程
④ 后台进程
后台进程是指没有任何用户可见的activity,且不包含任何已经启动的service服务进程
在android系统中,后台进程的数量较多且重要性低,因此,在系统资源紧张时,android内核将优先清除用户较长时间没有见到的后台进程。
⑤ 空进程
空进程是不包含任何活跃组件的进程,这些组件包括:activity,service,broadcastreceiver,等
当android系统资源紧张时,空进程将会将首先清除。,但并不是直接将其关闭,而是将空进程保存在系统内存中,当用户重新启动该进程时,空进程就会被重新启动,这样可以提供android系统的应用程序的启动速度。

4.Activity的生命周期
Android生命周期是指应用程序的activity从启动到销毁的全过程。
Activity的生命周期是android应用程序设计最重要的内容,直接关系到用户程序的界面和功能
(1)Activity的状态
在activity的生命周期中,一般包括活动,暂停,停止和非活动四种状态:
活动状态:Activity完全能被用户看到,能够与用户进行交互,也就是处于用户界面的最上层
暂停状态:该activity不在处于用户界面的最上层,部分界面不其他activity遮挡,此时该activity不能够与用户进行交互
停止状态:该activity被其他activity全部遮挡,在界面上完全不能被用户看到
非活动状态:在以上三种状态之外的activity则处于非活动状态。





Activity的状态
在android系统中采用栈的结构来管理activity,这是一种后进先出的原则。
(2)管理activity的生命周期
在android系统中,一般通过activity的事件回调函数来管理activity的生命周期,这些回调函数如下:
Public class myactivity extends activity{
Protected void onCreate(Bundle savedInstanceState)
Protected void onStart()
Protected void onRestart()
Protected void onResume()
Protected void onPause()
Protected void onStop()
Protected void onDestory()
}
onCreate():Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建Veiw,绑定数据或恢复信息等。
onStart()当Activity显示在屏幕上时,该函数被调用。
onRestart()当Activity从停止状态进入活动状态前,调用该函数
onResume()当Activity能够与用户交互,接受用户输入时,该函数被调用,此时的Activity位于Activity栈的栈顶。
onPause()当Activity进入暂停状态时,该函数被调用,一般用来保存持久的数据或释放占用的资源,
onStop()当Activity进入停止状态时,该函数被调用
onDestory()当Activity被终止时,即进入非活动状态前,该函数被调用。

在Android系统中 ,Activity生命周期,以及各个事件回调函数之间的跳转,如下图所示:
此外,当由于系统资源紧张的时候,Activity可能会被终止,此时,Activity提供了相应的状态保存/恢复的事件回调函数:如下:
onSaveInstanceState():android系统因资源不足终止Activity前调用该函数,用以保存Activity的状态信息,供onRestoreInstanceState()或onCreate()恢复之用。
onRestoreInstanceState():恢复onSaveInstanceState()保存的Activity状态信息,在onStart和onResume()之间被调用。





(3)Activity生命周期的调用顺序
一般来说,Activity的生命周期可分为全生命周期,可视生命周期和活动生命周期三类。每种生命周期中包含不同的事件回调函数,各个事件的回调函数的调用顺序也不同。
① 对于Activity全生命周期,,事件回调函数的调用顺序为:onCreate()------onStart()---onRestart()--onPause()--onStop()--onDestory()。

调用onCreate()函数分配资源
调用onStart()将Activity显示在屏幕上
调用onResume()获取屏幕焦点
调用onPause(),onStop()和onDestory()释放资源并销毁进程。
② 对与Activity可视生命周期,事件回调函数的调用顺序为:onSaveInstanceState()----onPause()--onStop()--onRestart()--onStart()--onResume()
调用onSaveInstanceState()保存Activity的状态
调用onPause()和onStop(),停止对不可见Activity的更新
调用onRestart()恢复界面上需要的更新信息
调用onStart()和onResume()重新显示Activity,并接受用户交互、
③ 对于活动生命周期,事件回调函数的调用顺序如下:onSaveInstanceState()--onPause()--onResume()。每一步调用的含义如下:
调用onSaveInstanceState()保存Activity的状态
调用onPause()停止与用户交互
调用onResume()恢复与用户的交互





5.Service的生命周期
在android系统中,Service服务也是一个重要的组件,一个Service服务往往通过调用Context.StartService()启动服务,然后通过调用Context.stopService()停止服务。
如果应用程序多次调用startService()来启动服务,此时停止服务时仅需要调用一次StopService()即可

Service服务也有生命周期,也提供了事件回调函数:
Void onCreate()
Void onStart(Intent intent)
Void onDestory()
Service的生命周期可以分为:全生命周期和活跃生命周期

对于service的全生命周期,是从调用oncreate()到相应地调用ondestory()。Service服务在oncreate()中做一些初始设置,最后在ondestory()中释放所有的资源

对于service的活跃生命周期,是从调用onstart()开始的。这个方法传递参数是传送给startservice()的Intent()对象

注意:在service服务 中,没有停止服务对应的onstop()方法
如果service服务允许其他应用程序绑定到他,则Android还提供了相应的回调实现函数:
IBinder onBind(Intent intent)
Boolean onUnbind(Intent intent)
Void onRebind(Intent intent)
如果service服务允许绑定,onBind()将返回客户端与service通信的通道,onUnbind()方法将停止绑定,onRebind()将使一个新的客户端连接到service。

6.BroadcastReceiver的生命周期
BroadcastReceiver广播接收器是一个重要的android组件。,该组件用法比较简单,仅提供了一个生命周期回调函数:
Void onReceive(Context curcontext,Intent broadcastMsg)
BroadcastReceiver只有两种状态:活跃或者不活跃。
如果android系统调用了onReceive()方法并传递给它包含消息的Intent对象,则该BroadcastReceiver处于活跃状态,当onReceive()处理结束并返回后,该BroadcastReceiver处于不活跃状态。

本文出自 “美好家园” 博客,请务必保留此出处http://mxjy1208.blog.51cto.com/1197381/939138
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐