安装前准备工作
1、下载java sdk 1.6以上版本
2、下载Android Development Tools
已经包括了Android sdk、esclipe,解压即可使用。
3、设置系统变量
系统变量 Path后面添加:
一定要注意的是比 在2.9的安装中多了ant的安装,还有就是下面列出来的四个路径不能是中文,不然ant编译会错误
D:\android-sdk-windows\tools
D:\android-sdk-windows\platform-tools
D:\android_eclispe\eclipse\plugins\org.apache.ant_1.8.3.v201301120609\bin
D:\Program Files (x86)\Java\jdk1.7.0_17\bin
新增 JAVA_HOME,设置值为java sdk 根目录:
D:\Program Files (x86)\Java\jdk1.7.0_17
1.先安装好android环境
用npm下载cordova最新版
npm install -g cordova
在当前路径中运行以下命令
cordova create MyApp com.example.myapp "MyApp"
生成一个MyApp的项目工程。
cd MyApp
cordova platform add android
在C:\Users\Administrator\.cordova\lib\android\cordova中会生成一个cordova版本,我的是3.5.1
2.制作jar文件
将cmd切换到路径C:\Users\Administrator\.cordova\lib\android\cordova\3.5.1\framework
android update project -p C:\Users\Administrator\.cordova\lib\android\cordova\3.5.1\framework
ant jar
在C:\Users\Administrator\.cordova\lib\android\cordova\3.5.1\framework中会生成一个cordova-3.5.1.jar文件,
把这个包扔到工程的libs目录下,这样就不用打开xxx-CordovaLib。
3.在eclipse中新建Android Project,取名MyApp
4.进入C:\Users\Administrator\.cordova\lib\android\cordova\3.5.1\framework。
将assets下的www文件夹拷到MyApp中的assets(cordova.js、index.html)下。
把cordova-2.9.0.jar文件copy到/libs目录下。
再把res中的xml目录copy到MyApp的res目录下。
截图如下:
5.在/assets/www下建立index.html文件,内容看起来像这样
<!DOCTYPE HTML> <html> <head> <title>PhoneGap</title> <script type="text/javascript" charset="utf-8" src="cordova.js"></script> </head> <body> <h1>Hello PhoneGap</h1> </body> </html>
6.将以下权限配置的xml内容copy到AndroidManifest.xml文件中:
<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" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
7.在刚刚新建的Android Project中找到libs目录并在cordova.jar上点击右键,选择 Build Path->Add to Build Path
8.修改layout下的activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <org.apache.cordova.CordovaWebView android:id="@+id/cordovaWebView1" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
9. 最后再修改下src下的Java主文件:
package com.shiqudou.myapp; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.apache.cordova.CordovaWebView; import org.apache.cordova.CordovaInterface; import org.apache.cordova.CordovaPlugin; import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class MainActivity extends Activity implements CordovaInterface { private final ExecutorService threadPool = Executors.newCachedThreadPool(); private CordovaWebView cordovaWebView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cordovaWebView = (CordovaWebView) findViewById(R.id.cordovaWebView1); cordovaWebView.loadUrl("file:///android_asset/www/index.html"); } @Override public void onDestroy() { super.onDestroy(); if (cordovaWebView != null) { cordovaWebView.handleDestroy(); } } @Override public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) { // TODO Auto-generated method stub } @Override public void setActivityResultCallback(CordovaPlugin plugin) { // TODO Auto-generated method stub } @Override public Activity getActivity() { // TODO Auto-generated method stub return this; } @Override public Object onMessage(String id, Object data) { // TODO Auto-generated method stub return null; } @Override public ExecutorService getThreadPool() { // TODO Auto-generated method stub return threadPool; } }
试着运行下就OK了