万众瞩目,Android终于开课了。本课程有黎活明老师主讲,讲课细致而流畅。想做细他的课程总结,那我没时间和精力了。也是总结个框框,虽然是个框框,但如果看着我的日志跟着我做,也能做起Android开发。
今日的重点内容是,3G简介、Android简介、Android的开发环境搭建、HelloWorld程序、Android程序运行过程、拨打电话小程序、发送短信小程序。我们跳过简介部分,直接从搭建环境开始。
一、Android环境搭建
1.所需开发环境:
JDK 5 或 JDK 6
Eclipse 3.5 (galileo)
2.下载ADT 的Eclipse 插件
http://dl.google.com/android/ADT-0.9.5.zip
3.安装 Eclipse 插件 (ADT)
启动 Eclipse,选择 Help > Install New Software,在出现的对话框里,点击Add按钮,在对话框的name一栏输入“ADT”,然后点击Archive...,浏览和选择已经下载的ADT插件压缩文件。点击 OK.。返回可用软件的视图,你会看到这个插件,然后选择Developer Tools (会选中下面的“Android Developer Tools”和 “Android Editors“),点击 Next,最后重启 Eclipse。
4.下载Android SDK:
http://dl.google.com/android/android-sdk_r04-windows.zip
下载完SDK后,把.zip文件解压到你电脑上合适位置。启动 Eclipse,选择window->preferences,在打开的视图左边点击android,在右边的SDK Location中选择Android SDK所在位置。
二、HelloWorld程序
1.创建一个Android工程
Project name:HelloWorld
BuildTarget:Android2.1
Application name:第一个Android程序
Package name:com.changcheng.Activity
Create Activity:HelloWorld
Min SDK Version:7
2.运行Android模拟器
安装ADT插件后,在工具栏中有一个手机图标(Opens the Android SDK and AVD Manager)。选择Virtual Devices,点击New按钮添加一个模拟器。Name随便(只要自己认得即可),Target选择Android2.1,SD Card 300MiB。其他的默认,单击Create AVD确认添加。
选中我们添加的模拟器,单击右边的Start...按钮启动我们的模拟器。
模拟器启动完成后,在我们的工程上右键,Run As Android Application。
OK,此时可以看到我们的程序成功部署到Android的模拟器中!我们部署到Android中的程序可以在Android模拟器的“抽屉”中找到。
3.Android工程结构
src:源代码,我们的代码。
gen:Android开发工具所生成的文件,我们不能编辑这个文件。
R.java,标识程序中使用的各种资源。没有被此文件标识的资源,不会被打包到APK文件中。
assets:应用系统需要使用到的文件,比如mp3、视频...。这些文件会被原样打包到APK中。
res:资源目录,向此目录添加资源时,会被R.java自动记录。
drawabel-?dpi:图标文件(*.png、*.jpg)
layout:界面布局文件(main.xml)与WEB应用中的HTML类同
values:软件上所需要显示的各种文字。可以存放多个*.xml文件,还可以存放不同类型的数据。比如arrays.xml、colors.xml、dimens.xml、styles.xml...。
AndroidManifest.xml:项目的总配置文件,记录应用中所使用的各种组件。如果应用中使用到手机中的功能,需要在此声明使用权限。
default.properties:记录项目中所需要的环境信息,比如Android的版本等。
三、Android程序运行过程
程序的运行由主配置文件开始AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.changcheng.android"
android:versionCode="1"
android:versionName="1.0">
<!--
@drawable/icon:
@代表R.java
drawable是R.java的静态内部类
icon是drawable的常量,指定图片资源的ID。
-->
<application android:icon="@drawable/icon" android:label="@string/app_name">
<!--
.HelloWorld指向package="com.changcheng.android"下面的HelloWorld类。
我们可以在此添加子包.sub.xxxClass,但不能添加上级包。
-->
<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>
<!-- 本程序使用AndoridSDK的最低版本 -->
<uses-sdk android:minSdkVersion="7" />
</manifest>
|
接下来从HelloWorld类开始:
package com.changcheng.android;
import android.app.Activity;
import android.os.Bundle;
/**
* 我们的HelloWorld类,继承自Activity类。
*
*/
public class HelloWorld extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
// 在此方法中完成界面的绘制
super.onCreate(savedInstanceState);
// 显示R.java文件中的layout静态内部类的main常量。它指向mail.xml
setContentView(R.layout.main);
}
}
|
然后再我们再看看mail.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"
>
<!--
文本视图控件
android:layout_width="fill_parent" ,它的父窗口是屏幕,所以宽度为整个屏幕。
android:layout_height="wrap_content" ,它的高度为它所包含的内容高度。如果内容中有一行,就是一行的高度。
android:text="@string/hello",它包含(显示)的文本内容,指向R.java中string静态内部类的常量hello所指向的文本资源ID,文本资源文件是strings.xml。
-->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
|
|
再看看Strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">HelloWorld,Hello World!</string>
</resources>
|
现在让我们看看掌管资源的主文件R.java:
package com.changcheng.android;
public final class R {
public static final class attr {
}
// 图片资源
public static final class drawable {
public static final int icon=0x7f020000;
}
// 界面布局资源
public static final class layout {
public static final int main=0x7f030000;
}
// 字符串资源
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
|
R.java文件中的所有资源ID全部是自动生成的,我们不可以手动编辑。当我们添加一个图片时,ADT插件,会以图片的名称为常量的名称,然后自动生成对应的资源ID。当我们向strings.xml中添加一个字符串时,ADT插件会以符串的名称为常量的名称,然后自动生成对应的资源ID。
R.java文件不需要我们手动编辑,我们只需要在需要使用到资源的地方引用这个文件里标识的资源即可!
四、拨打电话程序
请见:传智播客——Android开发(一)拨打电话程序
五、发送短信程序
请见:传智播客——Android开发(一)发送短信程序