(一)phoneGap之环境搭建教程及其example分析


phoneGap之环境搭建教程及其example分析

一、环境搭建

     与普通的开发android应用一样,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,你需要下载以下组件,可能需要较长时间:

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

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

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

 

二.新建一个PhoneGap项目

1.在eclipse中新建Android Project,名字神马的随便取吧; 2.在项目的目录下,建两个文件夹: /libs /assets/www 3.进入将刚刚下载并解压的PhoneGap包里Anroid目录,我们需要的资源都在这个目录下。  将phonegap-x.x.x.js这个js文件(具体名称视当时下载的版本而定)copy到/assets/www目录下,  把phonegap.jar文件copy到/libs目录下。  再把xml目录copy到android项目的res目录下。 4.在/assets/www下建立index.html文件,内容看起来像这样:
  1. </span><span class="pln">PhoneGap</span><span class="tag">
  2. type="text/javascript" charset="utf-8" src="cordova-2.0.0.js">
  3. Hello World

5.将以下权限配置的xml内容copy到AndroidManifest.xml文件中:
  1. android:largeScreens="true"
  2. android:normalScreens="true"
  3. android:smallScreens="true"
  4. android:resizeable="true"
  5. android:anyDensity="true"
  6. />
  7. android:name="android.permission.CAMERA" />
  8. android:name="android.permission.VIBRATE" />
  9. android:name="android.permission.ACCESS_COARSE_LOCATION" />
  10. android:name="android.permission.ACCESS_FINE_LOCATION" />
  11. android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
  12. android:name="android.permission.READ_PHONE_STATE" />
  13. android:name="android.permission.INTERNET" />
  14. android:name="android.permission.RECEIVE_SMS" />
  15. android:name="android.permission.RECORD_AUDIO" />
  16. android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
  17. android:name="android.permission.READ_CONTACTS" />
  18. android:name="android.permission.WRITE_CONTACTS" />
  19. android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> android:name="android.permission.ACCESS_NETWORK_STATE" /> android:name="android.permission.GET_ACCOUNTS" />
6.将以下内容添加到AndroidManifest.xml文件的activity标签中:

android:configChanges="orientation|keyboardHidden

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

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

 
  1. <?xml version="1.0" encoding="utf-8"?>
  2. xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.shawn"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. android:anyDensity="true"
  7. android:largeScreens="true"
  8. android:normalScreens="true"
  9. android:resizeable="true"
  10. android:smallScreens="true"
  11. android:xlargeScreens="true" />
  12. android:name="android.permission.CAMERA" />
  13. android:name="android.permission.VIBRATE" />
  14. android:name="android.permission.ACCESS_COARSE_LOCATION" />
  15. android:name="android.permission.ACCESS_FINE_LOCATION" />
  16. android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
  17. android:name="android.permission.INTERNET" />
  18. android:name="android.permission.RECEIVE_SMS" />
  19. android:name="android.permission.RECORD_AUDIO" />
  20. android:name="android.permission.RECORD_VIDEO" />
  21. android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
  22. android:name="android.permission.READ_CONTACTS" />
  23. android:name="android.permission.WRITE_CONTACTS" />
  24. android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  25. android:name="android.permission.ACCESS_NETWORK_STATE" />
  26. android:name="android.permission.GET_ACCOUNTS" />
  27. android:name="android.permission.BROADCAST_STICKY" />
  28. android:minSdkVersion="8" android:targetSdkVersion="15" />
  29. android:label="@string/app_name"
  30. android:icon="@drawable/ic_launcher"
  31. android:theme="@style/AppTheme">
  32. android:name="outer"
  33. android:configChanges="orientation|keyboardHidden"
  34. android:label="@string/app_name" >
  35. android:name="android.intent.action.MAIN" />
  36. android:name="android.intent.category.LAUNCHER" />

其中标签我们可以看做是我们当前的应用,而代表我们应用内的一个界面,标签里我们给当前页面设置了一个权限

android.intent.action.MAIN表示是最先启动的的界面;

android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里;

另外需要注意的是:

  1. android:name="outer"
  2. android:configChanges="orientation|keyboardHidden"
  3. android:label="@string/app_name" >

我们的标签中有这样一个类名outer,我们可以自己定义它,一会儿我们会用到这个类名。

8.在刚刚新建的Android Project中找到libs目录并在cordova-2.0.0.jar上点击右键,选择 Build Path->Add to Build Path

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)最后看起来就像这样:
 

  1. package com.example.shawn;
  2. import android.os.Bundle;
  3. import org.apache.cordova.*;
  4. public class outer extends DroidGap {
  5. @Override
  6. public void onCreate(Bundle savedInstanceState)
  7. {
  8. super.onCreate(savedInstanceState);
  9. super.loadUrl("file:///android_asset/www/index.html");
  10. }
  11. }

三、解析说明

      大家可以看到其实phoneGap充当了一座桥梁,是链接html和原生app的桥梁,通过js进行链接。

























来自为知笔记(Wiz)

相关