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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

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

文档评论(0)

181****7662 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档