文档详情

Android-开发重点内容详解.doc

发布:2025-05-13约1.64万字共11页下载文档
文本预览下载声明

Android系统的架构

从底层往上层主要包含:

LinuxKernel:Android基于Linux2.6提供核心系统效劳,例如:平安、内存管理、进程管理、网络堆栈、驱动模型。LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的效劳。

AndroidRuntime:Android包含一个核心库的集合,提供大局部在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。

Libraries:Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架〔applicationframework〕暴露给开发者。主要包含:系统C库、媒体库、界面管理、LibWebCore、SGL〔2D〕、3D库、FreeType、SQLite?

ApplicationFramework:所有的应用程序其实是一组效劳和系统,包括:

视图〔View〕、内容提供者〔ContentProviders〕、资源管理器〔ResourceManager〕、通知管理器〔NotificationManager〕、活动管理器〔ActivityManager〕、通讯、定位、消息提醒等。

Applications

activity的生命周期

Activity有四种本质区别的状态:

在屏幕的前台〔Activity栈顶〕,叫做活动状态或者运行状态〔activeorrunning〕

如果一个Activity失去焦点,但是依然可见〔一个新的非全屏的Activity或者一个透明的Activity被放置在栈顶〕,叫做暂停状态〔Paused〕。一个暂停状态的Activity依然保持活力〔保持所有的状态,成员信息,和窗口管理器保持连接〕,但是在系统内存极端低下的时候将被杀掉。

如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态〔Stopped〕。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被杀掉。

如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接杀掉它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。

service的周期

AndroidService生命周期与Activity生命周期是相似的,但是也存在一些细节上也存在着重要的不同:

onCreate和onStart是不同的

通过从客户端调用Context.startService(Intent)方法我们可以启动一个效劳。如果这个效劳还没有运行,Android将启动它并且在onCreate方法之后调用它的onStart方法。如果这个效劳已经在运行,那么它的onStart方法将被新的Intent再次调用。所以对于单个运行的Service它的onStart方法被反复调用是完全可能的并且是很正常的。

onResume、onPause以及onStop是不需要的

回调一个效劳通常是没有用户界面的,所以我们也就不需要onPause、onResume或者onStop方法了。无论何时一个运行中的Service它总是在后台运行。

onBind

如果一个客户端需要持久的连接到一个效劳,那么他可以调用Context.bindService方法。如果这个效劳没有运行方法将通过调用onCreate方法去创立这个效劳但并不调用onStart方法来启动它。相反,onBind方法将被客户端的Intent调用,并且它返回一个IBind对象以便客户端稍后可以调用这个效劳。同一效劳被客户端同时启动和绑定是很正常的。

onDestroy

与Activity一样,当一个效劳被结束是onDestroy方法将会被调用。当没有客户端启动或绑定到一个效劳时Android将终结这个效劳。与很多Activity时的情况一样,当内存很低的时候Android也可能会终结一个效劳。如果这种情况发生,Android也可能在内存够用的时候尝试启动被终止的效劳,所以你的效劳必须为重启持久保存信息,并且最好在onStart方法内来做。

总结:

1.startService()的目的是回调onStart()方法,onCreate()方法是在Servic

显示全部
相似文档