Android開發速成:第一個應用Hello World

轉載地址:http://mobile.51cto.com/aprogram-425477.htm

在安裝後Android開發環境和創建好Android模擬器之後,就可以開始寫第一個Android應用“Hello,World”。後面的例子均採用Eclipse IDE。

安裝ADT plugin之後,創建的新項目種類就會增加一個Android Project類型:

選擇Android Project項目類型,出現下面對話框:

Project Name : Hello World

Build Target: 這裏選擇 Android 1.6 ,如果你的Build Target 列表爲空,則表示你忘記設置Android SDK安裝目錄了。可以通過Windows -> Preferences -> Android 來設置SDK路徑。

Application Name: Hello World

Package name: com.pstreets.android.example, 如果您開發過Java或是.Net Framework 應用,包名稱並不陌生。

Create Activity: HelloWorld。 Activity 是Android平臺中特有的一個新概念。以Java ME或是Windows Mobile CE應用作參考,它類似於Java ME和Windows Mobile中 UI類的Form類。

Min SDK Version: 可以爲空。 Android平臺的 版本比較多,從1.5到目前的3.0。Android平臺支持向下兼容。Min SDK Version指出了您開發應用支持的最第版本。4對應於Android 1.5。

點擊“Finish”則在Eclipse 的Workspace中創建了“Hello World”項目:

ADT Plug自動創建了幾個目錄:

src  應用源碼目錄

gen  Android應用自動生成的代碼,主要是根據Android資源目錄res下的資源來生成的,這樣可以根據資源ID來訪問應用中的資源。一般不建議手工改動,即使改動,下次編譯時也會被重新覆蓋。

Android 1.6 表示當前選擇的Android版本是Android1.6,你可以使用Android1.6中提供的API。可以通過項目的屬性來修改Android版本。

assets  靜態文件目錄。Hello world 中爲空。

res 爲應用中的資源目錄,res中含有多個子目錄,爲多種資源。如果你曾經使用Silverlight, Polish Java ME或是 WPF等使用XML來描述UI的應用,則您會覺得res 目錄下的各種資源文件似曾相識。Android也是採用XML來描述UI的。

AndroidManifest.xml 應用程序描述文件,類同於Java ME的 JAD文件。它定義了應用的構成,組件,權限等信息。

default.properties 和proguard.cfg 一般不需要改動。proguard.cfg主要用來擾碼(混淆器)來保護應用防止反編譯。開發過Java 或是.Net 應用的應該對這比較熟悉。

這樣就有了第一個應用“Hello World”,可以直接運行。Run As -> Android Application ,將啓動模擬器,如果你有Android設備,則也可以選擇使用Android設備運行。

到目前爲止我們還沒有寫一行代碼。還不能說了解開發Android應用的基本概念。所以需要具體瞭解一下這個應用的幾個重要的組成部分:

主Activity ,打開類 com.pstreets.android.example.HelloWorld

  1. package com.pstreets.android.example;     
  2.     import android.app.Activity; 
  3.     import android.os.Bundle;     
  4.     public class HelloWorld extends Activity { 
  5.         /** Called when the activity is first created. */ 
  6.         @Override 
  7.         public void onCreate(Bundle savedInstanceState) { 
  8.             super.onCreate(savedInstanceState); 
  9.             setContentView(R.layout.main); 
  10.         } 
  11.     } 

前面提到Activity是Android中類似Windows Mobile 中的Form類的基本UI類。如果您開發過Java ME應用,Activity更像MIDlet,當Android應用可以有多個Activity,而每個Java ME應用中只能有一個MIDlet派生類。如果熟悉MVC ,MVP模型 ,Activity類似於 MVC或是 MVP模型中的 Controller或是Presenter。Activity 有多個生命週期事件可以實現,onCreate是其中一個,它類似於Java ME MIDlet的 startApp 或是 From 的 From_Load事件。Activity將在後面在詳細介紹。 setContentView(R.layout.main); 設置Activity主用戶UI。

Layout資源文件  res->layout->main.xml

  1. <?xml version=”1.0″ encoding=”utf-8″?> 
  2. <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android” 
  3.     android:orientation=”vertical” 
  4.     android:layout_width=”fill_parent” 
  5.     android:layout_height=”fill_parent” 
  6.     > 
  7. <TextView  
  8.     android:layout_width=”fill_parent” 
  9.     android:layout_height=”wrap_content” 
  10.     android:text=”@string/hello” 
  11.     /> 
  12. </LinearLayout> 

Android 是通過XML來描述 UI 的,UI 一般通過res 下Layout資源來描述 main.xml 中定義了HelloWorld主界面。可以看到LinearLayout和TextView兩個元素。這表示主界面採用LinearLayout佈局(類 似Swing 中Layout),下面是一個TextView(文本框),文本框顯示的內容是@string/hello, @string/hello爲一個string 資源,@表示資源引用。string資源定義在res->values->strings.xml 中,其值爲<string name=”hello”>Hello World, HelloWorld!</string>。

View 在Android中表示一個可視化組件,剛接觸Android開發時,可能會有些困惑,因爲在其它平臺在View一般指用戶界面(Windows),如果 拿Java ME或是Windows Mobile做類比的話,Android中的View相當於Windows Mobile中的Control 或是Component, ViewGroup相當於 Container或是Swing中的Layout。  R.layout.main 定義在 gen->R.Java 中,爲自動爲資源生成的資源ID。

AndroidManifest.xml  應用程序清單

  1. <?xml version=”1.0″ encoding=”utf-8″?> 
  2. <manifest xmlns:android=”http://schemas.android.com/apk/res/android” 
  3.       package=”com.pstreets.android.example” 
  4.       android:versionCode=”1″ 
  5.       android:versionName=”1.0″> 
  6.     <application android:icon=”@drawable/icon” android:label=”@string/app_name”> 
  7.         <activity android:name=”.HelloWorld” 
  8.                   android:label=”@string/app_name”> 
  9.             <intent-filter> 
  10.                 <action android:name=”android.intent.action.MAIN” /> 
  11.                 <category android:name=”android.intent.category.LAUNCHER” /> 
  12.             </intent-filter> 
  13.         </activity> 
  14.  
  15.     </application> 
  16.     <uses-sdk android:minSdkVersion=”4″ /> 
  17.  
  18. </manifest> 

和Java ME的JAD文件類似,AndroidManifest.xml定義了Android應用中所有的Activity ,應用的圖標,權限等屬性。

  1. <intent-filter> 
  2.  <action android:name=”android.intent.action.MAIN” /> 
  3.  <category android:name=”android.intent.category.LAUNCHER” /> 

</intent-filter> 表示這個Activity 是可以通過Android應用菜單來啓動,具體含義在介紹Activity時再說明。

此外,Android 除了使用XML來描述UI外,如果你不怕麻煩的話,也可以通過代碼來創建UI,方法類似Swing UI。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章