高焕堂的招牌课程


移动终端App&Platform开发的高端技术和策略  课程


By 高焕堂 老师


目录:

Part-A

跨平台开发,芯片兼容性问题的常用解决方

說明:通常,芯片厂商的修改点并不聚焦,而是散落于产品(含芯片及其搭配的Android x.x版本)的各个层的各个模块中,如果逐点进行抽象封装很难解决问题。究竟厂商该如何克服这些挑战呢? 一般的终端厂商的常见的对策是什么? 采用那些设计模式和技术呢?


Part-B




Android 碎片化管理、各种SDK兼容性策略

說明:面对强势的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. 产业供应链与芯片技术发展

介绍主流Android 4.x/5.x兼容芯片(如高通的7X27, 8X25, 8X60,TI OMAP等)的产业技术现况与发展趋势

以智能TV/STB的供应链为例,阐述主流芯片(如晨星MSD6A806, 高通Snapdragon S4 MPQ8064)与终端厂商的合作关系及其商业模式

这些不同的芯片技术上的共同点和差异点

不同芯片平台与Android软件平台结合的共同点和差异点

A2. 应用开发的挑战与策略

如何让行业应用软件跨越Android的版本升级和碎片化障碍?

如何让行业应用软件跨<操作系统>平台(如Android、iOS等)呢?

如何提升自己平台的稳定性,降低升级成本?

互联网或电信厂商如何追求跨终端平台(如TV, Pad等)?

终端应用如何跨云端(Cloud)平台?

A3. 终端产品厂商的挑战与策略

讨论不同终端厂商最常采用的平台化策略

举例说明<芯片平台化策略>的要点

如何建置中间件,跨自己平台(的版本)问题     

芯片厂商的基线升级后,应该如何跟进? 

移动终端开发_高端课程_ 思考技術          移动终端开发_高端课程_高煥堂_02

  微课-1(请点击此图,立即体验)     微课-2(请点击此图,立即体验)

Part-BAndroid 碎片化管理、各种SDK兼容性策略

B1. Android碎片化幕后的旺盛生命力

碎片化忧虑的来源是什么?

谁会忧虑Android的碎片化呢?

碎片化也意味着旺盛的生命力

芯片厂商的角色和影响力

如何让行业应用软件跨越Android的版本升级和碎片化障碍?

如何让行业应用软件跨<操作系统>平台(如Android、iOS等)呢?

如何提升自己平台的稳定性,降低升级成本?

互联网或电信厂商如何追求跨终端平台(如TV, Pad等)?

终端应用如何跨云端(Cloud)平台?

 B2. 如何拥有改版的话语权

熟悉Android的知识体系

从框架角度切入,可以找到它的甜心点(Sweet Spot)

掌握三个要素:平台、接口和插件

擅用Android碎片化幕后的欣欣向荣的活力和机会

移动终端开发_高端课程_ 思考技術_03        

  微课-3(请点击此图,立即体验

Part-CAndroid移动应用开发框架和技术发展趋势

C1.掌握Android架构体系和机制设计

HTML5/JavaScript层

创造跨平台的HTML5/JS层

这透过WebView呼叫下层的Java插件(属于Java层)

Java层

这是专属于Android平台的App

透过JNI呼叫本地C函数(属于本地C层)

JNI / C层

能透过ServiceManager绑定下层的C++核心服务

也能直接呼叫HAL-based驱动模块

核心(系统)服务层

  直接呼叫下层的HAL-based驱动模块

  也能将讯息传送给上层本地C模块

  核心服务也能以Java来撰写,这种核心服务属于Java层

HAL & 驱动层

为了避开GPL协议,Android驱动大多写成HAL Stub模块

HAL Stub可透过System Call呼叫Linux内核,实际控制硬件


移动终端开发_高端课程_高煥堂_04            移动终端开发_高端课程_ A段架構師_05

微课-4(请点击此图,立即体验)     微课-5(请点击此图,立即体验)

C2. Android水平方向的整合机制:IPC

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

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

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

Proxy和Stub类别的代码设计

Proxy和Stub类别的API

如何自动生成Proxy和Stub类别代码

  IBinder接口& AIDL方法

方法(一):Implementing a Binder

方法(二):Using a Messenger 

方法(三):Bound Services

移动终端开发_高端课程_高煥堂_06                    移动终端开发_高端课程_ A段架構師_07

微课-6(请点击此图,立即体验)     微课-7(请点击此图,立即体验)

C3.  Android的垂直方向整合机制:NDK/JNI    

 Java解决不了的问题:效率、覆用既有C模块 

 控制点的抉择

 控制点的规划

 控制点在Java层:复习Java呼叫Native C函数

 控制点在C/C++:Native C如何呼叫Java函数

 控制点在C/C++:Native C函数如何诞生Java对象

  JNI Native C的线程模式

 Android VM的线程模式介绍

 JNI Native C程序的线程模式 

 JNI Native程序的线程安全设计

移动终端开发_高端课程_高煥堂_08   

 微课-8(请点击此图,立即体验)

C4. 应用开发的跨平台策略

如何根据业务特点选择恰当的策略和技术

比较Hybrid, native code和HTML5 + JS的优劣点

PhoneGap与HTML5+JS的组合策略

如何让PhoneGapnative code组合呢? 有什么好处呢?

C5. 如何重构PhoneGap平台

复习Android各层级的插件管理机置

如何管理Java层的三种插件(即用户、企业和平台插件)

如何管理C/C++层的平台插件

Java层插件与C/C++层插件互相衔接:使用 JNI

常用插件的创建机制

移动终端开发_高端课程_ A段架構師_09                 移动终端开发_高端课程_ 思考技術_10

微课-9(请点击此图,立即体验)     微课-10(请点击此图,立即体验)

Part-D移动时代SDK战略和App开发群经营策略

D1. 移动终端SDK的意义

传统SOA架构比较封闭,高度排他性在异构、分散的大数据时代里,它的整合成本居高不下,不适宜整合Hadoop/Spark大数据云平台

许多企业推出自己的移动终端SDK,整合Hadoop、SOA、百度等云服务

D2. 移动终端SDK的运行与管理要点

SDK和平台(框架)都像”花轿”,做得好稳定好用,是必要条件而已;还要还要有人来抬轿,才是充分条件

如何<威胁利诱>引导众人来抬轿呢? 例如,以终端SKD封装云平台(后台服务端)的服务,逼迫众多App开发者必须使用SDK

反过来,为什么云平台(后台服务端)的服务,要让我们的SDK包装呢? 此时,SDK必须带给服务端利益,例如将服务端接口包装与SDK父类里,App必须调用父类函数,间接使用服务端的接口,未来服务端接口通信协议改版了,只要更改SDK父类,而不必更改所有的App

因此对云平台开发者是非常有利的

UI控件相关的Permission机制定义

SDK版本信息和Permission定义

测试框架定义

移动终端开发_高端课程_高煥堂_11

微课-11(请点击此图,立即体验)

Part-E移动终端的业务框架(Business framework)开发

E1. 从Android开放源码来阐述其Framework设计方法

说明<平台><应用>框架之密切关系

如何以C/C++和JNI(Java Native Interface)实现平台框架

如何透过JNI衔接Java层与C/C++层框架

阐述HAL(Hardware Abstraction Layer)驱动层框架设计      

                  移动终端开发_高端课程_高煥堂_12                   移动终端开发_高端课程_高煥堂_13

         微课-12(请点击此图,立即体验)     微课-13(请点击此图,立即体验)

E2. 以软件框架(Framework)实践强势架构设计

假设à假想à愿景à商业模式à架构à软件框架

愿景是自由的假想(Hypothesis)

商业模式来自愿景(Vision)

商业模式是愿景的可获利策略(Profitable Strategy)

架构(Architecture)是商业模式的可实现计划(Achievable Plan)

框架(Framework)是一种计算机可以执行的架构(Architecture)

框架的内涵是程序码。

框架呈现形式是:元素是软件程序码;结构是软件基类(Super class)和API( Application Programming Interface ) 

商业模式是必备条件,框架是充分条件

框架实践话语权

框架实践强势商业模式

 移动终端开发_高端课程_ A段架構師_14     

        微课-14(请点击此图,立即体验)

E3. 多层业务框架实践在C/C++上建立Java层业务框架

使用JNI(Java Native Interface)

例如,C/C++平台的<业务规则BR引擎>可以搭配一个Java框架

因为C/C++模块(如<业务规则引擎>)可以调用Java函数,所以C/C++平台仍然拥有主控权

观摩Android GPS(Location Service)服务框架体系

E4. 大数据Spark/Hadoop平台上的Scala应用框架实践范例

活用Spark API

Spark RDD/HBase与Hadoop Node的衔接技术

善用Scala的"trait"定义应用框架的API

Scala框架存取HBase大数据

C/C++模块(如<业务规则引擎>)可以调用Scala函数

活用Hbase的Thrift本地接口     


移动终端开发_高端课程_高煥堂_15              移动终端开发_高端课程_ 思考技術_16

微课-15(请点击此图,立即体验)     微课-16(请点击此图,立即体验)


四、讲师高焕堂

移动终端开发_高端课程_高煥堂_17


详细履历,请参考网页<认识高焕堂>

          http://8204129.blog.51cto.com/8194129/1354869


~ end ~