搭建基于Android和PhoneGap的开发环境

IDE需要使用Eclipse 3.4+

安装 SDK + PhoneGap

1、需要安装eclipse 3.4+  下载地址>>

2、安装ADT插件

添加ADT plug,地址为:http://dl-ssl.google.com/android/eclipse

3、下载并安装 Android SDK

因为http://androidappdocs.appspot.com/sdk/index.html 被墙掉了,所以得另外找一个地址

Android SDK 3.1 (以下链接转载至:http://www.cnblogs.com/yaotong/archive/2011/01/25/1943615.html)

Windows http://dl.google.com/android/android-sdk_r11-windows.zip http://dl.google.com/android/installer_r11-windows.exe Mac OS X(intel) http://dl.google.com/android/android-sdk_r11-mac_x86.zip Linux(i386) http://dl.google.com/android/android-sdk_r11-linux_x86.tgz

然后就是安装了,需要很久很久….

别忘记了在系统环境变量中,添加android sdk的tools包路径

(设置好以后可以在cmd下测试一下~)

===========

环境弄好了,开始写个Demo(详情可参考PhoneGap的官网,需要先下载PhoneGap-0.9.5)~

1、新建一个Android Project

2、导入需要的包、建议文件目录

下图是下载phonegap-0.9.5后解压出来的包,复制phonegap.0.9.5.jar到第一步建立的工程的libs目录中

现在工程的目录(红色标的为新建的目录):

选中 phonegap.0.9.5.jar,右击 -> Build Path –> Config Build Path…   切换到Libraries选项卡:

添加架包:

这时,可以看到libs目录与assets、res一样了,目录图标左上角多了个东西

这里为了简单,直接复制phonegap例子中的三个文件到www目录下:

修改com.phonegap.helloworld包下面的App.java文件:

类继承于DroidGap(默认继承类Activity)

注释 setContentView(R.layout.main); 这一行,改为 super.loadUrl(file:///android_asset/www/index.html);

修改工程根目录下的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" />
    
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

在application节点下,找到activity节点,添加android:configChanges="orientation|keyboardHidden"

<activity android:name=".exampleapp"                   android:label="@string/app_name" android:configChanges="orientation|keyboardHidden">

完整的文件内容

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.phonegap.helloworld"
      android:versionCode="1"
      android:versionName="1.1">

    
    <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-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    
    <application android:icon="@drawable/icon" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden">
        <activity android:name=".App"
                  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>
    
    <uses-sdk android:minSdkVersion="2" />
    
</manifest>

3、运行项目

右击项目,选中Run as 并点击 Android Application ,如果第一次启动,需要配置模拟器的虚拟设备(可能会遇到问题,配置后无法启动,把生成的文件.android移动到当前登录用户的文档目录下就好了,网上也有很多其它解决方法)

如果不出其它意外情况,正常情况下将会看到类似下面的界面(运行起来比较慢、卡,需要点耐心~) :

进入界面(点中左侧的“锁”不放,向右移动,当 Unlock 颜色加深时就解锁成功了)

需要再等待一会,在看到控制台出现

Starting activity com.phonegap.helloworld.App on device emulator-5554

之后,会看到下图所示的界面

至此,第一个web app在模拟器上就成功跑起来了。整体跑下来,感觉还是挺麻烦的,这玩意太消耗内存了,机器会变的很卡,有时半天没响应,真是需要点耐心

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

亲测:MySQL安装与python下的MySQLdb使用

为什么选择用MySQL,因为MySQL小巧玲珑,且性能强大。不论容量的话,相比其他两个(sql server 、oracle)动则几个G,几十个G的大软件安装在...

2447
来自专栏Timhbw博客

Aria2-不限速全平台下载利器

2016-06-2815:54:31 2 5,355℃热度 1.工具下载(包含本文中出现的所有工具的最新版本) 2. Aria2简介 3.安装与配置 ...

1.7K6
来自专栏向治洪

搭建网站

环境 Windows 10(64 位) Git-2.7.4-64-bit node-v4.4.7-x64 如果上述软件已经安装的,跳过,没有安装的下载安装。 1...

6536
来自专栏黑泽君的专栏

解决:Setting property 'source' to 'org.eclipse.jst.jee.server 的问题

  警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.ecli...

852
来自专栏云原生架构实践

容器化系列 - 通过Grafana监测InfluxDB数据 on Docker

1625
来自专栏晓晨的专栏

Jenkins 集群搭建

Jenkins是当下比较流行的一款功能强大的持续集成工具,它支持搭建集群,来提高多项目的构建速度,模式为主从模式,master会将任务分配到各个从节点进行并发构...

1021
来自专栏Pythonista

超哥教你发布CRM

python web服务器开发使用WSGI协议(Web Server Gateway Interface)

1042

在Linode上部署React应用程序

React是一个用于构建用户界面的流行JavaScript库。虽然React经常被用作更复杂应用程序的前端,但它也足够强大,可以单独用于完整的客户端应用程序。

1984
来自专栏SpringBoot 核心技术

第一章:Maven环境下如何配置QueryDSL环境

1743
来自专栏向治洪

ios入门之项目结构介绍

对于刚入门的ios程序猿来说,掌握Xcode开发工具及程序项目是非常必要的,掌握这些基本的内容对于我们后期开发,调试也是很有帮助的。 首先,创建一个 Xcode...

2416

扫码关注云+社区

领取腾讯云代金券