当前位置:文档之家› Android开发 第二章 Android初体验 ch02

Android开发 第二章 Android初体验 ch02

Android初体验

Google Android SDK开发范例大全

14 Android操作系统顶着Google与Open Handset Alliance的光环,让很多程序员在Android手机还没上市之前,就开始紧追着官方文档、Early SDK版本更新,这是IT业界罕见的现象,因为大家都抱持着“不想输在起跑点上”的心态。这也是手机发展的历史中,第一次有机会让所有的程序员站在同一个起跑点开始,无论是Java World论坛、或是Google官方的Developer Discussion Group都见到相当热烈的讨论。

从这一章开始,将对Android的程序架构、程序进入点、编译以及执行,进行一系列的导航,而本书规划之初,并非针对Java初学者或从未接触过程序设计的朋友所设计,故在这一章简要的overview当中,则以快速掌握开发条件、开发环境为目的,若你是第一次接触Java程序语言,或从未写过面向对象程序设计,建议你先学习Java语言,打好基础后,再回过头来进入本章。

接下来的内容分成五个部分:安装Android SDK、创建Android手机开发项目(Project)、了解Android程序的生命周期,初探可视化的开发工具,最后将应用程序部署到模拟器和Android手机上,为避免过于概念性的论述及篇幅的浪费,所有操作练习皆以步骤的方法描述,只要跟着操作即可上手,在体验完本章的内容之后,你就可以开始本书范例的学习之旅了。

在开始之前,你需要先准备以下作业环境以及程序:

必备项目自我检查(ˇ)Microsoft Windows XP/Microsoft Windows Vista操作系统

Mac OS X 10.4.8或更新的版本(硬件必须是x86的版本)

Linux

Android SDK 1.0r2以上

(本书所有范例皆以Android SDK 1.1r1为开发环境)

Java Development Kit(JDK)

v6.0以上

Eclipse开发IDE程序

(本书所有范例皆以eclipse-jee-ganymede-SR1-win32版本为编译环境)

第2章 Android 初体验

15

准备就绪之后,就可以前往Android 官方网站(https://www.doczj.com/doc/cf8350800.html,/)下载Android SDK ,也可以到(https://www.doczj.com/doc/cf8350800.html, )去下载。

▲图2-1 到Android 官方网站下载SDK

下载后的Android SDK 为压缩文件,请将它解压缩到磁盘中,例如下面的文件夹: D:\SDK\android

而Eclipse 编译IDE 环境中,需安装ADT (Android Development Tools )plug-in ,此为Android 的开发工具,启动Eclipse 后,请运行“Help —Software Updates>>Find and Install ”,并按下“Add Site ”输入ADT plug-in 网址后(如下),按下“Install ”便开始自动下载安装:

https://https://www.doczj.com/doc/cf8350800.html,/android/eclipse/

Google Android SDK 开发范例大全

16

▲图2-2 安装ADT Plug-in

下载后,安装向导会显示两项必须安装的程序:

Android Development Tools 与Android Editors 。

▲图2-3 选择安装Android 开发工具及编辑器

第2章 Android 初体验

17

虽然Android ADT 可以免费下载安装,但在使用上仍然有其局限性,跟一般应用程序许可条款的签署类似。

▲图2-4 同意使用Android 软件开发条款

安装ADT 所需的时间不长,也可以在后台运行,不会影响现有的操作系统程序。安装完毕后,需要重新启动Eclipse ,才能使用Android ADT 。

▲图2-5 可以在后台运行安装ADT ,并需要重新启动Eclipse

至此Android SDK 及ADT 已安装完毕,所有准备工作都已经就绪,随时可以开始建立Android 项目。

Google Android SDK开发范例大全

18 这一节将建立本书第一个Android项目,不过,在初次建立Android项目之前,需要设置Android SDK的路径,让Eclipse可以找到Android SDK,先执行“Window—Preferences”。

▲图2-6 运行Eclipse的Preferences设置功能

点击“Android”的树状列表,单击“Browse”按钮,选择刚才解压的Android SDK的路径,而后按下“Apply”设置让Eclipse引用的SDK文件夹。

▲图2-7 设置Android Preferences路径

第2章 Android 初体验

19

Android SDK 的引用路径设置完成之后,就可以开始建立Hello World 这个经典范例了;运行“File —New>>Project ”建立新项目。

▲图2-8 建立新的项目

新建项目向导需要指定一种应用程序类型,故展开“Android ”后,点击“Android Project ”,按下“Next ”按钮继续。

▲图2-9 选择建立项目类型为

Android Project

Google Android SDK开发范例大全

20 新建Android项目需输入项目名称(Project name)、Package name、Activity name以及Application name,最后按下“Finish”按钮,项目随即建立完成。

▲图2-10 输入项目名称及Package name建立新项目

到目前为止,新建Android项目已经完成,而且这个新建立的程序也已经可以运行,运行的方法是在“Package Explorer”窗口里,点开刚建立好的“HelloWorld”项目文件夹,并在项目名称上单击鼠标右键,在功能菜单上运行“Run As>Android Application”功能。

▲图2-11 运行“Run As—Android Application”功能

第2章 Android 初体验

21

假若此时尚未将手机与计算机联机,那么Eclpise 将打开默认的Android 模拟器(Emulator ),运行画面就如同真的手机开机一样,随着计算机硬件环境的不同,运行模拟器也会有不同的性能表现,开机之后,随即打开刚建立好的Hello World 程序。

▲图2-12 没写一行程序的Hello World

要退出被启动的“Hello World ”程序,可以按下手机模拟器上的退格键(Backspace )。

▲图2-13 按下退格键离开程序,回到手机的桌面

虽然半行代码都没有写,但向导却帮忙写好了程序进入点、布局配置、字符串常数、应用程序访问权限等,除了可作为程序模板之外,也是Android 手机程序的最佳学习范例。

Google Android SDK开发范例大全

22 让我们回过头来看看刚才Android项目建立向导帮忙做了哪些工作,以此来了解Android应用程序的生命周期及其文件组成方式;首先,展开“Package Explorer”窗口里的“HelloWorld”项目名称,可以看见如下数据结构的文件:

+HelloWorld

+-src

+https://www.doczj.com/doc/cf8350800.html,

+-HelloWorld.java

+-R.java

+-Android Library

+-android.jar - D:\SDK\android

+-assets

+-res

+-drawable

+-icon.png

+-layout

+-main.xml

+-values

+-strings.xml

+-AndroidManifest.xml

在展开的文件夹层中,“src”、“Android Library”、“assets”、“res”与“AndroidManifest.xml”同属一层,放置在“\src”里的为主程序、程序类(class);放置在“\res”里的为资源文件(Resource Files),如程序ICON图标、布局文件(\layout)与常数(\values)。

以此Hello World程序为例,主程序为“HelloWorld.java”,其内容与一般Java程序格式相类似:

package https://www.doczj.com/doc/cf8350800.html,;

import android.app.Activity;

import android.os.Bundle;

public class HelloWorld extends Activity

{

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/cf8350800.html,yout.main);

}

}

第2章 Android初体验

主程序里可看见HelloWorld类继承自Activity类,在类中重写了onCreate() 方法,在方法内

以setContentView() 来设置这个Acvitity要显示的布局(https://www.doczj.com/doc/cf8350800.html,yout.main),使用布局配置“\layout\main.xml”,布局文件是以XML格式编写的,内容如下:

xmlns:android="https://www.doczj.com/doc/cf8350800.html,/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

布局配置中设置了一个TextView TAG,用以配置文本标签Widget,其内部设置的android:text

属性,则是要显示的文字内容,引用“@string”里的hello字符串常数。

查看“values/strings.xml”字符串常数设置如下:

Hello World, HelloWorld

HelloWorld

其中“hello”字符串变量的内容为“Hello World, HelloWorld”,这即是刚才看见的Hello World

程序显示的文字内容了。

Android应用程序有以下三种类型:

z前端Activity(Foreground Activities)。

z后台服务(Background Services)。

z间隔执行Activity(Intermittent Activities)。

前端Activity就如同这个Hello World一样,运行在手机前端程序中;后台服务可能是看不见

的系统服务(System Service)、系统Broadcast(广播信息)与Receiver(广播信息)接收器);间隔执行Activity则类似如进程(Threading)、Notification Manager等等。

23

Google Android SDK开发范例大全

24 每一个项目都有一个“AndroidManifest.xml”设置文件,里头包含这个Android应用程序具有哪些Activity、Service或者Receiver,先来看看Hello World制作好的“AndroidManifest.xml”设置文件的内容描述:

xmlns:android="https://www.doczj.com/doc/cf8350800.html,/apk/res/android"

package="https://www.doczj.com/doc/cf8350800.html,"

android:versionCode="1"

android:versionName="1.0.0">

android:icon="@drawable/icon"

android:label="@string/app_name">

android:name=".HelloWorld"

android:label="@string/app_name">

在manifest文件中有一个名为HelloWorld的Activity,设置其intent-filter的category android:name为"https://www.doczj.com/doc/cf8350800.html,UNCHER",写在intent-filter里是指定此Activity为默认运行的主要Activity,除了在manifest文件中手动设置之外,也可在Eclipse 右击项目名称,运行“Run As—Run Configurations”,设置Launch Action:

▲图2-14 设置项目要执行的Action方式或

Activity

第2章 Android 初体验

25

Activity 类的应用程序有其默认运行的方式,为了确保应用程序运行的优先级,理解Activity 在手机运行时的生命周期,及其可视性(Visible )周期。

▲图2-15 Activity 自onStop 之后,程序即可被关闭

以Hello World 程序里继承自Activitry 类开始,一旦程序被执行,即会照以上流程顺序进行,若需要在Activity 程序里编写程序,默认常见的进入点为重写onCreate (Activity )或 onStart (Service ),重写的方式可通过Eclipse 来选择,方法为将鼠标光标停在继承自Activity 的空白处,单击鼠标右键展开菜单,点开执行“Source —Override/Implement Methods ”功能。

▲图2-16 执行“Source —Override/Implement Methods ”功能

在重写于实现方法的对话框中,点开“Activity ”树状列表,在其中找到了onCreate(Bundle)方法,勾选前方的选择项(CheckBox ),再按下“OK ”按钮即可。

Google Android SDK 开发范例大全

26

▲图2-17 选择要重写的方法,向导会自动在主程序中描述重写内容

最后,比较值得一提的是onResume() 与onPause(),这两个方法为Activity 在onCreate 之后运行过程中的生命周期,当程序失去前端焦点、或者被关闭,就会触发Activity 的onPause() 状态;当应用程序被再次唤醒,则会回到onResume() 状态,故在编写与User 互动的程序过程中,需注意User 暂时离开Activity (或前往不同的Activity 、不同的Service )前,需要处理的工作都会摆在onPause() 当中执行。以一个通过网络FTP 下载mp3的Activity 为例,暂停下载工作可以写在onPause 里,需要接续前一次的下载等处理,则由onResume 负责。

Android 手机有着华丽的机身、流畅的执行速度,唯一欠缺的就是“具有视觉美感的UI 设计员”,但自Android SDK rc20a 一路发展到 1.0_r2,Open Handset Alliance 提供的ADT (Android Development Tools ),终于有了预览界面的功能,只要点开项目的“res —layout ”,双击main.xml 运行“Android Layout Editor ”,或在其上单击鼠标右键展开菜单单,执行“Open With —Android Layout Editor ”。

第2章 Android 初体验

27

▲图2-18 单击XML 布局配置文件,选择以Android Layout Editor 编辑

Android Editor 的功能虽然阳春,但至少还算齐备,具有文字模式与UI 配置模式可供切换,如下图的“Layout ”与“main.xml ”页签切换所示。

▲图2-19 Android Layout Editor 具有文字模式与UI 配置模式可供切换编辑

目前的ADT 版本,虽然提供了预览接口功能,但没有提供类似Microsoft Visual Studio 的拖拉界面组件开发工具,所以布局的配置虽然直观,但还是不够自然,所幸,在Google 还未完整推出GUI 的拖拉工具之前,已有网友以Java 写出了好用的可视化GUI 布局拖拉工具程序:DroidDraw 。

DroidDraw 目前是一个公开的Google Code ,除了可以在线免费下载(http://code.google .com/p/droiddraw/)使用到计算机端执行之外,也提供在线直接使用的版本(

http://www

Google Android SDK开发范例大全

28 https://www.doczj.com/doc/cf8350800.html,/);DroidDraw同时还提供了源代码(Source Code),可供程序员自行参考或修改。

▲图2-20 DroidDraw提供了可视化拖拉组件的方式设计布局

期待未来Google能将拖拉布局的功能纳入Android Editor当中,如此一来更能整合Android SDK以及开发环境的功能,且让我们拭目以待吧!

要部署程序在模拟器上运行,在先前Hello World的程序已经看过了,在项目名称上单击右键执行Android应用程序即可,但事实上,要将Android程序,部署在手机环境中进行测试,方法也是相同的,同样调用“Run As—Android Application”的方式执行,不同的是,需要事先安装好Android的USB Driver,并且通过USB联机至手机,在与手机联机的状况下,就可以让Eclipse在运行Android程序时,直接将程序部署于实机环境中执行。

Android USB驱动程序是随着Android SDK所提供的,每一个版本的SDK都可能有不同版本的USB Driver Version,其存放在以下Android SDK解开后的参考位置,如:

D:\SDK\android\usb_driver\

安装的步骤是先将手机以USB与计算机连接,操作系统会找到名为Android Phone的设备,但是却在装置管理员当中无法正确被识别,如下所示。

第2章 Android 初体验

29

▲图2-21 操作系统找到名为Android Phone 的装置,但无法正确被识别

接着画面会跳出添加硬件向导,选择“从列表或指定位置安装(高级)”来自行挑选驱动程序位置。

▲图2-22 选择“从列表或指定位置安装”自己安装驱动程序

Google Android SDK开发范例大全

30 在“搜索和安装选项”的画面中,选择“不要搜索,我要自己选择要安装的驱动程序”选项,选择“显示所有设备”后,按下“下一步”。

▲图2-23 选择不要搜索系统数据,改以自行挑选硬件的方式

利用浏览按钮选择复制源为Android USB Driver程序路径:

第2章 Android 初体验

31

▲图2-24 选择Android SDK 里所附的USB Driver

选择驱动程序后,于显示兼容硬件列表中选择“HTC Dream Composite ADB Interface ”,程序将Android 手机的USB ADB Interface 安装完成。

▲图2-25 安装Android USB ADB Interface 完成

Google Android SDK开发范例大全

32 设备管理器会自动新增一项ADB Interface的项目,表示已经顺利安装了Android手机与计算机的联机。

▲图2-26 顺利安装了Android手机与计算机的联机

安装完ADB Interface之后,暂时还无法通过Eclipse将Android项目程序部署至手机上,必须先将手机上的USB调试(Debug)模式打开,在手机上执行“应用程序设置—开发>>USB 调试”。

▲图2-27 将手机的USB调式模式打开

相关主题
文本预览
相关文档 最新文档