如何從Linux起步,開發出搭載Android系統而且具有深度定製和軟硬整合能力特點產品,是本課程解決的問題。web
課程以Android的五大核心:HAL、Binder、Native Service、Android Service(並以AMS和WMS爲例)、View System爲主軸,一次性完全掌握Android的精髓。設計模式
之因此是開發Android產品的必修課,緣起於:瀏覽器
1, HAL是Android Framework&Application與底層硬件整合的關鍵技術和必修技術;架構
2, Native Service 對上層來講表明了硬件,是Android底層真正的精髓;框架
3, Android Service是應用程序的控制核心,應用程序的一切行爲均有Android Service掌控;分佈式
4, Binder 是Android系統運行的基石,不掌握Binder就永遠沒法掌握Android;ide
5, View系統的差別化對消費者而言是Android產品核心競爭力之一,蘋果和三星是這方面成功的經典案例;oop
經過Android五大核心的洗禮,從而徹底具有Android系統二次開發和改造能力,測試
進而開發出極具特點的Android產品。大數據
課程特點
創建360度的Android產品研發能力和解決問題的能力,可以獨立開發並深度定製出搭載Android系統的產品;
培訓對象
手機、平板、智能電視、車載系統、智能家居設備(例如微波爐、防盜門、電冰箱)等全部想使用Android的硬件廠商;
想理解Android運行機制的軟件開發者;
學員基礎
能看懂C/C++與Java
王家林老師
Android架構師、高級工程師、諮詢顧問、培訓專家;
通曉Android、HTML五、Hadoop,迷戀英語播音和健美;
致力於Android、HTML五、Hadoop的軟、硬、雲整合的一站式解決方案;
國內最先(2007年)從事於Android系統移植、軟硬整合、框架修改、應用程序軟件開發以及Android系統測試和應用軟件測試的技術專家和技術創業人員之一。
HTML5技術領域的最先實踐者(2009年)之一,成功爲多個機構實現多款自定義HTML5瀏覽器,參與某知名的HTML5瀏覽器研發;
Hadoop源碼級專家,曾負責某知名公司的類Hadoop框架開發工做,專一於Hadoop一站式解決方案的提供,同時也是雲計算分佈式大數據處理的最先實踐者之一,Hadoop的狂熱愛好者,不斷的在實踐中用Hadoop解決不一樣領域的大數據的高效處理和存儲,如今正負責Hadoop在搜索引擎中的研發中國電信的屢次Hadoop培訓,花旗銀行的Hadoop內訓,金立手機的Hadoop內訓等,著有《雲計算分佈式大數據Hadoop實戰高手之路---從零開始》《雲計算分佈式大數據Hadoop實戰高手之路---高手崛起》《雲計算分佈式大數據Hadoop。實戰高手之路---高手之巔》等;
培訓內容
第一天 |
第1堂課: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 1.6 HAL Stub Interface 第2堂課: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 第3堂課: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
|
|
時間 |
內 容 |
備註 |
次日 |
第4堂課: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 第5堂課:Manager API & Context 5.2 getSystemService() 5.3 IPC & AIDL 5.4 IPC with Android Service using Binder Proxy 第6堂課:Native Service 實現完整解析 6.1 使用 IInterface (Java vs C++) 6.2 使用 BnInterface 與 BpInterface 6.4 Implementation of Native Service 6.5 Implement Native Binder Proxy |
|
時間 |
內 容 |
備註 |
第三天 |
第7堂課:Binder 原理與核心架構解析 7.1 Proxy Design Pattern 7.2 .asInterface() 深刻解析 7.3 Linux Binder驅動解析 7.4 BpInterface, Proxy object 與 IPC transaction 7.5 Architect of SensorManager 第8堂課: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 |
|
時間 |
內容 |
備註 |
第四天 |
第9堂課:ActivityManagerService原理與核心架構解析 9.1 AMS的架構解析和main剖析 9.2 AMS啓動一個Process架構解析源碼剖析 9.3 AMS啓動Activity、Service、Broadcast、ContentProvider架構解析與源碼剖析 9.4 Proxy-Stub 第10堂課:WindowManagerService原理與核心架構解析 10.1 WindowManagerService架構解析 10.2 Window建立過程分析 10.3 Activity與WindowManagerService交互 10.4 WindowManagerService下的SurfaceFlinger 10.5 窗口的繪製和改變全程代碼解析 |