班級規模及環境--熱線:4008699035 手機:15921673576( 微信同號) |
每個班級的人數限3到5人,互動授課, 保障效果,小班授課。 |
上間和地點 |
上部份地點:【上海】同濟大學(滬西)/新城金郡商務樓(11號線白銀路站)【深圳分部】:電影大廈(地鐵一號線大劇院站)/深圳大學成教院【北京分部】:北京中山學院/福鑫大樓【南京分部】:金港大廈(和燕路)【武漢分部】:佳源大廈(高新二路)【成都分部】:領館區1號(中和大道)【沈陽分部】:沈陽理工大學/六宅臻品【鄭州分部】:鄭州大學/錦華大廈【石家莊分部】:河北科技大學/瑞景大廈 最近開間(周末班/連續班/晚班):2019年1月26日 |
實驗設備 |
◆小班教學,教學效果好 ☆注重質量☆邊講邊練 ☆合格學員免費推薦工作 ★實驗設備請點擊這兒查看★ |
質量保障 |
1、培訓過程中,如有部分內容理解不透或消化不好,可免費在以后培訓班中重聽; 2、培訓結束后,授課老師留給學員聯系方式,保障培訓效果,免費提供課后技術支持。 3、培訓合格學員可享受免費推薦就業機會。☆合格學員免費頒發相關工程師等資格證書,提升職業資質。專注高端技術培訓15年,端海學員的能力得到大家的認同,受到用人單位的廣泛贊譽,端海的證書受到廣泛認可。 |
部份程大綱 |
|
- 培訓特色
本課程定位于一次性貫通軟硬整合和端云整合思想、方案、技術,以當下最火爆的兩項技術Android和HTML5為核心,以具體技術和代碼來闡述具體思想和和實施方案。
- 目標收益
致力于打造在軟硬云整合時代和端云整合時代具有獨立思考能力和實踐能力的高素質IT人才;
Android高級工程師
Android移植工程師
Android框架開發工程師
Android項目經理
Android架構師
Web開發人員轉移到HTML5時代;
使用HTML5技術重構已有的Web應用;
瀏覽器開發和定制人員;
- 培訓對象
- 對Android軟硬整合感興趣的人員;
對端云整合感興趣的軟院;
希望迅速了解和掌握Android應用和底層技術的人員;
Android應用程序開發者;
Android底層開發者;
Android框架設計和開發者;
Android產品架構師;
Android系統架構師;
希望從事移動終端開發的愛好者、工程師、程序員、以及相關行業的工程技術人員
Web開發人員;
云計算從業人員;
- 學員基礎
- 1)具有Java基礎;
2) 具有C和C++基礎更佳;
3)對設計模式有所有了解對提升聽課效果會大有裨益;
4) 了解HTML、CSS、JavaScript;
- 課程大綱
- 主題 內容
第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個主題:Binder與Shared Memory
- 8.1 Binder源代碼剖析
8.2 Shared Memory剖析
8.3 Binder是如何使用共享內存來完成進程間通信的?
8.4 從代碼的角度來分析Binder使用Shared Memory的生產者與消費者模式
- 第9主題: Handler、Looper、Message、MessageQueue
- 9.1 Android的事件驅動模型
9.2 Looper、MessageQueue、Hanlder、Message等源碼深度剖析
9.3 Looper、MessageQueue、Hanlder、Message及多線程實戰案例
- 第10個主題:把Java寫的 Service加入到Applciation Framework中
- 10.1 IInterface與CTS
10.2 Binder
10.3 AIDL
10.4 Java Service與Manager
10.5 SystemServer、ServiceManager
- 第11主題:Android軟、硬、云三位一體整合
- 11.1 從技術角度揭秘云,包括云的關鍵技術和實現方法
11.2 在Application Framework中整合Android與云
11.3 Android軟、硬、云三位一體整合,包括模式、策略、實現技術
- 第12主題:Android測試
- 12.1 Android代碼測試的好處,測試的方式
12.2 .JUnit框架解析
12.3 測試用例的生命周期
12.4 自動化測試
12.5 源碼剖析
- 第13主題:斷點續傳
- ★ 類似迅雷的多線程下載器
13.1 多線程下載斷點續傳原理和流程圖
13.2 下載文件時Http協議協議詳解
13.3 多線程下載斷點續傳程序:設計服務端和Android端
13.4 Android端的內容涉及IoC、多線程、SQLite數據庫、Handler、Http協議、緩存處理、意外關機時候的處理、編寫框架、MVC、Service、Android中的I/O流、代碼調試、Activity的生命周期等
13.5 單元測試
13.6 軟件調試
★ 多線程斷點文件上傳器
13.7 斷點續傳原理和流程圖
13.8 上傳文件的Http協議詳解
13.9 自定義自己的文件傳輸協議
13.10 服務端程序的編寫:文件的下載與實時數據的記錄、監聽模式、亂碼問題的處理、并發問題、黑客安全問題
13.11 客戶端程序的編寫:Android內存溢出問題,Android中的Socket編程、大文件的傳輸、大文件傳輸時候的安全問題
13.12 單元測試
13.13 軟件調試
- 第14主題:瀏覽器開發和自定義
- 14.1 瀏覽器定制和開發的核心原理剖析
14.2 瀏覽器定制和開發的技術手段剖析
14.3 瀏覽器定制和開發實戰
- 第15個主題:HTML5 架構思維
- 15.1 All in JavaScript
15.2 Architect of Device & Cloud
15.3 Open Platform & API
- 第16主題:Android中Java與WebView中Javascript相互溝通
- 16.1 制作Android界面的新大陸
16.2 Java調用Javascript
16.3 Javascript調用Java
- 第17個主題:通過一個Blog實例實戰HTML5&CSS3
- 17.1 實戰HTML5新增頁面元素;
17.2 實戰HTML5中的表單;
17.3 實戰HTML5中的Canvas
17.4 實戰html 5頁面中視頻和音頻
17.5 CSS3技術實戰
- 第18個主題:HTML5的新特性
- 18.1 本地存儲
18.2 離線應用
18.3 多線程技術
18.4 地理位置信息
18.5 其它新特性
- 第19個主題:PhoneGap的技術思考
- 19.1 PhoneGap的架構藝術
19.2 PhoneGap與HTML5、CSS3、JavaScript的關系
19.3 PhoneGap與智能手機的核心功能——包括相機、文件訪問、地理定位,加速器,聯系人,聲音和振動等
19.4 PhoneGap的優勢和劣勢
- 第20個主題:PhoneGap框架的技術基石是什么?
- 20.1 使用WebView
20.2 在WebView中使用JavaScript
20.3 創建本地Java API
20.4 使用JavaScriptInterface
20.5 JavaScript調用Java
20.6 Java調用JavaScript
20.7 PhoneGap是如何使用JavaScriptInterface的
- 第21個主題:PhoneGap案例開發實戰
- 21.1 PhoneGap的生命周期事件
21.2 通過Connection測試網絡鏈接
21.3 通過Accelerometer來采集設備的動作
21.4 通過Compass獲得當前設備的方向
21.5 PhoneGap 操作本地系統的Camera
21.6 PhoneGap其它的本地API;
- 第22個主題:徹底洞悉jQuery Mobile
- 22.1 jQuery Mobile設計的技術思考和商業思考
22.2 jQuery Mobile入門初體驗;
22.3 使用頁眉、工具欄和標簽欄;
22.4 jQuery Mobile中的表單和按鈕;
22.5 jQuery Mobile中的列表;
22.6 jQuery Mobile和CSS結合;
22.7 jQuery Mobile主題;
22.8 jQuery Mobile的API;
22.9 jQuery Mobile和HTML5開發框架PhoneGap結合;
- 第23個主題:Node.js實戰高并發和非阻塞式的服務端
- 23.1 Node.js的思考;
23.2 Node.js開發環境安裝;
23.3 Node.js開發實戰
- 第24個主題:Node.js和WebSocket的整合
- 24.1 使用Node.js和WebSocket打造非同步處理機制及其重大價值;
24.2使用Node.js和WebSocket打造非同步處理機制案例實戰
- 第25個主題:Android產業觀點及獲利模式
- 25.1 Android開源、開放與相容的意義和途徑
25.2 Android手機、平板和電視產品的技術趨勢與市場策略
- 第26個主題:解析Android框架的設計模式(Design Pattern)
- 26.1 設計模式的使用要點
26.2 常見的設計模式應用情境
26.3 解析UI框架的設計模式,包括事件處理、ListView和SurfaceFlinger框架里的重要機制
26.4 擴充Java層應用框架,優化UI設計
26.5 跨進程(IPC)通信的設計模式
26.6 內容儲存的設計模式
26.7 系統服務的設計模式
26.8 HAL-based驅動的設計模式
- 第27個主題:使用NDK/JNI:Java與C/C++的整合開發
- 27.1 使用Android的NDK環境
27.2 從Java呼叫JNI的C/C++函數
27.3 從C/C++呼叫Java的函數
27.4 擅用JNI來提升App效能:以OpenGL的3D繪圖為例
- 第28個主題:上層(Java)應用框架的解析觀摩與擴充
- 28.1 UI框架解析與擴充
訂制Widget控件:擴充View類別體系
定義系統全局控件的風格
改變菜單欄的風格和定制菜單
28.2 MediaPlayer框架的解析與擴充
Java層框架基類及相關類別
JNI接口
系統服務
基類(Superclass)的擴充
28.3 SurfaceView框架的解析與擴充
一般View與SurfaceView的區別
SurfaceView的線程模式
擴充SurfaceView的JNI接口,以底層OpenGL引擎繪圖
28.4 SurfaceFlinger框架的解析與擴充
SurfaceView如何透過JNI呼叫SurfaceFlinger系統服務
SurfaceFlinger如何整合多個SurfaceView的動畫
擴充SurfaceFlinger/SurfaceView的接口,以顯示支持Camera的貼心Preview功能
- 第29個主題:底層(C/C++)框架的解析、觀摩與擴充
- 29.1 系統服務:包括Android Service和 Native Service
29.2 以多媒體Mediaplayer為例介紹C++層系統服務
29.3 系統服務的BBinder基類和IBinder接口
29.4 核心服務框架內的通訊機制:
IPC跨進程(Process)通訊機制
如何綁定(Bind)C++層服務
29.5 框架擴充:親自開發自己的第一支(C++層)系統服務
- 第30個主題:應用框架開發技術
- 30.1 框架的主要元素:基類(Superclass)
30.2 善用類的繼承(Inheritance)機制
30.3 設計基類的抽象函數
30.4 設計模式的應用
30.5 UML建模
30.6 實際編程與測試
- 第31個主題:框架(Open)API設計方法
- 31.1 認識Open API
31.2 以框架基類來實踐API
31.3 Open API的威力:掌握主導權
31.4 擴充Android的 Open API
31.5 確保與既有API的兼容性
31.6 API的測試方法
- 第32個主題:如何做行業應用框架的需求分析
- 32.1 需求探索
為什么把輪胎拔掉呢?
為什么火鍋店的桌子要挖洞呢?
為什么餐廳要分開<食譜>與<點菜單>呢?
如何設計框架的未來性
目前決策的未來性
具有未來性的框架API設計
Steve Jobs的名言:從未來回顧現在
- 第33個主題:親自演練行業框架的設計與開發
— 使用高煥堂的EIT模式
- 33.1 熟諳EIT框架設計模式(Pattern)
33.2 遵循自然的造物環境:信息局限性(Information Limitation)
心懷自然造物法則:<單一造型、內涵豐富、無限組合>
活用高煥堂的EIT模式:賦予行業內涵、組合出獨特性
擴充EIT銜接本地服務,發揮硬件創新差異化
云端服務和HTTP通信協議
擴充EIT銜接云端服務,發揮云計算能力
- 第34個主題:實踐編程(一):先落實到Java層應用框架
復習基本步驟
- 分析:領域分析、框架需求分析
設計:EIT模式設計
編程:使用Java語言
編程要點
將EIT模式的實踐為Java基類
將 EIT模式的實踐為Java的Interface或抽象基類
提供
- 第35個主題:實踐編程(二):往下延伸到C/C++層框架
- 35.1 復習JNI,以及Java與C/C++整合開發技巧
35.2 將EIT模式擴大為EITS新模式
- 第36個主題:實踐編程(三):往上銜接到HTML5/JS與PhoneGap的跨平臺框架
- 36.1 介紹Web層的EITS模式
|