关于Activity 和Task 的设计思路和方法 Activity 和Task 是Android Application Framework 架构中最基础的应用,开发者必须清楚它们的用法和一些开发技巧。本文用大量的篇幅并通过引用实例的方式一步步深入全面讲解它们的基础原 理(underlying principles)和架构(mechanisms),例如:Navigation、Multitasking、activity re-use、intents 和activity stack 等…大部分与其相关的应用模块。重点讲解开发过程中如何更准确的体现用户交互性的便捷和高效,同时也帮助分析 Designers 和 Developers 在开发期间所要面对的问题。 文中涉及到的实例有一部分是属于平台自带的application(例如:拨号程序等),另 外也有 Google 产品线中的一些有代表性的应用(例如:Google Map 等)。建议大家亲自利用Emulator 或者Android-powered device 测试实例中的效果,这样可以帮助更加清晰的理解一些模块的含义。(注意:可能会因为硬件对于某些功能无法提供支持,所以有一些实例可能无法在 你的测试机中正常浏览) 首先需要清楚一些基础模块: Applications Acitivities Activity Stack Tasks 以上这四个模块对于理解这篇文章非常重要,下边就来逐一的简单介绍其具体的含义和用法(也可以通过其链接直接查看官方文档)。 Applications 任何一个 Android Application 基本上是由一些Activities 组 成,当用户与应用程序交互时其所包含的部分 Activities 具有紧密的逻辑关系,或者各自独立处理不同的响应。这些Activities 捆绑在一起成 为了一个处理特定需求的Application, 并且以“.apk”作为后缀名存在于文件系统中。Android 平台默认下的应用程序 例如:Email、Calendar、Browser、Maps、Text Message、Contacts、Camera 和Dialer 等都是一个个独立的Apps。 Activities 上边已经提到 Activities 是构成 Applications 的主要组成部分,其实可以 更为具体的理解为 Application 仅仅是一个抽象的标签,它将系统内一部分 Activities 关联在一起,协同完成用户的特定需求。安装 Application 的过程也可以简单理解为将其所包裹的Activities 导入到当前的系统中,如果系统中已经存在了相同的Activities, 那么将会自动将其关联,而不会重复安装相同的Activities,避免资源的浪费。Application 卸载的过程也会检查当前所关联的 Activities 是否有被其它Application 标签所关联,...