您的位置:首页 > 移动开发 > Android开发

Android企业级最佳实践高手之路

2014-12-24 17:09 459 查看
如何从一个Android程序员到成为一个高手级别的Android开发者和架构师,是每个Android开发者和管理者关心的核心问题,成功的从一个Android程序员到架构师,需要掌握:

1,  Android开发与架构,具备Android系统式如何驾驭开发者与架构者的的能力;

2,  通晓Android程序开发的最佳模式,当你直到这个最佳模式的时候,你会发现AsyncTask是Android的败笔,而且这个败笔一直未能够在版本升级中解决;

3,  理解Android程序开发和运行背后的控制者;

4,  合理使用电量;

5,  能评测、分析以及改进应用程序性;

6,  具备恰到好处的使用NDK、内存、SQLite的能力;

7,  EIT造形:接口美丽的外貌,具备掌握Android系统框架核心造型的能力;

8,  一群<E&I>美妙的组合是:框架(Framework)(具备编写任意的框架的能力)

9,  跨进程(IPC)架构设计,掌握Android通讯的灵魂的能力

10,             Java与C/C++两层框架的设计,具备掌握Android垂直体系结构的能力

11,             核心服务的框架设计,掌握Android架构的灵魂的能力

掌握这些问题可以让你对Android软件架构设计有脱胎换骨的理解,最后会对Android系统有全新的认识,从而成功的从Android程序员走向架构师,从此Android从业生涯海阔天空。

本课程正是帮你解决如上的核心问题。

如何理解Android架构设计的初心并开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程试图解决的另外一个问题。

课程以Android的五大核心:HAL、Binder、NativeService、Android Service(并以AMS和WMS为例)为主轴,一次性彻底掌握Android的精髓。

之所以是开发Android产品的必修课,缘起于:

1,     HAL是AndroidFramework&Application与底层硬件整合的关键技术和必修技术;

2,     Native Service 对上层来说代表了硬件,是Android底层真正的精髓;

3,     Android Service是应用程序的控制核心,应用程序的一切行为均有Android Service掌控;

4,     Binder 是Android系统运行的基石,不掌握Binder就永远无法掌握Android;

通过Android四大核心的洗礼,从而完全具备Android系统二次开发和改造框架能力,
进而开发出极具特色的Android产品。

 

课程特色  

1,             涵盖从程序员到架构师所有的核心技能;

2,             以超过20款Android应用程序商业软件和超过6款硬体产品为经验基础,带你领悟Android应用程序开发的最高秘密和系统研究的核心内幕,这些内容主要会来自于和三星、HTC、摩托罗拉等的合作经验;

3,             以商业级代码和生产环境基石;

4,    建立360度的Android产品研发能力和解决问题的能力,能够独立开发并深度定制出搭载Android系统的产品;

5,   贯通Android软硬整合和HTML5端云整合技术整个体系;

6,   全程案例驱动,重在剖析案例代码背后的设计思维和商业密码;

7,   彻底掌握Android HAL的背后的密码;

8,   彻底掌握Android HAL的实现机制和技术

9,   彻底掌握Android Framwork的背后的密码

10,  彻底掌握Android Framwork的设计思维和理念

11,  揭秘Android系统的运行的基石Binder

12,  以MediaPlayer实例来彻底剖析Native Service和Binder

 

培训对象

有一定Android开发基础,想成为Android高级工程师和架构师

 

学员基础

写过Android程序

讲师简介

王家林:

Android架构师、高级工程师、咨询顾问、培训专家;

通晓Android、HTML5、Hadoop,迷恋英语播音和健美;

致力于Android、HTML5、Hadoop的软、硬、云整合的一站式解决方案;

国内最早(2007年)从事于Android系统移植、软硬整合、框架修改、应用程序软件开发以及Android系统测试和应用软件测试的技术专家和技术创业人员之一。

HTML5技术领域的最早实践者之一,成功为多个机构实现多款自定义HTML5浏览器,参与某知名的HTML5浏览器研发;在WebApp方面成功为多家机构改造和重构PhoneGap平台,在高性能的WebApp开发方面有独特的经验。

Hadoop源码级专家,曾负责某知名公司的类Hadoop框架开发工作,专注于Hadoop一站式解决方案的提供,同时也是云计算分布式大数据处理的最早实践者之一,Hadoop的狂热爱好者,不断的在实践中用Hadoop解决不同领域的大数据的高效处理和存储,现在正负责Hadoop在搜索引擎中的研发等,著有《云计算分布式大数据Hadoop实战高手之路---从零开始》《云计算分布式大数据Hadoop实战高手之路---高手崛起》《云计算分布式大数据Hadoop。实战高手之路---高手之巅》等;

Spark源码研究狂热爱好者,醉心于Spark的新型大数据处理模式改造和应用。

超过10本的IT畅销书作者;

 

培训内容

 

 
 
 
 
 
 
 
 
 
 
第一天
 
第1个主题:消息驱动系统和最高效的程序编程模型(以LED模块为例)

1. Android的事件驱动模型

2. ActivityThread中的消息系统详解

3. 最佳的程序编写模型

4. 用LED模块说明上述内容

 

第2个主题:高性能Android应用程序开发的最佳模式(具备掌握高性能程序编写的能力)

1、Main Thread+HandlerThread+Service

2、剖析HandlerThread的源码实现

3、使用HandlerThread的最佳实践

4、并发并使用并发缓存

5、适合多CPU的Android编程最佳模式

 

第3个主题:高性能和非凡用户体验Android应用程序的灵魂(具备编写高性能和用户体验较好Android应用程序核心的能力)

1、为何消息驱动是高性能和非凡用户体验Android应用程序的灵魂?

2、以Android的ActivityThread、Looper、Handler、MessageQueue为例说明消息驱动机制

3、源码深度剖析ActivityThread、Looper、Handler、MessageQueue

4、消息驱动机制的启示

 

第4个主题:站在AsyncTask的肩上构建自己的应用程序框架(构建自己的Android高效程序的框架)

1、使用AsyncTask

2、从源码剖析中说明为什么AsyncTask是Android的败笔

3、如何改进AsyncTask

4、构造自己的高效程序框架

 

第5个主题:电池:高效程序和非凡用户体验的关键之一(具备高效省电的应用程序的能力)

1、电池:高效程序和非凡用户体验必须解决的瓶颈

2、网络处理:后台数据和数据传输

3、电量杀手:位置导航及其最佳实践

4、广播接收器

5、WakeLock的最佳实践

6、Notification

 

第6个主题:NDK、内存、SQLite的使用最佳实践(具备恰到好处的使用NDK、内存、SQLite的能力)

1、使用NDK的最佳模式

2、使用NDK的案例解析

3、 OOM产生原因和根本解决办法

4、内存不多的时候怎么办?

5、内存最佳配置时间

5 、SQLite语句、事务、查询的最佳实践

 

 
时间
內  容
备注
 
 
 
 
 
 
 
 
 
 
 
 
 
第二天
 
第1个主题:基础设计模式(Pattern)的代码:以Android为例(具备擅用设计模式利器构造具体框架的能力)

1、Template Method模式:IoC(控制反转)机制

2、Observer模式:接口设计

3、Abstract Factory模式:两个EIT造形的组合

4、Adapter模式:封装接口

5、Composite模式:实践组合

6、Façade模式:组合体的接口设计

7、EIT造形是原子,设计模式是分子

8、更多EIT造形的组合模式:以Android代码为例

 

第2个主题:跨进程(IPC)架构设计(掌握Android通讯的灵魂的能力)

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方法

8、方法(一):Implementing a Binder

9、方法(二):Using a Messenger

10、方法(三):Bound Services

 

第3个主题:Java与C/C++两层框架的设计(具备掌握Android垂直体系结构的能力)

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的方法

 

第4个主题:核心服务的框架设计(掌握Android架构的灵魂的能力)

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

2、核心服务都是在开机过程中,由Android的INIT进程启动的

3、包括Android Service和 Native Service两种

4、以Java语言撰写的,就称为Android Service

5、以C++撰写的,就称为Native Service

6 、亲自撰写一个核心服务

7、撰写一个C++类别

8、继承BBinder基类,继承得来IBinder界面

9、提供接口给Java层(透过JNI)调用

 

第5个主题:Service与HAL Stub整合(以LED模块为例)

1 以面向服务的观点和方式与HAL交互

2 Library的中so库文件的类型及C/S结构剖析

3 hw_get_module

4 获取HAL Stub对象的代码流程剖析

5 为何HAL Stub的open方法必须提供supporting API(对设备的操作接口)给runtime;

 

第6个主题:高效的Native Service(以MediaPlayer为例)

1 Native Service与Native Service Client的架构

2 IInterface与IBinder

3 ProcessState与IPCThreadState

4 Binder

 

 
 
 
 
 
 
 
 
 
 
 
 
第三天
第1个主题:SystemServer与Framework中的Service(以LED模块为例)

1 Zygote与SystemServer

2 SystemServer开启Java世界的过程揭秘

3 Android Service和Native Service是如何关联起来的?

4 Android Service与ServiceManager

5 如何把自己的服务加入到ServiceManager中?

 

第2个主题:把Java写的 Service加入到Applciation
Framework中(以LED模块为例)

1 IInterface与CTS

2 Binder

3 AIDL

4 Java Service与Manager

5 SystemServer、ServiceManager

 

第3个主题:ActivityManagerService原理与核心架构解析

1 AMS的架构解析和main剖析

2 AMS启动一个Process架构解析源码剖析

3 AMS启动Activity、Service、Broadcast、ContentProvider架构解析与源码剖析

4 Proxy-Stub

 

第4个主题:WindowManagerService原理与核心架构解析

1 WindowManagerService架构解析

2 Window创建过程分析

3 Activity与WindowManagerService交互

4 WindowManagerService下的SurfaceFlinger

5 窗口的绘制和改变全程代码解析

 

第5个主题:源码:通过Binder、ServiceManager、BpBinder、BnBinder、AIDL贯通Android整个体系的架构核心

1 源码剖析Service Manager是如何成为一个守护进程的?

2 源码剖析Server和Client是如何获得Service
Manager接口的?

3 源码剖析Server是如何把自己的服务启动起来的?Service
Manager在Server启动的过程中是如何为Server提供服务的?

  源码剖析Service Manager是如何为Client提供服务的?

5 Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

 

 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息