萬眾矚目,Android終于開課了。本課程有黎活明老師主講,講課細(xì)致而流暢。想做細(xì)他的課程總結(jié),那我沒時(shí)間和精力了。也是總結(jié)個(gè)框框,雖然是個(gè)框框,但如果看著我的日志跟著我做,也能做起Android開發(fā)。
今日的重點(diǎn)內(nèi)容是,3G簡介、Android簡介、Android的開發(fā)環(huán)境搭建、HelloWorld程序、Android程序運(yùn)行過程、撥打電話小程序、發(fā)送短信小程序。我們跳過簡介部分,直接從搭建環(huán)境開始。
一、Android環(huán)境搭建
1.所需開發(fā)環(huán)境:
JDK 5 或 JDK 6
Eclipse 3.5 (galileo)
2.下載ADT 的Eclipse 插件
http://dl.google.com/android/ADT-0.9.5.zip
3.安裝 Eclipse 插件 (ADT)
啟動(dòng) Eclipse,選擇 Help > Install New Software,在出現(xiàn)的對(duì)話框里,點(diǎn)擊Add按鈕,在對(duì)話框的name一欄輸入“ADT”,然后點(diǎn)擊Archive...,瀏覽和選擇已經(jīng)下載的ADT插件壓縮文件。點(diǎn)擊 OK.。返回可用軟件的視圖,你會(huì)看到這個(gè)插件,然后選擇Developer Tools (會(huì)選中下面的“Android Developer Tools”和 “Android Editors“),點(diǎn)擊 Next,最后重啟 Eclipse。
4.下載Android SDK:
http://dl.google.com/android/android-sdk_r04-windows.zip
下載完SDK后,把.zip文件解壓到你電腦上合適位置。啟動(dòng) Eclipse,選擇window->preferences,在打開的視圖左邊點(diǎn)擊android,在右邊的SDK Location中選擇Android SDK所在位置。
二、HelloWorld程序
1.創(chuàng)建一個(gè)Android工程
Project name:HelloWorld
BuildTarget:Android2.1
Application name:第一個(gè)Android程序
Package name:com.changcheng.Activity
Create Activity:HelloWorld
Min SDK Version:7
2.運(yùn)行Android模擬器
安裝ADT插件后,在工具欄中有一個(gè)手機(jī)圖標(biāo)(Opens the Android SDK and AVD Manager)。選擇Virtual Devices,點(diǎn)擊New按鈕添加一個(gè)模擬器。Name隨便(只要自己認(rèn)得即可),Target選擇Android2.1,SD Card 300MiB。其他的默認(rèn),單擊Create AVD確認(rèn)添加。
選中我們添加的模擬器,單擊右邊的Start...按鈕啟動(dòng)我們的模擬器。
模擬器啟動(dòng)完成后,在我們的工程上右鍵,Run As Android Application。
OK,此時(shí)可以看到我們的程序成功部署到Android的模擬器中!我們部署到Android中的程序可以在Android模擬器的“抽屜”中找到。
3.Android工程結(jié)構(gòu)
src:源代碼,我們的代碼。
gen:Android開發(fā)工具所生成的文件,我們不能編輯這個(gè)文件。
R.java,標(biāo)識(shí)程序中使用的各種資源。沒有被此文件標(biāo)識(shí)的資源,不會(huì)被打包到APK文件中。
assets:應(yīng)用系統(tǒng)需要使用到的文件,比如mp3、視頻...。這些文件會(huì)被原樣打包到APK中。
res:資源目錄,向此目錄添加資源時(shí),會(huì)被R.java自動(dòng)記錄。
drawabel-?dpi:圖標(biāo)文件(*.png、*.jpg)
layout:界面布局文件(main.xml)與WEB應(yīng)用中的HTML類同
values:軟件上所需要顯示的各種文字。可以存放多個(gè)*.xml文件,還可以存放不同類型的數(shù)據(jù)。比如arrays.xml、colors.xml、dimens.xml、styles.xml...。
AndroidManifest.xml:項(xiàng)目的總配置文件,記錄應(yīng)用中所使用的各種組件。如果應(yīng)用中使用到手機(jī)中的功能,需要在此聲明使用權(quán)限。
default.properties:記錄項(xiàng)目中所需要的環(huán)境信息,比如Android的版本等。
三、Android程序運(yùn)行過程
程序的運(yùn)行由主配置文件開始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的靜態(tài)內(nèi)部類
icon是drawable的常量,指定圖片資源的ID。
-->
<application android:icon="@drawable/icon" android:label="@string/app_name">
<!--
.HelloWorld指向package="com.changcheng.android"下面的HelloWorld類。
我們可以在此添加子包.sub.xxxClass,但不能添加上級(jí)包。
-->
<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靜態(tài)內(nèi)部類的main常量。它指向mail.xml
setContentView(R.layout.main);
}
}
|
然后再我們?cè)倏纯?/font>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" ,它的父窗口是屏幕,所以寬度為整個(gè)屏幕。
android:layout_height="wrap_content" ,它的高度為它所包含的內(nèi)容高度。如果內(nèi)容中有一行,就是一行的高度。
android:text="@string/hello",它包含(顯示)的文本內(nèi)容,指向R.java中string靜態(tài)內(nèi)部類的常量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>
|
現(xiàn)在讓我們看看掌管資源的主文件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全部是自動(dòng)生成的,我們不可以手動(dòng)編輯。當(dāng)我們添加一個(gè)圖片時(shí),ADT插件,會(huì)以圖片的名稱為常量的名稱,然后自動(dòng)生成對(duì)應(yīng)的資源ID。當(dāng)我們向strings.xml中添加一個(gè)字符串時(shí),ADT插件會(huì)以符串的名稱為常量的名稱,然后自動(dòng)生成對(duì)應(yīng)的資源ID。
R.java文件不需要我們手動(dòng)編輯,我們只需要在需要使用到資源的地方引用這個(gè)文件里標(biāo)識(shí)的資源即可!
四、撥打電話程序
請(qǐng)見:傳智播客——Android開發(fā)(一)撥打電話程序
五、發(fā)送短信程序
請(qǐng)見:傳智播客——Android開發(fā)(一)發(fā)送短信程序