Android:从程序员到架构师之路Ⅲ_高焕堂

时间:2024-07-26 15:04:02

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