zoukankan      html  css  js  c++  java
  • 基于Cordova的android项目入门

    本文记录在ecplise里建立一个基于Cordova的android项目的基本步骤。

    准备工作:

    1、cordova-3.0.0.jar

    2、cordova.js

    3、发开android的eclipse的环境。Android SDK、ADT Plugin

    开始建立项目

    1、打开Eclipse,选择文件->新建->Android Project。与建立原生的android项目一样的步骤。

     

    2、把cordova-3.0.0.jar复制到libs目录下面,如果没有libs目录就创建。

    3、在asset目录下创建www文件夹,把cordova.js复制到www目录下面。

    4、从下载的包里面复制xml文件夹到res目录下面。xml文件夹里面有文件config.xml。内容如下,有一些个人信息,改不改都可以。

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at
    
     http://www.apache.org/licenses/LICENSE-2.0
    
     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.
    -->
    <widget xmlns     = "http://www.w3.org/ns/widgets"
            id        = "io.cordova.helloCordova"
            version   = "2.0.0">
        <name>Hello Cordova</name>
    
        <description>
            A sample Apache Cordova application that responds to the deviceready event.
        </description>
    
        <author href="http://cordova.io" email="callback-dev@incubator.apache.org">
            Apache Cordova Team
        </author>
    
        <access origin="*.apache.org"/>
    
        <!-- <content src="http://mysite.com/myapp.html" /> for external pages -->
        <content src="index.html" />
    
        <log level="DEBUG"/>
    
        <!-- Preferences for Android -->
        <preference name="useBrowserHistory" value="true" />
        <preference name="exit-on-suspend" value="false" />
    
        <feature name="Activity">
            <param name="android-package" value="org.apache.cordova.test.ActivityPlugin" />
        </feature>
        <feature name="App">
          <param name="android-package" value="org.apache.cordova.App"/>
        </feature>
        <feature name="Geolocation">
          <param name="android-package" value="org.apache.cordova.GeoBroker"/>
        </feature>
        <feature name="Device">
          <param name="android-package" value="org.apache.cordova.Device"/>
        </feature>
        <feature name="Accelerometer">
          <param name="android-package" value="org.apache.cordova.AccelListener"/>
        </feature>
        <feature name="Compass">
          <param name="android-package" value="org.apache.cordova.CompassListener"/>
        </feature>
        <feature name="Media">
          <param name="android-package" value="org.apache.cordova.AudioHandler"/>
        </feature>
        <feature name="Camera">
          <param name="android-package" value="org.apache.cordova.CameraLauncher"/>
        </feature>
        <feature name="Contacts">
          <param name="android-package" value="org.apache.cordova.ContactManager"/>
        </feature>
        <feature name="File">
          <param name="android-package" value="org.apache.cordova.FileUtils"/>
        </feature>
        <feature name="NetworkStatus">
          <param name="android-package" value="org.apache.cordova.NetworkManager"/>
        </feature>
        <feature name="Notification">
          <param name="android-package" value="org.apache.cordova.Notification"/>
        </feature>
        <feature name="Storage">
          <param name="android-package" value="org.apache.cordova.Storage"/>
        </feature>
        <feature name="FileTransfer">
          <param name="android-package" value="org.apache.cordova.FileTransfer"/>
        </feature>
        <feature name="Capture">
          <param name="android-package" value="org.apache.cordova.Capture"/>
        </feature>
        <feature name="Battery">
          <param name="android-package" value="org.apache.cordova.BatteryListener"/>
        </feature>
        <feature name="SplashScreen">
          <param name="android-package" value="org.apache.cordova.SplashScreen"/>
        </feature>
        <feature name="Echo">
          <param name="android-package" value="org.apache.cordova.Echo"/>
        </feature>
        <feature name="Globalization">
          <param name="android-package" value="org.apache.cordova.Globalization"/>
        </feature>
        <feature name="InAppBrowser">
          <param name="android-package" value="org.apache.cordova.InAppBrowser"/>
        </feature>
             
    </widget>

    现在项目需要添加的文件已经添加了,如下图。

    5、接下来,在 assets/www 文件夹下创建一个名为 index.html 的文件。此文件将用作 Cordova 应用程序界面的主要入口点。文件主要是测试,可参考如下内容

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>a android app base on cordova</title>
    </head>
    <body>
        <h1>Hello Cordova</h1>
    </body>
    </html>

    注意:文件名要与config.xml里面设置的文件名一致。config.xml设置的代码。

    <content src="index.html" />

    6、需要将 cordova-3.0.0.jar 库添加到该 Android 项目的构建路径。对文件cordova-3.0.0.jar右键-->Build Path-->Add to Build Path。

    7、修改Activity类。

    -添加以下导入语句

    import org.apache.cordova.DroidGap;

    -将基类从 Activity 更改为DroidGap ;它位于类定义中 extends 一词的后面

    public class MainActivity extends DroidGap

    -用本地 assets/www/index.html 文件加载 Cordova 界面的引用替换setContentView() 调用函数

    super.loadUrl("file:///android_asset/www/index.html");

    修改之后如下图

    8、配置项目元数据,修改AndroidManifest.xml

    -添加以下supports-screen XML 节点作为 manifest 根节点的子节点

    <supports-screens
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:resizeable="true"
        android:anyDensity="true"
        />

    supports-screen 节点可识别您应用程序支持的屏幕大小。您可以通过更改此条目的内容来调整屏幕和外观设置支持。要阅读有关<supports-screens>,的更多信息,请访问 Android 开发人员主题 – 支持屏幕元素

    -为 Cordova 应用程序配置权限,复制以下<uses-permission> XML 节点,并粘贴它们作为 AndroidManifest.xml 文件<manifest> 根节点的子节点。

    <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" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />

    <uses-permission>XML 值可识别您要为应用程序启用的功能。上述代码行可启用 PhoneGap 所有功能正常运行所需的全部权限。构建完应用程序后,您可能希望删除不会实际用到的所有权限;这将会删除应用程序安装过程中出现的安全警告。要阅读有关 Android 权限和 <uses-permission> 元素的更多信息,请访问 Android 开发人员主题 – 用户权限元素

    -修改现有的 <activity> 代码。找到<activity>节点,它是 <application>XML 节点的子节点。将下面的属性添加到该<activity> 节点:

    configChanges="orientation|keyboardHidden"

    -为 org.apache.cordova.DroidGap 类创建一个 <activity> 节点。添加下面的<activity> 节点作为现有 <activity> XML 节点的同级节点。

    <activity 
        android:name="org.apache.cordova.DroidGap" 
        android:label="@string/app_name" 
        android:configChanges="orientation|keyboardHidden"> 
        <intent-filter></intent-filter> 
    </activity>

    此时,已将您的项目配置为作为 Android PhoneGap 项目运行。

    9、按一般android项目运行即可。

    信息来源:

    http://mobile.51cto.com/android-273486.htm

    http://www.adobe.com/cn/devnet/html5/articles/getting-started-with-phonegap-in-eclipse-for-android.html

    http://blog.csdn.net/fupozsl/article/details/7363595

  • 相关阅读:
    centos yum 安装php7.2
    Linux CentOS完全卸载PHP
    Linux: cp 复制文件、文件夹到文件夹
    CentOS 7 yum安装LAMP,LNMP并搭建WordPress个人博客网站
    cin循环输入控制问题
    有序数组中的二分查找
    二叉查找树中元素的删除操作
    如何生成能在没有安装opencv库及vs2010环境的电脑上运行的exe文件
    冒泡排序算法,选择排序算法,插入排序算法
    使用迭代法穷举1到N位最大的数
  • 原文地址:https://www.cnblogs.com/kuler/p/3338786.html
Copyright © 2011-2022 走看看