phonegap开发入门
做了几次开发配置了,但时间一长就忘了,特记录一下。
一、环境变量配置::右击“我的电脑”-->"高级"-->"环境变量"
1、在系统变量里新建JAVA_HOME变量,变量值为:C:\Program Files\Java\jdk1.7.0_79(根据自己的安装路径填写)
2、 新建classpath 变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
3、 在path 变量(已存在不用新建)尾部添加变量值:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意变量值之间用“;”隔开)
4、“开始”-->“运行”-->输入“javac”-->"Enter",如果能正常打印用法说明配置成功!
5、下载Android Development Tools 已经包括了Android sdk、esclipe,解压即可使用:http://www.cnblogs.com/kuangliu/p/4607406.html
6、在path 变量(已存在不用新建)尾部添加变量值:
D:\phonegap\adt-bundle-windows-x86_64-20140702\sdk\tools(根据自己的存放路径填写)
D:\phonegap\adt-bundle-windows-x86_64-20140702\sdk\platform-tools
D:\phonegap\adt-bundle-windows-x86_64-20140702\eclipse\plugins\org.apache.ant_1.8.3.v201301120609\bin
7、更新自己的android sdk到最新(不然build不成功)
8、ANT目录不能是中文 不然编译不成功
9、输入java javac ant 看是否配置环境成功
注:JAVA_HOME: jdk 的安装路径
classpath: java 加载类路径,只有类在classpath 中java 命令才能识别,在路径前加了个"."表示当前路径
path: 系统在任何路径下都可以识别java,javac 命令
二、安装 node node .js
下载地址:http://nodejs.org/
下载完成安装 node
三、安装phonegap
npm install -g cordova
四、创建项目
cordova create hello com.example.hello "HelloWorld" cd hello cordova platform add android cordova build cordova run android 运行模拟器
五、安装、删除插件
cordova plugin add org.apache.cordova.console //添加
cordova plugin ls //查看
cordova plugin rm org.apache.cordova.console //删除
六、配置全局文件
http://docs.phonegap.com/zh/edge/config_ref_index.md.html#Config.xml%20%E6%96%87%E4%BB%B6
如果用eclipse创建项目的话要修改几个文件
1、把cordova-2.9.0.jar文件拷贝到libs文件夹里
2、example里的xml文件夹拷贝到项目目录下的res文件夹里
3、在/assets/www下建立index.html文件,并引入cordova.js文件
4、对src文件夹下的XXX.java文件作如下修改:
4.1 注掉import android.app.Activity;加上import org.apache.cordova.*;
4.2 修改类的继承 将Activity 修改为 DroidGap
4.3 onCreate类改成 public
4.4 把setContentView()这行替换为super.loadUrl("file:///android_asset/www/index.html");
改完如下:
package com.example.weapp; //import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
//import android.view.MenuItem;
import org.apache.cordova.*; public class MainActivity extends DroidGap { @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
super.loadUrl("file:///android_asset/www/index.html");
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} /*@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}*/
}
5、修改项目根目录下的AndroidManifest.xml文件
改完如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.weapp"
android:versionCode="1"
android:versionName="1.0" > <supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="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.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO" />
<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-sdk
android:minSdkVersion="10"
android:targetSdkVersion="21" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden"
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>
其中<application>标签我们可以看做是我们当前的应用,而<activity>代表我们应用内的一个界面,<intent-filter>标签里我们给当前页面设置了一个权限
android.intent.action.MAIN表示是最先启动的的界面;
android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里;
android:configChanges="orientation|keyboardHidden
这是为了保证机器在横竖屏切换的时候不会重新执行Activity的onCreate方法;
参考:http://www.cnblogs.com/shawn-xie/archive/2012/08/15/2638480.html
phonegap开发入门的更多相关文章
- phonegap学习入门
phonegap 开发入门 PhoneGap官方网站上有详细的入门示例教程,这里,我针对使用PhoneGap进行Android移动应用的开发对其官网的Get Started进行一些介绍.补充. Ste ...
- PhoneGap开发手机程序入门教程
用PhoneGap开发手机移动程序 1. 什么是PhoneGap PhoneGap是一个自由开放源码的开发工具和框架,允许利用HTML + JavaScript + CSS的强大功能在多个手机 ...
- [转帖]H5 手机 App 开发入门:技术篇
H5 手机 App 开发入门:技术篇 http://www.ruanyifeng.com/blog/2019/12/mobile-app-technology-stack.html 阮一峰老师的文 ...
- openresty 前端开发入门五之Mysql篇
openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...
- java WEB开发入门
WEB开发入门 1 进入web JAVASE:标准- standard JAVA桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 web 2 软件结构 C/S :client ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解
原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...
- [译]:Xamarin.Android开发入门——Hello,Android深入理解
返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- 吐槽:基于PhoneGap开发移动项目
目前,随着Google的Android手机和苹果的iphone手机的逐渐普及,越来越多开发者加入到移动应用开发的大军当中.其中,Android应用是基于Java语言基础上进行开发的,而苹果公司的iph ...
随机推荐
- JavaWeb 7 Servlet
7 Servlet Servlet学习的大纲:1. servlet概念及相关接口简介2. servet 执行过程3. servlet路径映射4. 缺省servlet --应用5. s ...
- ios8中,相册创建后手动删除,不能再进行创建显示
// Add a new ALAssetsGroup to the library. // The name of the ALAssetsGroup is name and the type is ...
- java虚拟机(一)——内存管理机制与OOM异常
一 java内存区域与内存溢出异常(OOM) 1)运行时数据区域划分 1.程序计数器(Program Conuter Register) 程序计数器是一块较小的内存空间,它是当前线程执 ...
- 转 java int与Integer的区别
int是java提供的8种原始数据类型之一, Java为每个原始类型提供了封装类,Integer是java为int提供的封装类. int 是基本类型,Integer是引用类型. java.lang.I ...
- jquery中DOM
节点包裹 wrap() (1)$().wrap(html) 将选择的节点用指定的元素包装 $('p').wrap('<div></div>'); (2)多层包裹 $('p'). ...
- ajax 跨域解决 网上资料
PHP中运用jQuery的Ajax跨域调用实现代码,需要的朋友可以参考下 可以在页面定义一个调用方法,如下: 复制代码代码如下: function getData(){ $.getJSON(&qu ...
- Machine Learning - 第4周(Neural Networks: Representation)
Neural networks is a model inspired by how the brain works. It is widely used today in many applicat ...
- EF Core » 关系
对初学者理解关系很有用,先留下来,有时间边看边翻译. Caution 注意 This documentation is for EF Core. For EF6.x and earlier relea ...
- linux笔记:RPM软件包管理-源码包管理
源码包和rpm包的区别: 源码包安装过程: 编译安装前准备(执行./configure --prefix=路径 来配置软件的安装位置,以及做其他的配置和检查): 编译和安装(直接在目录下执行make和 ...
- Controller简介
Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分: 1.收集.验证请求参数并绑定到命令对象: 2.将命令对象交给业务对象,由业务对象处理并返回模型数 ...