<menuitem id="jdrvb"><strike id="jdrvb"></strike></menuitem>
<cite id="jdrvb"></cite>
<cite id="jdrvb"></cite>
<var id="jdrvb"></var>
<cite id="jdrvb"></cite>
<var id="jdrvb"><video id="jdrvb"><menuitem id="jdrvb"></menuitem></video></var><var id="jdrvb"></var>
<cite id="jdrvb"></cite>
<var id="jdrvb"><video id="jdrvb"></video></var>
<cite id="jdrvb"></cite>
<ins id="jdrvb"><span id="jdrvb"><menuitem id="jdrvb"></menuitem></span></ins>
您現在的位置: 弘智首頁 > Android > android資料下載 >

用 Eclipse 開發 Android 應用程序(三)

時間:2012-10-29 12:26 來源:弘智培訓

main.xml

這個示例應用程序包含一個活動和一個視圖。應用程序包含一個名為 main.xml 的文件,它代表活動的主 UI 的視覺方面。注意,在 main.xml 中沒有指定在哪里使用這個布局。這意味著,如果需要的話,可以在多個活動中使用它。清單 5 給出布局文件的內容。


清單 5. 布局文件

                    
<?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="Hello World, SaySomething"
    />
</LinearLayout>

 

 

這是最簡單的布局,其中只有一個垂直的線性布局,這意味著所有元素排成一列。這里有一個 TextView 元素,它與其他開發環境中的標簽類似。TextView 代表不可編輯的靜態文本。

注意,每個視圖元素(比如這個示例中的 LinearLayoutTextView)都有屬于 Android 名稱空間的屬性。一些屬性是所有視圖元素都有的,比如 android:layout_widthandroid:layout_height。這些屬性可以采用的值是:

fill_parent
使視圖元素占滿可用的空間。也可以認為這就是 “拉伸”。
wrap_content
這個值讓 Android 把元素一個接一個地排列,不進行拉伸。

在構建期間,對所有資源進行編譯。編譯過程的輸出之一是 R.java 文件,這個文件向應用程序的其余部分提供資源。下面討論 R.java 文件。

R.java

R.java 文件是在構建時自動創建的,所以不要手工修改它,因為所有修改都會丟失。清單 6 給出這個示例應用程序的 R.java 文件。


清單 6. R.java 文件

                    
/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.msi.ibmtutorial;

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=0x7f040000;
    }
}

 

 

R 類包含一些匿名子類,每個子類包含前面描述的各種資源的標識符。注意,這些類都是靜態的。

請注意 R.layout.main 代表的元素。這個標識符代表由 main.xml 定義的布局。在活動的 onCreate 方法中使用過這個值:setContentView(R.layout.main);。這就是在運行時把特定的活動(在這個示例中是 SayAnything)和特定的布局(主布局)聯系在一起的方法。

構建應用程序

在默認情況下,每次保存文件時,都將對它們進行編譯。


圖 5. 錯誤面板
錯誤面板

 

我們在源代碼中引入了一個錯誤,即在 setContentView 之間加了一個空格。在保存這個文件時,它被編譯并在屏幕底部的 Problems 面板中顯示錯誤。在源代碼中糾正這個錯誤之后,應用程序就能夠成功編譯,并從問題列表中刪除錯誤。

AndroidManifest.xml

AndroidManifest.xml 文件是 Android 應用程序的部署描述符。這個文件列出應用程序中包含的所有活動、服務、內容提供器和接收器,以及應用程序支持的 IntentFilter。下面是這個示例應用程序的完整的 AndroidManifest.xml 文件。


清單 7. AndroidManifest.xml 文件

                    
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.msi.ibmtutorial">
    <application android:icon="@drawable/icon">
        <activity class=".SaySomething" android:label="@string/app_name">
            <intent-filter>
                <action android:value="android.intent.action.MAIN" />
                <category android:value="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

 

 

請注意以下情況:

  • 這里指定了源文件中的包名。這里采用與 Java 源文件和導入語句相似的模式。<manifest> 標記的實際作用是 “導入” 這個包中的類。在這個文件中,所有非完全限定的類都屬于 package 屬性指定的包。
  • <application> 標記的一個屬性引用了應用程序的一個資源。請注意 drawable 標識符前面的 @ 符號。這里的意思是,在應用程序資源的 drawable 文件夾中尋找名為 “icon” 的資源。
  • <activity> 標記包含以下屬性和值:
    • class 屬性表示實現這個活動的 Java 類。
    • android:label 是應用程序的名稱。注意,它來自一個字符串資源。string.xml 文件包含應用程序的本地化字符串。
    • <intent-filter> 表示應用程序中可用的 IntentFilter。這是 Android 應用程序中最常見的 IntentFilter。這個過濾器的實際意思是,它實現 “主” 操作(也就是入口點),而且它位于 OS 的啟動器中。這意味著可以在 Android 設備上像啟動其他應用程序一樣,從應用程序主列表中啟動它。

下一節討論如何在 Eclipse 中的 Android 模擬器上啟動應用程序。

運行應用程序

應用程序已經成功地編譯了,現在該運行這個示例應用程序了。在 Eclipse 中選擇 Open Run Dialog 或工具欄上的快捷按鈕。這會打開一個對話框,可以在這里創建啟動配置。選擇 Android Application 選項并單擊 New 的圖標。

圖 6 顯示本教程示例所用的值。


圖 6. Run 對話框
Run 對話框

 

指定配置名稱。本教程使用的名稱是 Tutorial Configuration。在可用項目列表中選擇 ibmtutorial 項目(單擊 Browse 可以看到可用項目)。在下拉列表中選擇啟動活動,F在選擇 Emulator 選項卡,根據需要指定模擬器設置?梢员3帜J設置。有兩個設置需要注意,見圖 7。


圖 7. Run 對話框,Emulator 選項卡
Run 對話框,Emulator 選項卡

 

有幾種可供選擇的屏幕大小和方向,還有網絡選擇。如果運行應用程序的移動設備的因特網連接速度不同,網絡選擇就很重要了。在構造應用程序原型時,選擇完整網絡速度而且沒有延遲。開發了主要功能之后,好在比較真實的網絡環境中進行測試,看看應用程序的響應速度如何。

選擇 Run 運行示例應用程序。


圖 8. 模擬器
模擬器

 

應用程序已經在模擬器上運行了,現在看看幕后發生的情況。Dalvik Debug Monitor Service(DDMS)將會幫助檢查應用程序的運行情況。

調試應用程序

要想檢查正在運行的應用程序中發生了什么情況,就需要查看正在運行的 Dalvik VM。在 Eclipse 中,選擇 Window > Open Perspective > Other。在出現的對話框中選擇 DDMS。這會在 Eclipse 中打開一個新的透視圖,其中有許多有趣的窗口。下面簡要介紹一下 DDMS 透視圖中提供的資源:

LogCat 是一個日志文件,它記錄 VM 中發生的活動。應用程序可以通過 Log.i(tag,message); 在這個日志文件中添加自己的日志項,其中的 tagmessage 都是 Java 字符串。Log 類屬于 android.util.Log 包。

圖 9 顯示 LogCat。


圖 9. LogCat
LogCat

 

DDMS 中的另一個方便的工具是文件管理器,可以用它訪問模擬器的文件系統。圖 10 顯示在模擬器上部署本教程示例應用程序的位置。


圖 10. 在模擬器上部署的示例應用程序
在模擬器上部署的示例應用程序

 

用戶應用程序部署在 /data/app 目錄中,而 Android 內置的應用程序部署在 /system/app 目錄中。

在 DDMS 中還可以查看正在運行的進程。


圖 11. 正在運行的進程列表
正在運行的進程列表

 

全面討論 Android 應用程序的調試超出了本教程的范圍,更多信息請參見 參考資料。

主頁 | 我們介紹 | 我們課程 | 開課公告 | 無錫學歷培訓 | XML地圖
欧美三级电影,欧美大尺度电影
<menuitem id="jdrvb"><strike id="jdrvb"></strike></menuitem>
<cite id="jdrvb"></cite>
<cite id="jdrvb"></cite>
<var id="jdrvb"></var>
<cite id="jdrvb"></cite>
<var id="jdrvb"><video id="jdrvb"><menuitem id="jdrvb"></menuitem></video></var><var id="jdrvb"></var>
<cite id="jdrvb"></cite>
<var id="jdrvb"><video id="jdrvb"></video></var>
<cite id="jdrvb"></cite>
<ins id="jdrvb"><span id="jdrvb"><menuitem id="jdrvb"></menuitem></span></ins>