新手的第一个phonegap Android应用
对PhoneGap开发感兴趣的请加入群 PhoneGap App开发 348192525
手机成为现在软件应用必不可少的一种设备,然而手机平台的不统一造成我们需要为不同手机重写代码,这对一般应用来说也许称得上是一种浪费,那有没有可以只写一套代码就能在不同手机上使用呢?今天准备开始做一个phonegap应用学习一下。
下面我将简要的介绍编写过程,如果你也不是初学者,那么就忽略这篇文章:)
phonegap介绍
官方网址:http://phonegap.com
08年一次ios开发者大会上来自Nitobi软件公司的几个家伙突发奇想,提出一个想法,想做一个工具来弥补web和ios开发之间的不足,并提出 Bridging the gap between the web and the iPhone sdk。一开始的目标并不是很大,但是做到了现在的 written once,run everywhere。我们很多人做事其实也应该这样,一开始不要把目标弄得那么大,跳一步能够上就好,这也是敏捷个人制定目标的一个原则。如果一下子目标太大,你会因为难以实现而给自己找理由,这样到头来你什么都没有。
09年他们推出android adk和blackberry sdk,成了移动开发者的福音,就连ibm也加入进来。phonegap继续成长,在11年10月,整个Nitobi团队被adobe收购,随后adobe把 phonegap送给了apache软件基金会,接着apache把phonegap改名为cordova,cordova是Nitobi团队当时坐落的街道名称,用此名来纪念Nitobi团队的贡献。
PhoneGap是一款开源的手机应用开发平台,它仅仅只用HTML和JavaScript语言就可以制作出能在多个移动设备上运行的应用。 PhoneGap将移动设备本身提供的复杂的API进行了抽象和简化,提供了一系列丰富的API供开发者调用,只要你会HTML和Javascript或 者Java语言,就可以利用PhoneGap提供的API去调用各种功能,制作出在各种手机平台(iPhone,Android ,BlackBerry,Symbian,Palm,Window Phone)上运行的应用。目前phonegap获得Apple,IBM,NOKIA,palm等众多公司的支持。简单来说使用PhoneGap就是使用HTML,JavaScript和CSS来开发程序,最终通过PhoneGap可以产生对应版本的native 程序。
谁在使用PhoneGap
支持平台
Apache Cordova框架
2011年10月,Adobe收购了Nitobi Software和它的PhoneGap产品,然后宣布这个移动开发框架将会继续开源,并把它提交到Apache Incubator,以便完全接受ASF的管治。PhoneGap的项目主管Brian LeRoux指出开源PhoneGap的决定在Adobe收购Nitobi之前就做出了,由于Adobe现在拥有PhoneGap商标,他们不得不换个名 字。第一个选中的名字是Callback,毫无创意,因此再改一次,产品现在叫Apache Cordova。Apache Cordova是PhoneGap贡献给Apache后的开源项目,是从PhoneGap中抽出的核心代码,是驱动PhoneGap的核心引擎,你可以把他想象成类似于Webkit和Google Chrome的关系。
Cordova supports Android 2.2, 2.3, and 4.x.
------------------------------------
以下使用cordova-3.1.0
准备
- 安装JAVA JDK
- 安装Eclipse
- 安装Android SDK,根据自己的系统选择相应的系统版本下载,下载解压或安装后运行SDK Manager.exe , 下载4.2 SDK,否则后续不能使用命令行创建项目
- 安装ADT。选择eclipse菜单Help下的【install New Software】,输入https://dl-ssl.google.com/android/eclipse/
- 安装NodeJS
命令行执行npm install -g cordova
这一步我安装不成功,返回错误.根据错误log中的一些字搜索了一下关键字npm ERR! node_modules\npm\node_modules\npm-registry-client\lib\request.js:238:23) ,网上说有是代理服务器的问题,我也不懂,猜可能是权限问题,于是试试网页访问https://github.com 后登录再安装试试,竟然好了,原因不明.
- 新建一个项目,执行命令行 cordova create yw com.glodon.yw YW , 如果安装有问题可以后面加上 –d启动查看执行详细信息。下载类库时间有点长,我大概等了10几分钟吧,你也耐心点,不要中断执行。我第一次就是因为不想等了,然后中断,导致后面步骤失败,不得已删除下载的类库目录文件再次执行此步骤
- cd yw 后,执行cordova platform add android显示我没有安装4.2 SDK,难道现在的cordova版本支持最低是4.2?先不管了,返回第3步骤执行下载4.2 SDK。这个步骤一开始也需要下载类库,再等等,这个时间比上面的时间短一些:)
新建一个模拟器,然后执行cordova emulate android 则可打开模拟器。
- build项目:
cordova build
- 增加插件:
cordova plugin add org.apache.cordova.camera //摄像头
cordova plugin add org.apache.cordova.dialogs //通知、震动cordova plugin add org.apache.cordova.vibration
你可以在Eclipse中新建一个Android项目,然后选择从已有代码中新建,选择前面命令行新建的目录。之后就可以在Eclipse中去工作了。
使用二维码插件
想在项目中使用二维码扫描,找了一下,发现已经有这个插件,地址:https://github.com/wildabeast/BarcodeScanner ,按照它的readme,网上也找了很长时间的使用说明,但是因为框架插件机制更改,找到的都是代码片段,始终不能运行。于是看了一下源码,终于搞定,下面把使用说明简单说一下,这样新手们可以不用像我这样走弯路了。
- 在https://github.com/wildabeast/BarcodeScanner 下载插件代码
- 从已有代码新建一个项目,选择android目录
- 在项目的属性页 的【android】页签勾选【is library】,在Reference中【add】前面假的CaptureActivity项目
- 把插件代码文件\src\android\com\phonegap\plugins\barcodescanner\BarcodeScanner.java 加入到项目中
- 更改config.xml
- 把源码中的www\barcodescanner.js 文件加入到 asserts\www下,但需要更改一下代码
- 在页面调用二维码扫描功能
我是phonegap 新手,初来乍到,上面有不对的地方请多指教。
转载于:http://www.zhoujingen.cn/blog/aboutme
新手的第一个phonegap Android应用的更多相关文章
- 【转】基于第一个PhoneGap(cordova)的应用详解
PhoneGap是一套能让你使用HTML5轻松调用本地API接口和发布应用到商店的应用开发平台.官方说有低成本,低开发周期,轻量化等优点,这些咱暂时也没法证明,略过不表.但是有一条跨平台,却是很明显的 ...
- PhoneGap Android环境搭建
原文地址:http://www.cnblogs.com/shawn-xie/archive/2012/08/15/2638480.html 一.安装 在安装PhoneGap开发环境之前,需要按顺序安装 ...
- phonegap android 输入法弹出会遮盖表单框的解决办法
phonegap android 当页面内容比较多,表单超出屏幕范围时,点击输入,输入法会遮盖住表单框,而且无法向上滑动. 经过测试发现,是由于config.xml中设置了 FullScreen 的全 ...
- 招聘:有兴趣做一个与Android对等的操作系统么?
招聘:有兴趣做一个与Android对等的操作系统么? 前不久我发了一篇<八一八招聘的那些事儿>讲了我自己作为求职者对招聘的一些看法.那个时候我还在求职,对求职的结果还是挺满意的,五家公司面 ...
- 开源自己的一个小android项目(美女撕衣服游戏)
这是自己的一个开源自己的一个小android项目(美女撕衣服游戏),也是前6个月开发的,有部分的资源来自网络上的,现在开源出来给大家吧,由于源码比较大,不上传了,我已经上传到源码天堂那个网站那里了,大 ...
- 【Android Studio探索之路系列】之中的一个:Android Studio开篇
作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.co ...
- 一个三年Android开发的总结-开篇
一个三年Android开发的总结-开篇 转眼间全职从事Android开发已有三年,想把这一阶段的积累总结记录并展现出来,作为Android开发必备的知识,希望对有一定Android开发基础的人进阶有裨 ...
- Androng,一个针对Android的Pong克隆
下载application from Android market 下载source - 532 KB 内容 IntroductionAndroid游戏开发 活动视图绘图使用CanvasAnimati ...
- Android开发新手学习总结(一)——使用Android Studio搭建Android集成开发环境
[新手连载]一:使用Android Studio搭建Android集成开发环境http://bbs.itcast.cn/forum.php?mod=viewthread&tid=87055&a ...
随机推荐
- [转]centos6.6 rpm安装与管理
centos6.6 rpm安装与管理 原文地址:http://www.centoscn.com/CentOS/2015/0414/5182.html rpm包管理:安装.升级.卸载.查询.检验 安 ...
- C++的隐式类型转换
C++是一种复杂的语言,其中有许多“好玩”的特性,学习C++的过程就像在海边捡一颗颗石头,只要坚持不懈,也许一颗颗小石头也能建起你自己小小的城堡. 废话完后,讲讲自己捡到的石头:隐式类型转换 学习出处 ...
- Numpy 学习之路(1)——数组的创建
数组是Numpy操作的主要对象,也是python数据分析的主要对象,本系列文章是本人在学习Numpy中的笔记. 文章中以下都基于以下方式的numpy导入: import numpy as np fro ...
- JSON字符串解析
有时保存在数据库的数据是一串json字符串,需要进行读取的时候就需要解析操作. 简单介绍两种: 1.net.sf.json.* 2.com.alibaba.fastjson.* 需要的包自行下载. 第 ...
- the fifth class
1.实际比背景长,怎么做到的? 2个父级一个做头背景一个做尾背景 2.2层,每次自带背景上下是覆盖关系,如何做到 2层?,子浮动 3.标签 4.border可覆盖:margin-bottom 为负 ...
- Number()数据类型转换
Number() 如果是 Boolean 值, 和.如果是数字值,只是简单的传入和返回.如果是 .如果是 undefined,返回NaN. 如果是字符串,遵循下列规则: 如果字符串中只包含数字( ...
- Java打jar包详细教学
如果我们需要将写好并测试OK的公共接口供多个项目使用,我们可以不用拷贝源代码,可以编译后打包成jar文件,这样会很方便许多,修改的话也方便,直接修改源代码打一个新jar包替换即可,下面是打包的详细教程 ...
- JS制作计算器(键盘版)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px ...
- MVC模式下向qq邮箱发送邮件
将已经保存在数据库中的密码通过邮件发送到qq邮箱中.用的ssm框架,其中的config文件要先配置好. 用到的jar包有gson-2.2.1.jar,gson.jar,mail.jar,activat ...
- firefox的plugin-container进程关闭方法
http://kb.mozillazine.org/Plugin-container_and_out-of-process_plugins Disabling crash protecti ...