2009年7月6日 星期一

幾個 Android 的名詞觀念

在真正進入 Android 程式設計前,必須先了解以下幾個名詞觀念。

1. Android Package (.apk):
包含應用程式本身,以及相關的資源檔案。將 apk 套件下載到 Android 手機後,即可安裝至手機上。Android Development Kit 可自動將 apk 套件下載至模擬器或實體手機。
記得前面我們在 Eclipse 中若要檢視HelloWorld程式時, 是利用 Package Explorer 來查看整個程式的結構的.

2. Task
Task 為"工作"的意思, 可以看成 Application (應用程式)本身. 也就是手機上的應用程式的圖示,使用者可點擊圖示啟動 task。從開發者的角度來看

3. Process
Process 的定義上,指的是"執行中的程式",在 Android 的Application 環境中,代表低階的執行程式,屬於 Kernel 部份。一個 package 的所有程式,都是在一個 process 中執行。
在一般情況下, Android 應用程式都有一個自已的 Process. 在 Android 系統裡, Process 的生命週期(life cycle) 並不是直接由 Android 應用程式本身來決定, 而是由系統來決定.
Android 的 process 有五種類型:foreground process、visible process、service process、background process 與 empty process。

4. Activity
Activity是Android開發中非常重要的一個基礎類。就字面上來說, Activity 就是"活動"的意思. 可以簡單的解釋為, Activity 是一個與使用者互動的物件(object)。
舉例來說:一個EMail程式,就可能包含三個activity: 有列出郵件的 Activity 1, 顯示郵件內容的activity 2, 及 撰寫郵件 activity3.
Activity 大概可以分成四種生命狀態:
一個Activity在螢幕的最上層時(堆疊的最頂端),它就是屬於activerunning的狀態
如果一個Activity失去focus(焦點)但還看得到它的畫面(例如:一個Activity畫面是被蓋掉部份畫面或一個半透明的情況), 這個Activity則處在 paused 的狀態。這個失去焦點的Activity它還是完全活著的, 並沒有消失。(活著的意思是指,Activity本身所有的狀態及資料都還是存在,與管理程式保持連繫). 但這種paused的activity, 會在某些情況下消失, 例如當系統的記憶體不夠用時, 系統會自動判斷, 把不重要的activity移除.

如果一個Activity被其它的Activity完全的遮住時, 這個被遮的Activity處於stop的狀態, 但它仍然保有全部的狀態及資料. 由於它已不被使用者看見,所以它的畫面是被隱藏起來的, 當系統記憶體不足時,這種stop狀態的activity是最先被系統考慮移除以釋放記憶體.

當一個Activity處於pause或stop的狀態時, 系統可以要求Activity結束(finish)或移除(kill)它. 當它需要再度呈現在使用者面前時, 它必需要能完整的重新啟動(restart)及回復(resume)先前的狀態。

5. View
簡單來說,android.app.View 類別就是手機的 User Interface. View 負責繪製UI與 event (處理事件). Android 利用 View 建立所謂的 Widgets(元件), 利用 Widget 就可以製作互動式的使用者介面(interactive GUI).

沒有留言:

張貼留言