Android开发之平台介绍

引言

李开复称,自己经过了四波浪潮:1975年的电脑计算机浪潮,1994年在美国经历了互联网的革命浪潮,1999年经过了中国互联网浪潮。"出生时代是有关,但更重要你能不能把握时代,这三个时代已经开始,在去追赶也没有那么多机会,但今天大好的消息是,第四个时代即将来临——移动互联网的时代。"

面对移动领域的开发,我们能不心动吗。当前的主流移动开发平台的介绍大家可以参考郑庚伟的《手机平台应用架构初步设计》和师智良的《移动开发平台初探》。下面就是这个序列的目录:

1、    Android平台介绍(平台搭建,Android核心组件,调试方法)

2、    Activity 详解(Activity生命周期、Intent)

3、    Android常见控件和布局

4、    Handler详解(多线程处理)

5、    Content、Service介绍(SQLite使用)

6、    通讯(文件下载、WIFI操作、Socket编程)

7、    游戏开发1

8、    游戏开发2

什么是 Android?

Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要

的应用程序。Beta 版的 Android SDK 提供了在Android 平台上使用JaVa 语言进Android 应用开发必须的工具和API 接口。

特性

  • 应用程序框架 支持组件的重用与替换
  • Dalvik 虚拟机 专为移动设备优化
  • 集成的浏览器 基于开源的WebKit 引擎
  • 优化的图形库 包括定制的2D 图形库,3D 图形库基于OpenGL ES 1.0 (硬件
  • 加速可选)
  • SQLite 用作结构化的数据存储
  • 多媒体支持 包括常见的音频、视频和静态图像格式 (如 MPEG4, H.264, MP3,
  • AAC, AMR, JPG, PNG, GIF)
  • GSM 电话技术 (依赖于硬件)
  • 蓝牙Bluetooth, EDGE, 3G, 和 WiFi (依赖于硬件)
  • 照相机,GPS,指南针,和加速度计(accelerometer) (依赖于硬件)
  • 丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse
  • 集成开发环境插件

Linux 内核

Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理等。

安装 SDK

以后的开发基于:

  • Eclispe 3.5
  • ADT-0.9.9
  • Android 2.2

1、安装 JDK (Java Development Kit) http://download.java.net/jdk6/

2、安装 Android SDK http://developer.android.com/sdk

3、安装 Eclipse http://www.eclipse.org/

下载完SDK 后,把.zip 文件解压到你电脑上合适位置. 默认情况下, SDK 文件被解压到:android_sdk_<platform>_<release>_<build>文件夹. 这个文件夹包含tools/, samples/等。请注意系统里SDK 解压后的文件夹的名字和位置 当你安装Android 插件和使用SDK 工具时,你将需要引用这个文件夹。

使用SDK更新环境

环境变量设置

你可以添加 SDK tools 的文件夹路径到你的环境变量中。 添加 tools 到你的环境变量里,这样你可以运行Android Debug Bridge (adb)和其他tools 下命令,而不需要输入完整路径名。

安装ADT

下载ADT0.9.9版本(http://dl.google.com/android/ADT-0.9.9.zip)

这里使用的是下载安装,这样便于Eclipse插件的管理和复用。

1. 下载ADT 压缩文件 (不解压).

2. In Eclipse , click Add Site..., 然后点击Archive...

3. 浏览和选择已经下载的压缩文件。

设置模拟器版本

这里创建基于Android2.2 的模拟器,并把内存卡大小设置为:256m

核心组件介绍

一般情况Android 应用程序是由以下四种组件构造而成的:

需要注意的是,并不是每个Andorid 应用程序都必须构建这4 个组件,有些可能由这些组件的组合而成。一旦你确定了你的应用程序中需要的组件,那么你就应该在AndroidManifest.xml 中列出他们。 我们会在以后进行详细说明。

活动

活动是最基本的Andorid 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来, 活动类将会显示由视图控件组成的用户接口,并对事件做出响应。 大多数的应用是由多屏幕显示组成。例如,一个文本信息的应用也许有一个显示发送消息的联系人列表屏幕, 第二个屏幕用来写文本消息和选择收件人, 再来一个屏幕查看消息历史或者消息设置操作等。这里每一个这样的屏幕就是一个活动,很容易实现从一个屏幕到一个新的屏幕并且完成新的活动。 在某些情况下当前的屏幕也许需要向上一个屏幕动提供返回值--比如让用户从手机中挑选一张照片返回通讯录做为电话拨入者的头像。当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态并且压入历史堆栈中。用户可以通过回退操回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,因为Android 会把每个从桌面打开的程序保留在堆栈中。

Intent 和 Intent Filters

调用Android 专有类 Intent 进行构屏幕之间的切换。 Intent 是描述应用想要做什么。Intent 数据结构两最重要的部分是动作和动作对应的数据。典型的动作类型有:MAIN(活动的门户)、VIEW、PICK、EDIT 等。而动作对应的数据则以URI 的形式进行表示。例如:要查看某一个人的联系方式,你需要创建一个动作类型为VIEW 的intent,以及一个表示这个人的URI。与之有关系的一个类叫IntentFilter。当intent 被要求做某事的时候,intent filter 用于描述一个活动(或者BroadcastReceiver,看下面)能够操作哪些intent。一个活动如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个IntentFilter 要知道怎么去处理VIEW 动作和表示一个人的URI。 IntentFilter 需要在AndroidManifest.xml 中定义。通过解析各种intent,从一个屏幕切换到另一个屏幕是很简单的。当向前导航时,活动将会调用startActivity(myIntent)方法。然后,系统会在所有安装的应用程序定义的IntentFilter 中查找,找到最匹配myIntent 的Intent 对应的活动。新的活动接收到myIntent 的通知后,开始运行。当start 活动方法被调用将触发解析myIntent 的动作,这个机制提供了两个关键好处:

广播接收器

你可以使用BroadcastReceiver 来让你的应用对一个外部的事件做出响应。比如:当电话呼入时,数据网络可用时,或者到了晚上时。BroadcastReceivers 不能显示UI,它

只能通过 NotificationManager 来通知用户这些有趣的事情发生了。BroadcastReceivers 既可以在AndroidManifest.xml 中注册,也可以在代码中使用Context.registerReceiver()进行注册。但这些有趣的事情发生时,你的应用不

必对请求调用BroadcastReceivers,系统会在需要的时候启动你的应用,并在必要情况下触发BroadcastReceivers。各种应用还可以通过使用Context.sendBroadcast()将它们自己的intent broadcasts 广播给其它应用程序。

服务

一个服务是具有一段较长生命周期且没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个活动,让使用者可以选择歌曲并播放歌曲。 然而,音乐重放这个功能并没有对应的活动,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个活动会使用Context.startService() 来启动一个服务,从而可以在后台保持音乐的播放。同时,系统也将保持这个服务一直执行,直到这个service 运行结束。(你可以通过阅读Life Cycle of an Android Application 获取更多关于服务的介绍). 另外,我们还可以通过使用Context.bindService() 方法,连接到一个服务上(如果这个服务还没有运行将启动它)。当连接到一个服务之后,我们还可以通过服务提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。

内容提供器

应用程序能够将它们的数据保存到文件、SQLite 数据库中,甚至是任何有效的设备中当你想将你的应用数据与其它的应用共享时,内容提供其将会很有用。一个内容提供器类实现了一组标准的方法,从而能够让其它的应用保存或读取此内容提供器处理的各种数据类型。 更详细的内容提供器资料,可以参考附带文档中的 Accessing Content Providers。

设置调试环境

为了便于程序的开发,我们在java透视图下增加LogCat视图,并增加日志过滤方便开发调试。当然我们使用DDMS透视图功能会更强大。但对于目前的开发来说我们使用LogCat就够了。

设置日志过滤,过滤System.out输出

创建第一个程序

如下图创建:

我们在onCreate中输入以下代码并启动程序就能在我们新建的日志过滤器重显示如下输出。

posted @ 2011-05-12 11:37  藏积  阅读(691)  评论(1编辑  收藏  举报