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

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

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

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

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

4, 合理使用电量;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

通过Android四大核心的洗礼,从而完全具备Android系统二次开发和改造框架能力,

进而开发出极具特色的Android产品。

 

课程特色

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

2, 以超过20Android应用程序商业软件和超过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程序

讲师简介

王家林老师(联系邮箱[email protected] 电话:18610086859 QQ:1740415547 微信号:18610086859)

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、适合多CPUAndroid编程最佳模式

 

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

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

2、以AndroidActivityThreadLooperHandlerMessageQueue为例说明消息驱动机制

3、源码深度剖析ActivityThreadLooperHandlerMessageQueue

4、消息驱动机制的启示

 

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

1、使用AsyncTask

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

3、如何改进AsyncTask

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

 

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

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

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

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

4、广播接收器

5WakeLock的最佳实践

6Notification

 

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

1、使用NDK的最佳模式

2、使用NDK的案例解析

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

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

5、内存最佳配置时间

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

 

 

时间 

內  容 

备注 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二天 

 

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

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

2、Observer模式:接口设计

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

4Adapter模式:封装接口

5Composite模式:实践组合

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

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

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

 

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

1、Android IPC幕后设计:BD(Binder Driver)驱动架构

2、以IBinder接口包装BD驱动的服务

3、包装IBinder接口的Proxy-Stub设计模式

4ProxyStub类别的代码

5、设计ProxyStub类别的API

6、如何自动生成ProxyStub类别代码

7IBinder & AIDL方法

8、方法()Implementing a Binder

9、方法()Using a Messenger

10、方法()Bound Services

 

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

1、JNI(Java Native Interface)代码开发要点

2、JNI的数据型态(Data Type)转换规则

3、JNI的线程(Thread)模式:JNIENV类的设计

4、正向通信:Java函数调用本地C函数

5、反向通信:本地C函数调用Java函数

6Android HAL架构设计

n  HAL(Hardware Abstraction Layer)的意义

n  理解runtime与HAL Stub

n  撰写HAL Stub代码

n  Stub调用Linux Kernel的方法

 

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

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

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

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启动ActivityServiceBroadcastContentProvider架构解析与源码剖析

4 Proxy-Stub

 

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

1 WindowManagerService架构解析

2 Window创建过程分析

3 ActivityWindowManagerService交互

4 WindowManagerService下的SurfaceFlinger

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

 

第5个主题:源码:通过BinderServiceManagerBpBinderBnBinderAIDL贯通Android整个体系的架构核心

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

源码剖析ServerClient是如何获得Service Manager接口的?

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

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

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

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。