Android Framework & HAL軟硬整合技術班
Android 已成(cheng)為重要的(de)(de)手持(chi)裝置操作(zuo)系(xi)統,為協助國內企(qi)業(ye)快速掌握Android作(zuo)業(ye)系(xi)統的(de)(de)技(ji)(ji)術(shu),并建立(li)團(tuan)隊技(ji)(ji)術(shu)能力,以提升企(qi)業(ye)產(chan)品(pin)開發的(de)(de)能力,是(shi)特別(bie)針對產(chan)品(pin)開發所涉(she)及的(de)(de)Android底層技(ji)(ji)術(shu)所細心規(gui)劃的(de)(de)必要課程(cheng),內容特別(bie)針對設(she)計(ji)原理與實(shi)(shi)作(zuo)細節(jie)進行說明,課程(cheng)深入(ru)淺出(chu),以至簡方(fang)式介紹(shao)實(shi)(shi)務Android框(kuang)架與底層技(ji)(ji)術(shu)的(de)(de)課程(cheng)。旨(zhi)在(zai)培養出(chu)一批真正的(de)(de)能在(zai)Android領域可以實(shi)(shi)戰和(he)馳(chi)騁(cheng)的(de)(de)高端人才。
一(yi)、培訓目標(biao)
1)建立開(kai)發Android產(chan)品的(de)正確觀(guan)念(nian)
2)建立開發(fa)框架的實務(wu)能(neng)力
3)建立開發HAL驅動模塊的實務能力
4)撰寫品質良好的代碼
二、培訓對象
1) 希望迅(xun)速了解和掌握Android底(di)層技術的人(ren)員;
2) 希望從事移動終端開發的愛好者、工程師、程序員、以及相關行業的工程技術人員
三、教學大綱
第一階段 Android OS 開發環境建立與編譯
1.1 Android 框架(framework)架構介紹
1.2 如何取得Android原始碼
1.3 Android product 分支建立
1.4 編譯 ARMv5+Android系統(image制作)
1.5 使用Android emulator
1.6 Vanilla Kernel & Android kernel 編(bian)譯
第二階段 HAL技術詳解
2.1 HAL的意義與二進位佈署(Binary File Deploy)
2.2 Service 與 Manager 的意義與用途
2.3 Libhardware 與 HALAPL
2.4 Stub & Module的觀念
2.5 專(zhuan)題討論:定義(yi)并選(xuan)寫(xie)第一個HALStub
第三階段 HAL Development
3.1 HAL Stub Analysis and Design (OOAD)
3.2 HAL Stub Class
3.3 HAL Stub lnterface
3.4 專(zhuan)題(ti)討(tao)論:開發LED的HAL 模組
第四階段 Extend Android APL
4.4 如何加入API至Android Framework
4.2 如何編譯并制作獨立JAR擋
4.3 上機實驗:開發(fa)LedService APL與制作(zuo)mokoid.jar程式庫
第五階段 JNI & Runtime Library
5.1 什么是JNI
5.2 如何選寫JNI & Native Method
5.3 如何制作Android Runtime Library
5.4 專(zhuan)題討論:如何(he)開(kai)發與制作 Runtime Library
第六階段 Android Service
6.1 Android Process 模式
6.2 Component 與 Main Thread
6.3 SystemServer 介紹
6.4 ServiceManager 介紹
6.5 專題討論:SensorManager與SensorService實例(li)
第七階段 SystemService與HAL整合
7.1 IPC Remote method call與Binder觀念說明
7.2 AIDL介紹與llnterface設計觀念解析
7.4 ServiceMamager
7.5 專題討論:LeddService設計與ILedService探討
第八階段 Manager API(Refinement-架構優化)
8.1 SensorManager 與SensorService實例探討
8.2 Remote Object觀念與IBinder介紹
8.3 如何以Proxy Object整合Android Service
8.4 Long operations 的解析與實作細節
8.5 RemoteException 的解析與實作細節
8.6 Handler與Message 的解析與實作細節
8.7 Error Handling
第九階段 分組專題探討
9.1 Example 1:整合驅動程式至Android 框架
9.2 Example 2:選寫Android應用程式以控制LED
9.3 Example 3:標準的Android HAL 架構
9.4 Example 4:Motor HAL Stub