PhoneGap2.5.0 Android平台移植01
来源:互联网 发布:孟伟院士 知乎 编辑:程序博客网 时间:2024/06/08 15:41
1. Eclipse 4.2
2. Android SDK
个人下载的是一个压缩包:
adt-bundle-windows-x86-20130219
下载网址:http://burnbit.com/torrent/237176/adt_bundle_windows_x86_20130219_zip
(此版本是非常新的软件版本,里面有Eclipse工具和Android SDK,推荐下载)
3. PhoneGap2.5.0
下载网址:
http://bbs.phonegapcn.com/forum.php?mod=viewthread&tid=9038
简单介绍:
PhoneGap是一个开源的HTML5移动开发平台,开发者可以用HTML,CSS,JavaScript开发本地移动应用程序,然后部署到iOS、Android、BlackBerry、WebOS、Windows Phone 7/8、Symbian以及Bada系统上,实现一次开发,多个平台共用的目的。也就是所谓的“跨平台”
对于很多移动互联网端的开发者而言,很显然会希望自己开发的应用一次开发,多平台运行!那么不妨考虑下PhoneGap吧!
PhoneGap功能确实很强大,但是目前它有个缺点就是:移植的应用在目标平台上效率还比不上原生应用(反应延时较大,相信后续会改进的!)。
不管怎么样,PhoneGap会大大提高开发效率,还是值得学习的。
一.Android环境搭建
1. 本人使用系统:Win 8 企业评估版(免费体验90天)
其他 Win7 或是Xp 类似
2. 首先安装jdk 1.6(或1.7),配置环境变量(此步目前一般可以省略,因为后面的Eclipse一般会自动检测你是否安装jdk), 现在点击Eclipse应用程序就可以运行了(现在一般都是绿色版,不需安装)
3. 安装Eclispe 相关插件 ADT (在线安装或是离线安装) ,不出意外,重启Eclipse就可以看到Android SDK已经在工具栏了。 (不是下载上述压缩包的,可能需要安装Android SDK)
ADT在线更新下载网址:
http://dl-ssl.google.com/android/eclipse/
二.PhoneGap环境搭建
搭建好Android环境以后,就可以搭建PhoneGap环境了。
启动Eclipse 后
1. File ---〉New----〉Android Application project
中间省略的过程都是默认Next
完成创建后界面如下:
接下来就是几个关键的步骤(在上述三个文件夹下操作):
1.在assets文件夹下,新建一个名为www的文件夹,再将phonegap-2.5.0解压文件中:
phonegap-2.5.0-----〉lib----->android目录下的cordova-2.5.0.js拷贝到刚创建的www文件夹下
2.将cordova-2.5.0.jar文件拷贝到libs文件里
3.将phonegap-2.5.0 -----〉lib----->android目录下的名为xml的整个文件夹拷贝到res目录下
做好以上三个步骤以后,就可以简单测试一下phonegap的功能了。
4.在上述新建的www文件夹下建立index.html文件,并链接上phonegap的cordova-2.5.0.js文件,如:
<!DOCTYPE HTML><html><head><meta charset="utf-8"><title></title><script type="text/javascript"charset="utf-8" src="cordova-2.5.0.js"></script></head><body><h1>HelloPhoneGap</h1><h2>This is my first gapApplication!</h2></body></html>
5. 对src文件夹下的MainActivity.java文件作如下修改
1) 修改类的继承
public class MainActivity extends DroidGap
将Activity 修改为 DroidGap
2) 把setContentView()这行替换为super.loadUrl("file:///android_asset/www/index.html");
3) 如果onCreate方法是protected,则改为public
修改后如下:
package com.example.hellophonegap; import android.os.Bundle;import android.view.Menu;import org.apache.cordova.DroidGap; public class MainActivity extends DroidGap { @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to theaction bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
注意:虽然我们没看到有android_asset这个文件夹,也不要将android_asset 改为assets,以免找不到资源。可以理解为android_asset对应assets
6.打开工程目录下的AndroidManifest.xml,
增加一些权限:
<supports-screensandroid: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"/>
修改后如下:
<?xml version="1.0"encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.hellophonegap" android:versionCode="1" android:versionName="1.0"> <supports-screensandroid: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-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name="com.example.hellophonegap.MainActivity" 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>
7.测试运行
右键项目,Run As----〉 Android Application。
由于AVD启动太慢,直接用真机测试如下:
注:确认真机设备已经勾选USB debugging选项,并已将设备连接到电脑。(设置 > 应用程序 > 开发 >USB 调试勾选上)
- PhoneGap2.5.0 Android平台移植01
- PhoneGap2.5.0 Android平台移植02
- 移植心得---android平台
- 移植心得---android平台
- 移植心得---android平台
- cocos2dx移植android平台
- cocos2dx移植android平台
- cocos2dx移植android平台
- cocos2dx移植android平台
- ffmpeg android 平台移植
- Android平台移植ifstat
- Android平台移植FFmpeg
- android平台移植valgrind
- S3c6410平台Android移植(图)
- 移植Busybox到Android平台
- ffmpeg移植到android平台
- android平台工程移植问题
- android平台工程移植问题
- 抽象工厂模式(Abstract Factory Pattern)
- Linux 设备驱动--- 硬件访问
- Struts2多个文件上传
- 关于VS工程编译找不到DLL的解决办法 .
- Android跨进程通信——Activity
- PhoneGap2.5.0 Android平台移植01
- [翻译]ACMer 2013 Daily Training- 9th Mar for 11x&&12x
- 清华大学刘徐舟老师经典语录
- Online Judge 0004:双基回文数
- POJ 1038
- DP 多维背包
- Latex的一些技巧
- css+js模仿selector
- [翻译]ACMer 2013 Daily Training- 10th Mar for 11x&&12x