Android Framework 深入浅出: HAL, Binder, View System 与 Native Service
报名详情
时 间: 2012年10月27-29日 地 点:深圳 2012年11月13-15日 地 点:北京 费 用: 4500元/人(包含听课、讲义、教学设施使用、两天的午餐、学习用具等) 培训证书:培训结束,对理论、实践双项考核成绩合格者,颁发中国信息产业培训网的培训证书。 参课对象:1) 希望理解和掌握Android框架技术与设计思想的人员; 2) 希望从事移动终端开发的爱好者、工程师、程序员、以及相关行业的工程技术人员 学员基础:1)了解Java语言; 2)了解OOP(面向对象)编程相关概念; 3)建议具体基本的Android应用开发能力; 联 系 人: 于毅 先生 电 话: 0755-36529027
课程背景: 随着智能手机、平板电脑等移动设备的出现,移动互联网这一新兴事物蓬勃发展,移动平台正式进入大众市场。实际上,目前用户口袋中的手机已经比8、9年前的桌面电脑更强大。当代手机中集成了许多曾经只在火星探测器中才使用的传感器,时钟、电源传感器、温度计、光线感应器已经成为基本配置,而高端手机中还集成了位置感应器、加速度传感器,甚至是指南针。不过,随着这一趋势的发展,10年之后用户将会拥有一个全天候、永远在线、拥有丰富传感器的强大设备。
Android 的 HAL (硬件抽像层)是 Google 因应厂商“希望不公开源码”(就是为了避开linux kernel的GPL license的束缚)的要求下,所推出的新观念。HAL 的目的是为了把 Android framework 与 Linux kernel 完整“隔开”,简而言之,Android把控制硬件的动作都放到了user space中,而再kernel driver里面只有最简单的读写寄存器的操作,而完全去掉了各种功能性的操作(比如控制逻辑等),这些能够体现硬件特性的操作都放到了Android的HAL层,而Android是基于Aparch的license,因此硬件厂商可以只提供二进制代码,所以说Android只是一个开放的平台,并不是一个开源的平台。让 Android 不至过度依赖 Linux kernel ,让 Android framework 的开发能在不考虑驱动程序的前提下进行发展。
由于Android的Java层级只是一个外壳框架而已,大部分的系统组件(Android本身)都是在Nataive层(又称C/C++层)执行。这是Android的整体架构,所以我们的应用程序也必须考虑分为两层的必要性,才能完全的融入Android的整体架构里。我们看到的Android应用架构(Application Framework)其实只是Android整体架构里的外壳结构而已。 为协助国内企业快速掌握Android作业系统的技术,并建立团队技术能力,以提升企业产品开发的能力,我们特别邀请台湾地区知名的Android技术专家Jollen Chen先生及其团队成员,为企业提供“Android Framework: HAL, Binder, View System 与native Service”培训课程。
Jollen Chen先生提到:「开发Android软件是「设计导向思惟」,编写代码(Coding)并不等于做软件(Software),写code可以很自由心态,意思是,可根据自已的想法发挥,不受任何限制地自由发挥。 Android框架的开发要考虑架构,要先做设计(OOD),要验证设计的正确性,同时也要达到重用(Design Reuse)框架设计的要求;所以开发Android框架,是在一套系统化且制式的规模下进行,写code受到规范。 」
本课程由具备Android产品开发经验,以及产品操盘实务经验的技术专家主讲,是特别针对想事产品开发,以及想提升团队Android架构能力者所规划。课程深入浅出,是目前国内少见能以至简方式介绍实务Android框架与架构的课程。旨在培养实务的Android能力,并协助企业提升研发团队的Android架构能力。
Jollen Chen 老师将以Mokoid Open Source Project (MOSP) 范例,仔细分析Android 框架的设计方法与架构;MOSP是Jollen Chen老师特别发展的实例,并已开源至Google Code上。
课程目标:
l 逐一击破 Android 框架的重点知识 l 过去如果只是了解框架,今天这门课将让你「理解」框架 l 探讨 Android 的设计哲学与思想 l 综合说明Android框架的核心架构:HAL、Binder、View System与Native Service,想理解框架,就要深入这四大子系统
课程特色:
l 课程组织:课程深入浅出,至简而实,内容由专长的实务经验归纳而成,组织细腻完整,是名符其实的高品质培训。 l 课件规划:书本式的简报课件,内容细致,与课程大纲相搭配。 l 课程范例:以专家自行设计的完整范例进行,相关代码以 MOSP 开源项目进行;受训后学员可加入 MOSP 社区,取得不定时更新的代码。
课程大纲:
第一天 第01堂課: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
第02堂課: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
第03堂課: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
第二天
第04堂課: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
第05堂課:Hardware Abstract Layer 架構與驅動模組開發
5.1 Service與Manager的意義與用途 5.2 libhardware 與 HAL API 5.3 Stub & Module 的觀念 5.4 HAL Stub Analysis and Design (OOAD) 5.5 HAL Stub Class 5.6 HAL Stub Interface
第6堂課:Manager API & Context
6.1 Introduction Context 6.2 getSystemService 6.3 IPC & AIDL 6.4 IPC with Android Service using Binder Proxy
第7堂課:Native Service 实现完整解析
7.1 使用 IInterface (Java vs C++) 7.2 使用 BnInterface 与 BpInterface 7.4 Implementation of Native Servic 7.5 Implement Native Binder Proxy
第三天
第8堂課:Binder 原理与核心架构解析 8.1 Proxy Design Pattern 8.2 .asInterface() 深入解析 8.3 Linux Binder 驱动解析 8.4 BpInterface, Proxy object 与 IPC transaction 8.5 Architect of SensorManager
第9堂课:View System 设计模式与实现原理解析 9.1 Introduction to Activity, Window and View 9.2 Architecture of Android View System 9.3 Surface and Canvas 9.4 The flow of drawing: from View to SurfaceFlinger 9.5 The MVC design of View Hierarchy 9.6 The Composite pattern of View Hierarchy
讲师简介
Jollen Chen: 台湾最资深的嵌入式Linux专家与讲师。 Jollen在嵌入式Linux与Linux驱动程式领域拥有丰富的顾问与授课经验,并曾参与过多项已上市的嵌入式产品研发。 Jollen热衷于培训领域,并成立了仕橙3G教室(Moko365 Inc)团队;其团队致力于专业的嵌入式Linux与Android课程开发,产出的课程与技术研究品质深获肯定,服务客户遍及台湾、美国与大陆企业。 Jollen过去负责知名的开放手机计画Openmoko大中华区的行销与推广工作;现带领技术团队开发Android手持产品解决方案,相关方案已受到台湾知名企业采用,并导入量产。 Jollen先生也是目前台湾唯一提供业界Android底层与开发咨询的专家,技术能力受到肯定。 |