Android HAL & Framework: 軟硬整合實作訓練-第 34 期

Android HAL 是什麼技術?HAL(Hardware Abstract Layer 硬體抽象層)是 Android Framework 的一個架構層,用來銜接應用程式與與硬體,這 Android 的軟硬整合關鍵技術,當然也是學習 Android Framework 的第一堂課。—Moko365 Team

課程方向

HAL 是 Android Framework 與底層硬體整合的關鍵技術,HAL 將 Android 框架以及 Linux Device Driver 整合在一起;這是開發 Android 產品的必修課。本課程邀請到 Jollen Chen 講師主講,Jollen 是台灣目前唯一具備相關產品開發經驗的 Android HAL 與 Framework 講師。

品質特色

本課程內容累積超過 60 期的公開課與企業內訓經驗,能幫助您建立 Android 框架與 HAL 驅動程式整合的「研發能力、解決問題的能力」,而不只是操作性的能力建立。Android 框架的開發要考慮架構,要先做設計(OOD),要驗證設計的正確性,同時也要達到重用(Design Reuse)框架設計的要求;所以開發 Android 框架,「是在一套系統化且制式的規模下進行,寫 Code 受到規範。」本課程的目標,是帶領學員,建立 Android 框架架構的觀念,並練習撰寫正確的程式碼。本課程包含 Android 4.x/5.0 內容,範例可支援 Android 1.6/2.x/4.x/5.0。

更新通知

本課於 2014 年 12 月 09 日進行第四次改版,本課程於 2009 年北京首開至今,不但是兩岸最早的 HAL 課程,也是課程資歷最久的 HAL 與框架整合課程。第四版課程更新至 Android 5.0 並針對幾個新的設計進行分析。

課程代碼

AF101

課程簡介

HAL(Hardware Abstract Layer 硬體抽象層)是 Android Framework & Application 與底層硬體整合的關鍵技術。移植 Android 到不同平臺時必須整合 Linux Kernel 的驅動程式,需要考量 Android Service、HAL stub 以及「整合驅動程式到 Android 框架」架構面的設計(Design)。

了解 HAL 及其設計,是開發 Android 產品的第一門課。透過分析 HAL 的設計,能建立基礎的Android 框架知識。Jollen Chen 說:「開發 Android 軟件是『設計導向思惟』,編寫代碼(Coding)並不等於做軟件(Software),寫 Code 可以很自由心態」,意思是,可根據自已的想法發揮,不受任何限制地自由發揮。

Android框架的開發要考慮架構,要先做設計(OOD),要驗證設計的正確性,同時也要達到重用(Design Reuse)框架設計的要求;所以開發Android框架,「是在一套系統化且制式的規模下進行,寫 Code 受到規範。」

本課程由具備 Android 產品開發經驗,以及產品操盤實務經驗的技術專家 Jollen 主講,是特別針對想事產品開發,以及想提升團隊 Android 架構能力者所規劃。課程深入淺出,是目前國內少見能以至簡方式介紹實務 Android 框架與架構的課程。旨在培養實務的 Android 能力,並協助企業提升研發團隊的 Android 架構能力。

Jollen 老師將以 Mokoid Open Source Project(MOSP)範例,仔細分析 Android 框架的設計方法與架構;MOSP 是 Jollen 老師特別發展的實例,並已開源至 Google Code 上。

課程主軸為綜合說明 Android 框架的核心架構:HAL、Binder、View System 與 Native Service,想理解框架,就要深入這四大子系統。

課程大綱

上課時數:18 小時,共計 3 天。

時程 上課大鋼 講師
第 1 天
09:30 am–04:30 pm
第 01 堂課:Hardware Abstract Layer 架構與驅動模組開發
1.1 Service 與 Manager 的意義與用途
1.2 libhardware 與 HAL API
1.3 Stub & Module 的觀念
1.4 HAL Stub Analysis and Design(OOAD)
1.5 HAL Stub Class
1.6 HAL Stub Interface
1.7 Refactoring HAL Stub(Android 5.0)

第 02 堂課:Android Service 架構與 SystemServer 整合開發
2.1 Zygote & SystemServer 介紹
2.2 ServiceManager 介紹
2.3 IPC、 Remote method call 與 Binder 觀念說明
2.4 AIDL 介紹與 IInterface 設計觀念解析
2.5 Activity & ApplicationContext
2.6 ServiceManager

第 03 堂課:Android Framework 架構原理分析(OOD)
3.1 JNI 開發
3.2 Remote Object 觀念與 IBinder 介紹
3.3 如何以Proxy Object 整合 Android Service
3.4 Handler 與 Message 的解析與實作細節
3.5 Doing Long Operations
3.6 Design Patterns of Android Framework
3.7 Refactoring Native Service(Android 5.0)
Jollen
第 2 天
09:30 am–04:30 pm
第 04 堂課:Android Process 模式與系統程式
4.1 Component 與 Main Thread
4.2 Instance of Dalvik VM
4.3 Introduction of Dalvik VM
4.4 Android Process Model
4.5 Class Preloading
4.6 Dalvik VM Instantiation & Initialization

第 05 堂課:Manager API & Context
5.1 Introduction Context
5.2 getSystemService()
5.3 IPC & AIDL
5.4 IPC with Android Service using Binder Proxy

第 06 堂課:Native Service 實現完整解析
6.1 使用 IInterface (Java vs C++)
6.2 使用 BnInterface 與 BpInterface
6.3 實作 Binder Protocol
6.4 Implementation of Native Service(Android 5.0)
6.5 Implement Native Binder Proxy
Jollen
第 3 天
09:30 am–04:30 pm
第 07 堂課:Binder 原理與核心架構解析
7.1 Proxy Design Pattern
7.2 .asInterface() 深入解析
7.3 Linux Binder 驅動解析
7.4 BpInterface, Proxy object 與 IPC transaction
7.5 Architect and Refactoring of SensorManager(Android 5.0)

第 08 堂課:View System 設計模式與實現原理解析
8.1 Introduction to Activity, Window and View
8.2 Architecture of Android View System
8.3 Surface and Canvas
8.4 The flow of drawing: from View to SurfaceFlinger
8.5 The MVC design of View Hierarchy
8.6 The Composite pattern of View Hierarchy
Jollen

課前自修

我要上課

先備知識

  • 看得懂 Java 與 C 語言
  • 基本的 Linux 終端機環境操作

報名費用

NT$ 20,800(上課時數 18 小時,共計 3 天)

優惠方案

  • 本課正提供預約報名優惠。預約報名課程,直接享有 69 折(NT$ 14,300)的最棒折扣:我要預約報名(請等候繳費通知、暫無須繳費)

  • 預約報名優惠已為最低優惠,無法再合併其他優惠(VIP與折價券)

開課時間

  • 日期:2016 年 日期未定,仕橙版第 34 期

  • 時間:09:30~12:00,13:00~16:30(09:00 AM 開始報到)

開課紀錄

  • 仕橙版第 34 期(暨 Jollen’s Consulting 第 41 期)預約中(台北)
  • 仕橙版第 33 期(暨 Jollen’s Consulting 第 40 期)已於 2016 年 04 月 16 日結訓(台北)

  • 仕橙版第 32 期(暨 Jollen’s Consulting 第 39 期)已於 2015 年 09 月 05 日結訓(台北)
  • 仕橙版第 31 期(暨 Jollen’s Consulting 第 38 期)已於 2015 年 01 月 24 日結訓(台北)
  • 仕橙版第 30 期(暨 Jollen’s Consulting 第 37 期)已於 2014 年 05 月 10 日結訓(台北)
  • 仕橙版第 29 期(暨 Jollen’s Consulting 第 36 期)已於 2013 年 11 月 16 日結訓(台北)
  • 仕橙版第 28 期(暨 Jollen’s Consulting 第 35 期)已於 2013 年 03 月 09 日結訓(台北)
  • 仕橙版第 27 期(暨 Jollen’s Consulting 第 34 期)已於 2012 年 11 月 29 日結訓(北京)
  • 仕橙版第 26 期(暨 Jollen’s Consulting 第 33 期)已於 2012 年 10 月 25 日結訓(深圳)
  • 仕橙版第 25 期(暨 Jollen’s Consulting 第 32 期)已於 2012 年 07 月 19 日結訓(北京)
  • 仕橙版第 24 期(暨 Jollen’s Consulting 第 31 期)已於 2012 年 04 月 27 日結訓(深圳)
  • 仕橙版第 23 期(暨 Jollen’s Consulting 第 30 期)已於 2012 年 04 月 22 日結訓(台北)
  • 仕橙版第 22 期(暨 Jollen’s Consulting 第 29 期)已於 2011 年 12 月 18 日結訓(上海)
  • 仕橙版第 21 期(暨 Jollen’s Consulting 第 28 期)已於 2011 年 12 月 04 日結訓(台北)
  • 仕橙版第 20 期(暨 Jollen’s Consulting 第 27 期)已於 2011 年 09 月 18 日結訓(台北)
  • 仕橙版第 19 期(暨 Jollen’s Consulting 第 26 期)已於 2011 年 08 月 30 日結訓(北京)
  • 仕橙版第 18 期(暨 Jollen’s Consulting 第 25 期)已於 2011 年 08 月 26 日結訓(深圳)
  • 仕橙版第 17 期(暨 Jollen’s Consulting 第 24 期)已於 2011 年 05 月 29 日結訓(台北)
  • 仕橙版第 16 期(暨 Jollen’s Consulting 第 23 期)已於 2011 年 05 月 15 日結訓(上海)
  • 仕橙版第 15 期(暨 Jollen’s Consulting 第 22 期)已於 2011 年 03 月 20 日結訓(台北)
  • 仕橙版第 14 期(暨 Jollen’s Consulting 第 21 期)已於 2011 年 03 月 29 日結訓(深圳)
  • 仕橙版第 13 期(暨 Jollen’s Consulting 第 20 期)已於 2011 年 01 月 09 日結訓(台北)
  • 仕橙版第 12 期(暨 Jollen’s Consulting 第 19 期)已於 2010 年 11 月 28 日結訓(台北)
  • 仕橙版第 11 期(暨 Jollen’s Consulting 第 18 期)已於 2010 年 11 月 05 日結訓(北京)
  • 仕橙版第 10 期(暨 Jollen’s Consulting 第 17 期)已於 2010 年 09 月 21 日結訓(北京)
  • 仕橙版第 09 期(暨 Jollen’s Consulting 第 16 期)已於 2010 年 08 月 29 日結訓(台北)
  • 仕橙版第 08 期(暨 Jollen’s Consulting 第 15 期)已於 2010 年 06 月 29 日結訓(深圳)
  • 仕橙版第 07 期(暨 Jollen’s Consulting 第 14 期)已於 2010 年 06 月 13 日結訓(台北)
  • 仕橙版第 06 期(暨 Jollen’s Consulting 第 13 期)已於 2010 年 05 月 25 日結訓(北京)
  • 仕橙版第 05 期(暨 Jollen’s Consulting 第 12 期)已於 2010 年 05 月 09 日結訓(台北)
  • 仕橙版第 04 期(暨 Jollen’s Consulting 第 11 期)已於 2010 年 04 月 24 日結訓(上海)
  • 仕橙版第 03 期(暨 Jollen’s Consulting 第 10 期)已於 2010 年 03 月 29 日結訓(深圳)
  • 仕橙版第 02 期(暨 Jollen’s Consulting 第 09 期)已於 2010 年 01 月 10 日結訓(台北)
  • 仕橙版第 01 期(暨 Jollen’s Consulting 第 08 期)已於 2009 年 10 月 25 日結訓(台北)

上課地點

台北市博愛路 (詳細教室資訊另行公佈)

我要報名

  • 下載報名表(.doc)

  • 下載報名表(.pdf)

  • 本課正提供預約報名優惠。預約報名課程,直接享有 69 折(NT$ 14,300)最棒折扣:我要預約報名(請等候繳費通知、暫無須繳費)

  • 『預約報名』說明:

    1. 凡想參加課程者皆可事先預約
    2. 僅預約,不需繳交任何費用
    3. 待上課日期公布後,評估是否可以參加該期課程,如可以再進行課程繳費(預約優惠價)
    4. 如無法參加該期課程,亦不需繳交任何費用
    5. 預約人數超過六位以上,即公布上課日期
    6. 上課日期公佈後,即無法享有預約優惠價格
    7. 預約報名優惠已為最低優惠,無法再合併其他優惠(VIP與折價券)

results matching ""

    No results matching ""