PhoneGap 在eclipse上开发Android程序

本文将记录在Eclipes上开发Android App,在使用的方法是Hybrid App(混合模式移动应用)

由于本人的工作需要,将要开发在车间使用的数据录入程序,但是其中有非常多的逻辑验证和判断,画面中的内容多,需要开发的画面数量也多,

需要在目标日期内上线是比较困难的。

因为本人对C#和ASP.NET比较熟悉的,所以今天就先尝试混合模式移动应用的开发,在此做个笔记。

 

首先,还是要感谢网上的教程和资源的:

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

PhoneGap包:

(1)2.9.0版:http://download.csdn.net/detail/u011788813/6294279

(2)2.1.0版:http://download.csdn.net/detail/czp1001/4922446

 

PhoneGap的背景可以去百度了解,现在来说,PhoneGap已经不是流行了,主流是Cordova。

2.9.0版本是最后一个可以使用导入第三方包方法的版本,后续的版本要通过控制台创建android项目了。

下文主要先发图进行说明,然后会贴上代码。

 

下面开始说明:

前提是Eclipse已经安装,并且可以顺利开发安卓应用。(可以参考之前本人的其他文章)

1、新建Android项目:

 

2、项目的参数:

由于HelloGap的App已经创建了,所以图中会有红叉,正常是不会报错的。

 

3、PhoneGap包解压后的文件~\phonegap-phonegap-26d211b\lib\android

这三个是本次主要使用的文件。

 

4、项目的目录:

 

5、MainActivity.java的代码

 

6、index.html

 

7、AndroidManifest.xml中的参数设定

 

完成!调试运行。

运行效果:

 

代码:

MainActivity.java

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

index.html

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>PhoneGap</title>
 6 <script type="text/javascript" charset="utf-8" src="cordova-2.1.0.js"></script>
 7 </head>
 8 <body>
 9     <div>
10         <h1>标题:</h1>
11     </div>
12     <div>
13         <p>正文</p>
14     </div>
15 </body>
16 </html>

AndroidManifest.xml

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

 

完成以上的项目后,本人尝试了使用JQuery的ajax,通过handler获取响应数据,完全没有问题。估计是因为这个App根本就是个网页吧,工作原理不太懂。

 

欢迎交流!

 

posted @ 2016-08-25 15:44  chenyucong  阅读(390)  评论(0编辑  收藏  举报