PhoneGap2.5.0 Android平台移植01

来源:互联网 发布:孟伟院士 知乎 编辑:程序博客网 时间:2024/06/08 15:41
使用工具:

1.  Eclipse 4.2

2. Android SDK 

个人下载的是一个压缩包:

adt-bundle-windows-x86-20130219

下载网址:http://burnbit.com/torrent/237176/adt_bundle_windows_x86_20130219_zip

(此版本是非常新的软件版本,里面有Eclipse工具和Android SDK,推荐下载)

3. PhoneGap2.5.0

下载网址:

http://bbs.phonegapcn.com/forum.php?mod=viewthread&tid=9038

简单介绍:

PhoneGap是一个开源的HTML5移动开发平台,开发者可以用HTML,CSS,JavaScript开发本地移动应用程序,然后部署到iOS、Android、BlackBerry、WebOS、Windows Phone 7/8、Symbian以及Bada系统上,实现一次开发,多个平台共用的目的。也就是所谓的“跨平台”

对于很多移动互联网端的开发者而言,很显然会希望自己开发的应用一次开发,多平台运行!那么不妨考虑下PhoneGap吧!

PhoneGap功能确实很强大,但是目前它有个缺点就是:移植的应用在目标平台上效率还比不上原生应用(反应延时较大,相信后续会改进的!)。

不管怎么样,PhoneGap会大大提高开发效率,还是值得学习的。

一.Android环境搭建

1. 本人使用系统:Win 8 企业评估版(免费体验90天)

其他 Win7 或是Xp 类似

2. 首先安装jdk 1.6(或1.7),配置环境变量(此步目前一般可以省略,因为后面的Eclipse一般会自动检测你是否安装jdk), 现在点击Eclipse应用程序就可以运行了(现在一般都是绿色版,不需安装)

3. 安装Eclispe 相关插件 ADT (在线安装或是离线安装) ,不出意外,重启Eclipse就可以看到Android SDK已经在工具栏了。 (不是下载上述压缩包的,可能需要安装Android SDK)

ADT在线更新下载网址:

http://dl-ssl.google.com/android/eclipse/

二.PhoneGap环境搭建

搭建好Android环境以后,就可以搭建PhoneGap环境了。

启动Eclipse 后

1.      File ---〉New----〉Android Application project





中间省略的过程都是默认Next

完成创建后界面如下:



接下来就是几个关键的步骤(在上述三个文件夹下操作):

1.在assets文件夹下,新建一个名为www的文件夹,再将phonegap-2.5.0解压文件中:

phonegap-2.5.0-----〉lib----->android目录下的cordova-2.5.0.js拷贝到刚创建的www文件夹下

2.将cordova-2.5.0.jar文件拷贝到libs文件里

3.将phonegap-2.5.0 -----〉lib----->android目录下的名为xml的整个文件夹拷贝到res目录下

做好以上三个步骤以后,就可以简单测试一下phonegap的功能了。

4.在上述新建的www文件夹下建立index.html文件,并链接上phonegap的cordova-2.5.0.js文件,如:

<!DOCTYPE HTML><html><head><meta charset="utf-8"><title></title><script type="text/javascript"charset="utf-8" src="cordova-2.5.0.js"></script></head><body><h1>HelloPhoneGap</h1><h2>This is my first gapApplication!</h2></body></html>

5. 对src文件夹下的MainActivity.java文件作如下修改

1) 修改类的继承

public class MainActivity extends  DroidGap 

将Activity 修改为 DroidGap

2) 把setContentView()这行替换为super.loadUrl("file:///android_asset/www/index.html");

3) 如果onCreate方法是protected,则改为public

修改后如下:

package com.example.hellophonegap; import android.os.Bundle;import android.view.Menu;import org.apache.cordova.DroidGap; public class MainActivity extends DroidGap {     @Override    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        super.loadUrl("file:///android_asset/www/index.html");    }     @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to theaction bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    } }

注意:虽然我们没看到有android_asset这个文件夹,也不要将android_asset 改为assets,以免找不到资源。可以理解为android_asset对应assets

6.打开工程目录下的AndroidManifest.xml,

增加一些权限:

<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"/>

修改后如下:

<?xml version="1.0"encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.hellophonegap"    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-sdk        android:minSdkVersion="8"        android:targetSdkVersion="17"/>     <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme">        <activity            android:name="com.example.hellophonegap.MainActivity"            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>

7.测试运行

右键项目,Run As----〉 Android Application

由于AVD启动太慢,直接用真机测试如下:


注:确认真机设备已经勾选USB debugging选项,并已将设备连接到电脑。(设置 > 应用程序 > 开发 >USB 调试勾选上)


原创粉丝点击