`
lyunabc
  • 浏览: 551514 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

Android简明开发教程四:Android应用基本概念

 
阅读更多

Android平台的一个显著的特点是“低耦合”。Activity是Android应用的一个最基本的用户UI模块。如果采用Windows Form应用作为参照,Activity相当于Windows中的WinForm。和Windows 应用不同的是,运行一个Activity或是Activity之间的交互是通过消息来实现的。也就是说如果想在起动一个Activity或是在一个Activity中启动另一个Activity,是通过发送Intent消息来触发,而不像Windows WinForm应用,需要调Form示例的Show或是Load方法来实现。通过Intent消息来实现Activity之间的交互,则最大程度上减小了模块之间的耦合度。这种机制类同Subscriber/Publisher机制。

Android平台的另外一个重要特性是“重用”。一个Android应用可以有多个Activity组成。拿扑克牌做比方,Android应用相当于扑克牌的盒子,盒子里的每张牌就是一个相对独立的Activity。这个Android应用运行时想当于从扑克牌中抽取牌叠放在一起,最先抽出的牌就是Android应用的主Activity,主Activity可以在调用其它Activity(通过发Intent消息),被触发的Activity就像扑克牌一样发在主Activity上面。这样就形成一个“Activity”栈。在设备上按“Back”则可以如浏览器一样回到上一个Activity。 Android手机上每个应用都是一样的结构。“重用”指Android应用在运行时,可以触发其它应用中定义的Activity。比如说在GTalk中想显示某个朋友在地图上的位置。而GoogleMap应用可以显示地图。GTalk不需要重复同样的代码或是对于类似的Activity。可以直接通过Intent消息来启动GoogleMap中的MapViewActivity。

下图显示了Android应用的基本组成部分。

除了Activity之外,Android也可以实现Service,Service类同Windows Service,一般在后台运行,不含用户界面。Brodcast Receiver可以用来响应一些系统消息。基本功能有点类似Java ME中的PushRegistry。 比方说你想在收到短信时触发你的应用,可以在Android应用的Manifest文件中定义一个Broadcast Receiver来触发一个Activity。

如上图所示,Android应用中,Application对象好像一个容器,里面可以包含多个Activity,多个Service或是多个Broadcast Receiver。这些Activity,Service,Broadcast Receiver相对独立,相互之间交互只能通过Intent 消息。如同Java ME的MIDlet的JAD文件一样,每个Android应用都有一个Manifest文件,文件名固定为AndroidManifest.xml。Android应用中定义的Activity,Service,Broadcast Receiver等都需要定义在这个Mainifest文件中才能被本应用或是其它应用所调用。 这里还是借用Publisher/Subscriber的概念来说明。 一个Activity,Service等 如果能被调用的话则需要在Mainifest中Subscriber某类消息。

<activity android:name=”.HelloWorld”
android:label=”@string/app_name”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>

上面是HelloWorld中主Activity在AndroidManifest.xml的定义,定义了这个Activity的对应的class,以及可以触发该Activity 的intent-filter ,(相当于Subscriber某种消息),但用户点击该应用图标时,Android操作系统将发送一个Intent消息,Android系统检查subscribe该Intent消息的Activity,Service或是Broadcast Receiver,如果找到,则其动该Activity,Service或是Broadcast Receiver。对于HelloWorld,则在屏幕上显示“Hello World”。 除了系统可以发送Intent外,Android引用也可以通过startActivity(Intent) ,StartService(Intent)来向启动其它Activity或是Service。Intent可以带传入数据(参数)。即使在同一个应用中,也需要通过Intent来传送信息,这样大大降低了应用中各个模块之间的耦合度,从而可以无缝更换应用中的某个模块而不会影响其它部分。 刚开始接触Android这种机制时可能会觉得不如WinForm 的 (new Form1()).Show()来的直接方便。但从应用的可维护性,可扩展性来看,Android这种低耦合设计是非常有利的。 此外,如果需要在多个Activity这间共享一些数据,可以通过扩展Application类实现,在Application类中定义的变量可以被应用中所有Activity所访问。

分享到:
评论

相关推荐

    Android OpenGL ES 简明开发教程四:3D 坐标变换

    在Android平台进行3D图形开发时,OpenGL ES(Open Graphics Library for Embedded Systems)是一项关键的技术。它允许开发者在移动设备上创建复杂的3D图形和动画。在OpenGL ES的环境中,3D坐标变换是构建和操作3D...

    android开发教程CHM

    《Android开发教程CHM》是一本专为Android开发者设计的详尽指南,旨在帮助初学者和有经验的开发者深入理解Android平台的各个方面。这个CHM(Microsoft Compiled HTML Help)文件包含了大量的信息,使得学习和查阅...

    Android简明开发教程二十四篇及示例代码下载.pdf

    《Android简明开发教程》是一份详尽的指南,旨在帮助初学者和有经验的开发者快速掌握Android应用开发。这份教程共分为二十四篇,涵盖了Android开发的基础到高级主题,包括安装Android SDK、创建第一个应用程序、理解...

    Android 开发 简明教程 中文版

    【Android开发简明教程中文版】是一份专为初学者设计的详细教程,旨在帮助学习者快速掌握Android应用开发的基本技能。这份资料由经验丰富的教师编写,内容全面且深入浅出,适合对移动开发感兴趣的开发者或者在校学生...

    Android OpenGL ES 简明开发教程

    ### Android OpenGL ES 开发教程详解 #### 概述与历史沿革 OpenGL ES(OpenGL for Embedded Systems)作为OpenGL API的子集,专为移动设备、PDA和游戏主机等嵌入式系统设计,旨在简化3D图形应用的开发流程。自2003...

    Android简明应用程序开发[原创]

    ### Android简明应用程序开发知识点概览 #### 一、Android开发环境介绍 ##### 1.1 下载与安装 - **SDK安装**:Android SDK(Software Development Kit)是开发Android应用的基础工具包,包含了编译代码所需的库文件...

    Android手机应用开发简明教程.rar

    在Android手机应用开发简明教程中,我们将会深入学习如何构建功能丰富的移动应用程序,这些应用程序可以在全球数亿台Android设备上运行。Android平台是Google主导的开源操作系统,它为开发者提供了无限的创新空间和...

    Android OpenGL ES 简明开发教程相关源码真正的3D图形

    Android OpenGL ES 简明开发真正的3D图 Android平台提供的OpenGL ES API主要定义在包android.opengl ,javax.microedition.khronos.egl ,javax.microedition.khronos.opengles ,java.nio 等几个包中

    AndroidAPP开发入门教程.pdf

    本教程主要介绍了Android APP开发的基本步骤,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,为读者提供了一个简明的Android APP开发入门教程。 一、准备工作 在开始Android APP开发之前,需要准备...

    Android OpenGL ES 简明开发教程相关源码材质渲染

    这个“Android OpenGL ES 简明开发教程相关源码材质渲染”旨在教授如何在Android应用中利用OpenGL ES进行材质渲染,从而创建出丰富的视觉效果。 材质渲染是OpenGL ES中的关键概念,它涉及到物体表面的外观属性,如...

    Android_OpenGL_ES_简明开发教程

    这个简明开发教程主要参考了Jayway Team Blog中关于OpenGL ES开发的教程,该教程比较通俗易懂,非常适合OpenGL ES的初学者。教程主要通过示例和步骤讲解,旨在帮助没有3D开发经验的程序员快速入门。并且,由于很多...

    Android OpenGL ES 简明开发教程相关源码添加颜色

    Android OpenGL ES 简明开发教程相关源码添加颜色 简单的上色方法叫做顶点着色(Vertxt coloring),可以使用单色,也可以定义颜色渐变或者使用材质(类同于二维图形中各种Brush类型)。

    Android OpenGL ES简明学习资料

    含有以下4个pdf,主要介绍基本概念和用法,对初学者非常有用。...Android OpenGL ES 简明开发教程.pdf Android_OpenGL_ES_book.pdf OpenGL ES 2 for Android.pdf Apress.Pro.OpenGL.ES.for.Android.Feb.2012.pdf

    android简单教程+安装+相关信息.rar

    本教程旨在为初学者提供一个简明易懂的Android入门指南,包括如何安装Android环境,以及一些基本的Android相关信息。 一、Android系统简介 Android操作系统基于Linux内核,它提供了丰富的应用程序框架,允许开发者...

    超爽android中文教程

    《超爽Android中文教程》是一份专为初学者设计的教育资源,旨在以简明易懂的方式介绍Android操作系统的基础知识和开发技巧。这份教程通过中文解释,降低了语言障碍,使得学习过程更为顺畅。作为一份帮助文档,它涵盖...

    Java简明教程.rar

    Java的广泛应用包括Web开发、移动应用(尤其是Android平台)、企业级应用、大数据处理等。 本压缩包“Java简明教程.rar”提供了学习Java编程的基础资料,包括电子课件、习题答案和实例源文件。这将帮助初学者深入...

    Unity3d游戏开发简明教程

    Unity3D是一款强大的跨平台游戏开发工具,广泛应用于2D和3D游戏、虚拟现实(VR)和增强现实(AR)项目的制作。本教程旨在帮助初学者快速掌握Unity3D的基础知识,通过学习,你可以了解到游戏开发的核心概念和技术。 1. *...

Global site tag (gtag.js) - Google Analytics