首發教學帖,Android開發(一)–Hello World!

來源:互聯網
上載者:User

        從事開發近六年了,接觸Android開發也半年多了,絕不敢稱牛人,因為牛人還大有人在。部落格園的帳號開到現在還是沒寫過一篇像樣的,當初開的時候就是打算寫點什麼,以回報這些年在網上搜尋的資料,因為如果人人都只搜尋不貢獻那大家也不會搜到那麼好的文章了。

   廢話少說了,這是第一次寫技術帖,不及之處,還望包涵。牛人就免進了,因為從最簡單的講起的,就當是給自己這一段的學習做一次回顧吧!從經典的Hello World! 開始,後面會一個個題目寫下去。我會從我自己開發的應用當中把由易至難的功能點拿出來寫,我的應用程式發布至今國內各Android市場下載量也近5萬了(為了不被人說我是來宣傳自己的應用的,故不給出什麼連結),大家給出的評價也還算可以。

        這一節我們還是從Hello World講起吧!至於環境的安裝我就不講了吧!大家一搜一大堆,我也是搜過來的。我的環境是Windows7+Eclipse:

大家都清楚,初入某個領域的開發,我們都是寫Hello World!畢竟太經典了,呵呵。首先,我們建立一個項目,什嗎?不會建?給個吧!

如果你的環境安裝正確的話你應該有以下的選擇,選擇“Android Project”

點擊"Next"進入下一步,填寫一些項目的資訊。注意這個地方,我剛開始因為螢幕方辨率的問題,沒注意到捲軸可以拉下去還有東西可以填寫的,所以總是提示出錯。

好了,填完項目名,那個Location的目錄第一次啟動Elipse的時候會指定workspace,我把所有android項目都放到這個目錄下了,當然你也可以自己選擇目錄,自己看著辦吧!要提一下這個Build Target,我之所以選1.6的原因是我發現在開發過程中,為了相容低版的android手機選1.6比較好,因為2.2基本上運行基於1.6開發的應用沒有什麼問題,當然肯定會有例外的,大家要自己嘗試,至少我的應用程式沒有問題(也有可能是沒有涉及到系統許可權調用的原因。好啦!填好了你就拉右邊的捲軸,之後繼續填寫項目資訊:

上面不是填了項目名嗎?怎麼又來個Application name呢?顧名思義這個叫做應用程式名稱嘛。。。。。。不作解釋了,以後大家都會懂的,嘻嘻!現在要填Package name了,這個東西很重要,可以多寫幾個單詞,凡是學習java的對Package name應該沒問題吧?什嗎?和我一樣做.net出身的?那麼你就理解是命名空間(name space)吧!然後填Create Activity了,建議你勾起來,後面再講為什麼(不勾的話自己後面慢慢去補寫這個啟動介面類吧!),最後填這個Min SDK Version,這個東東呢!你上面的Buid Target選的是多少,最後面那列不是有“API...”嗎?那裡不是寫著數字嘛?抄下來吧,如1.6是4。好了,點Finish後HelloWorld建完了,現在我們來看看項目結構。

如果你正確的建立了項目,在Eclipse中展開項目,結構應該如一樣。我們來看看幾個重要的檔案夾:

src:廢話,程式員都明白這裡是放代碼的。。。。。

gen:這裡就不要去動它了,自動產生的程式碼會在這裡出現,那個R.java絕對不是你要去更改的東西,否則後果自負,呵呵。

這個Android 1.6跟你選的Build Target有關係,也是不用你改的,是項目自動引用的,因為只有引用了這個,才能調用SDK中的功能。

assets:這裡可以放一些外部檔案,如一些文本等。

res:顧名思義就是resources的縮寫,這下面有好幾個檔案夾,我們再詳細的來看:

  drawable-xdpi (x代表h、l、m):這裡放置你要用來做介面的一些圖片的,而這個h、l、m分別是放置高、低、中解析度的圖片,至少高到什麼程度、低到什麼程度是項目的實際需求了,不過有時我把這三個檔案夾都刪了,建了一個drawable也行,不過只能放一種解析度的圖片。

  layout:這裡是放布局檔案的,建項目時預設就有一個main.xml了,看名字你也知道是主介面的布局了。

  values:預設有了一個strings.xml並且你如果開啟的話裡面還有值,android預設是把程式中的字串存在這裡的,這樣就能實現多語言化,介面中的值可以與代碼分離等。

最後看看AndroidManifest.xml,這是儲存應用的配置的,包括應用程式名稱、表徵圖、啟動介面的配置都在這裡啦!有興趣去看看,後面再講到這個。

然後我們關心的是Hello World怎麼顯示出來是吧!

現在我們開啟layout裡的main.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"    ><TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello"    /></LinearLayout>

這個LinearLayout後面再解釋,大概意思就是採用相鄰的布局,裡面有一個TextView,這個就是一個文本控制項。同我一樣.net出身的,就理解它為Label吧!(我有時還把它命名以"lbl"開頭。。。。表笑我)。接著兩個屬性分是寬高,fill_parent就是填充滿父控制項,而wrap_content則是根據內容有多長就顯示多長,所以這個TextView的寬度是填充滿父控制項,高度根據內容的多少決定。關鍵的是我們來看android:text,你已經猜到了吧?文本嘛!但這個@string/hello又是啥呢?

我們開啟values下的string.xml就明了了。你初開啟時可能是這樣的:

不過你可以點strings.xml來切換到程式碼檢視中來,代碼應該如下:

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="hello">Hello World, MainActivity!</string>    <string name="app_name">HelloWorld</string></resources>

上面不是問到那個@string/hello是什麼嗎?你猜到了吧!對了,就是這裡的<string name="hello">中的值了。你這裡愛改什麼改什麼!至於app_name,它是應用顯示的名稱,改了以後你安裝到機子上就是這個名稱。

也開啟那個MainActivity.java來看看吧,你發現這個類繼承了Activity,並且自動實現了一個onCreate方法,代碼是這樣的:

/** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }

我們看最後這句,setContentView(R.layout.main),這個意思就是說將那個xml檔案的內容載入進來。現在只差最後一步你就明了整個項目中的串連了,開啟AndroidMainifest.xml看看這段代碼:

<application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".MainActivity"                  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>

icon自然就是表徵圖了,label就是要顯示的應用程式名稱,而activity的配置下面的intent-filter這裡我不多做解釋,只要知道這麼配應用就是從這個activity啟動的。

好了,我們講了這麼多,目的是要明白整個項目工作的原理的,AndroidMainifest.xml裡面配置的是從MainActivity啟動(不能刪掉那個"."),而這個MainActivity.java裡的OnCreate裡將main.xml的內容給載入到介面中去了,這下挺明了了吧?

講了半天,其實沒寫一行代碼。。。。。只是你自己在strings.xml中改改要顯示的內容吧!然後要運行啦!看圖看圖:

提一下如果你環境都裝好的情況下,要在Eclipse裡調出Android SDK and AVD Manager,放圖放圖:

 

然後自己建立幾個模擬器,我機上建了三個,1.6、2.1、2.2的:

回到剛才說運行了。因為我的項目的Build Target是1.6的,所以它自動啟動了1.6的這個模擬器開始跑了,或者它也會跳出提示框讓你選模擬器,自己搞一下吧!然後效果就是這樣了:

哈哈,搞這麼久Hello World!才出來,沒關係,我們前面羅嗦點是為了以後跑得更快。先寫這麼多吧!第一次發教程帖,發現真的挺累的,會繼續寫幾篇吧!後面就看有沒有朋友支援了,有的話會努力的寫的。

轉載請註明來自部落格園,作者:jauntlin

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.