原创文章,转载请指明出处并保留原文url地址
一.智能手机基本概念
智能手机(Smartphone),是指“像个人电脑一样,具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类手机的总称”。
通常使用的操作系统有:Symbian、Windows Mobile、Windows phone、 iOS、 Linux (含Android、 Maemo、 MeeGo 和WebOS)、Palm OS和BlackBerry OS。 当然目前最广泛的是apple的iphone系列(ios),google的andriod系列。
智能手机比传统的手机具有更多的综合处理能力。智能手机同传统手机外观和操作方式类似,不仅包含触摸屏也包含非触摸屏数字键盘手机和全尺寸键盘操作的手机。但是传统手机都使用的是生产厂商自行开发的封闭式操作系统,所能实现的功能非常有限,不具备智能手机的扩展性。
“智能手机(Smart Phone)”这个说法主要是针对“功能手机(Feature phone)”而来的,本身并不意味着这个手机有多“智能(Smart)”;从另一个角度来讲,所谓的“智能手机(Smart Phone)”就是一台可以随意安装和卸载应用软件的手机(就像电脑那样)。“功能手机(Feature phone)”是不能随意安装卸载软件的。
智能手机具有五大特点:
⒈ 具备无线接入互联网的能力,即需要支持GSM网络下的GPRS或者CDMA网络的CDMA 1X或3G(wcdma、cdma-evdo、TD-scdma)网络,甚至4G(HSPA+、FDD-LTE、TDD-LTE)。
⒉ 具有PDA的功能,包括PIM(个人信息管理),日程记事,任务安排,多媒体应用,浏览网页。
⒊ 具有开放性的操作系统,拥有独立的核心处理器(CPU)和内存,可以安装更多的应用程序,使智能手机的功能可以得到无限扩展。
⒋ 人性化,可以根据个人需要扩展机器功能。根据个人需要,实时扩展机器内置功能,以及软件升级,智能识别软件兼容性,实现了软件市场同步的人性化功能。
⒌ 功能强大,扩展性能强,第三方软件支持多。
不足:价格普遍较高,易用性较差,新手需要慢慢适应。那些对电脑以及手机不是很熟悉的朋友来说,如果你想玩转一个智能手机,不花点时间好好钻研钻研是不行的 ,毕竟如今的智能手机就好比是一台缩小版的PC,这问题是本文要重点讨论的情况,这是个实实在在的情况,请注意!!。
从广义上说,智能手机除了具备手机的通话功能外,还具备了PDA的大部分功能,特别是个人信息管理以及基于无线数据通信的浏览器,GPS和电子邮件功能。智能手机为用户提供了足够的屏幕尺寸和带宽,既方便随身携带,又为软件运行和内容服务提供了广阔的舞台,很多增值业务可以就此展开,如:股票、新闻、天气、交通、商品、应用程序下载、音乐图片下载等等。结合3G通信网络的的支持,智能手机的发展趋势,势必将成为一个功能强大,集通话、短信、网络接入、影视娱乐为一体的综合性个人手持终端设备。
软件:几乎所有的手机包括某种形式的软件(最基本的模型是包括包括一个地址簿或某种形式的联系助理,例如) ,智能手机将有能力做更多的工作。它可让您创建和编辑微软Office文档-或至少查看档案。它可能允许您下载的应用,如个人和企业财务助理。或者,它可让您编辑照片,通过全球定位系统规划行车路线,并创建一个播放数字音乐。
Web访问:更多智能手机可以用更快的速度进入该网站,该手机能连接3G数据网络,并增加了Wi - Fi的支持。不过,并不是所有的智能手机提供高速上网,但是他们都提供某种形式的访问。您可以使用手机浏览您最喜爱的网站。
QWERTY键盘:智能手机包括一个QWERTY键盘。他们将在您的电脑键盘-而不是按字母顺序排列顶部的数字键盘,在那里你必须利用1号进入一个有A ,B,或C该键盘可硬件(物理键盘)或软件(和触摸屏一样,如iPhone)。
消息:所有的手机可以发送和接收文字信息,而一个智能手机除了是处理电子邮件, 智能手机可以同步您的个人-,有时你的专业-电子邮件帐户。一些手机可以支持多个电子邮件帐户。其他包括:访问流行的即时通讯服务,如QQ、MSN、以及AOL的AIM和Yahoo。
另外,智能手机功能还包括:邮件:通常智能手机是为商务人士而设计,而目前全球商务最主要的联络方式不是电话、短信而是邮件,尤其是在贸易公司或全球性公司中邮件是一个商务人士一天主要处理的工作内容,而智能手机第一需要支持的就是邮件。
联系人:除了邮件,在通话的过程中都需要调用联系人电话簿,一般人都是将电话簿只保存在手机上手机丢失或更换手机,庞大的地址簿相当的不方便,聪明一点的人是使用数据线与电脑同步,但真正正确的使用方法是通过无线同步,无论在电脑上或手机上进行了联系人 的更改都可以得到有效的同步。
日历:商务手机日程安排是一个很好的功能.但受限于手机的操作性问题很少有人会在手机上安排所有的事情,此时又需要与电脑同步。支持文档查看和编写:除了以上,商务手机还能够处理日常工作中的文档,以保证手机成为一个移动的工作平台。
另外智能手机中近期的手机基本上都支持html5,相对于传统互联网上pc浏览器来说,对html5的支持有了长足进步,下面简单介绍一些html5.
二.智能手机与html5
HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准的 HTML 标准版本,大部分浏览器已经支持某些 HTML5 技术,特别是智能手机浏览器。HTML 5有两大特点:首先,强化了 Web 网页的表现性能。其次,追加了本地数据库等 Web 应用的功能。广义论及HTML5时,实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。
大部分现代浏览器已经具备了某些 HTML5 支持。支持的浏览器包括Firefox,IE10,IE9,Chrome,Safari,Opera等。
Html5的几个比较重要的特性如下:
1. 本地存储特性
基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度,这些全得益于HTML5 APP Cache,以及本地存储功能。Indexed DB(html5本地存储最重要的技术之一) 和API说明文档。
2. 连接特性
更有效的连接工作效率,使得基于页面的实时聊天,更快速的网页游戏体验,更优化的在线交流得到了实现。HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性能够帮助我们实现服务器将数据’推送’到客户端的功能。
3. 网页多媒体特性
支持网页端的Audio、Video等多媒体功能, 与网站自带的APPS,摄像头,影音功能相得益彰。
4. 三维、图形及特效特性
基于SVG、Canvas、WebGL及CSS3的3D功能,用户会惊叹于在浏览器中,所呈现的惊人视觉效果。
5. 性能与集成特性
没有用户会永远等待你的Loading——HTML5会通过XMLHttpRequest2等技术,帮助您的Web应用和网站在多样化的环境中更快速的工作。
另外,HTML5可以进行跨平台的使用。比如你开发了一款HTML5的游戏,你可以很轻易地移植到UC的开放平台、Opera的游戏中心、Facebook应用平台,甚至可以通过封装的技术发放到App Store或Google Play上,所以它的跨平台非常强大,也是大多数人对HTML5有兴趣的主要原因。
以上仅仅是html5的一个简单介绍,详细情况请搜索网络
三.手机程序开发的常见流程
智能手机可以方便安装各种第三方软件,方便了用户使用,第三方如何开发一个手机程序?大概流程是什么?
下图是通常情况下一个常见开发过程
如上图, 图中核心是一款手机网络程序(我们仅仅讨论网络程序),围绕这个网络程序我们包括如下过程:规划、开发、测试、部署维护、使用等几个过程。
l 规划,一般指策划一款手机产品,这里重点应该是产品如何创新,如何满足用户需求,设想用户若是拿到一款手机产品后,就像是有一盏明灯指引他工作,那这个产品就该成功了。否则用户可以立即丢弃他(现在同质化产品太多了)
l 开发,有了好的规划,就要有能力实现这个产品,一般网络产品必然包括:用户端、服务端两个部分,两个部分都要进行开发,一般都是程序员做在电脑前。。。。。。(大家都知道)
l 测试,开发好了或者开发中后期,QA人员就会借入,进行测试检查,可能要进行n多轮,测试=》开发=》测试=》开发。。。。。。
l 部署维护, 测试终于通过了可以进行部署了,这个时候部署了服务端程序,分发用户端程序,然后用户将进行产品的使用及体验了。
l 使用,就是用户具体的使用,以及进行一些反馈等等,用户使用环境可能是非常多样的,不要限制用户的场所及方法,用户在那使用这事没准。。。。。
四.用户端为核心的网络软件运行模式
下图是传统的客户端为核心的手机软件开发及运行示意图
上图展示了软件开发及运行的相关情况,上半部分是软件开发过程,下半部分是软件的运行情况,分别是:开发阶段, 运行阶段。
l 开发阶段,开发人员根据产品的规划对产品进行开发,包括用户端软件开发,服务端软件开发两部分,每个部分开发都同上面开发流程中的过程类似。在软件开发阶段最后进客户端软件的分发, 服务端软件的部署,然后用户使用。
一般产品都不会仅仅只有一个版本,会规划若干版本。同时一个版本也会由于bug等修改若干个小版本,因此分发一定是多次,开发等一定是多次进行的。
这样有个问题,用户情况千差万别,有很大部分用户不会升级(甚至不了解何为升级),另外一部分用户对升级有排斥心理,还有一部分才会选择升级。(我本身使用iphone手机,最不愿意做的事情就是升级,有很多软件等都使用熟练了,升级后时常有问题,或者操作方法变化了,或者有新问题,因此升级是个慎重的事情)。
l 运行阶段,主要表现软件运行过程中的事情。在这个阶段用户通过手机使用我们特定产品。以客户端为核心的软件产品中,有的产品中包括一个浏览器控件,可以在控件中访问服务器的web页面,实现一定功能。但同时客户端中更多的核心代码是使用本地开发api编写的核心逻辑。这些本地代码执行大部分业务逻辑,显示逻辑,操作逻辑等。
因此每次若是修改产品功能,一般来讲必将带来客户端代码的修改,必将带来软件的分发。这样上面用户升级的问题就发生了。
服务器端开发同传统web系统基本类似,也可能有多次迭代,但是无论如何,他部署在自己的机房中,开发人员有足够的时间修改bug扩展功能等,而这些修改自然应用给相关客户了。
另外,客户端本地api接口各不一样,操作系统不一样,开发语言也不一样,开发难度更不一样,因此有很大的开发难度及成本。。。。。。
基本上是一个,周期长,成本高,风险大,维护性差。。。。
五.服务端为核心的网络软件运行模式
传统上的智能手机是个差异化很大的系统,他们尽管智能但是可扩展性,上网能,特别是浏览网页能力都是不足的,因此造就了以客户端为核心的系统。
但是随着iphone及android手机等普及,wifi及3g上网能力逐渐增强,基于浏览器的应用逐渐多了起来。
现在iphone及android手机用户已经很多,并且这些用户消费能力很强,因此这些手机的应用是我们的重点。
这些手机一个共同特点就是上网能力,浏览网页能力非常强,他们的原生浏览器非常好,同时他们的应用中已经允许嵌入浏览器控件(这个教法可能不准确,大家都能明白)。
同时android及iphone对html5+css3有了非常大支持, 在html5中已经可以采用websocket,opengl,本地存储等见前面小节
因此一种以server端为核心的手机应用程序可以实施了。
我们可以方便的创建一个简便的app的本地程序(可以称作壳程序,因为它本身没有什么功能,就是一个承载浏览器控件的空壳程序),他仅仅提供必要的一个壳程序(shell),在壳中嵌套一个浏览器插件或者控件,浏览器控件访问服务器页面,在服务器页面中采用html5的技术实现各种业务逻辑。
由于壳程序非常简单,因此bug,维护等都会非常少,升级也会非常少,减少不必要的麻烦。
下图是以server端为核心的手机软件开发及运行示意图
上图展示了软件开发及运行的相关情况, 上半部分是软件开发过程,下半部分是软件的运行情况,分别是:开发阶段, 运行阶段。
l 开发阶段,开发人员根据产品的规划对产品进行开发,包括用户端软件开发,服务端软件开发两部分,每个部分开发都同上面开发流程中的过程类似。在软件开发阶段最后进客户端软件分发, 服务端软件的部署,然后用户使用。
由于在server为核心的软件模式中,客户端是个简单的壳程序,因此可以开发一个简单的,基本就不用在做多少改动了,因此大大减少了app软件的分发苦难,升级困难等。
当系统功能需要进行扩展时,我们仅仅需要修改相应的server端程序,然后部署,最后壳程序就会在适当时候加载新版本的server端页面,这样可以无缝完成用户的升级等功能。
l 运行阶段,主要表现软件运行过程中的一些事情。在这个阶段用户通过手机使用我们的特定产品。
在以服务端为核心的软件产品中,产品的功能核心在一个浏览器控件中,在控件中访问服务器的web页面,实现大部分功能逻辑。显示逻辑,操作逻辑等在浏览器控件中完成,业务核心逻辑可以根据html5特点在本地或者在server中完成。
服务器端开发同传统web系统基本类似,也可能有多次迭代,但是无论如何,他部署在自己的机房中,开发人员有足够的时间修改bug扩展功能等,而这些修改自然应用给相关客户了。
另外,客户端本地api接口各不一样,开发语言也不一样,开发难度也不一样,但是由于仅仅需要一个简单的壳程序,因此开发难度等等都将大大降低
个人认为,对于一些对手机自身特性要求少的应用程序,通用程序,以及适合web方式展现的程序,非常适合采用这种以server为核心的方式开发系统。