標籤:
在軟硬整合領域, Android以其對軟體和硬體的高度開放性引領了當今的軟硬整合潮流,全世界進行中一場轟轟烈烈的Android運動,Android以不可思議的速度滲透越來越廣的領域,Android智能手機、Android智能電視、Android微波爐、Android平板電腦、Android智能機器人、Android車載系統等越來越多的Android產品湧入人們的工作和生活中,自從Google的[email protected]戰略發布以來,更是讓世界對Android充滿了怦然心動的期待,可以預測,未來的家庭智能化和物聯網時代將是Android的天下!
誰,將成為軟硬整合時代的新主人?
誰,將徹底掌握Android從底層開發到架構整合技術在到上層App開發的全部技術?
誰,將徹底洞悉HTML5的技術源泉和精髓,進而在HTML5遊刃有餘?
恭喜你,當別人還在霧裡看花,你卻有機會徹底掌握Android軟、硬、雲整合技術。
這是一次徹底的Android架構、思想和實戰技術的洗禮。
徹底掌握Andorid HAL、Android Runtime、Android Framework、Android Native Service、Android Binder、Android App、Android Testing、HTML5技術的源泉和精髓等核心技術,不僅僅是技術和代碼本身,更重要的是背後的設計思想和商業哲學。
聰明如你,請儘快研習。
一、課程特色
l 貫通Android軟硬整合和HTML5端雲整合技術整個體系;
l 全程案例驅動,重在剖析案例代碼背後的設計思維和商業密碼;
l 徹底掌握Android HAL的背後的密碼;
l 徹底掌握Android HAL的實現機制和技術
l 徹底掌握Android Framwork的背後的密碼
l 徹底掌握Android Framwork的設計思維和理念
l 揭秘Android系統的啟動並執行基石Binder
l 以Camera執行個體來徹底剖析Native Service和Binder
l 徹底實戰編寫Andorid應用程式的一切技術
l 掌握HTML5技術的源泉和精髓
二、培訓對象
l 對Android軟硬整合感興趣的人員;
l 希望迅速瞭解和掌握Android應用和底層技術的人員;
l Android底層開發人員;
l Android架構設計和開發人員;
l Android產品架構師;
l Android系統架構師;
l Android應用程式開發人員;
l 欲從事HTML5系統工作的人員(瀏覽器的開發、PhoneGap的的Plugin開發等)
l 希望從事移動終端開發的愛好者、工程師、程式員、以及相關行業的工程技術人員
三、 培訓目標
l 致力於打造在軟硬雲整合時代具有獨立思考能力和實踐能力的高素質IT人才;
l Android進階工程師
l Android移植工程師
l Android架構開發工程師
l Android專案經理
l Android架構師
l HTML5系統架構和開發人員
四、學員基礎
1) 具有Java基礎;
2) 具有C和C++基礎更佳;
3)對設計模式有所有瞭解對提升聽課效果會大有裨益;
五、專家團隊
王家林老師(聯絡郵箱[email protected] 電話:18610086859 QQ:1740415547 號:18610086859)
王老師:致力於HTML5和Android軟、硬、雲整合,精通Android安全。
一直關注HTML5的發展動態和技術實現,擅長HTML5的Web開發、HTML5的遊戲開發、HTML5和本地的軟硬整合進階技術、HTML5與雲端運算。
國內最早(2007年底)從事於Android底層研究和開發、HAL和應用程式框架研究與開發、應用程式軟體開發和創業技術人員之一。精通Android體系架構,精通企業級Android應用開發實戰,對Android架構的原理、IoC、設計模式有深刻獨特的理解,精通C/C++組件通過JNI調用移植成為Android應用程式框架的核心組件,擅長修改應用程式框架,擅長Android平台的移植工作。精通C指標。精通JPA、Struts、Spring、MySQL, 熟練LAMP技術。
成功對包括三星、華為等世界500強企業實施Android底層移植、架構修改、應用開發等培訓、對平安金融、英特爾等成功實施HTML5系列技術的培訓;
六、培訓方式
本課程共計3天,內容涵蓋Android底層、Android HAL、Android Runtime、Android Framework、Android Native Service、Android Binder、Android App開發、Android的Web開發等軟硬雲整合的的幾乎所有核心技術並揭秘HTML5技術的源泉和精髓,致力於打造在軟硬雲整合時代具有獨立思考能力和實踐能力的高素質IT人才;授課是以案例驅動為基礎重在講解代碼背後的設計思維和商業密碼;
七、培訓內容
第一天 |
第1個主題:Android架構揭秘 1,1 Google是如何通過Android支援、掌控全球的硬體廠商和應用程式開發人員的? 1,2 Android控制力的源泉是什嗎?技術上如何?? 1,3 Android的Linux Kernal、HAL、Libararies、Runtime、Application Framework設計的理念和實現技術; 1.4 Android平台與硬體、雲的微妙關係; 第2個主題:Android開機流程揭秘 2,1 第一個使用者進程剖析; 2,2 ServiceManager與Binder的關係; 2,3 Zygote揭秘及其運作方式; 2,4 Android中的第一個Java進程揭秘,第一個Java進程和ServiceManager的關係及代碼實現; 第3個主題:Android中啟動一個新的應用程式揭秘 3,1 當我們觸摸Android螢幕中Launcher上的一個應用程式的表徵圖的時候到底發生怎樣的調用過程? 3,2 應用程式的執行入口到底在哪裡? 3.3 一個新的Android應用程式的進程到底是怎麼產生的? 第4個主題:HAL揭秘 4.1 HAL被加入Android中的真正曆史原因分析 4.2 HAL的意外價值揭秘 4.3 HAL的Stub 4.4 hw_module_t與hw_device_t 4.5 C語言如何?繼承來滿足HAL Stub的設計目的?包括記憶體結構分析和代碼風格討論等 4.6 如何避免HAL Stub實現時的Dirty Code? 第5個主題:HAL Stub實戰 5.1 用物件導向的思想分析、設計、實現Stub 5.2 hw_module_t的子類和hw_device_t的子類的關係以及這種關係的優勢 5.3在結構體中如何?C函數的調用?hw_module_t的子類在代碼中又是如何和hw_device_t的子類互動的? 5.4 類型轉換問題 第6個主題:HAL和Linux Kernel 6.1 HAL Stub訪問和控制硬體 6.2 Android下的Linux Kernel剖析 6.3 Android 硬體的Driver 6.4 訪問Linux核心空間的Driver 第7個主題:Service與HAL Stub整合 7.1 以面向服務的觀點和方式與HAL互動 7.2 Library的中so庫檔案的類型及C/S結構剖析 7.3 hw_get_module 7.4 擷取HAL Stub對象的代碼流程剖析 7.5 為何HAL Stub的open方法必須提供supporting API(對裝置的操作介面)給runtime; 第8個主題:Service、ServiceManager和Binder互動關係揭秘 8.1 Binder的第一號服務是誰?為何要這樣設計和實現? 8.2 如何編寫Service 8.3 新的Service產生與ServiceManager和Binder互動流程 8.4 如何擷取一個Service? 8.5 Binder的生產者與消費者模式剖析 |
|
時間 |
內 容 |
備忘 |
第二天 |
第9個主題:Binder與Shared Memory 9.1 Binder原始碼剖析 9.2 Shared Memory剖析 9.3 Binder是如何使用共用記憶體來完成處理序間通訊的? 9.4 從代碼的角度來分析Binder使用Shared Memory的生產者與消費者模式 第10個主題:Dalvik VM 10.1 Dalvik VM的特點,Dalvik VM和JVM的比較 10.2 Dalvik VM的記憶體分布及OOM(Out of Memory)的根本原因和解決方案是什嗎? 10.3 Preload Classes和 Preload Resources,ClassLoader到底在哪裡? 10.4 Dalvik與Java和C/C++ 第11個主題:Android中的JNI編程 11.1 Java調用C/C++ 11.2 JNIEnv、JVM、JObject揭秘 11.3 C/C++建立Java對象、調用Java屬性和方法 11.4 JNI中的多線程編程 11.5 Facade Pattern在JNI中絕妙應用剖析 11.6 PnP(Plug and Play) 第12個主題:Android中的NDK編程 11.1 NDK與JNI關係揭秘 11.2 NDK開發的流程 11.3 採用NDK方式開發出的程式安裝和啟動並執行內幕 11.4 NDK中的Java與C/C++相互調用 11.5 NDK中的多線程編程 11.6 關於Android軟體開發的標準化和可替換性揭秘 第13個主題:SystemServer與Framework中的Service 13.1 Zygote與SystemServer 13.2 SystemServer開啟Java世界的過程揭秘 13.3 Android Service和Native Service是如何關聯起來的? 13.4 Android Service與ServiceManager 13.5 如何把自己的服務加入到ServiceManager中? 第14個主題:把Java寫的 Service加入到Applciation Framework中 14.1 IInterface與CTS 14.2 Binder 14.3 AIDL 14.4 Java Service與Manager 14.5 SystemServer、ServiceManager 第15個主題:Android架構移植移植時的事件驅動機制 15.1 Android Service是如何應對硬體阻塞的? 15.2 開闢新的子線程並不斷的poll 15.3 Listener註冊 15.4 Callback 15.5 Application Framework中的Handler、Message、Looper、MessageQueue、 15.6 事件驅動機制執行個體 第16個主題:Manager、Service和完整的資料流 16.1,Manager和Service分離的原則 16.2,ANR問題 16.3,阻塞式的操作和非阻塞式操作 16.4,以執行個體說明Android中的從最底層到最上層的資料流 第17個主題:Android軟、硬、雲三位一體整合 17.1 從技術角度揭秘雲,包括雲的關鍵技術和實現方法 17.2 在Native Service中整合Android與雲 17.3 在Application Framework中整合Android與雲 17.4 Android軟、硬、雲三位一體整合,包括模式、策略、實現技術 |
|
時間 |
內 容 |
備忘 |
第三天 |
第18個主題:Android Application Framwork和App的關係 18.1 Framework和App的具體關係是什嗎? 18.2 Framework和App的互動過程? 18.3 Framework如何掌控App的? 18.4 Framework與Android的四大組件; 第19個主題:Android Application Framwork和App的關係 19.1 Framework和App的具體關係是什嗎? 19.2 Framework和App的互動過程? 19.3 Framework如何掌控App的? 19.4 Framework與Android的四大組件; 第20個主題: Handler、Looper、Message、MessageQueue 20.1. Android的事件驅動模型 20.2. Looper、MessageQueue、Hanlder、Message等源碼深度剖析 20.3. Looper、MessageQueue、Hanlder、Message及多線程實戰案例 第21主題:AsyncTASK非同步線程技術 21.1. 使用AsyncTask的原因及對AsyncTask的思考 21.2. AsyncTask程式碼範例 21.3. AsyncTask源碼剖析 第22個主題:Android測試 22.1.Android代碼測試的好處,測試的方式 22.2.JUnit架構解析 22.3.測試案例的生命週期 22.4.自動化測試 22.5.源碼剖析 第23個主題:廣播接受者BroadcastReceiver,簡訊監聽器案例(接受到簡訊後上傳到伺服器或發送到指定的號碼或者發送到指定的郵件中) 23.1.剖析廣播接收者,與JMS的比較,廣播接受者的IoC原理 23.2.簡訊監聽Android用戶端 23.3.伺服器端搭建 23.4.通過網路把接收到的簡訊上傳到伺服器 23.5.把接收到的簡訊發送到指定的手機號碼或者郵件中 23.6.BroadcastReceiver的的生命週期和注意事項以及5秒鐘生命回應時間的解決方案 第24個主題:服務Service,電話監聽器(每次開機的時候自動開機,電話來時錄音並上傳到伺服器) 24.1.詳細剖析Service 24.2.構建電話監聽的Service 24.3.使用BroadcastReceiver監聽開機事件,並在開機時啟動電話監聽的Service 24.4.上傳音頻檔案到伺服器 24.5.關於Android安全體系的思考 第25個主題:ContentProvider背景、用途,如何構建ContentProvider,UriMatcher,ContentUris,對CotentProvider進行單元測試、原始碼分析 25.1.ContentProvider背景、用途 25.2.構建ContentProvider的詳細步驟 25.3.對URI的徹底剖析 25.4.分析UriMatcher,ContentUris 25.5.對ContentProvider的業務層代碼進行單元測試 25.6.ContentProvider的原始碼剖析 第26主題:基於通訊錄的開發 26.1. 通訊錄的資料庫和資料表分析 26.2. 通訊錄ContentProvider的源碼剖析 26.3. 擷取所有的連絡人資訊 26.4.新增連絡人... 26.5.如何處理添加通訊錄記錄時的事物問題 第27個主題:斷點續傳(一)類似迅雷的多線程下載器(適用於任何類型的檔案下載) 27.1,多線程下載斷點續傳原理和流程圖 27.2,下載檔案時Http協議協議詳解 27.3,多線程下載斷點續傳程式:設計服務端和Android端 27.4,Android端的內容涉及IoC、多線程、SQLite資料庫、Handler、Http協議、緩衝處理、意外關機時候的處理、編寫架構、MVC、Service、Android中的I/O流、代碼調試、Activity的生命週期等 27.5,單元測試 27.6,軟體調試 第28個主題:斷點續傳(二)多線程斷點檔案上傳器(適用於任何類型的檔案上傳) 28.1,斷點續傳原理和流程圖 28.2,上傳檔案的Http協議詳解 28.3,自訂自己的檔案傳輸通訊協定 28.4,服務端程式的編寫:檔案的下載與即時資料的記錄、監聽模式、亂碼問題的處理、並發問題、駭客安全問題 28.5,用戶端程式的編寫:Android記憶體溢出問題,Android中的Socket編程、大檔案的傳輸、大檔案傳輸時候的安全問題 28.6,單元測試 28.7,軟體調試 第29個主題:Android用戶端表單資料的上傳 29.1,上傳基本的資料類型 29.2,上傳圖片等附件 把代碼重構為能夠上傳任意數量的欄位和任意數量的附件的工具類 第30個主題:Android中Java與WebView中Javascript相互溝通 30.1,製作Android介面的新大陸 30.2,Java調用Javascript 30.3,Javascript調用Java 第31個主題:瀏覽器開發和自訂 31.1 瀏覽器定製和開發的核心原理剖析 31.2 瀏覽器定製和開發的技術手段剖析 31.3 瀏覽器定製和開發實戰 第32個主題:HTML5時代:Device、Browser、Cloud 32.1 HTML5時代誰最重要? 32.2 HTML5與Device 32.3 HTML5與Cloud 32.4 什麼主導了HTML5時代? |
|
Android軟硬整合設計與架構揭秘: HAL&Framework &Native Service &App&Browser架構設計與實戰開發