Android學習筆記(一)Android系統的基本介紹及工程簡介

Android系統的簡介(來自於百度百科)

Android系統的層次

Android分爲四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層。java

應用程序框架包括

  • l  豐富而又可擴展的視圖(Views),能夠用來構建應用程序, 它包括列表(Lists),網格(Grids),文本框(Text boxes),按鈕(Buttons), 甚至可嵌入的web瀏覽器。
  • l  內容提供器(Content Providers)使得應用程序能夠訪問另外一個應用程序的數據(如聯繫人數據庫), 或者共享它們本身的數據
  • l  資源管理器(Resource Manager)提供 非代碼資源的訪問,如本地字符串,圖形,和佈局文件(Layout files )。
  • l  通知管理器 (Notification Manager) 使得應用程序能夠在狀態欄中顯示自定義的提示信息。
  • l  活動管理器( Activity Manager) 用來管理應用程序生命週期並提供經常使用的導航回退功能。

系統運行庫

Android 包含一些C/C++庫,這些庫能被Android系統中不一樣的組件使用。它們經過 Android 應用程序框架爲開發者提供服務。如下是一些核心庫:linux

  • l  系統 C 庫  一個從BSD繼承來的標準C系統函數庫 Libc ), 它是專門爲基於Embedded linux的設備定製的。
  • l  媒體庫  基於PacketVideo OpenCORE;該庫支持多種經常使用的音頻、視頻格式回放和錄製,同時支持靜態圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
  • l  Surface Manager  對顯示子系統的管理,而且爲多個應用程序提 供了2D和3D圖層的無縫融合。
  • l  LibWebCore  一個最新的web瀏覽器引擎用,支持Android瀏覽器和一個可嵌入的web視圖。

Android開發組件

Android開發四大組件分別是:android

  • l  活動(Activity): 用於表現功能。
  • l  服務(Service): 後臺運行服務,不提供界面呈現。
  • l  廣播接收器(BroadcastReceiver):用於接收廣播。
  • l  內容提供商(Content Provider): 支持在多個應用中存儲和讀取數據,至關於數據庫。

工程項目結構

新建了一個Android的項目,其文件結構以下web

與往常看慣的VS解決方案管理器看到的不一樣,VS裏面的視圖文件和後臺代碼文件以樹狀結構顯示呈現其從屬關係。不管是其餘類仍是視圖類的均可以任意放置,項目裏面有幾個固有的特殊文件夾(引用,資源等)。但在Java的項目中,視圖文件與後臺代碼文件放置的位置比較離散。數據庫

src文件夾

這個文件夾放的都是各個類的代碼,包括了界面的後臺代碼。瀏覽器

gen文件夾

這個文件夾放的最重要的一個文件就是R.java。這個文件存放着全部界面控件的id值,圖片資源值,視圖文件等等一系列資源。app

libs文件夾

這裏存放的是項目中引用的包,這個估計就相似於引用文件夾,裏面放的是dll文件。框架

res文件夾

res感受就像一個資源文件夾,不過裏面又有視圖文件存在的話,又不太像,可是轉一個方式去思考,視圖的配置獲取也算是一種資源。Res文件夾下面還有各類類型的子文件夾ide

  • drawable存放的是項目中使用到的圖片,區別在於尺寸不一樣而已。
  • layou存放的就是項目中的視圖文件
  • menu存放的就是項目中菜單文件
  • values存放的是項目裏面用到的字符串資源,樣式資源等。

AndroidManifest.xml文件

  項目中還有一個至關重要的文件AndroidManifest.xml,這個文件包含了activity(行爲)、view(視圖)、service(服務)之類的信息。但現時能看到的信息只侷限在application節點中。Application的屬性定義了整個項目的主題,程序名,圖標等。它是子節點activity則是程序中所運用到的視圖,android:name屬性存放着視圖的類的徹底限定名。帶有一會兒節點的activity節點只能有一個函數

1             <intent-filter>
2                 <action android:name="android.intent.action.MAIN" />
3 
4                 <category android:name="android.intent.category.LAUNCHER" />
5             </intent-filter>

 

它所在的activity代表它就是應用程序最開始進入的頁面。

  在Android中感受視圖文件與後臺代碼文件是不一樣級別的,在.NET中感受視圖文件和後臺代碼文件是同等重要的,視圖文件既須要代碼文件,代碼文件也須要視圖文件。但在Android中感受並不是這樣,代碼文件纔是主要的。它在onCreate的時候調用了setContentView方法。才決定這個頁面會真正的用那個佈局呈現出來,感受就比較鬆散。因此視圖文件放到資源文件夾res裏面也是有道理的。

  學習Android,學習Java我本身以爲挺意外的,貌似是生活所逼,不過內心面的仍是.NET,仍是C#。

相關文章
相關標籤/搜索