自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

跨平臺(tái)開發(fā):初探PhoneGap移動(dòng)開發(fā)框架

移動(dòng)開發(fā) Android
PhoneGap是一款開源的手機(jī)應(yīng)用開發(fā)平臺(tái),它僅僅只用HTML和JavaScript語言就可以制作出能在多個(gè)移動(dòng)設(shè)備上運(yùn)行的應(yīng)用。

隨著Google的Android手機(jī)和蘋果的iPhone手機(jī)的逐漸普及,越來越多開發(fā)者加入到移動(dòng)應(yīng)用開發(fā)的大軍當(dāng)中。目前移動(dòng)終端中的冠亞軍Android,應(yīng)用是基于Java語言基礎(chǔ)上進(jìn)行開發(fā)的;而蘋果公司的iPhone則是基于C語言開發(fā)的。如果開發(fā)者編寫的應(yīng)用需要同時(shí)在不同的移動(dòng)設(shè)備上運(yùn)行的話,則必須要掌握多種開發(fā)語言,這已經(jīng)成為開發(fā)團(tuán)隊(duì)的一大難題,在51CTO專訪國內(nèi)著名移動(dòng)軟件尚郵的首席架構(gòu)師時(shí)也提到過跨平臺(tái)軟件開發(fā)的困難。而為了進(jìn)一步簡化移動(dòng)應(yīng)用的編程,很多公司推出解決方案,Adobe推出的“AIR for Android”,使Flash為Android開發(fā)本地應(yīng)用成為可能。而Nitobi公司推也出了一套開源的移動(dòng)應(yīng)用解決方案PhoneGap。

51CTO移動(dòng)開發(fā)推薦PhoneGap專題

PhoneGap是一款開源的手機(jī)應(yīng)用開發(fā)平臺(tái),它僅僅只用HTML和JavaScript語言就可以制作出能在多個(gè)移動(dòng)設(shè)備上運(yùn)行的應(yīng)用。PhoneGap將移動(dòng)設(shè)備本身提供的復(fù)雜的API進(jìn)行了抽象和簡化,提供了一系列豐富的API供開發(fā)者調(diào)用,只要你會(huì)HTML和Javascript或者Java語言,就可以利用PhoneGap提供的API去調(diào)用各種功能,PhoneGap就能讓你可以制作出在各種手機(jī)平臺(tái)上運(yùn)行的應(yīng)用,這對(duì)移動(dòng)應(yīng)用開發(fā)者來說無疑是個(gè)福音。 目前,PhoneGap已實(shí)現(xiàn)對(duì)iPhone/ipad、Android、Symbian,Palm、黑莓各版本絕大部分功能的支持,其中官方文檔中對(duì)其支持的詳細(xì)說明如下圖所示:

在本文中,將以一個(gè)簡單的能在Android平臺(tái)上運(yùn)行的HelloWorld的示例,講解如何安裝PhoneGap的開發(fā)框架并配合Eclipse進(jìn)行開發(fā)的過程。

基于Android SDK安裝PhoneGap框架

首先,要明白一點(diǎn),就是要利用PhoneGap框架開發(fā)移動(dòng)應(yīng)用時(shí),也是必須在開發(fā)環(huán)境上安裝對(duì)應(yīng)移動(dòng)設(shè)備應(yīng)用的SDK的。比如你要開發(fā)一個(gè)運(yùn)行在Android上的應(yīng)用,則必須安裝 Android的SDK包,開發(fā)iPhone應(yīng)用,就要安裝iPhone sdk。本文將介紹如何安裝基于Android SDK下安裝PhoneGap。

無論是開發(fā)基于哪種平臺(tái)的移動(dòng)應(yīng)用,首先要到PhoneGap的官方網(wǎng)站下載

PhoneGap包(下載地址)。目前最新的版本是0.9.1,下載之后,解壓縮后,會(huì)發(fā)現(xiàn)如下圖所示的若干個(gè)文件夾:

這里,由于我們是構(gòu)建Android應(yīng)用,因此只有phonegap-android對(duì)我們是有用的。

由于PhoneGap是通過Ruby語言以及所開發(fā)的目標(biāo)移動(dòng)設(shè)備的SDK一起搭配工作的,因此除了下載PhoneGap外,開發(fā)者還必須安裝如下的軟件(以Android為例)

◆Android SDK,建議安裝最新的版本,比如Android 2.1或者2.2

◆Eclipse IDE

Apache Ant 1.8.1

◆JDK 1.5以上

◆Android 的Eclipse開發(fā)插件ADT

◆Ruby 1.9.1,建議到官網(wǎng)直接下載1.9.1的版本直接安裝。

此外,我們還要對(duì)windows下的運(yùn)行環(huán)境變量進(jìn)行設(shè)置。首先我們到控制面板-系統(tǒng)-環(huán)境變量中,增加如下幾個(gè)系統(tǒng)環(huán)境變量。

◆JAVA_HOME:指向所安裝的JDK的目錄,比如c:\jdk15

◆ANT_HOME:指向所安裝的Apache_ANT目錄,比如d:\ant

◆ANDROID_HOME;指向所安裝的Android SDK目錄,比如d:\androidsdk

對(duì)Path進(jìn)行設(shè)置,分別將ruby,jdk,android sdk,ant加入到原有的path中,如:

  1. c:\ruby\bin;c:\jdk15\bin;d:\ant\bin;d:\androidsdk\tools  
  2.  

其中,下載Ruby 1.9.1的Windows版本后,直接選擇安裝到指定目錄即可。

在完成上面的這些工作后,我們接下來就通過PhoneGap框架的腳手架功能,快速生成一個(gè)android的原型程序。

#p#

通過PhoneGap生成基于Android的原型程序

1 進(jìn)入PhoneGap-Android目錄,并進(jìn)入MS-DOS方式,在命令行下,按如下格式執(zhí)行該命令:

  1. ruby bin/droidgap "[android_sdk_path]" [name] [package_name] "[www]" "[path]"  
  2.  

上述參數(shù)說明如下:

其中android_sdk_path指定了android sdk的安裝位置,比如:

d:/androidsdk,注意這里不要寫成“\”,應(yīng)該是“/”作為分隔符。

Name:要生成的android應(yīng)用的名字。

Package_name:生成的android應(yīng)用中源代碼中的包名,注意必須至少有一層的包關(guān)系,即com.XXXX的形式。

WWW:這里指應(yīng)用中存放HTML,Javascipt,CSS的位置目錄名稱。

PATH:這里指通過PhoneGap生成的項(xiàng)目原型工程的目錄位置,注意的是,該目錄位置不能指定為eclipse的workspace工作空間內(nèi)。

下面是一個(gè)例子:

  1. ruby bin/droidgap “d:/androidsdk” HelloWorldGap com.phonegap www  
  2.   “d:/HelloWorldGap”  
  3.  

運(yùn)行上述命令后,會(huì)發(fā)現(xiàn)在D盤會(huì)生成一個(gè)HelloWolrdGap的工程目錄,phonegap已經(jīng)為我們生成了項(xiàng)目的框架了。

將工程導(dǎo)入到Eclipse中

如果安裝了Android for eclipse的插件ADT后,我們可以將PhoneGap生成的工程導(dǎo)入到Eclipse中去。首先我們打開Eclipse,新建一個(gè)Android Project,如下圖

其中輸入Project name的名稱為HelloGapAndroid,其中在Create project from existing source中選擇上文中用PhoneGap生成的項(xiàng)目的目錄。之后在Eclipse中則會(huì)看到如下結(jié)構(gòu)的

可以看到其中assets下的www目錄存放了工程中需要用到的HTML、Javascript和CSS文件。此外,還要確認(rèn)工程的lib目錄下面,存在phonegap.jar文件。

接下來我們?cè)囍\(yùn)行下這個(gè)工程,會(huì)在模擬器中看到如下效果:

運(yùn)行的結(jié)果是顯示了PhoneGap中默認(rèn)顯示的index.html頁面,其中演示了其中的一些功能,大家可以嘗試去試驗(yàn)一下。

#p#

編寫HelloWorld程序

接下來,我們來在此基礎(chǔ)上編寫HelloWorld程序。我們切換到index.html中去,在代碼模式下,刪除原來phonegap生成的代碼,寫入如下代碼:

  1. >    
  2. <html>    
  3.     <head>    
  4.     <meta name="viewport" content="width=320; user-scalable=no" />      <meta http-equiv="Content-type" content="text/html; charset=utf-8">    
  5.     <title>PhoneGap Android Apptitle>    
  6.              <script type="text/javascript" charset="utf-8" src="phonegap.js">script>            
  7.            <script type="text/javascript" charset="utf-8">    
  8.                       var showMessageBox = function() {     
  9.               navigator.notification.alert("Hello World of PhoneGap");     
  10.                       }     
  11.                         function init(){     
  12.             document.addEventListener("deviceready", showMessageBox, true);                    
  13.                       }     
  14.   script>    
  15.   head>    
  16. <body onload="init();"  >    
  17.   body>    
  18. html>    
  19.  

可以看到,這其實(shí)是普通的HTML和Javascript代碼。首先在onload觸發(fā)的方法init中,通過Javascript的回調(diào)方法中調(diào)用了phonegap封裝好的事件

deviceready,這個(gè)事件含義是當(dāng)設(shè)備在將其應(yīng)用程序加載完畢后觸發(fā)的。在引入phonegap提供的API時(shí),必須通過 的方式引入進(jìn)行調(diào)用。在這里的回調(diào)函數(shù)showMessageBox中,就調(diào)用了phonegap封裝好的方法 navigator.notification.alert,這個(gè)方法實(shí)際上是

顯示了一個(gè)帶文本的提示框,運(yùn)行結(jié)果如下圖:

#p#

改進(jìn)HelloWorld程序

接下來我們改進(jìn)下這個(gè)程序,實(shí)現(xiàn)的功能是我們可以在文本框里輸入名字,然后點(diǎn)確定按鈕后,彈出提示窗口顯示Hello+你輸入的名字。修改程序代碼如下:

  1. >    
  2.     
  3. <html>    
  4.     
  5.   <head>    
  6.     
  7.     <meta name="viewport" content="width=320; user-scalable=no" />    
  8.     
  9.     <meta http-equiv="Content-type" content="text/html; charset=utf-8">    
  10.     
  11.     <title>PhoneGaptitle>    
  12.     
  13.               <script type="text/javascript" charset="utf-8" src="phonegap.js">script>            
  14.     
  15.               <script type="text/javascript" charset="utf-8">    
  16.     
  17.               var displayHello = function() {     
  18.     
  19.                         var name =      document.getElementById("firstname").value;     
  20.     
  21.                         navigator.notification.alert("name" + name);     
  22.     
  23.             }     
  24.     
  25.    script>    
  26.     
  27.   head>    
  28.     
  29.   <body onload="init();" id="bdy" >    
  30.     
  31.             <div id="txt">    
  32.     
  33.             <input   type="text" name="firstname" id="firstname" />    
  34.     
  35.             div>    
  36.     
  37.             <div id ="btn">    
  38.     
  39.     <a href="#" class="btn" onclick="displayHello();">Say Helloa>    
  40.     
  41.             div>    
  42.     
  43.         div>    
  44.     
  45.   body>    
  46.     
  47. html>   
  48.    

如果你懂得HTML和Javascript的話,上面的程序?qū)嵲谌菀桌斫?。其中我們添加了一個(gè)名為firstname的文本框,并且在按鈕的onclick事件中調(diào)用的displayHello()方法中通過document.getElementById的Javascript方法獲得了用戶輸入的名字,然后同樣用navigator.notification.alert的方法輸出結(jié)果,輸入的界面和輸出的結(jié)果如下圖所示:

總結(jié)

通過PhoneGap這套開源框架對(duì)開發(fā)移動(dòng)設(shè)備SDK的封裝,我們今后在開發(fā)移動(dòng)應(yīng)用時(shí),只需要調(diào)用PhoneGap封裝好的API,結(jié)合已有的Java、HTML、CSS和Javascript技術(shù),就可以很方便地進(jìn)行開發(fā)了,更多的資料請(qǐng)查看PhoneGap的幫助文檔。

了解Android開發(fā)更多內(nèi)容請(qǐng)看

[[16032]]

【編輯推薦】

  1. Adobe AIR登陸Android 跨平臺(tái)應(yīng)用運(yùn)行成現(xiàn)實(shí)
  2. 有效控制Android應(yīng)用程序的耗電量
  3. Android數(shù)據(jù)庫事務(wù)淺析
  4. nbandroid:NetBeans的Android插件
責(zé)任編輯:佚名 來源: It168
相關(guān)推薦

2012-03-16 13:43:29

2011-07-19 13:26:50

iPhone PhoneGap 框架

2011-07-06 11:16:32

Unity3DCocos2dSparrow Fra

2014-07-08 09:37:28

跨平臺(tái)Webhtml5

2013-06-26 14:55:59

AppCan

2013-07-17 13:51:48

AppCanPhoneGap

2024-12-06 15:07:42

Python開發(fā)

2012-05-24 13:25:37

TitaniumPhoneGapAppcelerato

2010-11-11 09:04:05

跨平臺(tái)移動(dòng)開發(fā)

2015-03-28 19:18:47

線下公開課51CTO沙龍MDSA

2011-12-23 09:53:24

PhoneGap

2014-07-04 09:43:22

2024-05-22 09:54:19

2011-07-05 14:59:47

PhoneGapHTML 5

2014-03-24 10:30:38

盧建暉跨平臺(tái)開發(fā)

2011-06-14 10:05:41

UDEAndroidJ2ME(K-Java

2011-07-01 15:02:53

PhoneGap移動(dòng)開發(fā)框架

2011-09-05 11:27:17

Sencha Touc框架HTML5

2012-02-01 09:59:05

TitaniumPhoneGapiOS

2015-05-13 10:09:39

移動(dòng)跨平臺(tái)開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)