課程特點:掌握Android從底層開發(fā)到框架整合技術到上層App開發(fā)及HTML5的全部技術;一次徹底的Android架構、思想和實戰(zhàn)技術的洗禮;徹底掌握Andorid HAL、Android Runtime、Android Framework、Android Native Service、Android Binder、Android App、Android Testing、HTML5技術的源泉和精髓等核心技術基礎技能:有JAVA語言編程基礎有 C或 C++基礎更佳推薦人群:對Android架構、思想和實戰(zhàn)技術有較強興趣;課程大綱第一周第1個主題:Android架構揭秘1. Google是如何通過Android支持、掌控全球的硬件廠商和應用程序開發(fā)者的?1.2 Android控制力的源泉是什么?技術上如何實現?1.3 Android的Linux Kernal、HAL、Libararies、Runtime、Application Framework設計的理念和實現技術;1.4 Android平臺與硬件、云的微妙關系;第2個主題:Android中的JNI編程2.1 Java調用C/C++2.2 JNIEnv、JVM、JObject揭秘2.3 C/C++創(chuàng)建Java對象、調用Java屬性和方法2.4 JNI中的多線程編程2.5 Facade Pattern在JNI中絕妙應用剖析2.6 PnP(Plug and Play)第3個主題:Android中的NDK編程3.1 NDK與JNI關系揭秘3.2 NDK開發(fā)的流程3.3 采用NDK方式開發(fā)出的程序安裝和運行的內幕3.4 NDK中的Java與C/C++相互調用3.5 NDK中的多線程編程3.6 關于Android軟件開發(fā)的標準化和可替換性揭秘第二周第4個主題:Android開機流程揭秘4.1 第一個用戶進程剖析;4.2 ServiceManager與Binder的關系;4.3 Zygote揭秘及其運作方式;4.4 Android中的第一個Java進程揭秘,第一個Java進程和ServiceManager的關系及代碼實現;第5個主題:Android中啟動一個新的應用程序揭秘5.1 當我們觸摸Android屏幕中Launcher上的一個應用程序的圖標的時候到底發(fā)生怎樣的調用過程?5.2 應用程序的執(zhí)行入口到底在哪里?5.3 一個新的Android應用程序的進程到底是怎么產生的?第6個主題:HAL揭秘6.1 HAL被加入Android中的真正歷史原因分析6.2 HAL的意外價值揭秘6.3 HAL的Stub6.4 hw_module_t與hw_device_t6.5 C語言如何實現繼承來滿足HAL Stub的設計目的?包括內存結構分析和代碼風格討論等6.6 如何避免HAL Stub實現時的Dirty Code?第7個主題:Service、ServiceManager和Binder交互關系揭秘7.1 Binder的第一號服務是誰?為何要這樣設計和實現?7.2 如何編寫Service7.3 新的Service產生與ServiceManager和Binder交互流程7.4 如何獲取一個Service?7.5 Binder的生產者與消費者模式剖析第8個主題:Binder與Shared Memory8.1 Binder源代碼剖析8.2 Shared Memory剖析8.3 Binder是如何使用共享內存來完成進程間通信的?8.4 從代碼的角度來分析Binder使用Shared Memory的生產者與消費者模式第三周第9個主題:SystemServer與Framework中的Service9.1 Zygote與SystemServer9.2 SystemServer開啟Java世界的過程揭秘9.3 Android Service和Native Service是如何關聯起來的?9.4 Android Service與ServiceManager9.5 如何把自己的服務加入到ServiceManager中?第10個主題:把Java寫的 Service加入到Applciation Framework中10.1 IInterface與CTS10.2 Binder10.3 AIDL10.4 Java Service與Manager10.5 SystemServer、ServiceManager第四周第12個主題:Android軟、硬、云三位一體整合12.1 從技術角度揭秘云,包括云的關鍵技術和實現方法12.2 在Native Service中整合Android與云12.3 在Application Framework中整合Android與云12.4 Android軟、硬、云三位一體整合,包括模式、策略、實現技術第13個主題:Android Application Framwork和App的關系13.1 Framework和App的具體關系是什么?13.2 Framework和App的交互過程?13.3 Framework如何掌控App的?13.4 Framework與Android的四大組件;第14個主題: Handler、Looper、Message、MessageQueue14.1. Android的事件驅動模型14.2. Looper、MessageQueue、Hanlder、Message等源碼深度剖析14.3. Looper、MessageQueue、Hanlder、Message及多線程實戰(zhàn)案例第五周第15個主題:ContentProvider背景、用途如何構建ContentProvider,UriMatcher,ContentUris,對CotentProvider進行單元測試、源代碼分析15.1.ContentProvider背景、用途15.2.構建ContentProvider的詳細步驟15.3.對URI的徹底剖析15.4.分析UriMatcher,ContentUris15.5.對ContentProvider的業(yè)務層代碼進行單元測試15.6.ContentProvider的源代碼剖析第16個主題:Android中Java與WebView中Javascript相互溝通16.1,制作Android界面的新大陸16.2,Java調用Javascript16.3,Javascript調用Java第17個主題:HTML5時代:Device、Browser、Cloud17.1??HTML5時代誰最重要?17.2??HTML5與Device17.3??HTML5與Cloud17.4??什么主導了HTML5時代?第18個主題:HTML5開發(fā)平臺—-PhoneGap框架的技術基石是什么?18,1 使用WebView18,2 在WebView中使用JavaScript18.3 創(chuàng)建本地Java API18.4 使用JavaScriptInterface18.5 JavaScript調用Java18.6 Java調用JavaScript18.7 PhoneGap是如何使用JavaScriptInterface的