高焕堂的招牌课程
移动终端App&Platform开发的高端技术和策略 课程
By 高焕堂 老师
一、学员条件:
l 具有3年以上Android应用、平台或底层服务的软件开发经验
l 熟悉Java、C/C++和JS编程
l 拥有移动终端设备和嵌入式开发的基本知识
l 对Spart/Hadoop/Hbase/Scala数据平台有初步认识
二、大纲目录:
Part-A | 跨平台开发,芯片兼容性问题的常用解决方案 �f明:通常,芯片厂商的修改点并不聚焦,而是散落于产品(含芯片及其搭配的Android x.x版本)的各个层的各个模块中,如果逐点进行抽象封装很难解决问题。究竟厂商该如何克服这些挑战呢? 一般的终端厂商的常见的对策是什么? 采用那些设计模式和技术呢? |
|
Part-B |
Android 碎片化管理、各种SDK兼容性策略 �f明:面对强势的Android开源平台,我们不得不使用Android x.x 版本(踏上雪泥)。那么,我们有何高明的跨平台(摆脱雪泥的束缚)策略和技术,让我们(大鸿鸟)能振翅高飞、遨游天际呢?跨别人的平台,整合自己产品,进而推展自己的平台,是当今处于Android多元发展情势下的赢家之路。 |
|
Part-C | Android移动应用开发框架和技术发展趋势 说明:在Android平台上,跨OS平台技术发展迅速,在终端本身如Hybrid, native code, HTML5 + JS等技术,开发人员要根据业务特点,如何选择恰当的技术呢? 如何选择有效的第三方框架(如Phonegap)呢? 如何设计与大数据云平台(如Spark/Scala)无缝对接的策略呢? |
|
Part-D | 移动时代的SDK战略和App开发群经营策略 说明:需要推出自己的SDK吗? 这SDK就像”花轿”,除了做得好之外,还需要有人情愿来抬轿,才会成功。如何<威胁利诱>引导众人来抬轿呢? 第三方App开发者不是抬轿者,但却是比要的支持者,如何激励开发者呢? SDK运营与管理的要点有那些呢? |
|
Part-E | 移动终端的业务框架(Business framework)开发 说明:在需求、软件和数据都日趋碎片化的潮流下,如何管理众多重要的业务插件(碎片)呢? 如何实践业务碎片的"没钱就改版,改版就有钱"策略呢? 业务框架是有效的手段吗? 从领域分析、系统分析、框架设计到业务框架的代码实现的过程是什么? |
|
注释 |
(None) |
三、详细课程大纲:
Part-A:跨平台开发,芯片兼容性问题的常用解决方案
A1. 产业供应链与芯片技术发展
l 介绍主流Android 4.x/5.x兼容芯片(如高通的7X27, 8X25, 8X60,TI OMAP等)的产业技术现况与发展趋势
l 以智能TV/STB的供应链为例,阐述主流芯片(如晨星MSD6A806, 高通Snapdragon S4 MPQ8064)与终端厂商的合作关系及其商业模式
l 这些不同的芯片技术上的共同点和差异点
l 不同芯片平台与Android软件平台结合的共同点和差异点
A2. 应用开发者的挑战与策略
l 如何让行业应用软件跨越Android的版本升级和碎片化障碍?
l 如何让行业应用软件跨<操作系统>平台(如Android、iOS等)呢?
l 如何提升自己平台的稳定性,降低升级成本?
l 互联网或电信厂商如何追求跨终端平台(如TV, Pad等)?
l 终端应用如何跨云端(Cloud)平台?
A3. 终端产品厂商的挑战与策略
l 讨论不同终端厂商最常采用的平台化策略
l 举例说明<芯片平台化策略>的要点
l 如何建置中间件,跨自己平台(的版本)问题
l 芯片厂商的基线升级后,应该如何跟进?
微课-1(请点击此图,立即体验) 微课-2(请点击此图,立即体验)
Part-B:Android 碎片化管理、各种SDK兼容性策略
B1. Android碎片化幕后的旺盛生命力
l 碎片化忧虑的来源是什么?
l 谁会忧虑Android的碎片化呢?
l 碎片化也意味着旺盛的生命力
l 芯片厂商的角色和影响力
l 如何让行业应用软件跨越Android的版本升级和碎片化障碍?
l 如何让行业应用软件跨<操作系统>平台(如Android、iOS等)呢?
l 如何提升自己平台的稳定性,降低升级成本?
l 互联网或电信厂商如何追求跨终端平台(如TV, Pad等)?
l 终端应用如何跨云端(Cloud)平台?
B2. 如何拥有改版的话语权
l 熟悉Android的知识体系
l 从框架角度切入,可以找到它的甜心点(Sweet Spot)
l 掌握三个要素:平台、接口和插件
l 擅用Android碎片化幕后的欣欣向荣的活力和机会
微课-3(请点击此图,立即体验)
Part-C:Android移动应用开发框架和技术发展趋势
C1.掌握Android架构体系和机制设计
l HTML5/JavaScript层
n 创造跨平台的HTML5/JS层
n 这透过WebView呼叫下层的Java插件(属于Java层)
l Java层
n 这是专属于Android平台的App
n 透过JNI呼叫本地C函数(属于本地C层)
l JNI / C层
n 能透过ServiceManager绑定下层的C++核心服务
n 也能直接呼叫HAL-based驱动模块
l 核心(系统)服务层
n 直接呼叫下层的HAL-based驱动模块
n 也能将讯息传送给上层本地C模块
n 核心服务也能以Java来撰写,这种核心服务属于Java层
l HAL & 驱动层
n 为了避开GPL协议,Android驱动大多写成HAL Stub模块
n HAL Stub可透过System Call呼叫Linux内核,实际控制硬件
微课-4(请点击此图,立即体验) 微课-5(请点击此图,立即体验)
C2. Android水平方向的整合机制:IPC
l IPC幕后设计:BD(Binder Driver)驱动架构
l 以IBinder接口包装BD驱动的服务
l 包装IBinder接口的Proxy-Stub设计模式
l Proxy和Stub类别的代码设计
l Proxy和Stub类别的API
l 如何自动生成Proxy和Stub类别代码
l IBinder接口& AIDL方法
n 方法(一):Implementing a Binder
n 方法(二):Using a Messenger
n 方法(三):Bound Services
微课-6(请点击此图,立即体验) 微课-7(请点击此图,立即体验)
C3. Android的垂直方向整合机制:NDK/JNI
l Java解决不了的问题:效率、覆用既有C模块
l 控制点的抉择
n 控制点的规划
n 控制点在Java层:复习Java呼叫Native C函数
n 控制点在C/C++:Native C如何呼叫Java函数
n 控制点在C/C++:Native C函数如何诞生Java对象
l JNI Native C的线程模式
n Android VM的线程模式介绍
n JNI Native C程序的线程模式
n JNI Native程序的线程安全设计
微课-8(请点击此图,立即体验)
C4. 应用开发的跨平台策略
l 如何根据业务特点选择恰当的策略和技术
l 比较Hybrid, native code和HTML5 + JS的优劣点
l PhoneGap与HTML5+JS的组合策略
l 如何让PhoneGap与native code组合呢? 有什么好处呢?
C5. 如何重构PhoneGap平台
l 复习Android各层级的插件管理机置
l 如何管理Java层的三种插件(即用户、企业和平台插件)
l 如何管理C/C++层的平台插件
l 让Java层插件与C/C++层插件互相衔接:使用 JNI
l 常用插件的创建机制
微课-9(请点击此图,立即体验) 微课-10(请点击此图,立即体验)
Part-D:移动时代的SDK战略和App开发群经营策略
D1. 移动终端SDK的意义
l 传统SOA架构比较封闭,高度排他性。在异构、分散的大数据时代里,它的整合成本居高不下,不适宜整合Hadoop/Spark大数据云平台
l 许多企业推出自己的移动终端SDK,整合Hadoop、SOA、百度等云服务
D2. 移动终端SDK的运行与管理要点
l SDK和平台(框架)都像”花轿”,做得好稳定好用,是必要条件而已;还要还要有人来抬轿,才是充分条件
l 如何<威胁利诱>引导众人来抬轿呢? 例如,以终端SKD封装云平台(后台服务端)的服务,逼迫众多App开发者必须使用SDK
l 反过来,为什么云平台(后台服务端)的服务,要让我们的SDK包装呢? 此时,SDK必须带给服务端利益,例如将服务端接口包装与SDK父类里,App必须调用父类函数,间接使用服务端的接口,未来服务端接口通信协议改版了,只要更改SDK父类,而不必更改所有的App
l 因此对云平台开发者是非常有利的
l UI控件相关的Permission机制定义
l SDK版本信息和Permission定义
l 测试框架定义
微课-11(请点击此图,立即体验)
Part-E:移动终端的业务框架(Business framework)开发
E1. 从Android开放源码来阐述其Framework设计方法
l 说明<平台>与<应用>框架之密切关系
l 如何以C/C++和JNI(Java Native Interface)实现平台框架
l 如何透过JNI衔接Java层与C/C++层框架
l 阐述HAL(Hardware Abstraction Layer)驱动层框架设计
微课-12(请点击此图,立即体验) 微课-13(请点击此图,立即体验)
E2. 以软件框架(Framework)实践强势架构设计
l 假设à假想à愿景à商业模式à架构à软件框架
l 愿景是自由的假想(Hypothesis)
l 商业模式来自愿景(Vision)
l 商业模式是愿景的可获利策略(Profitable Strategy)
l 架构(Architecture)是商业模式的可实现计划(Achievable Plan)
l 框架(Framework)是一种计算机可以执行的架构(Architecture)
l 框架的内涵是程序码。
l 框架呈现形式是:元素是软件程序码;结构是软件基类(Super class)和API( Application Programming Interface )
l 商业模式是必备条件,框架是充分条件
l 框架实践话语权
l 框架实践强势商业模式
微课-14(请点击此图,立即体验)
E3. 多层业务框架的实践:在C/C++层上建立Java层业务框架
l 使用JNI(Java Native Interface)
l 例如,C/C++平台的<业务规则BR引擎>可以搭配一个Java框架
l 因为C/C++模块(如<业务规则引擎>)可以调用Java函数,所以C/C++平台仍然拥有主控权
l 观摩Android GPS(Location Service)服务框架体系
E4. 大数据Spark/Hadoop平台上的Scala应用框架实践范例
l 活用Spark API
l Spark RDD/HBase与Hadoop Node的衔接技术
l 善用Scala的"trait"定义应用框架的API
l 从Scala框架存取HBase大数据
l C/C++模块(如<业务规则引擎>)可以调用Scala函数
l 活用Hbase的Thrift本地接口
微课-15(请点击此图,立即体验) 微课-16(请点击此图,立即体验)
四、讲师:高焕堂
详细履历,请参考网页<认识高焕堂>:
http://8204129.blog.51cto.com/8194129/1354869
~ end ~