|
◆課程簡介
1 F+ G7 n( g t" o. U2 H 本課程為Android系統整合的兩門核心課程中的第二門,旨在探討Android使用者空間軟體堆疊中的“原生共享函式庫層”與“框架層”於驅動程式架構中所扮演的角色與其設計方式,課程目標在於協助學員熟悉其運行原理與實作方法,使能對Android/Linux框架底層技術快速且完整地瞭解,以結合核心驅動程式,設計完整的Android驅動程式。為Android系統產品開發打下堅實基礎。
+ A" u- S' t9 Q 課程首先介紹Android/Linux作業系統完整的驅動程式架構,並回顧核心驅動程式的設計方式,接著介紹使用者空間裝置控制的概念與框架於裝置控制的角色,說明框架如何透過JNI介面及Android NDK實現Android原生函式庫並藉以調用核心驅動程式;之後將詳細說明Android框架服務與硬體服務、Android裝置控制模型與服務導向式裝置管理、以及使用Binder行程間通訊與AIDL提供應用程式元件與框架服務進行服務請求與溝通之方式,最後將引入Android硬體抽象層(HAL)設計架構,並以實例說明傳統Android裝置控制方式與使用HAL架構的差異並討論其優缺。& K P u; c' S+ M# i; p9 P
課程中將使用最接近實際ARM處理器平台的 Android 模擬器進行各主題的實作,讓學習者可隨時隨地只需使用個人電腦即可進行實務演練,以達到最佳的學習效果。 學員可自備筆記型電腦(雙核心以上機種,配備2GB以上記憶體為佳) ,方便保留並攜回所建置的環境與實作成果,作業系統與軟體需求部分,建議以Ubuntu為主,請先安裝sun-java6-jdk。若使用其他作業系統,請安裝 VirtualBox虛擬機環境。我們將提供已安裝開發環境的Ubuntu映像檔。建議修課條件:具備C/C++基礎;同時具備Java程式設計、Android應用程式基礎者為佳。* I' s, w7 g$ {7 l: I: y$ E
3 t" G* p* A! Z( _
◆日期:101年7月19~20日(四~五)09:30~17:30(每天7小時,計2天14小時)
# v6 V: r& e1 N5 {/ k5 |9 }; c" b5 M6 t6 `$ ]# f& Q
◆地點:新竹市光復路二段295號3樓恆逸資訊電腦教室(位於工研院光復院區旁之帝國經貿大樓上)
0 S# O7 I: Q4 x6 r% `0 F. }( q+ b0 S N4 k
◆講師:國立台北科技大學資工系專任助理教授 梁文耀博士5 G# a* ^2 I, E) L8 G
學/經歷:國立台灣大學資訊工程系博士。曾任美商Avant!公司(股)軟體工程師、晶慧資訊(股)研發副總經理、聚興科技(股)公司研發處協理。擁有近20年Linux系統軟體開發經驗,以及逾10年Embedded Linux系統核心與應用開發經驗。自2007以來即投入Android系統的研發工作。研究專長包括Android/Linux、嵌入式系統、低功耗軟體設計以及平行與分散式系統。自2012年八月起,將專職擔任Android/Linux與嵌入式系統獨立技術顧問, 提供產品開發商技術諮詢服務與專業培訓工作。
' K4 i1 Z- J+ l5 B1 s4 H9 \7 m- z, d8 Y5 ^- Y4 n) H
◆課程內容
' K7 \& ^8 p5 t, q(1)Android 驅動程式架構導論2, S1 Z+ V: A2 L E* W3 |! K, D
- Android/Linux 驅動程式概觀 U8 }5 l/ [3 f/ A6 `" B
- Android 框架與使用者空間驅動程式架構8 _. Q# j" t$ K, j* j
- 核心空間與使用者空間驅動程式之關係與比較8 M; k2 @3 o/ t2 _1 g
- 開發環境建置9 }3 f1 x$ \- P9 y
- Android 源碼與編譯系統簡介: t @! n( C3 B c2 m1 Z2 r
- 核心驅動程式回顧
2 h3 y2 j: Q% a! U. L: K- 虛擬數值運算處理器驅動程式編譯與執行; c% E7 A$ F: M! t
(2)Android 使用者空間驅動程式控制& H+ w8 h+ }, `4 ^$ H. y7 U
- Android 使用者空間裝置驅動方法
6 t( Q6 [7 s% I2 f m* v/ d) g- S- 使用者空間裝置控制程式範例
8 T: p; O/ c, }0 t0 @; F. Q5 ?- Android 框架程式開發
# F2 n! C0 @* H L. Q+ j% X; [8 O1 l- 框架程式範例實作
* C4 P3 l# b1 ^, R! l& M- 原生共享函式庫% C* e7 C( z9 p! V
- Android NDK 開發工具
% ]/ U& l% i6 q5 G- 原生程式碼開發
' r7 g2 p/ u h# Q' M1 Y$ H: g- HelloJNI範例編譯與測試 $ y2 L& s5 T u; `- @/ c/ l/ {3 S
- JNI原生碼調用介面
, t& v) \6 M9 c+ ]5 a* n4 X |- 以原生碼執行數值運算之Android應用程式
7 ~% r& [0 o' K# p- 連結Android原生程式與驅動程式" A" ~2 N Z' l
- 以原生共享函式庫控制虛擬數值運算器驅動程式
4 q" D7 b0 }7 l1 N; m# k. h- Q&A
3 U7 F" b. L4 n& s4 {" m(3)Android 框架與驅動程式整合! k; M2 g4 Y* R! |6 ?2 R8 D
- Android 與 Linux 裝置控制方式比較
7 h. Z, T: k) O& P- Android 框架服務與硬體服務 H3 `) O& ~% m w" i
- Android 裝置控制模型與服務導向式裝置管理8 \7 r9 Q( t) ?3 ?, m0 Q
- 框架服務程式範例實作7 e# U7 @7 g1 N: {4 f8 F! r
- Binder 行程間通訊與AIDL
8 L) v2 \2 t- z( N; _, C+ ]" t$ p( N- 以Android框架服務實現之數值運算服務程式/ Y8 j9 Q3 `# {* x
- Android 系統服務與服務管理方式
+ d% q- q+ l. `9 [# K! l6 Y- Android 硬體服務實例研究& p+ u' p2 p, S
- 結合虛擬數值運算器核心驅動程式之硬體服務實作
9 \! a: {; |8 Q(4)Android HAL 硬體抽象層
) | S8 t3 w9 ]% q) K9 j8 G- 硬體抽象層簡介
+ |5 b% }) u9 `/ ~/ f5 V" D( ^- Android 使用者空間硬體抽象層 (HAL) 架構
/ R4 S: J* g& R; Q6 Y- Android HAL 介面定義與 HAL Stub及 HAL Module8 e& |* v9 E: \6 T
- Android 硬體抽象層實例研究
) M: f, t, m# n+ q/ O! y- 虛擬數值運算器 HAL Stub範例
" F' W, H, ]6 o) a+ t6 Y- 虛擬數值運算器HAL Module 範例& z: D* G# y) I6 ]6 `4 q
- Android HAL 範例編譯與執行
. u- E9 T4 a. _3 E3 D2 R- Q&A
" L* C% s c- }5 X: H/ N; e1 I5 H6 [2 \: z% [
◆報名方式; y" ~. [5 y3 t V) V% X1 V9 d
(1)傳真報名:請註明「課程名稱/公司名稱∕統一編號∕聯絡地址∕參加者姓名∕部門∕電話∕傳真號碼」等資料後,傳真至03-5743838,聯絡人:陳小姐03-574 3706、羅小姐 03-574 3703。額滿截止。
' R8 t0 I3 t1 U2 F" ^+ j7 X2 J(2)網路報名網址http://www.nml.org.tw/training.orig/course/course_details.php?id=011259 t; c& F: ~0 b5 k
(3)E-mail報名或索取簡章信箱:請註明「課程名稱/機構名稱∕統一編號∕聯絡地址∕參加者姓名∕部門∕電話∕傳真號碼」等資料後,傳送至:chenhsiouyun@itri.org.tw2 \) V! N% V* T' c7 I
(4)課前一週以E-mail與傳真方式傳送上課通知單。 ; m" U! p& L+ G1 ?, c* l5 g
《工業局通訊專業技術人才發展分項計畫》
% i/ a7 T0 {1 M& O主辦單位:經濟部工業局
$ O% M$ {; T+ d執行單位:工業技術研究院量測中心 |
|