Android框架与HMTL5开发平台PhoneGap架构设计与深度定制培训
2008年到2012年,手机行业经历了第一个黄金的五年,已经正式结束了,其中三星凭借搭载Android系统的Galaxy SIII成功超过iPhone,成为全球智能手机的王者; 2013年到2015年,第二个智能手机黄金时代已经开始并正在上演;
从2010年的不足5%的市场占有率到2012年底86.4%,Android系统之所以能够能够风靡全世界,其核心在于Android近乎完美的框架:HAL和Application Framwork,其中HAL是是底层硬件框架,Android移植的底层核心,而Application Framwork负责传递底层的硬件功能同时控制Apps,是Android应用程序开发和运行背后的主宰者,掌握Android的运行机制和解决Android Apps开发的复杂问题就必须掌握Application Framwork。
本课程聚焦于HAL+Application Framework+Browser+HTML5开发为核心,一次性贯通Android软硬整合和HTML5端云整合。
中国电子标准协会http://www.ways.org.cn
一、课程特色
二、培训对象
四、学员基础
1) 具有Java基础;
2) 具有C和C++基础更佳;
3)对设计模式有所有了解对提升听课效果会大有裨益;
六、培训方式
本课程共计3天,内容涵盖Android底层、Android HAL、Android Runtime、Android Framework、Android Native Service、Android Binder、Android App开发、Android的Web开发等软硬云整合的的几乎所有核心技术并揭秘HTML5技术的源泉和精髓,致力于打造在软硬云整合时代具有独立思考能力和实践能力的高素质IT人才;授课是以案例驱动为基础重在讲解代码背后的设计思维和商业密码;
七、培训内容
第一天 |
第1个主题:Android中启动一个新的应用程序揭秘 1,1 当我们触摸Android屏幕中Launcher上的一个应用程序的图标的时候到底发生怎样的调用过程? 1,2 应用程序的执行入口到底在哪里? 1.3 一个新的Android应用程序的进程到底是怎么产生的?
第2个主题:Android开机流程揭秘 2.1 第一个用户进程剖析; 2.2 ServiceManager与Binder的关系; 2.3 Zygote揭秘及其运作方式; 2.4 Android中的第一个Java进程揭秘,第一个Java进程和ServiceManager的关系及代码实现;
第3个主题:细致剖析Init进程 3.1 Init进程运行过程是什么? 3.2 init.rc剖析:Action List、Service List等 3.3进程的启动与终止
第4个主题:HAL Stub实战 4.1 用面向对象的思想分析、设计、实现Stub 4.2 hw_module_t的子类和hw_device_t的子类的关系以及这种关系的优势 4.3在结构体中如何实现C函数的调用?hw_module_t的子类在代码中又是如何和hw_device_t的子类交互的? 4.4 类型转换问题
第5个主题:Service与HAL Stub整合 5.1 以面向服务的观点和方式与HAL交互 5.2 Library的中so库文件的类型及C/S结构剖析 5.3 hw_get_module 5.4 获取HAL Stub对象的代码流程剖析 5.5 为何HAL Stub的open方法必须提供supporting API(对设备的操作接口)给runtime;
第7个主题:细致剖析Binder 7.1 Binder IPC数据传递和数据流 7.2 RPC代码与RPC数据 7.3 Binder Driver分析 7.4 ContextManager
第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中? 13.6以PowerManagerService为例分析其工作机制 13.7 WallpaperService底层机制分析
第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 Application Framwork和App的关系 17.1 Framework和App的具体关系是什么? 17.2 Framework和App的交互过程? 17.3 Framework如何掌控App的? 1.4 Framework与Android的四大组件;
第18个主题: Handler、Looper、Message、MessageQueue 18.1. Android的事件驱动模型 18.2. Looper、MessageQueue、Hanlder、Message等源码深度剖析 18.3. Looper、MessageQueue、Hanlder、Message及多线程实战案例
第19主题:ActivityManager与WindowManager彻底揭秘 19.1 ActivityManager Architect&Proxy&执行流程&Code 19.2 ActivityManager Architect&Proxy&执行流程&Code
|
|
时间 |
内容 |
|
第三天 |
第20主题:浏览器开发和自定义 20.1 浏览器定制和开发的核心原理剖析 20.2 浏览器定制和开发的技术手段剖析 20.3 浏览器定制和开发实战
第21个主题:HTML5 架构思维
21.1 All in JavaScript
第22主题:Android中Java与WebView中Javascript相互沟通 22.1 制作Android界面的新大陆 22.2 Java调用Javascript 22.3 Javascript调用Java
第23个主题:通过一个Blog实例实战HTML5&CSS3 23.1 实战HTML5新增页面元素; 23.2 实战HTML5中的表单; 23.3 实战HTML5中的Canvas 23.4 实战html 5页面中视频和音频 23.5 CSS3技术实战
第24个主题:HTML5的新特性 24.1 本地存储 24.2 离线应用 24.3 多线程技术 24.4 地理位置信息 24.5 其它新特性
第25个主题:PhoneGap的技术思考 25.1 PhoneGap的架构艺术 25.2 PhoneGap与HTML5、CSS3、JavaScript的关系 25.3 PhoneGap与智能手机的核心功能——包括相机、文件访问、地理定位,加速器,联系人,声音和振动等 25.4 PhoneGap的优势和劣势
第26个主题:PhoneGap框架的技术基石是什么? 26.1 使用WebView 26.2 在WebView中使用JavaScript 26.3 创建本地Java API 26.4 使用JavaScriptInterface 26.5 JavaScript调用Java 26.6 Java调用JavaScript 26.7 PhoneGap是如何使用JavaScriptInterface的
第27个主题:PhoneGap案例开发实战 27.1 PhoneGap的生命周期事件 27.2 通过Connection测试网络链接 27.3 通过Accelerometer来采集设备的动作 27.4 通过Compass获得当前设备的方向 27.5 PhoneGap 操作本地系统的Camera 27.6 PhoneGap其它的本地API;
第28个主题:彻底洞悉jQuery Mobile 28.1 jQuery Mobile设计的技术思考和商业思考 28.2 jQuery Mobile入门初体验; 28.3 使用页眉、工具栏和标签栏; 28.4 jQuery Mobile中的表单和按钮; 28.5 jQuery Mobile中的列表; 28.6 jQuery Mobile和CSS结合; 28.7 jQuery Mobile主题; 28.8 jQuery Mobile的API; 28.9 jQuery Mobile和HTML5开发框架PhoneGap结合;
第29个主题:Node***实战高并发和非阻塞式的服务端 29.1 Node***的思考; 29.2 Node***开发环境安装; 29.3 Node***开发实战
第30个主题:Node***和WebSocket的整合 30.1 使用Node***和WebSocket打造非同步处理机制及其重大价值; 30.2使用Node***和WebSocket打造非同步处理机制案例实战
|
|
文章评论(0条评论)
登录后参与讨论