PhoneGap详细介绍
PhoneGap简介
PhoneGap是一个能够让Web开发者快速进行移动app开发的开源框架。
PhoneGap主要涉及的技术包括HTML,CSS,JavaScript。
PhoneGap可以让不懂Object-C的开发者也可以开发IOS应用程序。
PhoneGap实现了“一次开发,到处使用”。(看起来是怎么那么像Java的口号啊,哈哈。不过话说回来,这只是一个口号,不能完全迷信。确切来讲,你可以利用PhoneGap进行移动开发,然后只需要非常小的改动就能让你的程序在各种平台上运行,包括IOS,Android,Windows Phone等等,业界有人估算说利用PhoneGap开发移动应用的人力成本只有传统方式的五分之一。)
一般情况下,用PhoneGap开发的应用和用传统方式(即本地/原生app,比如用Object C开发的IOS app)开发的应用效果基本是一致的。除了个别情况,比如手机游戏之类的。原因可能是PhoneGap毕竟是一个封装了很多底层细节的框架,运行效率肯定赶不上本地原生App。不过这些都会随着PhoneGap本身的完善和硬件技术的提升而得到很好的改善。话说回来,类似FaceBook和Baidu这样的互联网公司都开始运用PhoneGap了,我们是不是可以更大胆一些呢?
如果你需要了解更多的细节,比如PhoneGap的历史、优点与缺点等等,你可以百度或Google一下。
通过PhoneGap,你能做什么?
操作联系人
用Create()方法创建联系人
用Save()方法保存联系人
用Find()方法查找联系人
用Clone()方法复制联系人
用Remove()方法删除联系人
是不是很简单呢?
操作摄像头
大多数智能终端都带有内置摄像头。PhoneGap API提供了两种方式让你操作摄像头以获取图像:
通过camera对象来操作。比如camera.getPicture()
利用MediaCapture API来操作。
你甚至可以通过PhoneGap对获取到图像进行编辑处理。具体我们在后续文章中详解。
注意:因为现今的很多摄像头具有非常高的分辨率,当你采用了一些特定格式的图像处理方式时,要留意生成图像的大小,以免消耗过多的内存资源导致异常。
使用定位功能(比如GPS等)
PhoneGap的Geolocation API可以让你轻松获取当前位置信息(比如经纬度)。如果你的设备已经联网,你可能会获取非常精准的位置信息。
使用多媒体文件
前面刚提到Media Capture API可以用来操作图像,但实际上此API的功能不仅限于操作图像。你也可以用它来获取声音和视频信息,比如录音或录像。你可以用它来控制各种操作,比如开始录音,停止录音等等。
数据存储支持
了解Html5的朋友可能对它的Web Storage非常欣赏。同样,PhoneGap也提供了这个功能。你可以用本地SQLite来存储数据,对一般应用而言,这已经足够了。
利用这个功能,你的应用可以从远程服务器拉取数据,然后存储到本地。然后当你需要的时候,你可以把本地发生变更的数据同步更新到远程服务器。这是一个非常实用的功能。
PhoneGap API概述
因为稍后的章节将陆续讲解PhoneGap的各个API,所以此处我们不做详述。但是了解PhoneGap API的概要,有助于我们今后的学习安排。
以下是主要的API接口:
Accelerometer 操作加速传感器
Camera 操作摄像头
Capture 操作多媒体设别。比如摄像头,录音设备等。
Compass 操作罗盘
Connection 快速检测网络状态,包括Wifi或手机网络。
Contacts 操作联系人
Device 获取设备相关信息
Events 通过Javascript和本地事件建立对应关系
File 通过Javascript操作本地文件
Geolocation 定位
Media 录音、播放多媒体文件。
Network 快速检测网络状态
Notification 通知(比如声音、震动、文字等)
Stroage 本地存储
其它问题
以上我们列出了PhoneGap提供的主要API。但是这并不意味着仅仅利用这些API就可以称作PhoneGap开发了。你还需要其他的一些必要技能,比如HTML5,CSS3以及Javascript。甚至如果需要的话,你可能还需要利用其它一些框架,比如jQuery(比较流行)。你必须充分理解以上各个技能的使用方式。
和传统桌面应用不一样,移动终端设备的屏幕是有限的。你不太可能将整个很大的页面一股脑发送到移动终端上。如果用户需要反复滚动或缩放才能看到你提供的内容,那这样的应用将会是一个失败的应用。一个比较好的方法是,你可以充分利用HTML5的标签,比如header,list等等,同时充分利用CSS的强大功能。
同时,有别于桌面应用的加载速度,移动终端的处理能力是有限的,如果你的应用在启动或载入页面时需要加载的内容太多,将会导致用户长时间等待并失去耐心,从而舍弃你的应用。
以上都是做移动开发时需要考虑的问题。充分利用一些第三方框架,比如jQuery Mobile Framework等等,将会有助于提高应用的用户体验满意度。
最后提一点,在某些设备上,从一个页面跳转到另一个页面将导致内存消耗显著增大甚至降低反应速度。一个比较好的解决方案是尽量将相关内容放在一个页面,再通过Js在需要的时候动态加载这些内容。当然,如果你选用jQuery之类的框架,那将会更容易实现。
作者:serven-star
来源:CSDN
原文:https://blog.csdn.net/zythy/article/details/21716319
版权声明:本文为博主原创文章,转载请附上博文链接!
PhoneGap详细介绍相关推荐
- HTML页面加载和解析流程详细介绍
浏览器加载和渲染html的顺序.如何加快HTML页面加载速度.HTML页面加载和解析流程等等,在本文将为大家详细介绍下,感兴趣的朋友不要错过 浏览器加载和渲染html的顺序 1. IE下载的顺序是从上 ...
- mysql为什么要压测_mysql集群压测的详细介绍
本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...
- php比较运算符案列,PHP实例:PHP比较运算符的详细介绍
<PHP实例:PHP比较运算符的详细介绍>要点: 本文介绍了PHP实例:PHP比较运算符的详细介绍,希望对您有用.如果有疑问,可以联系我们. 比拟运算符种类 PHP实战如同它们名称所暗示的 ...
- Tempdb数据库详细介绍
Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...
- linux路由介绍,Linux的路由表详细介绍
Linux的路由表详细介绍 一 在Linux下执行route命令[root@localhost backup]# route -nKernel IP routing tableDestination ...
- pythonexcel介绍_Python 中pandas.read_excel详细介绍
Python 中pandas.read_excel详细介绍 #coding:utf-8 import pandas as pd import numpy as np filefullpath = r& ...
- 渡神纪帧数测试软件,渡神纪芬尼斯崛起配置要求高吗 渡神纪配置要求详细介绍_游侠网...
渡神纪芬尼斯崛起配置要求高吗?本作将在12月3日登陆主机和PC,很多玩家比较关心游戏的配置,这里给大家带来了渡神纪配置要求详细介绍,快来了解下吧. 渡神纪配置要求详细介绍 最低要求(720p/30 f ...
- C++11 unordered_map详细介绍
整理的算法模板合集: ACM模板 目录: 1.介绍 1.1 特性 2. 模版 2.1 迭代器 3. 功能函数 3.1 构造函数 3.2 容量操作 3.2.1 size 3.2.2 empty 3.3 ...
- autosar中com模块_详细介绍AUTOSAR各个模块作用PART1(OS,SYS)
这片文章中我们详细讲解下每个模块的功能,上图是vector的autosar方案,每个模块的详细介绍后续会有单独文章进行讲解,请关注.以下是各个模块的简介 1.VHSM hardware Securit ...
最新文章
- 【手写系列】透彻理解Spring事务设计思想之手写实现
- 数论--中国剩余定理模板
- 不越狱换壁纸_终于来了!iOS 14.3 正式版,可自动定时换壁纸
- 成毅高清电脑桌面壁纸
- ai星际探索 爪子_探索AI地牢
- f1c100s 源码_全志 F1C100S/200S Ucos Kile MDK emwin 408M-ARM9内置DDR 源码
- 【AI初识境】从3次人工智能潮起潮落说起
- java读取src路径下的txt文件_python--文件操作(基本篇)
- 知识图谱学习笔记(三)——知识表示方法
- 【2020新书推荐】程序员值得一读的机器学习新书
- WIN7用键盘控制鼠标
- 机器视觉的9大快速开发库简单介绍
- android 播放 优酷视频
- 苹果键盘c语言,苹果电脑键盘功能键使用方法
- 杭电2019多校第三场 HDU-6608 Fansblog
- java分页实现(一)
- 断言(Assertion)
- docx行间距怎么设置_word行间距怎么调?word行距调小调大固定值怎么调?
- php做网站需要html,杭州做网站:所有新的PHP, CSS和HTML帮助表
- Matlab LCL滤波器设计验证