跨平台移动开发:Android配置PhoneGap

来源:互联网 发布:红海军知乎 编辑:程序博客网 时间:2024/05/20 23:38

PhoneGrap:

PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。PhoneGap是免费的,但是它需要特定平台提供的附加软件,例如iPhone的iPhone SDK,Android的Android SDK等,也可以和DW5.5配套开发。使用PhoneGap只比为每个平台分别建立应用程序好一点点,因为虽然基本代码是一样的,但是你仍然需要为每个平台分别编译应用程序。


PhoneGrap发展:

截止 2013年6月26日,phonegap的最新版本为2.9.0 [1]。PhoneGap在多个主要的智能手机设备上提供了以下功能的支持:
  • 加速计
  • 摄像头
  • 罗盘
  • 通讯录
  • 文档
  • 地理定位
  • 媒体
  • 网络
  • 通知(警告、声音和振动)
  • 存储
如果正在为iPhone或Android设备做开发,那么这些功能都是支持的。如果是为BlackBerry、webOS、Windows Phone 7、Symbian或Bada设备做开发,则有些功能就不支持了(例如,在Windows Phone 7上,就不支持摄像头、罗盘或存储功能。老版的BlackBerry型号支持地理定位、通知以及网络的可达性,但仅此而已)。
未来发行版本的路线图包括对Contact API的升级,将其更新到最新的W3C规范。此外,计划支持以下功能(这只是尝试,而非完整的路线图):
  • 加密
  • Websockets
  • Web通知
  • HTML媒体捕获
  • Calendar API
  • 国际化支持
  • 命令行编译
  • 网损/恢复事件
配置PhoneGrap步骤:


1.你需要配置好JDK+Android SDK+eclipse(配置Android SDK).以上就不多说了、百度,谷歌一大堆。

JDK是必须要配置的。然后不想麻烦的可以去http://developer.android.com/sdk/index.html下载ADT bundle for windows。直接Android和SDK都集成好了、

2.去PhoneGrap官网按照教程安装PhoneGrap

http://phonegap.com/install/

先是安装NodeJS。然后按照说明输入命令行。安装其他的。


3.下载官方PhoneGrap压缩包。就在上个链接的最下面。

一切准备就绪后。就可以干活了、

1.创建一个新的Android Project(不知道的可以百度)。

2.在工程的assets文件目录下创建"www"文件夹。

3.解压你上个步骤下载的PhoneGrap压缩包。。将解压后文件夹内的phonegap/lib/android目录下的cordovan.js(名称会因版本不同而不同)

拷贝到刚才创建的www目录下。

4.将压缩包内的phonegap/lib/androidcordova.jar(名称会因版本不同而不同)拷贝到工程的libs文件内、然后右键-bulid path->add to build path

5.把phonegap/lib/android/xml文件下的config.xml复制到/assets/www目录下。再在/assets/www下建立index.html文件,并链接上phonegap的js文件,如:


<!DOCTYPE HTML><html><head><meta charset="utf-8"><title></title>                                     //这里是链接你的cordova。名称以下载的为准<script type="text/javascript" charset="utf-8" src="cordova-2.2.0rc1.js"></script></head><body>    <h1>Hello  PhoneGrap</h1></body></html>

6.对src文件夹下的MainActivity.java文件作如下修改(这个不一定准哦,有错误就点击左侧的红叉):

  1)修改类的继承   将Activity 修改为 DroidGap
  2)把setContentView()这行替换为super.loadUrl("file:///android_asset/www/index.html");
  3)可能需要导入 import org.apache.cordova.DroidGap;
  看看我的例子:

import org.apache.cordova.DroidGap;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends   DroidGap{@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//setContentView(R.layout.activity_main);super.loadUrl("file:///android_asset/www/index.html");}}

7.在项目根目录下右键点击AndroidManifest.xml文件,选择Open With > Text Editor(打开方式->文本编辑器),


<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.fruit"    android:versionCode="1"    android:versionName="1.0" >/*将下面的权限设置拷贝到此位置  start{*/    <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> /*}end*/    <uses-sdk        android:minSdkVersion="10"        android:targetSdkVersion="15" />    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".MainActivity"            android:configChanges="orientation|keyboardHidden"     //此行内容为新增的            android:label="@string/title_activity_main" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>

8.运行项目Run AS->Android Application(如果没有创建AVD。就创建合适的AVD,具体的百度。)

然后就会看到avd上显示"hello PhoneGrap"

下面附上一个jquery-mobile.直接复制到www文件内就行了。

http://m0.mail.sina.com.cn/apps/netdisk/download.php?id=147210cb7ae4e6b732b1a2f976f10106


看下运行效果: