|
◆課程簡介
# a4 y# C+ p" \& T$ u 本課程為Android系統整合的兩門核心課程中的第二門,旨在探討Android使用者空間軟體堆疊中的“原生共享函式庫層”與“框架層”於驅動程式架構中所扮演的角色與其設計方式,課程目標在於協助學員熟悉其運行原理與實作方法,使能對Android/Linux框架底層技術快速且完整地瞭解,以結合核心驅動程式,設計完整的Android驅動程式。為Android系統產品開發打下堅實基礎。* l+ Z# B0 `0 P; h2 j
課程首先介紹Android/Linux作業系統完整的驅動程式架構,並回顧核心驅動程式的設計方式,接著介紹使用者空間裝置控制的概念與框架於裝置控制的角色,說明框架如何透過JNI介面及Android NDK實現Android原生函式庫並藉以調用核心驅動程式;之後將詳細說明Android框架服務與硬體服務、Android裝置控制模型與服務導向式裝置管理、以及使用Binder行程間通訊與AIDL提供應用程式元件與框架服務進行服務請求與溝通之方式,最後將引入Android硬體抽象層(HAL)設計架構,並以實例說明傳統Android裝置控制方式與使用HAL架構的差異並討論其優缺。# o( q2 \& H8 l. A. f4 ^
課程中將使用最接近實際ARM處理器平台的 Android 模擬器進行各主題的實作,讓學習者可隨時隨地只需使用個人電腦即可進行實務演練,以達到最佳的學習效果。 學員可自備筆記型電腦(雙核心以上機種,配備2GB以上記憶體為佳) ,方便保留並攜回所建置的環境與實作成果,作業系統與軟體需求部分,建議以Ubuntu為主,請先安裝sun-java6-jdk。若使用其他作業系統,請安裝 VirtualBox虛擬機環境。我們將提供已安裝開發環境的Ubuntu映像檔。建議修課條件:具備C/C++基礎;同時具備Java程式設計、Android應用程式基礎者為佳。: [/ S: D# O; d/ d; e
1 _2 w2 P5 \" p; f9 f3 f5 l
◆日期:101年7月19~20日(四~五)09:30~17:30(每天7小時,計2天14小時)# C1 t) I/ Y- i
, P% M: F( T2 Q◆地點:新竹市光復路二段295號3樓恆逸資訊電腦教室(位於工研院光復院區旁之帝國經貿大樓上)9 q8 _% s0 X6 H9 H& c o
% [: I9 C" h8 u; }* a$ v& Y
◆講師:國立台北科技大學資工系專任助理教授 梁文耀博士
% i: u* e9 W# Y# y4 o7 ^2 }% [學/經歷:國立台灣大學資訊工程系博士。曾任美商Avant!公司(股)軟體工程師、晶慧資訊(股)研發副總經理、聚興科技(股)公司研發處協理。擁有近20年Linux系統軟體開發經驗,以及逾10年Embedded Linux系統核心與應用開發經驗。自2007以來即投入Android系統的研發工作。研究專長包括Android/Linux、嵌入式系統、低功耗軟體設計以及平行與分散式系統。自2012年八月起,將專職擔任Android/Linux與嵌入式系統獨立技術顧問, 提供產品開發商技術諮詢服務與專業培訓工作。 E E, a8 W2 k3 ?3 v* e, }
% j" a4 ^2 n U◆課程內容# e* D4 {9 Z5 G9 j, ?( x: m* X
(1)Android 驅動程式架構導論27 F2 T+ j7 e0 ~. s6 c/ v) S
- Android/Linux 驅動程式概觀7 X' ~+ A% j; P; z X \
- Android 框架與使用者空間驅動程式架構
: @, t1 F; P* s- 核心空間與使用者空間驅動程式之關係與比較
3 B2 ]' O: _! Y5 k% S( U' M/ z# f- 開發環境建置: p/ ~* y, Q$ Z8 |
- Android 源碼與編譯系統簡介 o. V+ V% ~; e! q" N" a
- 核心驅動程式回顧& ^2 j. Y1 X2 c% j% r7 U
- 虛擬數值運算處理器驅動程式編譯與執行' n2 M. Y6 w2 W3 m' Q7 X+ u
(2)Android 使用者空間驅動程式控制# ?2 R. P/ x$ Y4 }4 U
- Android 使用者空間裝置驅動方法
6 G! @& e5 t& `3 W! y8 Y2 |- 使用者空間裝置控制程式範例
* a2 r" [# I$ |$ x7 y- Android 框架程式開發
. T: j3 U( d9 l5 l$ D. G- 框架程式範例實作
& q. e* T2 a3 y O& `2 Z- 原生共享函式庫$ _3 c+ p2 L9 A. _. `! ]7 ~
- Android NDK 開發工具
+ o/ V( c2 f9 n* Y8 ?2 T7 {1 |' N, E- 原生程式碼開發
/ F+ J7 D. N$ C- HelloJNI範例編譯與測試 $ i( t& P% P/ C
- JNI原生碼調用介面$ X- u' b- v4 a
- 以原生碼執行數值運算之Android應用程式
9 M5 l Y1 z# u! a- 連結Android原生程式與驅動程式# L7 |! F$ r6 U8 O X" T
- 以原生共享函式庫控制虛擬數值運算器驅動程式* `" `# x4 E6 I: S' `$ [7 e
- Q&A
$ V4 |1 A! [* D, p% j# s(3)Android 框架與驅動程式整合% F1 Y" Y. g9 o5 M
- Android 與 Linux 裝置控制方式比較
! p' Q' p) D! ~- ^4 O- Android 框架服務與硬體服務
T& c! `# s" ^% d! _7 l2 q- Android 裝置控制模型與服務導向式裝置管理
, }. d. v/ d$ Q7 R/ W& ?- 框架服務程式範例實作( Q3 k2 ~# `* B
- Binder 行程間通訊與AIDL- B1 P) K6 W* c3 z+ w
- 以Android框架服務實現之數值運算服務程式" l: P4 j" X6 J. ~1 k. R! z
- Android 系統服務與服務管理方式
7 @3 w. [$ ?! ]2 Y- Android 硬體服務實例研究/ e9 \7 T+ P0 \$ G. i- W
- 結合虛擬數值運算器核心驅動程式之硬體服務實作6 [; f) K! F) Q: u) U1 Y# m
(4)Android HAL 硬體抽象層5 ~( z# M# _( j
- 硬體抽象層簡介
4 c+ x" P' [1 W- P4 a' ]5 |- Android 使用者空間硬體抽象層 (HAL) 架構
( E; R1 P8 p5 F% u+ E- Android HAL 介面定義與 HAL Stub及 HAL Module# ^- W3 Y2 K+ a @% Q
- Android 硬體抽象層實例研究% l2 j2 G+ U Z3 ~" }% }$ A, X
- 虛擬數值運算器 HAL Stub範例
+ Y+ x, l6 e* p! R7 a i9 \- 虛擬數值運算器HAL Module 範例
( k3 H4 a; l3 }9 Z- Android HAL 範例編譯與執行( f9 Y* R% F$ l# F0 F) s8 Y
- Q&A
c/ ^- l; Q# y: D# h, l; L
0 b$ J' K. E, V0 ?' c% S◆報名方式
6 q5 w# r; Y' v& j. _' Y5 F(1)傳真報名:請註明「課程名稱/公司名稱∕統一編號∕聯絡地址∕參加者姓名∕部門∕電話∕傳真號碼」等資料後,傳真至03-5743838,聯絡人:陳小姐03-574 3706、羅小姐 03-574 3703。額滿截止。
+ {7 g) r5 e( T3 K! |(2)網路報名網址http://www.nml.org.tw/training.orig/course/course_details.php?id=01125
4 b& }. L2 D# d+ U/ z(3)E-mail報名或索取簡章信箱:請註明「課程名稱/機構名稱∕統一編號∕聯絡地址∕參加者姓名∕部門∕電話∕傳真號碼」等資料後,傳送至:chenhsiouyun@itri.org.tw9 T+ G2 h% I5 L& |% J( e" c9 F6 r" X
(4)課前一週以E-mail與傳真方式傳送上課通知單。
: p. C! ?+ x3 T7 T6 H《工業局通訊專業技術人才發展分項計畫》
' C) y. H- @* F/ _: u4 r主辦單位:經濟部工業局% C9 F" | h# W9 C/ H/ ?
執行單位:工業技術研究院量測中心 |
|