第四堂 Android 的架構與開發工具
Transcript of 第四堂 Android 的架構與開發工具
Android 的架構Applications: 應用層
Application Framework: 應用框架層
Libraries: 原生程式庫Android Runtime:
Android 執行層
Linux Kernel: Linux 核心層
Jason 的 Android 快樂應用程式學習班
Linux 核心• Android 的底層是 Linux 作業系統
• Linux 作業系統被使用得很廣 , ex. Mac, Ubuntu, CentOS
• Linux 有高的可攜性 , 安全性 , 與支援各種硬體功能
• 可攜性:容易移植到不同的硬體架構上
• 安全性:有權限規範
• 支援各種硬體功能:如記憶體 , 電源 , 網路 ... 等Jason 的 Android 快樂應用程式學習班
HAL 硬體抽象層• HAL : Hardware Abstraction Layer 硬體
抽象層是在 Linux 與 Android 之間的抽象層
• 這一層主要是要求 ( 手機 ) 硬體製造商要將硬體的驅動程式實作好並抽象化
• 抽象畫之後 , Android ( 底層 ) 開發者就不需要去尋找硬體驅動程式 , 而可直接使用抽象方法 Jason 的 Android 快樂應用程式學習班
Libraries 原生程式庫• 原生層式庫是 C / C++ 寫成 . 用來支援應用層是框架層
• Bionic : Android 的 libc 程式庫 , 必須遵守開源規範 , 開發後要再回歸開源社群 , 不可私有化
• Binder : 通訊機制 , 讓 App 們可以互相通訊
• Framework 程式庫:支援 media, 電話 , wifi 等
• Webkit :支援瀏覽器的引擎
• SQLite :支援 SQLite 資料庫
• OpenGL : 3D 繪圖程式庫
• OpenSSL : 安全插槽層 , 提供安全點對點連接
Jason 的 Android 快樂應用程式學習班
原生背景服務程式 (Native Daemons)
• 運行在背景的原生程式
• 服務管理器 (Service Manager) :可執行其他所有框架服務的行程
• 無線射頻背景服務 ( rild ) : 支援電話功能
• 安裝程式背景服務 ( installd) : 支援 App 管理與安裝
• 媒體伺服器 (mediaserver) : 支援相機 , 音訊與其他媒體
• Android Debug ( adbd ) : 支援連結電腦與裝置 ( 使用 adb)
Jason 的 Android 快樂應用程式學習班
APK 檔• APK 是 Android APP 的安裝
檔
• APK 是 Android Application Package 的簡稱 , 是一個壓縮檔
• 裡頭會有 Dalvik 的執行檔 .dex
Jason 的 Android 快樂應用程式學習班
Android 專案結構• src.main.java => java 程式檔
• libs => libraries 引用程式檔
• res => 資源檔
• res / drawable => 圖片資源
• res / layout => 介面 layout 資源
• AndroidManifest.xml => APP 設定檔
• build.gradle => APP project 編譯設定檔
strings.xml : Project 的字串資源• 用來設定 App 會用到的字串資源
• xml 是採 key, value 的方式存取
• ex. 此例子中 R.string.app_name = “HelloWorld”
Jason 的 Android 快樂應用程式學習班
排版的 XML 檔
• 在這裡定義版面與元件
• 範例是 activity_main.xml, 裡頭用了一個 RelativeLayout 的版面配置 , 裡面還含了一個元件 TextView
Jason 的 Android 快樂應用程式學習班
libs :引用第三方資源 (jar 檔 ) 的資料夾
• 引用第三方的程式碼時 , 將其放置於此 libs 檔案夾
• 接著點擊工具列上的 sync project with gradle file, 如下方圖示處 , 就可以引用第三方程式
libs :引用第三方資源 (jar 檔 ) 的資料夾
• 引用第三方的程式碼時 , 將其放置於此 libs 檔案夾
• 接著點擊工具列上的 sync project with gradle file, 如下方圖示處 , 就可以引用第三方程式
• Log 的內容會出現在 Logcat
• Log 有五個不同的 Level : Verbose, Debug, Info, Warn, Error
• 使用方法為 Log.v, Log.d, Log.i, Log.w, Log.e
• Android 會用不同的顏色顯示這些 log, 最低層級為 verbose(白色 ), 最高為 error (紅色 )
Log 除錯法
Jason 的 Android 快樂應用程式學習班
Log 實作練習
Jason 的 Android 快樂應用程式學習班
題目:在 MainActivity 中有 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy() 六個 Override 的方法 , 請利用 Log 以及操作模擬機 , 以求得這 6 個方法的出現時機與先後順序 .