- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android SDK App Intent机制分析 —— SDK Smaples NotePad.docx
Android SDK App Intent机制分析
—— SDK/smaples/NotePad代码分析
文档说明
本文档是对Android SDK Guid理解后,抽取的其中几个关键概念进行阐述。通过对范例代码的分析,加深对这几个基本概念的理解。通过对Android App核心概念——Intent的分析,帮助初学者建立起对Android App的系统级认知。
另外,本文档作为编写树控件数据绑定、View间通讯等其他几个技术点说明文档的参考文档。
Android App基本结构
了解Android App的基本结构特点,有助于进一步学习各项各项技术点。这些基本特点包括:
事件驱动模式
与其他应用客户端的工作模式一致。不同的是,PC机上的事件队列管理是由应用程序进程自己管理的。而Android App的事件队列由操作系统和运行环境统一调度。
一方面,不恰当的事件处理会危及整个系统的响应;另一方面,使应用程序的体系结构更为开放,进程见通讯更便捷。
App组件包
通常PC应用程序有一个主程序入口点,执行过程一旦交给App,就由应用进程自己管理资源和执行过程。
Android App则没有main概念。一个应用程序包可以包含若干个启动点,根据启动方式不同,App内部可以自行决定逻辑处理方式。而启动点、不同处理方式接入规则都在AndroidManifest.xml文件中约定。因此,AndroidManifest.xml可以与COM技术的IDL文件对应。
正确理解这一点,开发人员才能设计出结构开放的应用程序,也便于高效利用第三方提供的应用功能。
其他特点
Android App还有一些本质特点需要同学们了解,在今后阅读技术资料时注意,但和本文档主题内容关系不大,仅在这里提示一下。这些特点包括:
Task/进程/应用程序概念与PC机应用有所不同:一个执行过程为Task,包括跨应用包和跨进程的全部执行过程。
深入的分层思想:以资源包为例,一个App代码版本可以对应多个文本串、图片等资源副本。应用程序代码不直接管理资源包,而是通过配置等手段交给运行框架在运行时决定。
MVC: Android App由Activity, Intent, Layout等内容构成。由Activity作为用户事件响应和界面资源管理的Controller。Layout与B/S方式的页面模板有所区别,不管理数据绑定等规则,仅约定界面布局,这一点与CSS更接近。这种方式真正做到了界面处理与???据处理隔离,直接效果就是:与资源包配合,界面布局可以由运行框架管理,同一个应用程序能适应不同的展示环境。
其他特点同学们可以在今后逐渐总结。
Intent分析
Intent的一部分作用与PC应用的消息队列对应。在Android环境,Intent不但是应用程序事件驱动的机制,也是模块间、进程间通讯的机制。
工作机制
Android App中,与MVC Controller对应的是Activity。Activity管理界面布局(Layout),处理界面用户事件,将数据绑定到界面控件上。
当Activity需要与其他Activity或App通讯的时候,就发起一个以Intent为参数的系统调用。由系统(Android运行框架)根据Intent中的规则决定由哪个消息接收者来处理。(这里我们也可以看到Android App的一个特点:模块间通讯最方便的方式是“组件接口调用”,而不是方法调用)
当需要调用其他Activity时,使用两个启动方法之一:
public abstract void Context.StartActivity(Intent intent):要求系统找出参数指定的模块/App并执行。
public void Context.StartActivity(Intent intent, int requestCode):要求系统找出参数指定的模块/App并执行,将运行结果返回给调用进程。
这两种方法都会触发运行框架根据参数数据筛选被调用组件。
筛选规则分为两种类型:
明确指定被调用模块名:系统根据模块名找到被调用组件并执行。这种方式适合App内部组件间通讯。因为同一个App,各模块名是知道的。
指定Active类型、数据ID、数据类型:系统按照一定的算法查找匹配的组件。这种方式适合App之间调用、适合按照组件方式设计的App内部组件间的通讯。
Intent除了可以指定筛选规则外,还可以设置用户数据。
关于Intent和筛选的详细介绍,见Android SDK的文档中“Dev Guid/Intents and Intent Filters”部分。SDK文档索引路径为SDK/ /docs/intex.html.
“Dev Guid/Intents and Intent Filte
您可能关注的文档
- 2016湖北教师招聘考点解析:“以人为本”学生观内涵.doc
- 2017上海师范大学全日制教育硕士考研辅导班有没有好.doc
- 205 热水驱动增热型机组提取地热供热方式研究.doc
- 221 热传导方式 传热基本方式有三种,即传导,对流和.ppt
- 22222学习科学发展观做教育实践者.ppt
- 24课经济全球化.ppt
- 2509学前教育学.doc
- 254 基于MARKAL模型城乡居民生活节能潜力与途径分析.doc
- 26课 教学相长.ppt
- 29城市公共空间.ppt
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)