Android开发工程师
| 课程编号 | 开课日期 | 地点 | 培训天数 | 选择报名 |
Android开发工程师
时间地点: 2013年8月2-4日 上海
课程费用: 5000元/人
培训对象: Android开发工程师
学员基础: 具备一定的C/C++、Java基础,了解设计模式更佳
课程背景:
课程关注与Android的软、硬和云整合,建立一个面向云端的整体解决方案。
培训目标:
实现Android的软、硬、云三位一体整合,能够设计、实现Android的软、硬、云三位一体整合一站式方案
实战Android的软、硬、云三位一体整合,掌握整个整合流程和方法,并具有实战能力;
对Android的Linux内核、HAL、运行库、Dalvik运行时、JNI、Application Framework、App、云和Android智能端的整合等思想、设计、技术一网打尽;
揭露Android设计和实现的深层秘密;
品味Android对设计模式的精妙应用
编写Android专家级别的代码
授课方式: 定制课程 + 案例讲解 + 小组讨论,60%案例讲解,40%实践演练
培训内容: 3天
课程大纲:
Android架构揭秘 Google是如何通过Android支持、掌控全球的硬件厂商和应用程序开发者的?
Android控制力的源泉是什么?技术上如何实现?
Android的Linux Kernal、HAL、Libararies、Runtime、Application Framework设计的理念和实现技术;
Android平台与硬件、云的微妙关系;
Android开机流程揭秘 第一个用户进程剖析;
ServiceManager与Binder的关系;
Zygote揭秘及其运作方式;
Android中的第一个Java进程揭秘,第一个Java进程和ServiceManager的关系及代码实现;
Android中启动一个新的应用程序揭秘 当我们触摸Android屏幕中Launcher上的一个应用程序的图标的时候到底发生怎样的调用过程?
应用程序的执行入口到底在哪里?
一个新的Android应用程序的进程到底是怎么产生的?
HAL揭秘 HAL被加入Android中的真正历史原因分析
HAL的意外价值揭秘
HAL的Stub
hw_module_t与hw_device_t
C语言如何实现继承来满足HAL Stub的设计目的?包括内存结构分析和代码风格讨论等
如何避免HAL Stub实现时的Dirty Code?
HAL Stub实战 用面向对象的思想分析、设计、实现Stub
hw_module_t的子类和hw_device_t的子类的关系以及这种关系的优势
在结构体中如何实现C函数的调用?hw_module_t的子类在代码中又是如何和hw_device_t的子类交互的?
类型转换问题
HAL和Linux Kernel HAL Stub访问和控制硬件
Android下的Linux Kernel剖析
Android 硬件的Driver
访问Linux内核空间的Driver
Service与HAL Stub整合 以面向服务的观点和方式与HAL交互
Library的中so库文件的类型及C/S结构剖析
hw_get_module
获取HAL Stub对象的代码流程剖析
为何HAL Stub的open方法必须提供supporting API(对设备的操作接口)给runtime;
Service、ServiceManager和Binder交互关系揭秘 Binder的第一号服务是谁?为何要这样设计和实现?
如何编写Service
新的Service产生与ServiceManager和Binder交互流程
如何获取一个Service?
Binder的生产者与消费者模式剖析
Binder与Shared Memory Binder源代码剖析
Shared Memory剖析
Binder是如何使用共享内存来完成进程间通信的?
从代码的角度来分析Binder使用Shared Memory的生产者与消费者模式
Dalvik VM Dalvik VM的特点,Dalvik VM和JVM的比较
Dalvik VM的内存分布及OOM(Out of Memory)的根本原因和解决方案是什么?
Preload Classes和 Preload Resources,ClassLoader到底在哪里?
10.4 Dalvik与Java和C/C++
Android中的JNI编程 Java调用C/C++
JNIEnv、JVM、JObject揭秘
C/C++创建Java对象、调用Java属性和方法
JNI中的多线程编程
Facade Pattern在JNI中绝妙应用剖析
PnP(Plug and Play)
Android中的NDK编程 NDK与JNI关系揭秘
NDK开发的流程
采用NDK方式开发出的程序安装和运行的内幕
NDK中的Java与C/C++相互调用
NDK中的多线程编程
关于Android软件开发的标准化和可替换性揭秘
SystemServer与Framework中的Service Zygote与SystemServer
SystemServer开启Java世界的过程揭秘
Android Service和Native Service是如何关联起来的?
Android Service与ServiceManager
如何把自己的服务加入到ServiceManager中?
把Java写的 Service加入到Applciation Framework中 IInterface与CTS
Binder
AIDL
Java Service与Manager
SystemServer、ServiceManager
Android框架移植移植时的事件驱动机制 Android Service是如何应对硬件阻塞的?
开辟新的子线程并不断的poll
Listener注册
Callback
Application Framework中的Handler、Message、Looper、MessageQueue、
事件驱动机制实例
Manager、Service和完整的数据流
Manager和Service分离的原则
ANR问题
阻塞式的操作和非阻塞式操作
以实例说明Android中的从最底层到最上层的数据流
Application Framework设计思想和力量源泉 IoC揭秘
IoC是何以成为框架神秘力量源泉的?IoC是何以支持框架实现强大控制力的
Application Framework与Activity、Service、BroadcastReceiver、ContentProvider
动手实现自己的框架
Activity、Service、BroadcastReceiver、ContentProvider 四大组件间的关系剖析
Activity、BroadcastReceiver、ContentProvider应用场景和实战
Service与IPC细致剖析
终结Android网络编程 Android中的数据上传,重点在于上传带有附件的表单
Android中的数据下载,重点在于多线程断点续传下载
Android中的数据浏览,重点在于JavaScript和Java的相互沟通
Android软、硬、云三位一体整合
从技术角度揭秘云,包括云的关键技术和实现方法
在Native Service中整合Android与云
在Application Framework中整合Android与云
Android软、硬、云三位一体整合,包括模式、策略、实现技术
如果课程内容不符合您的期望,可以定制内训
课程特点:
1、理论与实践相结合,解决你的实际问题。
2、真实案例的剖析,深入浅出的讲解,使你能学以致用。