Enterprise Training

Android HAL & Framework:行動裝置開發技術與實作

AF102|延伸課|企業內訓課程

從 Sensor HAL、Audio HAL、Camera HAL,到 Multimedia、Graphics 與 Framework 軟體工程,建立 Android 子系統分析能力與行動裝置產品開發實力。

AF102 延續 AF101 的 Android 框架主線。AF101 建立 HAL、Binder、Native Service 與 View System 的整體架構。AF102 深入 Sensor、Audio、Camera、Multimedia 與 Graphics 等核心子系統。

這門課從軟體工程角度分析各子系統的架構、設計與原理。HAL、Service、Native Code 與 Framework 的連接方式建立子系統研發能力。

本課程整理數個 Android 開發產品的實務主題,包含 Sensor HAL、Audio HAL、Camera HAL、Android 多媒體框架、Stagefright,以及 Android Framework 軟體工程等主題。
— Moko365 Team
Course Overview

AF102 是 AF101 的延續,進一步深入 Android 子系統

AF101 建立 Android HAL 與 Framework 的整體架構。AF102 延續這條主線,進入產品開發常用子系統。課程解析每個子系統的架構、設計與原理。

課程整理 Android 產品開發的實務主題。內容涵蓋 Sensor HAL、Audio HAL、Camera HAL、Android Multimedia、Stagefright、Graphics 與 Framework 軟體工程。

本課程延續 Jollen 的教學方式。課程涵蓋實作步驟、設計原因與架構判斷。AF102 將 Android 架構能力推進到子系統與產品實作。

Six Themes

理解 Android 行動裝置開發,就要深入這六個核心主題

Sensor HAL

從 Data API、Control API、SensorManager 與 SensorService 出發,分析 Sensor HAL 的設計、資料流與 Android 5.0 的子系統重構。

Audio HAL

分析 Audio HAL、AudioService、AudioFlinger、ALSA Drivers、MediaPlayer 與 MediaRecorder 的架構與設計。

Camera HAL

理解 Camera HAL、CameraService、V4L2、Video Streaming 與 Binder Shared Memory,建立 Camera 子系統的實作觀念。

Multimedia

從 MediaPlayerService、OpenCore、OpenMAX、PVPlayer 到 Stagefright 與 AwesomePlayer,理解多媒體框架的演進與設計。

Graphics

分析 View & Graphics 系統、Composition、SurfaceFlinger、gralloc、copybit、GPU 與硬體加速的實作脈絡。

Software Engineering

從 SOLID、IoC、FSM、Refactoring、Design Patterns 與 OOAD 切入,理解 Android Framework 的軟體工程基礎。

Methodology

以軟體工程方法分析 Android 子系統

AF102 從軟體工程角度介紹 Android 子系統的架構、設計與原理。Sensor、Audio、Camera 與 Multimedia 共同建立一套可延伸的分析方法。

學習重點涵蓋 HAL 移植、Native Code 串接與 Service 呼叫。課程同時解析資料流、類別設計、模組責任、Refactoring 與新設計的形成原因。

最後一天進入 Graphics Subsystem 與 Framework 軟體工程分析。內容建立 Framework 架構師需要的軟體工程視角。

Course Legacy

課程歷史

AF102 來自長期企業內訓經驗。課程於 2013 年推出公開課,並在 2014 年 12 月 09 日完成第四版內容。第四版涵蓋 Android 5.0 與子系統設計分析。

里程碑

內訓累積期

本課程源自多門企業內訓內容整合而成,正式推出公開課前,已累積超過 5 年的內訓經驗,並整合現有 5 門課程的核心主題。

2013 年

AF102 正式推出公開課,仕橙版第 01 期於 2013 年 05 月 18 日在台北結訓,將 Sensor、Audio、Camera、Multimedia 與 Framework 軟體工程整理為完整主線。

2014 年

課程於 2014 年 12 月 09 日完成第四版內容,涵蓋 Android 5.0、子系統設計與重構分析。

2017 年

仕橙版第 06 期於 2017 年 07 月 23 日結訓,代表這門課已從長期內訓主題,發展成成熟的公開課與企業內訓課程。

開課與內訓記錄(部份摘錄)

  • 2017 年 07 月 16、22、23 日:仕橙版第 06 期公開課(台北)。
  • 2016 年 07 月 24、30、31 日:仕橙版第 05 期公開課(台北)。
  • 2015 年 09 月 05、12、13 日:仕橙版第 04 期公開課(台北)。
  • 2015 年 01 月 24、31、02 月 01 日:仕橙版第 03 期公開課(台北)。
  • 2014 年 05 月 03、17、18 日:仕橙版第 02 期公開課(台北)。
  • 2013 年 05 月 04、11、18 日:仕橙版第 01 期公開課(台北)。
  • 公開課推出之前,本課程已累積近 5 年企業內訓經驗。

AF102 的內容來自 Android 產品開發與企業內訓經驗。課程持續整理子系統實作方法。

Who Should Attend

適合對象

  • 已具備 AF101 或同等 Android 架構基礎的工程師
  • 從事 Sensor、Audio、Camera、Multimedia 或 Graphics 開發的研發人員
  • 需要深入 Android 子系統的 BSP / Platform 工程師
  • 想從子系統角度進修 Android Framework 的資深工程師
  • 需要建立子系統分析能力的企業研發團隊
Prerequisites

先備知識

  • 看得懂 Java 與 C 語言
  • 具備基本的 Linux 終端機環境操作能力
  • 建議先修 AF101 或已有 Android HAL / Framework 基礎
Course Outline

課綱總覽

標準版保留 3 天完整主線;企業版則可濃縮為 2 天,或依產品型態客製化調整。

3 天標準版

第 1 天
  • 第 01 堂課:Sensor HAL 設計與實作
  • 第 02 堂課:Audio HAL 設計與實作
第 2 天
  • 第 03 堂課:Camera HAL 設計與實作
  • 第 04 堂課:Android Multi Media 設計與實作
第 3 天
  • 第 05 堂課:Android Graphics Subsystem 架構解析
  • 第 06 堂課:Android Framework 軟體工程分析

2 天企業版

第 1 天
  • Sensor HAL:Data / Control API、SensorService、資料傳遞與 Refactoring
  • Audio HAL:AudioService、AudioFlinger、ALSA Drivers 與 Stream-in / Stream-out
  • Camera HAL:CameraService、V4L2、Binder Shared Memory
第 2 天
  • Android Multimedia:MediaPlayerService、OpenCore、Stagefright、AwesomePlayer
  • Graphics Subsystem:SurfaceFlinger、Composition、gralloc、GPU 加速
  • Framework 軟體工程:SOLID、IoC、FSM、OOAD、Refactoring

企業內訓可依產品型態與團隊背景,調整 Sensor / Audio / Camera / Multimedia / Graphics 的授課比例。

Enterprise Customization

客製企業版建議

AF102 很適合依產品需求重新分配比重。保留子系統主線,再依團隊最常面對的問題決定深度與比例。

版本 A:多媒體 / 音訊產品導向

加強 Audio HAL、MediaPlayerService、OpenCore、Stagefright、AudioFlinger 與 Codec 架構,適合多媒體播放器、錄音、語音與音訊產品團隊。

版本 B:Camera / Vision 產品導向

加強 Camera HAL、CameraService、V4L2、Binder Shared Memory、資料交換與串流路徑,適合相機、影像與視覺產品團隊。

版本 C:Sensor / IoT 裝置導向

加強 Sensor HAL、Data API / Control API、Polling、同步機制與資料傳遞,適合感測器、IoT 與裝置資料整合團隊。

版本 D:Framework 架構師導向

加強 Graphics、Framework 軟體工程、SOLID、FSM、OOAD、Refactoring 與主子系統設計,適合資深工程師、架構師與 Team Lead。

Learning Path

AF102 與 AF101 的課程關係

AF102 延續 AF101。AF101 建立 Android HAL、Binder、Android Service、HIDL 與 Framework 主幹架構。AF102 從子系統角度深入 Sensor、Audio、Camera、Multimedia 與 Graphics。課程適合具備 Android HAL / Framework 基礎的工程師。

Prerequisite

AF101:先建立主幹架構與共同語言

若團隊尚未完整理解 HAL、Binder IPC、Manager API、Native Service、HAL Server 與 Sensor HAL 的主線,建議先修 AF101,再進入 AF102,學習效果會更完整。

Advanced Track

AF102:把主幹架構延伸到產品子系統

AF102 延伸 AF101 的 HAL 與 Framework 架構。內容聚焦多媒體、相機、感測器、顯示與 Platform 子系統。

Jollen Chen
Jollen
Moko365 講師暨技術總監
Instructor

長期投入 Linux、Android 與系統軟體架構教學

Jollen 在 Embedded Linux 與 Linux Device Driver 有超過 20 年的研發與企業內訓經驗,在 Android Framework 軟體架構方面,也有 15 年的授課經驗,並長期在科技業擔任 Linux & Android 技術顧問。

Jollen 多次於 Linux 基金會 Open Source Summit 發表演說。2017 年起,他在歐洲與加拿大發表區塊鏈與去中心化 IoT 架構論文,並獲 ACM SIGBED Review 刊登。2016 年,Jollen 創辦 Flowchain 基金會,開發原創區塊鏈作業系統技術並取得多項國際專利。

AF102 由長期從事 Linux、Android 與系統軟體架構工作的講師主講。Sensor、Audio、Camera、Multimedia、Graphics 與 Framework 軟體工程形成完整學習主線。

Enterprise Inquiry

從 Android 子系統切入,建立更完整的產品開發能力

若您的團隊已具備 Android HAL / Framework 基礎,並希望進一步深入 Sensor、Audio、Camera、Multimedia、Graphics 或 Framework 軟體工程,AF102 可作為 2 天或 3 天的企業內訓版本,依產品型態調整授課重點。

聯絡方式建議
  • 索取企業內訓簡章
  • 安排課前需求訪談
  • 確認 2 天版或 3 天版
  • 依產品型態調整子系統案例與授課比例