首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

phoneGap-Android开发环境筹建

2013-03-01 
phoneGap-Android开发环境搭建一.安装在安装PhoneGap开发环境之前,需要按顺序安装以下工具:1.Java SDK? ja

phoneGap-Android开发环境搭建

一.安装
在安装PhoneGap开发环境之前,需要按顺序安装以下工具:1.Java SDK? java sdk,不安装的话不能正常安装Android SDK。? 安装成功检测:启动DOS窗口start-->run-->cmd,在DOS窗口中键入:java -version,如能显示版本信息说明安装正常。2.Eclipse? java开发工具,这我就不用多说了,推荐装classic版的。3.Android SDK? 下下来安装完之后是一个Android SDK?Manager,你需要下载以下组件,可能需要较长时间:

phoneGap-Android开发环境筹建

4.ADT Plugin? 这是一个Eclipse插件,作用是关联Android SDK,使你的Eclipse能够新建Android工程,安装方法如下:? 打开Eclipse中的菜单 “Help”->”InstallNewSoftware”进入软件安装界面,点击“Add”按钮,如下图设置即可下载。

phoneGap-Android开发环境筹建

5.PhoneGap? 下载PhoneGap,解压缩即可,打开里面的libs>android文件夹:

phoneGap-Android开发环境筹建

其中标红的三个文件夹是我们需要用到的。

二.新建一个PhoneGap项目

1.在eclipse中新建Android Project。2.在项目的目录下,建两个文件夹:/libs/assets/www3.进入将刚刚下载并解压的PhoneGap包里Anroid目录,我们需要的资源都在这个目录下。?将cordova-2.0.0.js这个js文件(具体名称视当时下载的版本而定)copy到/assets/www目录下,?把cordova-2.0.0.jar文件copy到/libs目录下。?再把xml目录(xml整个文件夹)copy到android项目的res目录下。4.在/assets/www下建立index.html文件,内容看起来像这样:?phoneGap-Android开发环境筹建
<!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>
phoneGap-Android开发环境筹建

5.将以下权限配置的xml内容copy到AndroidManifest.xml文件中:

phoneGap-Android开发环境筹建
<supports-screensandroid: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" />
phoneGap-Android开发环境筹建6.将以下内容添加到AndroidManifest.xml文件的activity标签中:

android:configChanges="orientation|keyboardHidden

这是为了保证机器在横竖屏切换的时候不会重新执行Activity的onCreate方法;

7.AndroidManifest.xml最后看起来会像这样:

phoneGap-Android开发环境筹建
<?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>
phoneGap-Android开发环境筹建或者如下这样:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.kenkao"      android:versionCode="1"      android:versionName="1.0">          <supports-screensandroid: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" />        <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".MainActivity"          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

?

phoneGap-Android开发环境筹建

9.最后再修改下src下的Java主文件(如果没有就自己创建一个),我们要做以下几件事:?1)添加import com.phonegap.*;2)删掉import android.app.Activity;3)还记得刚才的outer类么?这里将outer继承为DroidGap;4)把setContentView()这行替换为super.loadUrl("file:///android_asset/www/index.html");5)最后看起来就像这样:

?

phoneGap-Android开发环境筹建
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");    }}
phoneGap-Android开发环境筹建或者这样:

?

package com.kenkao;import org.apache.cordova.*;import android.os.Bundle;public class MainActivity extends DroidGap {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        super.loadUrl("file:///android_asset/www/index.html");    }}

?

package?com.example.shawn;这句话是干嘛的呢?这是java中常用的,类似于文件的姓氏,看看文件树就知道了,这是放在文件前面定位用的。

phoneGap-Android开发环境筹建

public?class?outer?extends?DroidGap;这里将outer类继承为DroidGap,同时本文件的文件名也要注意保持一致(outer.java),否则会报错。

super.loadUrl("file:///android_asset/www/index.html");这句话大家可以理解为加载一个网页,这个路径大家很熟悉,就是我们的首页。透过这句话我们也可以看到phoneGap最根本的东西,就是在原生语言与网页语言之间架一座桥。

然后就可以在模拟器下试着运行一下这个项目,成功的话会出现Hello World的界面。

?

phoneGap-Android开发环境筹建

?

ok了,至此为止,phonegap的android开发环境就搭建好了,您可以基于phonegap编写自己的android应用了!


热点排行
Bad Request.