移动平台端到端低成本解决方案

1、 概述

《移动平台End-2-End低成本解决方案》一课,描述的是当今移动互联网大局背景下,如何低成本的为移动应用搭建一个低成本服务端。从而实现中小开发者、产品发烧友对开发End-2-EndSystem产品的追求。这个低成本的服务端方案,现在已经有众多选择, 本文将围绕百度云平台进行架构设计, 并以一个现有的Android版本英语词典《凡尘英语》作为典型实践, 验证其技术的简洁性和成本的低廉性。

 

特别提出: 本课程不会做过多的技术细节讨论,关注的是: 整体产品的技术方案选型以及产品设计的知识。

1.1  移动解决方案介绍




移动平台技术架构 移动平台方案_服务端




主流的C/S的模式【服务端/客户端模式】

 

为什么做这样的选择?

1.      省电、节能的需求:鉴于手持端的特点, 不适合做计算量大的功能, 尽量将复杂的逻辑处理放置云端, 有利于节省手持设备的电量, 避免终端发热。

2.      UI操作简洁性需求: 手持终端操作尽量要求简洁, 因此界面设计需要紧凑,从而不适合富客户端方式的架构设计,手持终端尽量降低复杂性。

3.      容易维护的需求: 为了容易维护(即改动最小), 逻辑改动在服务端修改的话,代价是最小的。同样,客户端需要跨平台,但服务器端不需要跨平台,因此将维护和扩展工作放置在服务端,代价可以最小化。

4.      优秀实践佐证:证明云端的架构对项目的后期发展更有利。典型代表有

1.      Google 系列: 如Search API,Map API

2.      SNS系列: Facebook,Twitter, douban

3.      门户网站系列:新浪微博, 淘宝

 

 

【Unix设计原则: 经济性原则】

Programmer time is expensive; conserve itin preference to machine time.

宁花机器一分钟,不费程序员一秒。

 

【注意】

我们这里忽视了一类非主流的应用, 就是单机版应用程序。请思考原因。

1.2  预期效果

l  知识提升: 移动开发背景知识、移动开发常用技术

l  实践提升:利用百度云平台,零成本搭建服务端平台

l  产品开发:个人产品开发流程

 

特别注意,我们这里偏重的是整体产品的系统设计和技术方案选型, 对具体技术不会过分纠结。如果有更多需要讨论的,请课后沟通。

1.3  培训对象

l  对移动产品兴趣浓厚者

l  产品控, 发烧友, 对折腾一个产品非常有兴趣的人

l  屌丝程序猿, 没钱,有精力, 成本控

2、 移动开发技术一览

移动产品开发技术,目前已经明确的划分为三大流派:

纯手机平台开发模式: Native 技术(C/S模式)

         移动Web开发模式: 浏览器模式(纯Browser模式)

         混合开发模式:Native模式 + Web开发模式

 

 

 

 

2.1  Native技术

IOS 开发

Android 开发

Window phone 开发

特点:

完全依附各自平台,独立的挣扎, UI之间完全不能共用, 这样的方案, 在【游戏】开发中大量盛行。原因?


移动平台技术架构 移动平台方案_移动平台技术架构_02



管理成本高昂的NativeApp

2.2  web技术【HTML5】

 

纯HTML5开发

需要做以下突破:

a. 支持硬件感应器 (gps/摄像头/屏幕分辨率适配)

b. 浏览器对硬件标签支持

c. 最重要的: 统一HTML5规范

 

 

即使,有一天,我们解决了这些问题, 纯Web还有一些纠结的问题要解决:

1. 输入网址访问的用户体验, 想想就觉得难受

2. web访问的流畅性、交互性,需要一段很长读路要走。(记得flash在移动领域是怎么死掉的吗?)


移动平台技术架构 移动平台方案_HTML5_03



纯 Web方案, 还只是个传说

So, It is a long way…..

2.3  Native + HTML5

混合APP也称为Hybrid App

特点:

1. 利用Native code提供的Web组建, 嵌入HTTP链接, (当然也有一些人直接将HTTP的资源打包成应用程序, 这种模式存在很大问题,思考一下原因)

2. Native Code处理设备相关的代码,HTML5用来处理服务端数据展示和交互

3. 同样需要接受App市场的审核.【一般而言,干坏事的都是NativeCode, 也可以思考一下原因】

 

进展:

业界应用:

1. 网易App家族

2. facebook, Yelp[类似于大众点评]

3.随便翻开手机, 都可以看到, 比如你用的淘宝等


移动平台技术架构 移动平台方案_移动平台技术架构_04



3、 需要了解的云端世界

无虚拟、不云端

3.1  搭建服务器的成本

1.  独立服务器成本

         刀片服务器(1w~3w)+ 主机托管(6K/year) + 域名费用(100元/年)

2.  vps成本

         国内均价100元/月以内, 国外也不会超过两百

 

移动平台技术架构 移动平台方案_移动平台技术架构_05


 

3.  收费云平台

按照流量和使用频率付费 ===》用户规模小,免费


移动平台技术架构 移动平台方案_移动平台技术架构_06

百度云计费标准

3.2  常见的云服务

国外:

亚马逊

Google AppEngine

国内:

阿里云

百度云

新浪云

3.3  推荐之一: 百度BAE

1. 支撑范围广,都为主流技术, Java,Mysql, 相关的大文件,大数据服务齐全【云盘支持力度好】

2. 足够强的移植能力, 正因为主流, 所以一旦应用做强,脱离BAE,成本最小。适合做大做强。

3.4  推荐之二: 新浪SAE

平台增值能力好, 非常容易和新浪最NB的接口,微博实现无缝对接。微博营销能力极强,可以减少日后的推广成本。

 

其他阿里系列的也是非常好的平台, 尤其是淘宝API接口,绝对不容小觑。

4、低成本实践检验: 凡尘英语

4.1  产品定位

l  随时随地学习。 并记录用户学习的特点。每天、每周、每月会统计排行,查看用户对那些单词关注度比较高。

l  以学习为目的,按需下载分类。比如: 商贸英语、海关英语、IT英语等。

l  以用法为中心的学习模式,促进深度记忆: 单词 ——>例句 ——>例句中的单词 ——> 再到例句的无限联想记忆。强调背诵例句。

l  强调关联学习:词之间有的关联。强调用户的关联记忆能力,比如apple的关联词为Pear, fruit等, 由一个词扩展到多个词。反复记忆。

 

4.2  UGC vs PGC

UGC: User Generated Content

PGC: Professionally Generated Content

 

4.3  内容来源

人工刷选 + 自动的方式

4.4  Client 和免费BAE的交互


移动平台技术架构 移动平台方案_移动平台技术架构_07



成本节约和安全策略:

1. 每天限制和BAE的交互次数,每个客户端每天一次.

2. 单词全部下载到本地, 避免每次都需要从服务端获取

3. 服务端对程序有绝对控制力度. 控制版本升级,防止不规范的客户请求,恶意客户,竞争对手等。

 

 

5、课程小结

移动开发技术包含哪三种?

常见云服务提供商有哪些(说出两种即可)

 

参考资料:

HTML5与NativeApp之争继续发酵,Hybrid App趁势而起