Android、HTML5、Node.js 與 IoT 高品質訓練課程供應者

Android HAL & Framework: 軟硬整合實作訓練

仕橙版第 34 期

講師 Jollen

Moko365 技術總監暨講師、Mokoversity 開放創新學院創辦人、WoT.City 技術長。曾為 Motorola、HTC、LG、OPPO、騰迅、廣達電腦等知名企業,提供 Android、Linux 與 HTML5 專業訓練,並擔任顧問。長期從事 Embedded Linux、Android Framework、HTML5 與 Linux Device Drivers 研究與開發。Jollen 近期投入 Web of Things 的雲端架構設計,並且成立 WoT.City 開源計畫。Jollen’s Blog

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 框架與架構的課程。旨在培養實務的 Andr​​oid 能力,並協助企業提升研發團隊的 Andr​​oid 架構能力。

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
w 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 天)

● 開課前一週,天天早安鳥;開課前完成繳費享有「早安鳥」 88 折優惠價(NT$ 18,300),我要早安鳥報名

● 持 VIP Code 或仕橙會員卡,再折 NT$ 1,000

● 持仕橙折價卷:依面額折抵,一門課程限用一張,可搭配 VIP Code 或仕橙會員卡使用

● 持仕橙折價卷的學員,請於填寫報名表時勾選,並於開課當日繳交,如無法繳交折價卷者,須補繳課程費用

● 日期:2017 年 3 月 11、12、18 日,仕橙版第 34 期

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

  • 仕橙版第 34 期(暨 Jollen’s Consulting 第 41 期)將於 2017 年 3 月 11 日開課(台北)
  • 仕橙版第 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)

* 為必須填寫欄位
  • 2010 年 06 月 13 日:Android HAL & Framework:軟硬整合實作訓練(仕橙版第 07 期)
  • 2010 年 05 月 25 日(北京):Android HAL & Framework:軟硬整合實作訓練(仕橙版第 06 期)
      • 2010 年 05 月 09 日:Android HAL & Framework:軟硬整合實作訓練(仕橙版第 05 期)
      • 2010 年 03 月 29 日:Android HAL & Framework:軟硬整合實作訓練(仕橙版第 03 期)
      • 2009 年 10 月 25 日:Jollen 老師「Android 驅動程式:移植實戰班 第 05 期(仕橙版)」順利結訓(台北班)
      • 2009 年 08 月 29 日:Jollen 老師至上海開辦「Android 應用開發與底層技術(第 03 期)」課程
      • 2009 年 08 月 18 日:Jollen 老師赴鴻海土城民生廠進行「Android Porting:移植要領」課程
      • 2009 年 08 月 12 日:Jollen 老師舉辦「第一次 Android 課程試教活動、為課程調整做準備」
      • 2009 年 07 月 04 日:Jollen 老師「Android 應用開發與底層技術(第 01 期)」中國地區首開班於北京舉辦

● 2014 年 12 月 09 日:第四次改版,課程內容更新至 Android 5.0,並增加 Android 5.0 的重構分析。

● 2012 年 12 月 24 日:第三次改版,課程時數由 12 小時大幅擴充為 18 小時,課程份量增加 50%。加深 Native Service 主題,並新增 Binder 與 View 系統的解析。

仕橙3G教室

本課程由仕橙3G教室 (Moko365 Inc) 開發與製作,內容由仕橙研策科技有限公司版權所有,並保留所有權利。未經書面授權同意,請勿轉載、引用或複製內文。本公司業聘請承展智權暨商務法律事務所陳丁章律師、李子聿律師等,擔任本公司電子商務及智權法務諮詢顧問,並此籲請各界尊重本公司之智慧財產權。

Moko365 (仕橙3G教室) 為兩岸領先的科技顧問培訓機構,主要業務包含三項:1.Android底層軟體開發;2.協助客戶進行Code Review以及平台的移植;3.Android企業內訓,協助企業進行人才養成。客戶包含LG、宏達電、廣達會等國內外五十家企業、政府法人,累積訓練研發人員近五千人次。成立於2009年台北,在北京、上海、深圳均可提供服務。 目前是台灣開課規模最大、課程體系最完整的Android教育訓練中心。挾著深厚的技術實力與顧問諮詢經驗,2012成立Lightning Startup,協助客戶將行動通訊領域的好點子、好創意轉化成商品。更多有關資訊,請瀏覽 http://www.moko365.com/