前言:最近心血来潮作了一个广州花都论坛,打算推出本地服务o2o应用。快速开发手机应用,最后选择了phonegap,这里我只是讲述我安装的过程,仅供你们参考。html
我开发的一个模型http://www.w30.cn 能够看下。看看有多差。java
若是有什么问题也能够到小组留言,能够的话,贡献一个ip:)android
phonegap小组 http://www.w30.cn/group/1web
若是有什么问题也能够加入咱们的QQ群:64674997express
ok 很少说了,下面是个人安装过程apache
环境搭建首先要去下载一些安装包:windows
(下载前注意一下,电脑是32位仍是64位的请注意选择安装包)oracle
java环境的JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.htmlapp
我安装的是64位,下载本身系统环境须要的版本,下载后默认安装,完成后 在 开始 - 输入cmd- 输入java 显示出java版本信息表示安装已经成功less
接着安装
1、下载安装ADT。http://developer.android.com/sdk/index.html
2、Android的压缩包为:adt-bundle-windows-x86_64。
解压后,进入eclipse目录,运行eclipse.exe。
1)先更新Android包:选择 Window -------->Android SDK Manager
所有勾选后,点击 Install packages,将全部包所有打上。
2)配置AVD环境
配置该环境有两种方法:
一、使用界面进行配置,进入方式如图所示:
打开以后,如图所示,点击New新建。
3、配置PhoneGap(这个比较麻烦)
1)先新建一个新的工程。
具体详细能够查看:
http://developer.android.com/intl/zh-CN/training/basics/firstapp/creating-project.html
打开ADT,新建一个安卓应用项目
输入名称,而后下一步
能够选择下项目位置,个人是默认的。
这里能够选择图标。
选择第一个
这个时候,一个安卓项目就建好了。
phonegap下载地址:http://phonegap.com/install/
将PhoneGap目录下的android目录下的jar文件拷贝到项目的libs目录下
将xml目录拷贝到项目的res目录下
在assetc目录下,创建一个www目录,下面放html内容。为了偷懒,我把phonegap例子里面的内容拷贝过来了。
修改Java代码:
package com.myexample.helloworld; import android.os.Bundle; import org.apache.cordova.*; public class MainActivity extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set by <content src="index.html" /> in config.xml //super.loadUrl(Config.getStartUrl()); super.loadUrl("file:///android_asset/www/index.html") } } /* * 下面是adt生成的代码,注释掉 import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }*/
修改一下项目根目录下的AndroidManifest.xml和res/xml目录下的config.xml文件
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myexample.helloworld" android:hardwareAccelerated="true" android:versionCode="1" android:versionName="1.0" android:windowSoftInputMode="adjustPan" > <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="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.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_VIDEO" /> <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" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <application android:debuggable="true" android:hardwareAccelerated="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name="com.myexample.helloworld.MainActivity" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="17" /> </manifest>
config.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <widget id="com.myexample.helloworld" version="2.0.0" xmlns="http://www.w3.org/ns/widgets" > <name> helloworld </name> <description> A sample Apache Cordova application that responds to the deviceready event. </description> <author email="dev@cordova.apache.org" href="http://cordova.io" > Apache Cordova Team </author> <access origin="*" /> <!-- <content src="http://mysite.com/myapp.html" /> for external pages --> <content src="index.html" /> <preference name="loglevel" value="DEBUG" /> <!-- <preference name="splashscreen" value="resourceName" /> <preference name="backgroundColor" value="0xFFF" /> <preference name="loadUrlTimeoutValue" value="20000" /> <preference name="InAppBrowserStorageEnabled" value="true" /> <preference name="disallowOverscroll" value="true" /> --> <feature name="App" > <param name="android-package" value="org.apache.cordova.App" /> </feature> <feature name="Geolocation" > <param name="android-package" value="org.apache.cordova.GeoBroker" /> </feature> <feature name="Device" > <param name="android-package" value="org.apache.cordova.Device" /> </feature> <feature name="Accelerometer" > <param name="android-package" value="org.apache.cordova.AccelListener" /> </feature> <feature name="Compass" > <param name="android-package" value="org.apache.cordova.CompassListener" /> </feature> <feature name="Media" > <param name="android-package" value="org.apache.cordova.AudioHandler" /> </feature> <feature name="Camera" > <param name="android-package" value="org.apache.cordova.CameraLauncher" /> </feature> <feature name="Contacts" > <param name="android-package" value="org.apache.cordova.ContactManager" /> </feature> <feature name="File" > <param name="android-package" value="org.apache.cordova.FileUtils" /> </feature> <feature name="NetworkStatus" > <param name="android-package" value="org.apache.cordova.NetworkManager" /> </feature> <feature name="Notification" > <param name="android-package" value="org.apache.cordova.Notification" /> </feature> <feature name="Storage" > <param name="android-package" value="org.apache.cordova.Storage" /> </feature> <feature name="FileTransfer" > <param name="android-package" value="org.apache.cordova.FileTransfer" /> </feature> <feature name="Capture" > <param name="android-package" value="org.apache.cordova.Capture" /> </feature> <feature name="Battery" > <param name="android-package" value="org.apache.cordova.BatteryListener" /> </feature> <feature name="SplashScreen" > <param name="android-package" value="org.apache.cordova.SplashScreen" /> </feature> <feature name="Echo" > <param name="android-package" value="org.apache.cordova.Echo" /> </feature> <feature name="Globalization" > <param name="android-package" value="org.apache.cordova.Globalization" /> </feature> <feature name="InAppBrowser" > <param name="android-package" value="org.apache.cordova.InAppBrowser" /> </feature> <!-- Deprecated plugins element. Remove in 3.0 --> <plugins> </plugins> </widget>
而后,就能够运行了
PhoneGap的官方方法不是这样的,是用命令行生成默认包的。可是要装好几个东西。具体能够看PhoneGap包里面的readme文档。