标签:
如何从一个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、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, 以超过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程序
讲师简介
王家林老师(联系邮箱18610086859@126.com 电话: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、适合多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架构设计 n HAL(Hardware Abstraction Layer)的意义 n 理解runtime与HAL Stub n 撰写HAL Stub代码 n 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接口源代码分析
|
|
标签:
原文地址:http://www.cnblogs.com/wangyanjun/p/4174962.html