Part-2: 从Android框架代码中学习设计
一 基础设计模式(Pattern)的代码:以Android为例
1、Template Method模式:IoC(控制反转)机制
2、Observer模式:接口设计
3、Abstract Factory模式:两个EIT造形的组合
4、Adapter模式:封装接口
5、Composite模式:实践组合
6、Fa?ade模式:组合体的接口设计
7、EIT造形是原子,设计模式是分子
8、更多EIT造形的组合模式:以Android代码为例
二 从 UI框架入手
1、View体系的架构设计(使用Template Method模式)
2、Activity-View的架构设计(使用Factory模式)
3、Layout-View的架构设计(使用Composite模式)
4、WMS(WindowManagerService)-View的架构设计
5、WMS-SurfaceFlinger的架构设计
6、Surface-Canvas(画布)的架构设计
7、SurfaceView与OpenGL的3D绘图架构设计
8、ListView框架的设计
三 跨进程(IPC)架构设计
1、Android 的IPC幕后设计:BD(Binder Driver)驱动架构
2、以IBinder接口包装BD驱动的服务
3、包装IBinder接口的Proxy-Stub设计模式
4、Proxy和Stub类别的代码
5、设计Proxy和Stub类别的API
6、如何自动生成Proxy和Stub类别代码
7、IBinder & AIDL方法
方法(一):Implementing a Binder
方法(二):Using a Messenger
方法(三):Bound Services
四 Java与C/C++两层框架的设计
1、JNI(Java Native Interface)代码开发要点
2、JNI的数据型态(Data Type)转换规则
3、JNI的线程(Thread)模式:JNIENV类的设计
4、正向通信:Java函数调用本地C函数
5、反向通信:本地C函数调用Java函数
6、Android HAL架构设计
HAL(Hardware Abstraction Layer)的意义
理解runtime与HAL Stub
撰写HAL Stub代码
Stub调用Linux Kernel的方法
五 核心服务的框架设计
1、认识核心服务(Core Service)
核心服务都是在开机过程中,由Android的INIT进程启动的
包括Android Service和 Native Service两种
以Java语言撰写的,就称为Android Service
以C++撰写的,就称为Native Service
2、亲自撰写一个核心服务
撰写一个C++类别
继承BBinder基类,继承得来IBinder界面
提供接口给Java层(透过JNI)调用
六 JUnit测试框架的设计
1、Android的测试工具,都是基于JUnit测试框架的
2、JUnit框架也是由许多EIT造形所组成;其TestCase基类是<E&I>
3、从基类衍生出各子类,如ServiceTestCase就是扩充的<E&I>;其内涵的setUP()和tearDown()函数就是<I>
4、可撰写<T>(即Test case)代码,来启动TDD机制
5、可使用TestSuite基类来管理一群相关的<T>(即Test case)
网盘部分视频分享:http://pan.baidu.com/share/link?uk=1882162285&shareid=2210518229