本文将记录在Eclipes上开发Android App,在使用的方法是Hybrid App(混合模式移动应用),
由于本人的工作需要,将要开发在车间使用的数据录入程序,但是其中有非常多的逻辑验证和判断,画面中的内容多,需要开发的画面数量也多,
需要在目标日期内上线是比较困难的。
因为本人对C#和ASP.NET比较熟悉的,所以今天就先尝试混合模式移动应用的开发,在此做个笔记。
首先,还是要感谢网上的教程和资源的:
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-26d211blibandroid
这三个是本次主要使用的文件。
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根本就是个网页吧,工作原理不太懂。
欢迎交流!