日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
跨平臺(tái)開發(fā):初探PhoneGap移動(dòng)開發(fā)框架

隨著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ì)的一大難題,在專訪國內(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。

創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元塔什庫爾干塔吉克做網(wǎng)站,已為上家服務(wù),為塔什庫爾干塔吉克各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

移動(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)用,這對移動(dòng)應(yīng)用開發(fā)者來說無疑是個(gè)福音。 目前,PhoneGap已實(shí)現(xiàn)對iPhone/ipad、Android、Symbian,Palm、黑莓各版本絕大部分功能的支持,其中官方文檔中對其支持的詳細(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)境上安裝對應(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對我們是有用的。

由于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的版本直接安裝。

此外,我們還要對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

對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文件。

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

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

#p#

編寫HelloWorld程序

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

 
 
 
 
  1. >    
  2.     
  3.         
  4.               
  5.     PhoneGap Android App title>    </li> <li>             <pre id="0452v"></pre><p id="0452v"></p><pre id="0452v"></pre><source id="0452v"><form id="0452v"><ins id="0452v"></ins></form></source><wbr id="0452v"></wbr><strike id="0452v"></strike><wbr id="0452v"></wbr><option id="0452v"></option><strike id="0452v"><form id="0452v"><pre id="0452v"></pre></form></strike><address id="0452v"></address><pre id="0452v"><u id="0452v"><mark id="0452v"></mark></u></pre><small id="0452v"></small><th id="0452v"><em id="0452v"><blockquote id="0452v"></blockquote></em></th><pre id="0452v"></pre><dd id="0452v"><tbody id="0452v"><pre id="0452v"></pre></tbody></dd><dl id="0452v"><small id="0452v"><meter id="0452v"></meter></small></dl><listing id="0452v"><del id="0452v"><tr id="0452v"></tr></del></listing><progress id="0452v"><th id="0452v"><em id="0452v"></em></th></progress><track id="0452v"><pre id="0452v"><strike id="0452v"></strike></pre></track><sub id="0452v"></sub><abbr id="0452v"><mark id="0452v"><source id="0452v"></source></mark></abbr><pre id="0452v"><dfn id="0452v"><ul id="0452v"></ul></dfn></pre><p id="0452v"><abbr id="0452v"><sub id="0452v"></sub></abbr></p><meter id="0452v"><strike id="0452v"><option id="0452v"></option></strike></meter><track id="0452v"><blockquote id="0452v"><strike id="0452v"></strike></blockquote></track><del id="0452v"></del><th id="0452v"></th><acronym id="0452v"><address id="0452v"><tbody id="0452v"></tbody></address></acronym><pre id="0452v"><p id="0452v"><abbr id="0452v"></abbr></p></pre><ol id="0452v"><th id="0452v"><samp id="0452v"></samp></th></ol><strong id="0452v"><abbr id="0452v"><sub id="0452v"></sub></abbr></strong><label id="0452v"><acronym id="0452v"><dd id="0452v"></dd></acronym></label><sub id="0452v"><source id="0452v"><tr id="0452v"></tr></source></sub><label id="0452v"><rp id="0452v"><address id="0452v"></address></rp></label><pre id="0452v"><dfn id="0452v"><mark id="0452v"></mark></dfn></pre><b id="0452v"></b><ul id="0452v"><progress id="0452v"><table id="0452v"></table></progress></ul><label id="0452v"><tr id="0452v"><dd id="0452v"></dd></tr></label><ul id="0452v"><progress id="0452v"><listing id="0452v"></listing></progress></ul><legend id="0452v"><strong id="0452v"><pre id="0452v"></pre></strong></legend><ol id="0452v"><th id="0452v"><progress id="0452v"></progress></th></ol><acronym id="0452v"></acronym><mark id="0452v"></mark><strike id="0452v"><form id="0452v"><pre id="0452v"></pre></form></strike><legend id="0452v"><strong id="0452v"><pre id="0452v"></pre></strong></legend><ul id="0452v"><progress id="0452v"><listing id="0452v"></listing></progress></ul><abbr id="0452v"></abbr><form id="0452v"></form><abbr id="0452v"></abbr><form id="0452v"></form><label id="0452v"><acronym id="0452v"><dd id="0452v"></dd></acronym></label><meter id="0452v"></meter><sub id="0452v"><source id="0452v"><tr id="0452v"></tr></source></sub><strong id="0452v"></strong><b id="0452v"><tbody id="0452v"><listing id="0452v"></listing></tbody></b><pre id="0452v"></pre><table id="0452v"><small id="0452v"><tr id="0452v"></tr></small></table><form id="0452v"></form><abbr id="0452v"></abbr><ins id="0452v"></ins><strike id="0452v"><rp id="0452v"><address id="0452v"></address></rp></strike><em id="0452v"><em id="0452v"><strike id="0452v"></strike></em></em><strike id="0452v"></strike><em id="0452v"><center id="0452v"></center></em><rp id="0452v"></rp><div id="0452v"><label id="0452v"><font id="0452v"></font></label></div><font id="0452v"><dd id="0452v"><tbody id="0452v"></tbody></dd></font><tbody id="0452v"></tbody><meter id="0452v"></meter><tr id="0452v"></tr><ul id="0452v"><progress id="0452v"><table id="0452v"></table></progress></ul><source id="0452v"></source><del id="0452v"></del><ruby id="0452v"><center id="0452v"><label id="0452v"></label></center></ruby><b id="0452v"></b><tr id="0452v"><abbr id="0452v"><mark id="0452v"></mark></abbr></tr><source id="0452v"></source><progress id="0452v"><listing id="0452v"><small id="0452v"></small></listing></progress><ol id="0452v"><b id="0452v"><progress id="0452v"></progress></b></ol><u id="0452v"></u><u id="0452v"></u><sup id="0452v"></sup><dl id="0452v"></dl><em id="0452v"></em><track id="0452v"><blockquote id="0452v"><strike id="0452v"></strike></blockquote></track><abbr id="0452v"></abbr><sub id="0452v"></sub><p id="0452v"><u id="0452v"><sup id="0452v"></sup></u></p><p id="0452v"><ruby id="0452v"><sub id="0452v"></sub></ruby></p><sup id="0452v"></sup><font id="0452v"><dd id="0452v"><tbody id="0452v"></tbody></dd></font><font id="0452v"><dd id="0452v"><tbody id="0452v"></tbody></dd></font><th id="0452v"><samp id="0452v"><th id="0452v"></th></samp></th><rp id="0452v"></rp><tbody id="0452v"></tbody><dl id="0452v"><small id="0452v"><meter id="0452v"></meter></small></dl><sub id="0452v"><label id="0452v"><rp id="0452v"></rp></label></sub><span id="0452v"></span><tbody id="0452v"></tbody><small id="0452v"><tr id="0452v"><dfn id="0452v"></dfn></tr></small><sup id="0452v"></sup><table id="0452v"></table><em id="0452v"></em><tr id="0452v"></tr><b id="0452v"></b><sup id="0452v"><strike id="0452v"><tr id="0452v"></tr></strike></sup><strike id="0452v"><option id="0452v"><font id="0452v"></font></option></strike><strike id="0452v"></strike><dl id="0452v"></dl><ruby id="0452v"></ruby><strike id="0452v"><rp id="0452v"><address id="0452v"></address></rp></strike><ruby id="0452v"></ruby><dl id="0452v"></dl><form id="0452v"></form><form id="0452v"><pre id="0452v"><wbr id="0452v"></wbr></pre></form><dfn id="0452v"><ul id="0452v"><span id="0452v"></span></ul></dfn><progress id="0452v"></progress><ruby id="0452v"><center id="0452v"><label id="0452v"></label></center></ruby><tbody id="0452v"><table id="0452v"><del id="0452v"></del></table></tbody></div> </html> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.dlmjj.cn/" title="日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区">日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区</a> <div class="friend-links"> <a href="http://www.mozom.cn">玖玖资源综合视频|不卡免费视频在线|日本一二区观看在线|在线视频 日韩 欧美|日韩人妻无码精品色|五月天丁香成人图片|久久精品亚洲天堂人妻无码精品网站|熟女一区二区三区免费|精品国产一级无码AV|啪啪啪网站免费观看</a> <a href="http://www.sdshangyuan.cn">女女百合片www免费观看有剧情自慰|久草国产porn|色噜噜狠狠狠狠色综合久一麻豆|偷拍 自拍 三区|无码国产精品一区二区vr老人|不卡日韩无码高清|久久这里有亚洲无码|日本欧美久久久久免费视频|浮力影院成人A片|欧洲无码视频在线观看奶头</a> <a href="http://www.hamihami.cn">精品日韩乱码久久久久久丨区2区|伊人久久夜夜爽一区无码|天堂AV无码AV|国产巨乳美女裸体网站|国产熟女三区四区|综合久久久久久久|熟女色色一区二区三区|欧美成人精品一区二区三区四凶|成人区人妻精品一|国产九幺久久久官网</a> </div> </div> </footer> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>