萬眾矚目,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開發(一)發送短信程序