其中標紅的三個文件夾是我們需要用到的。
二.新建一個PhoneGap項目
<!DOCTYPE HTML> <html> <head> <title>PhoneGap</title> <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script> </head> <body> <h1>Hello World</h1> </body> </html>
5.將以下權限配置的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" />
android:configChanges="orientation|keyboardHidden
這是為了保證機器在橫豎屏切換的時候不會重新執行Activity的onCreate方法;
7.AndroidManifest.xml最后看起來會像這樣:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.shawn" android:versionCode="1" android:versionName="1.0"> <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" /> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:theme="@style/AppTheme"> <activity android:name="outer" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
其中<application>標簽我們可以看做是我們當前的應用,而<activity>代表我們應用內的一個界面,<intent-filter>標簽里我們給當前頁面設置了一個權限
android.intent.action.MAIN表示是最先啟動的的界面;
android.intent.category.LAUNCHER決定應用程序是否顯示在程序列表里;
另外需要注意的是:
<activity android:name="outer" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" >
我們的<activity>標簽中有這樣一個類名outer,我們可以自己定義它,一會兒我們會用到這個類名。
8.在剛剛新建的Android Project中找到libs目錄並在cordova-2.0.0.jar上點擊右鍵,選擇 Build Path->Add to Build Path
package com.example.shawn; import android.os.Bundle; import org.apache.cordova.*; public class outer extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } }
package com.example.shawn;這句話是干嘛的呢?這是java中常用的,類似於文件的姓氏,看看文件樹就知道了,這是放在文件前面定位用的。
public class outer extends DroidGap;這里將outer類繼承為DroidGap,同時本文件的文件名也要注意保持一致(outer.java),否則會報錯。
super.loadUrl("file:///android_asset/www/index.html");這句話大家可以理解為加載一個網頁,這個路徑大家很熟悉,就是我們的首頁。透過這句話我們也可以看到phoneGap最根本的東西,就是在原生語言與網頁語言之間架一座橋。
然后就可以在模擬器下試着運行一下這個項目,成功的話會出現Hello World的界面。
ok了,至此為止,phonegap的android開發環境就搭建好了,您可以基於phonegap編寫自己的android應用了!