應用基礎-Application Fundamentals
Android應用程式以java作為開發語言。用Android SDK 提供的工具,可以將應用程式所需要的資料和資源檔打包到一個android包檔案中,這個檔案用.apk作為副檔名。所有代碼都在單個.apk檔案中,當成一個應用,這個檔案就是通常安裝在Android裝置中的應用.
一旦安裝到了一個裝置,每個應用生存在它自己的安全沙箱中。
- 一個Android系統是一個多使用者的Linux系統,其中的每個應用都是一個不同的使用者。
- 預設情況下,系統給每個應用程式指派一個獨立的Linux使用者ID(這個ID只由系統使用並且對應用來說是不可知的),系統給在某個應用中的所有檔案設定了許可權,所以只有分配了那個使用者ID的應用才能訪問它們
- 每個進程擁有它自己的虛擬機器,所以一個應用代碼的運行,與其他應用代碼的運行是隔離的.
- 預設情況下,每個應用程式均運行於它自己的Linux進程中。當應用程式中的任意代碼開始執行時,Android啟動一個進程,而當不再需要此進程而其它應用程式又需要系統資源時,則關閉這個進程。
通過這種方法,Android系統實現了最小特權原則。預設,每個應用僅僅訪問需要工作的組件,並不多做其他的事。這樣建立了一個非常安全的環境,應用不能訪問系統沒有授權的其他部分.
然而,應用可以有多種方法來與其他應用,共用資料及訪問系統服務:
- 有可能安排兩個應用共用一個linux使用者ID,在那種情況下,它們能互相訪問相互的資料。為了節約系統資源,擁有相同使用者ID的應用,可能也被安排運行在同一個Linux進程中並共用相同的VM(應用必須被簽名成同樣的認證)。
- 所有應用能請求允許訪問硬體資料,比如像使用者通訊錄,SMS訊息及可掛載的存放裝置(SD card),網路攝影機,藍芽等,所有應用的許可權必須在使用者安裝時被許可。
上述了一個應用怎樣存在於一個系統中的相關基本概念,這個文檔的其他部分將向你介紹如下 內容:
- 定義在你的應用中核心架構組件
- 在manifest中,給你的應用,聲明組件及裝置特點請求
- 獨立於應用代碼的資源,可以讓你的應用極大的最佳化它在各種配置裝置的表現
應用組件-Application Components
應用組件是構建Android應用程式的關鍵和基石。 每個組件是一個不同的入點,系統可以從這些點進入到你的應用。對於使用者來說,並不是每個組件都是實際的入點,但它們之間有一些依賴.但是每一個存在的組件都有它自己的一個入點,並扮演一個特定的角色--每一個都是獨一無二的構建塊,協助你定義你的應用的整體行為.
有四個不同類型的應用組件,每個類型服務於一個不同的目的,並有不同的生命週期,生命週期定義了如何建立和銷毀它.
下面是四種應用組件:
Activities活動
- 一個activity在一個螢幕,顯示一個使用者介面.比如,一個email應用可能有一個activity,這個activity用於顯示新的email列表.而另一個activity用於寫郵件,還有一個activity用於讀取郵件.雖然這些activities一起工作於email應用中,形成一個完整的使用者體驗但每一個部分又是相互獨立的.正因如此,不同的應用才能啟動這些活動的任意一個(如個email應用允許它).比如,一個照相的應用,能開啟一個email應用中寫封新郵件的活動,讓使用者分享一張照片.
- 一個activity被當作Activity的子類來實現的,在Activities開發指南中,你可以學到