如何从Linux起步,开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程解决的问题。
课程以Android的五大核心:HAL、Binder、Native Service、Android Service(并以AMS和WMS为例)、View System为主轴,一次性彻底掌握Android的精髓。
之所以是开发Android产品的必修课,缘起于:
1, HAL是Android Framework&Application与底层硬件整合的关键技术和必修技术;
2, Native Service 对上层来说代表了硬件,是Android底层真正的精髓;
3, Android Service是应用程序的控制核心,应用程序的一切行为均有Android Service掌控;
4, Binder 是Android系统运行的基石,不掌握Binder就永远无法掌握Android;
5, View系统的差异化对消费者而言是Android产品核心竞争力之一,苹果和三星是这方面成功的经典案例;
通过Android五大核心的洗礼,从而完全具备Android系统二次开发和改造能力,
进而开发出极具特色的Android产品。
课程特色
建立360度的Android产品研发能力和解决问题的能力,能够独立开发并深度定制出搭载Android系统的产品;
培训对象
手机、平板、智能电视、车载系统、智能家居设备(例如微波炉、防盗门、电冰箱)等所有想使用Android的硬件厂商;
想理解Android运行机制的软件开发者;
学员基础
能看懂C/C++与Java
王家林老师
Android架构师、高级工程师、咨询顾问、培训专家;
通晓Android、HTML5、Hadoop,迷恋英语播音和健美;
致力于Android、HTML5、Hadoop的软、硬、云整合的一站式解决方案;
国内最早(2007年)从事于Android系统移植、软硬整合、框架修改、应用程序软件开发以及Android系统测试和应用软件测试的技术专家和技术创业人员之一。
HTML5技术领域的最早实践者(2009年)之一,成功为多个机构实现多款自定义HTML5浏览器,参与某知名的HTML5浏览器研发;
Hadoop源码级专家,曾负责某知名公司的类Hadoop框架开发工作,专注于Hadoop一站式解决方案的提供,同时也是云计算分布式大数据处理的最早实践者之一,Hadoop的狂热爱好者,不断的在实践中用Hadoop解决不同领域的大数据的高效处理和存储,现在正负责Hadoop在搜索引擎中的研发中国电信的多次Hadoop培训,花旗银行的Hadoop内训,金立手机的Hadoop内训等,著有《云计算分布式大数据Hadoop实战高手之路---从零开始》《云计算分布式大数据Hadoop实战高手之路---高手崛起》《云计算分布式大数据Hadoop。实战高手之路---高手之巅》等;
培训内容
第一天 |
第1堂课:Hardware Abstract Layer 架构与驱动模组开发1.1 Service与Manager的意义与用途 1.2 libhardware 与 HAL API 1.3 Stub & Module 的观念 1.4 HAL Stub Analysis and Design (OOAD) 1.5 HAL Stub Class 1.6 HAL Stub Interface 第2堂课:Android Service 架构 SystemServer 整合开发2.1 Zygote & SystemServer 介绍 2.2 ServiceManager介绍 2.3 IPC、 Remote method call与Binder管理说明 2.4 AIDL 介绍与IInterface设计观念解析 2.5 Activity & ApplicationContext 2.6 ServiceManager 第3堂课:Android Framework 架构原理分析 (OOD) 3.1 JNI 开发 3.2 Remote Object观念与IBinder介绍 3.3 如何以Proxy Object整合Android Service 3.4 Handler 与 Message 的解析与实作细节 3.5 Doing Long Operations 3.6 Design Patterns of Android Framework
|
|
时间 |
內 容 |
备注 |
第二天 |
第4堂课:Android Process 模式与系统程序 4.1 Component 與 Main Thread 4.2 Instance of Dalvik VM 4.3 Introduction of Dalvik VM 4.4 Android Process Model 4.5 Class Preloading 4.6 Dalvik VM Instantiation & Initialization 第5堂课:Manager API & Context 5.2 getSystemService() 5.3 IPC & AIDL 5.4 IPC with Android Service using Binder Proxy 第6堂课:Native Service 实现完整解析 6.1 使用 IInterface (Java vs C++) 6.2 使用 BnInterface 与 BpInterface 6.4 Implementation of Native Service 6.5 Implement Native Binder Proxy |
|
时间 |
內 容 |
备注 |
第三天 |
第7堂课:Binder 原理与核心架构解析 7.1 Proxy Design Pattern 7.2 .asInterface() 深入解析 7.3 Linux Binder驱动解析 7.4 BpInterface, Proxy object 与 IPC transaction 7.5 Architect of SensorManager 第8堂课:View System 设计模式与实现原理解析 8.1 Introduction to Activity, Window and View 8.2 Architecture of Android View System 8.3 Surface and Canvas 8.4 The flow of drawing: from View to SurfaceFlinger 8.5 The MVC design of View Hierarchy 8.6 The Composite pattern of View Hierarchy |
|
时间 |
内容 |
备注 |
第四天 |
第9堂课:ActivityManagerService原理与核心架构解析 9.1 AMS的架构解析和main剖析 9.2 AMS启动一个Process架构解析源码剖析 9.3 AMS启动Activity、Service、Broadcast、ContentProvider架构解析与源码剖析 9.4 Proxy-Stub 第10堂课:WindowManagerService原理与核心架构解析 10.1 WindowManagerService架构解析 10.2 Window创建过程分析 10.3 Activity与WindowManagerService交互 10.4 WindowManagerService下的SurfaceFlinger 10.5 窗口的绘制和改变全程代码解析 |
|