2010/02/09

Android隨便教(1)

環境準備

到官網下載SDK安裝平台
http://developer.android.com/

下載完打開,到Setting裡勾選「Force https://...」選項
然後到Available Packages裡按Refresh後,勾選最新版本的Android SDK,Google APIs跟Documents下載

與Eclipse整合

新增網址「https://dl-ssl.google.com/android/eclipse/」然後安裝。

Eclipse再啟動之後[Window]-[Preferences],選[Android],[SDK Location]設定為最開始解壓的SDK安裝平台資料夾下。

Android介紹

Android的應用程式是在Java的VM上動作,但是不是平常用的Java VM,而是一個叫做DalvikVM的低記憶體環境VM。

DalvikVm並沒有支援所有Java標準的Library。

建立一個應用程式的固定步驟

  1. 編譯Java原始碼為.class檔
  2. Java類別檔、(.class、.jar)再編譯成可執行檔.dex
  3. 包裝後產生應用程式檔.apk

流程大概就是,使用生成的apk檔來安裝應用程式,被展開的.dex檔來執行應用程式。

Activity

首先最基本的要素「Activity」,通常是「1 Activity = 1 畫面」,Layout和使用者的事件、Activity的狀況回應的紀錄。

一個Activity的Life Cycle通常是

Activity開始 -> OnCreate() -> OnStart() -> OnResume() -> Activity啟動 -> onPause() -> OnStop() -> onDestroy -> Activity終了

Intent

Intent是擔當Activity和Application間的互動訊息角色,藉由intent的傳送來遷移Application的畫面或是呼叫其他的Applicaiton。

Intent分成「明示」、「暗示」兩種,明示有指定對象,暗示則沒有,要怎樣處理是由Intent filter來決定。

作成範例「名片管理Applicaiton」

先規劃幾項功能

  • 顯示名片內容
  • 名片的新增和更新
  • 從名片的內容顯示地圖
  • 利用名片的內容使用外部電話或是郵件的Applicaiton

作成專案

首先先作成專案。因為要使用Google Map,所以在Google APIs的地方打勾。

理解專案的構造

AndroidManifest.xml:定義Application的構造的最重要檔案,以後要加入Activity的話都要在這裡定義。
src資料夾: source code資料夾
res資料夾: resource資料夾,放圖片、Layout等等。

res的子資料夾

res/anim/ : Frame Animation和Tweened Animation用的xml檔案
res/drawable/ : 圖片檔案,.png,.9.png,.jpg,
※.9png是可resize的png檔,從SDK裡的tool\draw9patch.bat可以啟動編輯工具
在預設下會建立出drawable-hdpi、drawable-ldpi、drawable-mdpi的預設資料夾,這是根據解析度分類。
更多請參考:http://developer.android.com/guide/topics/resources/resources-i18n.html
res/layout : layout用xml檔
res/menu : menu用的xml檔
res/values : source檔利用的xml值檔案,例如可以用來做國際化、創造value-en、value-zh-tw資料夾
res/xml : 任意的xml檔案
res/raw : 任意的檔案,音樂資料等、沒編譯的檔案等

assets資料夾: 什麼檔案都能放,但是跟res/raw差不多,所以沒啥在用
gen資料夾:自動生成index檔案的資料夾,打開R.java看就知道。

Andorid的Layout作成法

「用XML定義」以及「從程式下手」這兩種方法。XML定義的話比較容易修改閱讀,所以通常都用XML,如果是動態的Layout時,則只能在程式裡面下手了。

Layout的作成就使用「Android Developer Tools」裡有的編輯器,滑鼠右鍵方才作成的專案的「res/layout/main.xml」,「Open with」-「Android Layout Editor」來打開編輯器。

接下來介紹View的配置Layout。

LinearLayout,將任意的View縱\橫的方向來配置。就好像網頁單純的幾欄式。不過是有橫的而已。

TableLayout, 跟HTML裡的Table一樣的Layout。

FrameLayout, 就一個框一個框的表示,在子畫面的時候使用。

No comments:

Post a Comment