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-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"/>
修改后如下:
<?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-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-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 调试勾选上)