环境搭建
在开始之前,你需要先准备以下环境以及程序
必备 |
Microsoft Windows XP/Microsoft Windows Vista 操作系统 |
Android SDK 1.1r1 |
Java Development Kit ( JDK ) v6.0 以上 |
eclipse-jee-ganymede-SR1-win32 版本为编译环境 |
好,开始下载吧 !
下载完成后,我们进行 android 开发环境的搭建。
1. 在 Eclipse 编译 IDE 环境中,需安装 ADT ( Android Development Tools ) plug-in ,此为 Android 的开发工具,启动 Eclipse 后,请运行“ Help — Software Updates>>Find and Install ”,并按下“ Add Site ”输入 ADT plug-in 网址后(如下),按下“ Install ”便开始自动下载安装:
http://dl-ssl.google.com/android/eclipse/
下载后,安装向导会显示两项必须安装的程序: Android Development Tools 与 Android Editors 。
安装 ADT 所需的时间不长,也可以在后台运行,不会影响现有的操作系统程序。安装完毕后,需要重新启动 Eclipse ,才能使用 Android ADT 。
至此 Android SDK 及 ADT 已安装完毕,所有准备工作都已经就绪,随时可以开始建立 Android 项目。
2. 初次建立 Android 项目之前,需要设置 Android SDK 的路径,让 Eclipse 可以找到 Android SDK ,先执行“ Window — Preferences ”。
点击“ Android ”的树状列表,单击“ Browse ”按钮,选择刚才解压的 Android SDK 的路径,而后按下“ Apply ”设置让 Eclipse 引用的 SDK 文件夹。
l
开发经典案例 HelloWorld
1. 开发步骤
Android SDK 的引用路径设置完成之后,就可以开始建立 Hello World 这个经典范例了;运行“ File — New>>Project ”建立新项目。
新建项目向导需要指定一种应用程序类型,故展开“ Android ”后,点击“ Android Project ”,按下“ Next ”按钮继续。
新建 Android 项目需输入项目名称( Project name )、 Package name 、 Activity name 以及 Application name ,最后按下“ Finish ”按钮,项目随即建立完成。
到目前为止,新建 Android 项目已经完成,而且这个新建立的程序也已经可以运行,运行的方法是在“ Package Explorer ”窗口里,点开刚建立好的“ HelloWorld ”项目文件夹,并在项目名称上单击鼠标右键,在功能菜单上运行“ Run As > Android Application ”功能。
假若此时尚未将手机与计算机联机,那么 Eclpise 将打开默认的 Android 模拟器( Emulator ),运行画面就如同真的手机开机一样,随着计算机硬件环境的不同,运行模拟器也会有不同的性能表现,开机之后,随即打开刚建立好的 Hello World 程序。
要退出被启动的“ Hello World ”程序,可以按下手机模拟器上的退格键( Backspace )。
2. 代码认识
虽然半行代码都没有写,但向导却帮忙写好了程序进入点、布局配置、字符串常数、应用程序访问权限等,除了可作为程序模板之外,也是 Android 手机程序的最佳学习范例。
让我们回过头来看看刚才 Android 项目建立向导帮忙做了哪些工作,以此来了解 Android 应用程序的生命周期及其文件组成方式;首先,展开“ Package Explorer ”窗口里的“ HelloWorld ”项目名称,可以看见如下数据结构的文件:
+HelloWorld
+-src
+-helloworld.irdc.eracom.com.cn
+-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 helloworld.irdc.eracom.com.cn;
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(R.layout.main);
}
}
主程序里可看见 HelloWorld 类继承自 Activity 类,在类中重写了 onCreate() 方法,在方法内以 setContentView() 来设置这个 Acvitity 要显示的布局( R.layout.main ),使用布局配置“ \layout\main.xml ”,布局文件是以 XML 格式编写的,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
布局配置中设置了一个 TextView TAG ,用以配置文本标签 Widget ,其内部设置的 android:text 属性,则是要显示的文字内容,引用“ @string ”里的 hello 字符串常数。
查看“ values/strings.xml ”字符串常数设置如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, HelloWorld</string>
<string name="app_name">HelloWorld</string>
</resources>
其中“ hello ”字符串变量的内容为“ Hello World, HelloWorld ”,这即是刚才看见的 Hello World 程序显示的文字内容了。
Android 应用程序有以下三种类型:
l 前端 Activity ( Foreground Activities )。
l 后台服务( Background Services )。
l 间隔执行 Activity ( Intermittent Activities )。
前端 Activity 就如同这个 Hello World 一样,运行在手机前端程序中;后台服务可能是看不见的系统服务( System Service )、系统 Broadcast (广播信息)与 Receiver (广播信息)接收器);间隔执行 Activity 则类似如进程( Threading )、 Notification Manager 等等。
每一个项目都有一个“ AndroidManifest.xml ”设置文件,里头包含这个 Android 应用程序具有哪些 Activity 、 Service 或者 Receiver ,先来看看 Hello World 制作好的“ AndroidManifest.xml ”设置文件的内容描述:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="helloworld.irdc.eracom.com.tw"
android:versionCode="1"
android:versionName="1.0.0">
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<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>
</application>
</manifest>
在 manifest 文件中有一个名为 HelloWorld 的 Activity ,设置其 intent-filter 的 category android:name 为 "android.intent.category.LAUNCHER" ,写在 intent-filter 里是指定此
Activity 为默认运行的主要 Activity ,除了在 manifest 文件中手动设置之外,也可在 Eclipse 右击项目名称,运行“ Run As — Run Configurations ”,设置 Launch Action 。
Activity 类的应用程序有其默认运行的方式,为了确保应用程序运行的优先级,理解 Activity 在手机运行时的生命周期,及其可视性( Visible )周期。
l ▲ Activity 自 onStop 之后,程序即可被关闭
以 Hello World 程序里继承自 Activitry 类开始,一旦程序被执行,即会照以上流程顺序进行,若需要在 Activity 程序里编写程序,默认常见的进入点为重写 onCreate ( Activity )或 onStart ( Service ),重写的方式可通过 Eclipse 来选择,方法为将鼠标光标停在继承自 Activity 的空白处,单击鼠标右键展开菜单,点开执行“ Source — Override/Implement Methods ”功能。
在重写于实现方法的对话框中,点开“ Activity ”树状列表,在其中找到了 onCreate(Bundle) 方法,勾选前方的选择项( CheckBox ),再按下“ OK ”按钮即可。