zoukankan      html  css  js  c++  java
  • PhoneGap Android环境搭建

    原文地址:http://www.cnblogs.com/shawn-xie/archive/2012/08/15/2638480.html
    一.安装
    在安装PhoneGap开发环境之前,需要按顺序安装以下工具:
      java sdk,不安装的话不能正常安装Android SDK。
      安装成功检测:启动DOS窗口start-->run-->cmd,在DOS窗口中键入:java -version,如能显示版本信息说明安装正常。
      java开发工具,这我就不用多说了,推荐装classic版的。
      下下来安装完之后是一个Android SDK Manager,你需要下载以下组件,可能需要较长时间:

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

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

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

    二.新建一个PhoneGap项目

    1.在eclipse中新建Android Project。
    2.在项目的目录下,建两个文件夹:
    /libs
    /assets/www
    3.进入将刚刚下载并解压的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文件,内容看起来像这样:
     1 <!DOCTYPE HTML>
     2 <html>
     3     <head>
     4         <title>PhoneGap</title>
     5         <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
     6     </head>
     7     <body>
     8         <h1>Hello World</h1>
     9     </body>
    10 
    11 </html>

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

     1 <supports-screens
     2 
     3 android:largeScreens="true"
     4 
     5 android:normalScreens="true"
     6 
     7 android:smallScreens="true"
     8 
     9 android:resizeable="true"
    10 
    11 android:anyDensity="true"
    12 
    13 />
    14 
    15 <uses-permission android:name="android.permission.CAMERA" />
    16 
    17 <uses-permission android:name="android.permission.VIBRATE" />
    18 
    19 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    20 
    21 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    22 
    23 <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    24 
    25 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    26 
    27 <uses-permission android:name="android.permission.INTERNET" />
    28 
    29 <uses-permission android:name="android.permission.RECEIVE_SMS" />
    30 
    31 <uses-permission android:name="android.permission.RECORD_AUDIO" />
    32 
    33 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    34 
    35 <uses-permission android:name="android.permission.READ_CONTACTS" />
    36 
    37 <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    38 
    39 <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" />
    6.将以下内容添加到AndroidManifest.xml文件的activity标签中:

    android:configChanges="orientation|keyboardHidden

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

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

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

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

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

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

    另外需要注意的是:

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

    我们的<activity>标签中有这样一个类名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 
     3 import android.os.Bundle;
     4 import org.apache.cordova.*;
     5 
     6 public class outer extends DroidGap {
     7     @Override
     8     public void onCreate(Bundle savedInstanceState)
     9     {
    10         super.onCreate(savedInstanceState);
    11         super.loadUrl("file:///android_asset/www/index.html");
    12     }
    13 }

    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应用了!

    
    
     
  • 相关阅读:
    linux常用统计命令
    linux文件处理命令
    linux三剑客和管道使用
    bash编程语法
    第八章:用通配符进行过滤
    第七章:数据过滤
    第六章:过滤数据
    第五章:排序检索数据
    第四章:检索数据
    第二章:MYSQL简介
  • 原文地址:https://www.cnblogs.com/liangstudyhome/p/4071451.html
Copyright © 2011-2022 走看看