当前位置: 代码迷 >> Android >> Android:从软件工程师到架构师之路Ⅲ_高焕堂
  详细解决方案

Android:从软件工程师到架构师之路Ⅲ_高焕堂

热度:90   发布时间:2016-04-28 07:46:12.0
Android:从程序员到架构师之路Ⅲ_高焕堂

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

四  JavaC/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)的意义

理解runtimeHAL Stub

撰写HAL Stub代码

Stub调用Linux Kernel的方法

五  核心服务的框架设计

1、认识核心服务(Core Service)

核心服务都是在开机过程中AndroidINIT进程启动的

包括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

  相关解决方案