PhoneGap从入门到精通(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-31 10:03:18

点击下载

作者:巅峰卓越

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

PhoneGap从入门到精通

PhoneGap从入门到精通试读:

前言

本书是专门为初学者量身打造的一本编程学习用书,由知名计算机图书策划机构“巅峰卓越”精心策划而成。

本书主要面向Phone Gap的初学者和爱好者,旨在帮助读者掌握Phone Gap的基础知识,了解开发技巧并积累一定的项目实战经验。

为什么要写这样一本书

荀子曰:不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之。

实践对于学习的重要性由此可见一斑。纵观当前编程图书市场,理论知识与实践经验的脱节,是很多Phone Gap图书的写照。为了杜绝这一现象,本书立足于实践,从项目开发的实际需求入手,将理论知识与实际应用相结合。目标就是让初学者能够快速成长为初级程序员,并获得一定的项目开发经验,从而在职场中拥有一个高起点。

Phone Gap的最佳学习路线

本书总结了作者多年的教学实践经验,为读者设计了最佳的学习路线。

本书特色

零基础、入门级的讲解

无论读者是否从事计算机相关行业,是否接触过Phone Gap,都能从本书中找到最佳起点。

超多、实用、专业的范例和项目

本书彻底摒弃枯燥的理论和简单的说教,注重实用性和可操作性,结合实际工作中的范例,逐一讲解利用Phone Gap进行开发所需的各种知识和技术。最后,还以实际开发项目来总结本书所学内容,帮助读者在实战中掌握知识,轻松拥有项目经验。

随时检测自己的学习成果

每章首页罗列了“本章要点”,以便读者明确学习方向。每章最后的“实战练习”则根据所在章的知识点精心设计而成,读者可以随时自我检测,巩固所学知识。

细致入微、贴心提示

本书在讲解过程中使用了“提示”“注意”“技巧”等小栏目,帮助读者在学习过程中更清楚地理解基本概念,掌握相关操作,并轻松获取实战技能。

超值光盘

9小时全程同步教学录像

涵盖本书所有知识点,详细讲解每个范例及项目的开发过程及关键点,帮助读者更轻松地掌握书中所有的Phone Gap知识。

超多王牌资源大放送

赠送大量超值资源,包括7小时HTML5 + CSS + Java Script实战教学录像、157个HTML+CSS+Java Script前端开发实例、571个典型实战模块、184个Android开发常见问题/实用技巧及注意事项、Android Studio实战电子书、CSS3从入门到精通电子书及案例代码、HTML5从入门到精通电子书及案例代码,以及配套的教学用PPT课件等。

读者对象

▲没有任何移动开发基础的初学者和编程爱好者

▲有一定的移动Web开发基础,想精通Phone Gap的人员

▲有一定的Phone Gap开发基础,缺乏移动Web开发项目经验的从业者

▲大专院校及培训学校相关专业的老师和学生

光盘使用说明

01.光盘运行后会首先播放带有背景音乐的光盘主界面,其中包括【配套源码】、【配套视频】、【配套PPT】、【赠送资源】和【退出光盘】5个功能按钮。

02.单击【配套源码】按钮,可以进入本书源码文件夹,里面包含了“配套源码”和“实战练习”两个子文件夹,如下左图所示。

03.单击【配套视频】按钮,可在打开的文件夹中看到本书的配套教学录像子文件夹,如下右图所示。

04.单击【配套PPT】按钮,可以查看本书的配套教学用PPT课件,如下左图所示。

05.单击【赠送资源】按钮,可以查看本书赠送的超值学习资源,如下右图所示。

06.单击【退出光盘】按钮,即可退出本光盘系统。

本书由巅峰卓越编著,参加资料整理的人员有周秀、付松柏、邓才兵、钟世礼、谭贞军、张加春、王教明、万春潮、郭慧玲、侯恩静、程娟、王文忠、陈强、何子夜、李天祥、周锐、朱桂英、张元亮、张韶青、秦丹枫等。

由于编者水平有限,纰漏和不尽如人意之处在所难免,诚请读者提出意见或建议,以便修订并使之更臻完善。若读者在学习过程中遇到困难或疑问,或有任何建议,可发送电子邮件至 zhangyi@ptpress. com.cn。编者2016年10月第0章 移动Web开发学习指南本章教学录像:26分钟

移动Web程序是指能够在智能手机、平板电脑、电子书阅读器等可移动设备中完整运行的Web程序。和传统桌面式Web程序相比,移动Web要求程序更加简单、高效,而且具备传统桌面Web程序所没有的硬件优势,例如GPS定位、传感器应用等。本章将简要介绍开发移动Web应用程序的基础知识,以便为读者步入本书后面知识的学习打下基础。

本章要点(已掌握的在方框中打钩)

Web标准开发技术

移动Web开发概览

移动Web开发必备技术

移动Web学习路线图

Phone Gap学习路线图0.1 Web标准开发技术本节教学录像:5分钟

自从互联网推出以来,因其强大的功能和娱乐性而深受广大浏览用户的青睐。随着硬件技术的发展和进步,各网络站点也纷纷采用不同的软件技术来实现不同的功能。这样,在互联网这个宽阔的舞台上,站点页面技术将变得更加成熟并稳定,将会推出更加绚丽的效果展现在广大用户面前。为了保证Web程序能够在不同设备中的不同浏览器中运行,国际标准化组织制定出了Web标准。顾名思义, Web标准是所有站点在建设时必须遵循的一系列硬性规范。因为从页面构成来看,网页主要由3部分组成,分别为结构(Structure)、表现(Presentation)和行为(Behavior),所以对应的Web标准由这3方面构成。0.1.1 结构化标准语言

当前使用的结构化标准语言是HTML和XHTML,下面将简要介绍这两种语言。

HTML

HTML是Hyper Text Markup Language(超文本标记语言)的缩写,是构成Web页面的主要元素,是用来表示网上信息的符号标记语言。通过HTML,可以将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML翻译成可以识别的信息。这就是所见到的网页。HTML语言是网页制作的基础,是网页设计初学者必掌握的内容。

XHTML

XHTML是Extensible Hyper Text Markup Language(可扩展超文本标记语言)的缩写,是根据在XML标准建立起来的标识语言,是由HTML向XML的过渡性语言。0.1.2 表现性标准语言

目前的表现性语言是CSS。CSS 是Cascading Style Sheets(层叠样式表)的缩写。当前最新的CSS规范是W3C于2001年5月23日推出的CSS3。通过CSS技术可以对网页进行布局,控制网页的表现形式。CSS可以与XHTML语言相结合,实现页面表现和结构的完整分离,提高站点的使用性和维护效率。0.1.3 行为标准

当前的行为标准是DOM和ECMAScript。DOM是Document Object Model(文档对象模型)的缩写。根据W3C DOM规范,DOM是一种与浏览器、平台和语言的接口,使得用户可以访问页面其他的标准组件。简单理解,DOM解决了Netscaped的Javascript和Microsoft的Jscript之间的冲突,给予Web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据、脚本和表现层对象。从本质上讲,DOM是一种文档对象模型,是建立在网页和Script及程序语言之间的桥梁。

ECMAScript是ECMA(European Computer Manufacturers Association,欧洲计算机制造联合会)制定的标准脚本语言(Java Script)。

上述Web标准间的相互关系如图0-1所示。图0-1 Web标准结构关系图

上述标准大部分由W3C组织起草和发布,也有一些是其他标准组织制订的标准,比如ECMA的ECMAScript标准。

从上述内容中可以看出,Web标准并不是某一技术的规范,而是构成页面三大要素的规范的集合体。只有充分了解上述标准,才能掌握其中的真谛。

注意0.2 移动Web开发概览本节教学录像:12分钟

说起移动Web就不得不说传统桌面Web。传统桌面Web是指在台式机和笔记本电脑中运行的Web程序。我们所说的Web通常也就是指桌面Web。随着近年来智能手机和平板电脑等可移动设备的发展和兴起,人们纷纷在可移动设备中浏览网页。这就推动了移动Web技术的发展。在本节的内容中,将详细讲解主流移动平台和移动Web的基本特点。0.2.1 主流移动平台介绍

在当今市面中有很多智能手机系统,但是最受大家的欢迎的当属微软、塞班、黑莓、苹果和Android。在接下来的内容中,将对以上5个主流移动平台进行简要介绍。(1)Symbian

Symbian作为昔日智能手机的王者,在2005年至2010年曾一度独领风骚。那时,街上大大小小拿的很多都是诺基亚的Symbian手机,比如N70、N73、N78、N97。诺基亚N系列曾经被称为“N=无限大”的手机,其对硬件要求的水平底、操作简单、省电、软件资源多。

在国内软件开发市场内,基本每一个软件都会有对应的塞班手机版本。塞班开发之初的目标是要保证在较低资源的设备上能长时间稳定可靠的运行。这导致了塞班的应用程序开发有着较为陡峭的学习曲线,开发成本较高,但是程序的运行效率很高。比如,版本5800的128M的RAM,后台可以同时保证10个以上的程序操作流畅(多任务功能特别强大的),即使几天不关机它的剩余内存也可保持稳定。

由于对新兴的社交网络和Web 2.0内容支持欠佳,塞班占智能手机的市场份额日益萎缩。2010年末,其市场占有量已被Android超过。自2009年底开始,包括摩托罗拉、三星电子、LG、索尼爱立信等各大厂商纷纷宣布终止塞班平台的研发,转而投入Android领域。2011年初,诺基亚宣布将与微软成立战略联盟,推出基于Windows Phone的智能手机,从而在事实上放弃了经营多年的塞班,让塞班退市成为定局。(2)Android

Android一词最早出现于法国作家利尔亚当在1886年发表的科幻小说《未来夏娃》中。该书中将外表像人的机器起名为Android。Android机型数量庞大,简单易用,相当自由的系统能让厂商和客户轻松的定制各样的ROM、桌面部件和主题风格。另外,简单而华丽的界面及能够方便地刷机也是不少Android用户所津津乐道的事情。

Android版本数量较多,市面上同时存在着1.6、2.0、2.1、2.2、2.3等各种版本的Android系统手机,而开发的应用软件对各版本系统的兼容性对程序开发人员是一种不小的挑战。同时由于开发门槛低,导致应用数量虽然很多,但是应用质量参差不齐,甚至出现不少恶意软件,导致一些用户受到损失。另外,Android没有对各厂商在硬件上进行限制,导致一些用户在低端机型上体验不佳。此外,因为Android的应用主要使用Java语言开发,其运行效率和硬件消耗一直是其他手机用户所诟病的地方。(3)iOS

iOS作为苹果移动设备i Phone和i Pad的操作系统,在App Store的推动之下,成为了世界上引领潮流的操作系统之一。原本这个系统名为i Phone OS,直到2010年6月7日WWDC(Apple Worldwide Developers Conference,苹果全球开发者大会)宣布改名为iOS。iOS的用户界面能够使用多点触控直接操作,其中,控制方法包括滑动、轻触开关及按键,与系统交互包括滑动(Swiping)、轻按(Tapping)、挤压(Pinching,通常用于缩小)及反向挤压(Reverse Pinching or unpinching 通常用于放大)。此外,通过自带的加速器,iOS可以令其旋转设备改变其y轴以令屏幕改变方向。这样的设计令i Phone更便于使用。

iOS作为应用数量最多的移动设备操作系统,拥有优秀的系统设计和严格的App Store,加上强大的硬件支持以及内置的Siri语音助手,让用户体验到了科技带来的好处。(4)Windows Phone

早在2004年时,微软就开始以“Photon”的计划代号开始研发Windows Mobile的一个重要版本更新,但进度缓慢,最后整个计划都被取消了。直到2008年,在iOS和Android的冲击之下,微软才重新组织了Windows Mobile的小组,并继续开发一个新的行动操作系统。作为Windows Mobile的继承者,Windows Phone把网络、个人电脑和手机的优势集于一身,让人们可以随时随地享受到想要的体验。内置的Office办公套件和Outlook使得办公更加有效和方便。(5)Blackberry OS(黑莓)

Blackberry系统,即黑莓系统,是加拿大Research In Motion(简称RIM)公司推出的一种无线手持邮件解决终端设备的操作系统,由RIM自主开发。和其他手机终端使用的Symbian、Windows Mobile、ios等操作系统有所不同,Blackberry系统的加密性能更强,更安全。安装有Blackberry系统的黑莓机,指的不单单只是一台手机,而是由RIM公司所推出的包含服务器(邮件设定)、软件(操作接口)以及终端(手机)大类别的Push Mail实时电子邮件服务。

黑莓系统稳定性非常优秀,其独特定位也深得商务人士所青睐,可是也因此在大众市场上得不到优势,国内用户和应用资源也较少。0.2.2 移动Web的特点

其实,移动Web和传统的Web并没有本质的区别,都需要Web标准制定的开发规范,都需要利用静态网页技术、脚本框架、样式修饰技术和程序联合打造出的应用程序。无论是开发传统桌面Web程序,还是移动Web应用程序,都需要利用HTML、CSS、Java Script和动态Web开发技术(例如PHP、JSP、ASP.NET)等技术。

移动Web是在传统的桌面Web的基础上,根据手持移动终端资源有限的特点,经过有针对性的优化,解决了移动终端资源少和Web浏览器性能差的问题。和传统Web相比,移动Web的主要特点如下。(1)随时随地

因为智能手机和平板电脑等设备都是可移动设备,所以用户可以利用这些设备随时随地浏览运行的移动Web程序。(2)位置感应

因为智能手机和平板电脑等可移动设备具备GPS定位功能,所以可以在这些设备中创建出具有定位功能的Web程序。(3)传感器

因为智能手机和平板电脑等可移动设备中内置了很多传感器,例如温度传感器、加速度传感器、湿度传感器、气压传感器和方向传感器等,所以可以创造出气压计、湿度仪器等Web程序。(4)量身定制的屏幕分辨率

因为市面中的智能手机和平板电脑等可移动设备的产品种类繁多,屏幕的大小和分辨率也不尽相同,所以在开发移动Web程序时,需要考虑不同屏幕分辨率的兼容性问题。(5)高质量的照相和录音设备

因为智能手机和平板电脑等可移动设备具有摄像头和麦克风等硬件设备,所以可以开发出和硬件相结合的Web程序。

在当前Web设计应用中,移动Web的内容应当包括以下特点。

简短:设备越小,单次下载的内容就应当越简短。因此,在i Pad或桌面电脑上可能一次性下载完的一个整页的文章,在功能手机上下载时应当分割为几部分下载,或仅仅下载标题。

直接:如果要在小型设备上迅速吸引读者的注意力,就需要将所有与主题无关的内容都应删除。

易用:在功能手机上单击返回键比填写表单要容易得多。因此要让移动内容,特别是针对小型设备的移动内容尽可能简单易用。

专注于用户需求:设备越小,越该注意仅向用户提供他们所需的最基本功能。另外,不要只考虑需要移除的内容,还应当考虑在页面上加入什么样的功能,以使移动用户的任务处理更为便捷。可以加入移动页面的功能包括以下几种。

回到首页链接:方便用户随时可以返回到首页。

电子邮件链接:加入链接让访问者可以将页面的某些部分邮寄给自己或其他人。这样做一方面推广了页面,另一方面由于在电脑上读取网站比在功能手机上简单得多,这样做可以提高移动用户的使用效率。

附加服务:加入Mobilizer、Read It Later以及Instapaper这类附加服务链接可以让移动用户将内容保存起来,并在方便的时候再进行阅读。0.2.3 设计移动网站时需要考虑的问题

尽管移动设备的种类与日俱增,包括手机、平板电脑、网络电视设备甚至一些图像播放设备,但网页设计师们不应为移动网站设计迷茫。在为这些不同设备创建移动网站时,首先需要确保设计的网站能够适用于所有浏览器及操作系统,也就是说可以在尽量多的浏览器及操作系统中运行。除此之外,在为移动设备创建网站时,还需要考虑如下问题。

移动设备的屏幕尺寸和分辨率如何?

移动用户需要哪些内容?

使用的HTML、CSS及Java Script是否有效且简洁?

网站是否需要为移动用户使用独立域名?

网站需要通过怎样的测试?0.2.4 主流移动设备屏幕的分辨率

在当前的市面中,智能手机的屏幕尺寸主要包括如下几种标准。

128×160像素

176×220像素

240×320像素

320×480像素

400×800像素

480×800像素

960×800像素

1080×1920像素

就手机的尺寸而言,Android给出了一个具体的统计,详情请参阅http://developer.android.com/resources/dashboard/screens.html,如图0-2所示。图0-2 Android设备屏幕尺寸的市场占有率

由此可见,在目前市面中主要是以分辨率为800×480和854×480的手机用户居多。

另外,作为另一种主流移动设备,平板计算机(俗称平板电脑)不仅拥有更大的屏幕尺寸,而且在浏览方式上也有所不同。例如,大部分平板电脑(以及一些智能手机)都能够以横向或纵向模式进行浏览。这样即使在同一款设备中,屏幕的宽度有时为1024像素,有时则为800像素或更少。但是一般来说,平板电脑为用户提供了更大的屏幕空间,我们可以认为在大部分平板电脑设备的屏幕尺寸为最主流的(1024~1280)×(600~800)像素。事实证明,在平板电脑中可以很轻松地以标准格式浏览大部分网站。这是因为平板电脑上的浏览器使用起来就像在计算机显示器上使用一样简单,并且通过Android系统中的缩放功能可以放大难以阅读的微小区域。0.2.5 使用标准的HTML、CSS和Java Script技术

在开发移动网站时,只有使用正确的、标准格式的HTML、CSS和Java Script技术,才能让页面在大部分移动设备中适用。另外,设计师可以通过HTML的有效验证来确认它是否正确,具体验证方法是登录http://validator.w3.org/,使用W3C验证器检查HTML、XHTML以及其他标记语言。除此之外, W3C验证器还可以验证CSS、RSS,甚至是页面上的无效链接。

在为移动设备编写网页时,需要注意如下所示的5个“慎用”。(1)慎用表格HTML表格

由于移动设备的屏幕尺寸很小,使用水平滚动相对困难,从而导致表格难以阅读。因此,请尽量避免在移动布局中使用表格。(2)慎用HTML表格布局

在Web页面布局中,建议不使用HTML表格,而且在移动设备中,表格会让页面加载速度变慢,并且影响美观,尤其是在它与浏览器窗口不匹配时。另外,在页面布局中通常使用的是嵌套表格,这类表格会让页面加载速度更慢,让渲染过程变得更困难。(3)慎用弹出窗口

通常来讲,弹出窗口很讨厌,而在移动设备上它们甚至能让网站变得不可用。有些移动浏览器并不支持弹出窗口,还有一些浏览器则总是以意料之外的方式打开它们(通常会关闭原窗口,然后打开新窗口)。(4)慎用图片布局

与在页面布局中使用表格类似,加入隐藏图像以增加空间及影响布局的方法经常会让一些老的移动设备死机或无法正确显示页面。另外,它们还会增加下载时间。(5)慎用框架及图像地图(image maps)

在目前的许多移动设备中,都无法支持框架及图像地图特性。其实,从适用性上来看,HTML5的规范中已经摒弃了框架(iframe除外)。

因为移动用户通常需要为浏览网站而耗费流量并需要付费的,所以在设计移动页面时应尽可能地确保使用少的HTML标签、CSS属性和服务器请求。0.3 移动Web开发必备技术本节教学录像:4分钟

除了前面介绍的HTML、XHTML、CSS、Java Script、DOM和ECMAScript技术之外,开发移动Web还需要掌握如下技术。(1)HTML5

HTML5是当今HTML语言的最新版本,将会取代1999年制定的HTML 4.01、XHTML 1.0标准,以期望能在互联网应用迅速发展时,使网络标准符合当代的网络需求,为桌面和移动平台带来无缝衔接的丰富内容。(2)jQuery Mobile

jQuery Mobile是jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅给主流移动平台带来j Query核心库,还发布了一个完整统一的j Query移动UI框架,以支持全球主流的移动平台。(3)Phone Gap

Phone Gap是一个用基于HTML、CSS和Java Script的,创建移动跨平台移动应用程序的快速开发平台。Phone Gap使开发者能够利用i Phone、Android、Palm、Symbian、WP7、WP8、Bada和Blackberry智能手机的核心功能,包括地理定位、加速器,联系人、声音和振动等。此外,Phone Gap拥有丰富的插件供开发者调用。(4)Node.js

Node.js 是一个基于Chrome Java Script运行时建立的一个平台,用来方便地搭建易于扩展的网络应用。Node.js 借助事件驱动,使非阻塞I/O 模型变得轻量和高效,非常适合运行在分布式设备的数据密集型的实时应用。(5)JQTouch

j QTouch 是一个j Query的插件,是主要为手机Webkit浏览器实现一些包括动画、列表导航、默认应用样式等各种常见UI效果的Java Script库。JQTouch支持包括 i Phone、Android 等手机,是提供一系列功能为手机浏览器Web Kit服务的jquery插件。(6)Sencha Touch

Sencha Touch和JQTouch密切相关,是基于Java Script编写的Ajax框架Ext JS,将现有的Ext JS整合JQTouch、Raphaël库,推出适用于最前沿Touch Web的Sencha Touch框架。该框架是世界上第一个基于HTML5的Mobile App框架。

当然,除了上述主流移动Web开发技术之外,还是其他盈利性商业组织推出的第三方框架。这些框架都方便了开发者的开发工作。读者可以参阅相关资料,了解并学习这些框架的知识。0.4 移动Web学习路线图本节教学录像:2分钟

移动Web开发是一个漫长的过程,需要读者总体规划合理的学习路线,以达到事半功倍的效果。学习移动Web开发的基本路线图如图0-3所示。(1)打好基础

这一阶段主要做好基础工作。HTML、CSS和Java Script是网页设计的最基础技术,无论是学习传统桌面Web开发,还是移动Web开发,都必须具备这3项技术。Dreamweaver是最流行的网页设计和开发工具,使用它可以达到事半功倍的效果。

这4种技术是相互贯通的,并且可以同时学习并使用。这一阶段比较耗时,要达到基本掌握需要耗时3个月左右的时间。图0-3 移动Web学习路线图(2)学习最前沿技术

HTML5是当今HTML技术的最新版本。和以前的版本相比,HTML5的功能更加强大,并且支持移动Web应用。因为HTML5和第一阶段中的HTML技术有很多共同之处,所以这一阶段的学习比较容易,需要一个月左右的时间即可掌握。(3)学习开源框架

本阶段的主要任务是学习第三方开源框架,例如jQuery Mobile、Phone Gap、JQTouch和Sencha Touch等框架。因为已经打好了基础,所以本阶段的学习比较轻松,图0-3中的3个框架需要一个月左右的时间即可掌握。0.5 Phone Gap学习路线图本节教学录像:3分钟

Phone Gap技术属于移动Web学习路线图中的第三阶段。Phone Gap的学习路线图如图0-4所示。(1)掌握基础知识

这是在学习Phone Gap开发技术之前的最基础性知识,包括移动Web基础、网站和网页开发基础、Phone Gap基础、使用Phone Gap开发移动Web应用等内容。(2)掌握必备知识

这是学习Phone Gap开发技术时必须具备的知识,包括HTML5技术、CSS技术和jQuery Mobile等内容。(3)掌握核心技术

这是Phone Gap开发技术的最核心语法知识,也是本书最重要的内容,占据了本书的绝大部分篇幅,主要包括:Phone Gap事件,应用和通知,设备、网络连接和加速计,地理位置,指南针API,照相机API,采集API,媒体API,通讯录API,数据存储API,文件操作和插件等内容。(4)综合实战演练

这部分对前面所学的内容进行综合演练,通过综合实例的实现过程,对前面所有的知识达到融会贯通的效果。

在本书后面的内容中,就是按照上述学习路线图进行内容安排的。图0-4 Phone Gap学习路线图第1篇 基础知识

第1章 Phone Gap基础

第2章 使用Phone Gap开发移动Web应用第1章 Phone Gap基础本章教学录像:31分钟

Phone Gap是基于HTML、CSS和Java Script的技术,是一个创建跨平台移动应用程序的快速开发平台。Phone Gap使开发者能够利用i Phone、Android、Palm、Symbian、WP7、Bada和Blackberry等智能手机的核心功能,包括地理定位、加速器、联系人、声音和振动等。此外Phone Gap拥有丰富的插件,可以以此扩展无限的功能。本章将详细讲解Phone Gap的基础知识,为读者步入本书后面知识的学习打下基础。

本章要点(已掌握的在方框中打钩)

Phone Gap简介

Phone Gap API基础

Phone Gap的工作

Phone Gap开发必备技术1.1 Phone Gap简介本节教学录像:20分钟

Phone Gap是一个免费的开发平台,需要特定平台提供的附加软件,例如i Phone的i Phone SDK和Android的Android SDK等,也可以和Dreamweaver5.5及以上版本配套开发。使用Phone Gap只比为每个平台分别建立应用程序好一点点,因为虽然基本代码是一样的,但是仍然需要为每个平台分别编译应用程序。在本节的内容中,将简要讲解Phone Gap的基本知识,为读者步入本书后面知识的学习打下基础。1.1.1 什么是Phone Gap

Phone Gap是目前唯一支持当今7种主流移动平台的开源移动开发框架。具体来讲,Phone Gap支持如下平台。

iOS

Android

Black Berry OS

Palm Web OS

Windows Phone

Symbian

Bada

Phone Gap是一个基于HTML、CSS和Java Script创建跨平台移动应用程序的开发平台,与传统Web应用相比,其使开发者能够利用i Phone、Android等智能手机的核心本地功能,例如地理定位、加速器、联系人、声音和振动等。此外,Phone Gap还拥有非常丰富的插件,并可以凭借其轻量级的插件式架构来扩展无限的功能。

虽然Phone Gap是免费的,但是它需要特定平台提供的附加软件来实现,例如i Phone的i Phone SDK、Android的Android SDK等,也可以和Adobe Dreamweaver5.5及以上版本配套开发。利用Phone Gap Build,可以在线打包Web应用成客户端并发布到各移动应用市场。

有了Phone Gap和Phone Gap Build,Web开发人员便可以利用他们非常熟悉的Java Script、HTML和CSS技术,或者结合移动Web UI框架jQuery Mobile、Sencha Touch,以开发跨平台移动客户端,还能非常方便地发布程序到不同移动平台上。1.1.2 背景介绍

随着智能移动设备的快速普及,伴随着Web新技术(例如HTML5)的飞速发展,Web开发人员将不可避免地遇到一大挑战:怎样在移动设备上将HTML5应用程序作为本地程序运行?与传统PC机不同的是,智能移动设备完全是移动应用的天下,那么Web开发人员如何利用自己熟悉的技术(例如Objective-C语言)来进行移动应用开发,而不用花费大量的时间来学习新技术呢?在手机浏览器上,用户必须通过打开超链接来访问HTML5应用程序,而不能像访问本地应用程序那样,仅仅通过点击一个图标就能得到想要的结果,尤其是当移动设备脱机以后,用户几乎无法访问HTML5应用程序。

在当前的移动应用市场中,已经初步形成了iOS、Android和Windows Phone等三大阵营。随着移动应用市场的迅猛发展,越来越多的开发者也加入到了移动应用开发的大军当中。目前,Android应用是基于Java语言进行开发的,苹果公司的iOS应用是基于Objective-C语言开发的,微软公司的Windows Phone应用则是基于C#语言开发的。如果开发者编写的应用要同时在不同的移动设备上运行的话,则必须掌握多种开发语言,但这必将严重影响软件开发进度和项目上线时间,而这已经成为开发团队的一大难题。

为了进一步简化移动应用开发,很多公司已经找到了相应的解决方案。Adobe推出的AIR Mobile技术,能使Flash开发的应用同时发布到iOS、Android和黑莓的Playbook上。Appcelerator公司推出的Titanium平台能直接将Web应用编译为本地应用运行在iOS和Android系统上。Nitobi公司(现已被Adobe公司收购)也发布了一套基于Web技术的开源移动应用解决方案:Phone Gap。2008年夏天,Phone Gap技术面世。从此,开发移动应用时我们有了一项新的选择。Phone Gap基于Web开发人员所熟悉的HTML、CSS和Java Script技术,为创建跨平台移动应用程序的快速开发平台。1.1.3 Phone Gap的发展历程

2008年8月,Phone Gap在旧金山举办的i Phone Dev Camp上初次崭露头角。创始人为Phone Gap定义了一个历史使命:为跨越Web技术和i Phone之间的鸿沟牵线搭桥。

2009年2月25日,Phone Gap 0.6发布。这是第一个稳定版,支持iOS、Android和Black Berry平台。

2009年8月到2010年7月,Phone Gap实现了对Windows Mobile、Palm、Symbian平台的支持,支持平台达到6个。

2010年10月4日,Adobe公司宣布收购创建了HTML5移动应用框架Phone Gap和Phone Gap Build的新创公司Nitobi Software。Adobe表示,收购Phone Gap后,开发者便可选择在Phone Gap平台使用HTML、CSS和Java Script创建移动应用程序,也可选择使用Adobe Air和Flash。

随后,Adobe把Phone Gap项目捐给了Apache基金会,但保留了Phone Gap的商标所有权。

2011年7月29日,Phone Gap发布了1.0版产品,其中加入了不少访问本地设备的API(Application Programming Interface,应用程序编程接口)。

2011年10月1日,Phone Gap发布了1.1版。该版本的新功能包括支持黑莓Play Book的Web Works并入及orientationchange事件和媒体审查等。

2011年11月7日,Phone Gap 1.2发布,开始正式支持Windows Phone 7,支持的平台数达到了7个。

2011年12月19日,Phone Gap团队与微软发布了1.3版,对iOS、Android与RIM进行了一些增强,同时还为Windows Phone 7提供了可用于产品的特性集,包括完整的API支持、更棒的Visual Studio模板、文档、指南、bug修复以及大量插件。

在成为Apache Incubator项目后,Phone Gap已经更名为Apache Callback。在Phone Gap1.4版本发布后,名字再次变更为Cordova。Cordova其实是Phone Gap团队附近一条街的名字。

2013年6月,Phone Gap2.9.0版本公布。这是最后一个可以在其官方网站http://www.phonegap. com在线下载的版本。之后,需要使用Node JS进行下载并管理。1.1.4 Phone Gap的主要功能

Phone Gap的更新速度非常快,相应功能也在不断变化。以2014年11月发布的3.6.3版为例,该版本的Phone Gap在主要的智能手机设备上提供了以下功能的支持。

加速计

摄像头

罗盘

通讯录

文档

地理定位

媒体

网络

通知,例如警告、声音和振动

存储

如果读者正在为iOS或Android设备做开发,则上述功能都是支持的。如果是为Black Berry、Web OS、Windows Phone、Symbian或Bada设备做开发,则不支持一些功能。例如,在Windows Phone 7上,不支持摄像头、罗盘或存储功能。Phone Gap未来版本的发行路线图包括对Contact API的升级,将会被更新到最新的W3C规范中。此外,Phone Gap计划支持如下功能。

加密

Websockets

Web通知

HTML媒体捕获

Calendar API

国际化支持

命令行编译

网损/恢复事件1.1.5 Phone Gap的发展现状

国外知名调查分析机构Vision Mobile发布了2013跨平台开发工具报告,其中开发者市场占有率Top10依 次 为Phone Gap、Sencha Touch/JQ Touch、Mono、Appcelerator、Adobe Flex、Unity3、Corona、App Mobi、Run Rev和Mosync。由此可见,Phone Gap发展非常迅猛,已经成为移动市场跨平台开发工具的“领头羊”。

除去一些桌面跨平台技术(例如Mono)和Java Script UI框架(例如Sencha Touch和jQuery Mobile),我们可以看出,目前在移动跨平台开发技术领域中,Phone Gap已经遥遥领先于竞争对手。更加难以可贵的是,Phone Gap现已完全支持Windows Phone 7所有的原生功能,其支持力度达到了iOS与Android的水平,而目前完整支持Windows Phone 7的移动跨平台工具寥寥无几。

总而言之,Phone Gap已经是一个非常成功而且成熟的移动跨平台解决方案。它具备相当丰富的第三方资源和成熟的产业链:开发者可以选择jQuery Mobile和Sencha Touch等Java Script库加快开发速度,可以使用App Mobi和Tiggr等集成开发环境进行开发和调试(通过拖曳进行排版、在线编码以及运行各种移动设备的模拟器),也可以选择Phone Gap Build这个专业的在线编译工具,免去你准备各种编译环境的烦恼。1.1.6 Phone Gap优点和缺点分析

在完全了解Phone Gap的优缺点之前,必须先对原生应用、Web应用和混合型应用等3个概念有所了解,因为Phone Gap的优缺点主要体现在这3个概念中。在本节的内容中,将简要讲解这3个概念的基本知识,并总结出Phone Gap的优缺点。

1.原生应用

原生应用是指通过各种应用市场安装,采用平台特定语言开发的应用,比如iOS使用Objective-C语言、Android使用Java语言。使用原生应用的优点是可以完全利用系统的API和平台特性,以发挥最好的性能,缺点是由于开发技术不同,如果你要覆盖多个平台,则要针对每个平台独立开发。

原生应用因为位于平台层上方,所以向下访问和兼容的能力会比较好一些,其可以支持在线和离线、消息推送和本地资源访问、摄像头和拨号功能的调取。但是由于设备的碎片化,原生应用的开发成本要高很多,维持多个版本的更新升级比较麻烦,用户的安装门槛也比较高。比如,新浪微博的客户端就是原生应用。(1)优点

在移动Web开发应用过程中,使用原生应用的优点如下。

提供最佳的用户体验、最优质的用户界面和最华丽的交互。

针对不同平台提供不同体验。

可节省带宽成本。

可访问本地资源。

盈利模式明朗。(2)缺点

在移动Web开发应用过程中,使用原生应用的缺点如下。

移植到不同平台上比较麻烦。

维持多个版本的成本比较高。

需要通过store或market确认。

盈利需要与第三方分成。

2.Web应用

Web应用通过浏览器访问,采用Web技术开发。Web应用无需安装,对设备碎片化的适应能力要强于原生应用。它只需要通过HTML、CSS和Java Script就可以在任意移动浏览器中执行。随着i Phone带来的Web Kit浏览体验的升级,专为i Phone等由Web Kit浏览内核的移动设备开发的Web应用也有了如原生应用一般流畅的用户体验。例如,百度地图的移动网页版本就是Web应用。

Web应用其优势在于开发跨平台的应用时,可以充分利用现代移动浏览器的HTML5特性。当然这些基于浏览器的应用无法调用系统API来实现一些高级功能,也不适合高性能要求的场合。(1)优点

在移动Web开发应用过程中,使用Web应用的优点如下。

开发成本低。

适配多种移动设备的成本低。

跨平台和终端。

迭代更新容易。

无需安装成本。(2)缺点

在移动Web开发应用过程中,使用Web应用的缺点如下。

浏览体验短期内还无法超越原生应用。

不支持离线模式(HTML5将会解决这个问题)。

消息推送不够及时。

调用本地文件系统的能力弱。

3.混合型应用

在移动Web开发应用过程中,混合型应用通过各种应用市场安装,其表面看上去是一个原生应用,但里面访问的实际上是一个Web应用。从长远来看,Web技术是未来,虽然现阶段原生应用给了用户更好的体验,但如果某个开发者不能有效利用Web技术,那他一定会落伍。但是如果过分依赖Web,完全不用原生功能的话,则所开发的应用的用户体验和提供的功能将大打折扣。

由此可见,混合型应用是为了弥补上面两种应用开发模式的缺陷而生的,是两者混合的产物,并且尽可能继承了双方的优势。具体来说,混合型应用的主要特点如下。(1)混合型应用可以让众多Web开发人员几乎零成本地转型成移动应用开发者。(2)相同的代码只需针对不同平台进行编译就能在多平台的分发,大大提高了多平台开发的效率。(3)和Web应用相比,开发者可以通过包装好的接口调用大部分常用的系统API。

不过,混合型应用还不能完全取代原生应用。在一些复杂的API调用或者涉及高性能计算的应用开发上,原生应用还是唯一的选择。除此以外的大多数场合下,混合型应用以很小的性能牺牲为代价,带来了极大的灵活性和开发效率,有什么理由不去使用它呢?例如,掌上百度就是混合型应用。

Phone Gap正是混合型框架中的佼佼者,其基于标准的Web技术,用Java Script包装平台的API供开发者调用,具备强大的编译工具来为不同平台生成应用,同时拥有丰富的第三方资源和产业链。

Phone Gap在Web应用和设备之间搭建了一个通信的桥梁,封装了移动设备的平台差异,统一使用Java Script接口访问设备本地API,以此提供了一个优秀的跨平台解决方案。(1)Phone Gap的优点

结合本章前面对于Phone Gap的讲解,我们知道Phone Gap具备如下优点。

开发成本低。

对各大主流平台的兼容性非常好。

采用W3C标准化技术。

能够快速进行开发,迭代更新容易。

轻量级和插件式架构显著降低了维护成本。

开源免费,并由Adobe公司和Apache基金会共同支持。(2)Phone Gap的缺点

Phone Gap技术的缺点如下。

浏览体验短期内还无法超越原生应用。

特别复杂的应用运行速度稍显缓慢。

在某些Java Script渲染速度较慢的设备上,UI反应略有延时。

注意跨平台的流行是不可避免的,而上述Phone Gap的劣势一定会随着移动技术和Web标准的迅猛发展而渐渐消失。

目前,Phone Gap已经有了相当多的成功案例,例如著名的维基百科移动客户端和NFB Films,而在国内目前也已经涌现出了一批Phone Gap应用,例如赶集网团购的移动客户端。1.2 Phone Gap API基础本节教学录像:2分钟

Phone Gap为开发者提供了功能丰富的API,帮助大家可以更方便地获取移动设备的信息。Phone Gap官方网站的API文档地址是http://docs.phonegap.com/en/1.5.0/index.html,如图1-1所示。图1-1 Phone Gap官方网站的API

在目前的版本中,Phone Gap拥有如下几种可用的API。

Accelerometer:加速计,也就是我们常说的重力感应功能。

Camera:用于访问前置摄像头和后置摄像头。

Capture:提供了对于移动设备音频、图像和视频捕获功能的支持。

Compass:对于罗盘的访问,由此可以获取移动设备行动的方向。

Connection:能够快速检查并提供移动设备的各种网络信息。

Contacts:能够获取移动设备通讯录的信息。

Device:能够获取移动设备的硬件和操作系统信息。

Events:能够为应用提供各种移动设备操作事件,例如暂停、离线、按下返回键、按下音量键等。

File:能够访问移动设备的本地文件系统。

Geolocation:能够获取移动设备的地理位置信息。

Media:提供了对于移动设备上音频文件的录制和回放功能。

Notification:提供了本地化的通知机制,包括提示、声音和振动。

Storage:提供了对于SQLite嵌入式数据库的支持。

关于API的具体用法,我们将在后面的章节中为读者详细讲述。这里不妨先看看Phone Gap是如何工作的。1.3 Phone Gap的工作本节教学录像:2分钟

Phone Gap架构拥有强大的跨平台访问能力,但是其工作原理并不神秘。iOS和Android平台的共同点是都有内置的Web View组件,具备如下所示的两个特性。(1)Web View组件实质是移动设备的内置浏览器

此特性是Web能被打包成本地客户端的基础,可方便地用HTML5和CSS3页面布局。这是移动Web技术相对于原生开发的优势。(2)Web View提供Web和设备本地API双向通信的能力

Phone Gap针对不同平台的Web View做了扩展和封装,使Web View变成可访问设备本地API的强大浏览器。因此,开发人员在Phone Gap框架下可通过Java Script访问设备本地API。

了解了上述两个特性,可知一个成熟的Phone Gap技术客户端的运行过程如下。(1)应用运行在Web View组件上。(2)通过Phone Gap在各平台的扩展。(3)最终访问设备中的本地资源。1.4 Phone Gap开发必备技术本节教学录像:7分钟

本节将详细介绍在Phone Gap开发过程中需要用到的相关技术,并简要介绍在一些Phone Gap应用中经常会用到的Java Script移动UI框架,以便为读者步入本书后面知识的学习打下基础。1.4.1 Titanium框架

Titanium是Appcelerator公司旗下的跨平台开源框架。现在,i Tunes应用商店中的超过500000个的应用中,很多都是基于Titanium开发的。Titanium是一个跟手机平台无关的开发框架,用来开发具有本地应用效果的Web应用。当前主要支持i Phone和Android手机。

Titanium可以用来创建富Web应用和桌面应用程序。不仅如此,现在它还允许你使用HTML、CSS、Java Script、Ruby和Python等创建移动应用,并且创建的应用能运行在i Phone和Android平台上。Titanium独特的跨平台编译技术能将Web应用直接转换为各种平台中原生的应用程序。

Titanium框架最成功的案例是NBC Universal的i Pad应用。这个应用可以让用户观看NBC节目,也可以让用户玩游戏等。Titanium框架的主要特性如下。

支持Linux、Mac OS、Windows、Android和i Phone平台。

支持Adobe Flash、Microsoft Silverlight或其他第三方的Ajax库。

支持Module API用于扩展核心的Titanium平台。

支持使用Ruby和Python编写应用程序的脚本。

支持C++、Java Script、Ruby和Python之间的无缝操作。

Titanium 的系统架构如图1-2所示。图1-2 Titanium的系统架构图

Titanium的收入主要来源于扩充模块Titanium+Plus的销售。该模块里面包含了像Bar Code的条码扫描功能、Apple的In-App Purchase服务、Pay Pal付费等功能。

Phone Gap也提供了丰富的插件来实现这些功能,但相比之下,

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载