课程培训
精通软硬云整合技术与应用培训课程

 

精通软硬云整合技术与应用培训课程
目标收益

致力于打造在软硬云整合时代和端云整合时代具有独立思考能力和实践能力的高素质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模式




如果您想学习本课程,请预约报名
如果没找到合适的课程或有特殊培训需求,请订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表下载请点击

服务优势:
丰富专家资源,精准匹配相关行业,相关项目技术精英,面向用户实际需求,针对性培训或咨询,互动式交流,案例教学,精品小班,实际工程项目经验分享,快捷高效,节省时间与金钱,少走弯路与错路。

专家力量:
中国科学院相关研究所高级研究人员
西门子,TI,vmware,MSC,Ansys,MDI,Mentor, candence,Altium,Atmel 、Freescale,达索,华为等
大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关学历背景专业,理论素养高
多年实际项目实践,大型复杂项目实战案例分享,热情,乐于技术分享
针对客户实际需要,真实案例演示,互动式沟通,学有所值
报名表下载
联系我们 更多>>

咨询电话010-62883247

                4007991916

咨询邮箱:soft@info-soft.cn  

 

微信号.jpg

  微信咨询

随时听讲课

聚焦技术实践

订制培训 更多>>
技术支持:帮做网络